MPF config file reference: FAST Pinball Servos¶
MPF 0.57 Configuration Reference for FAST Pinball Hardware
This page is parrt of the reference material for users of the Mission Pinball Framework and FAST Pinball hardware. If you're new to MPF and FAST, read the MPF + FAST overview first. If you are a programmer writing your own software, see our Developer's Reference Guide.
Note that this guide only applies to MPF 0.57. If you're using MPF 0.56 or older, then the FAST Pinball configuration section of the Mission Pinball website has everything you need.
FP-EXP-0071 expansion board has 4 servo ports. This guide explains how to configure servos connected to FAST Pinball Expansion Boards in MPF.
# config_version=6 fast: exp: boards: playfield: model: FP-EXP-0071 servos: servo1: number: playfield-1 # (1)! platform_settings: min_us: 500 home_us: 1500 max_us: 2500 max_runtime: 2s servo2: number: playfield-3 # (2)!
- "playfield" exp board, servo 1
- "playfield" exp board, servo 3
All of the standard MPF servo settings work as expected and are not covered here. What is covered here are the settings specific to FAST Pinball servos.
The servo number is simple. It's the expansion board name, a dash, and the port number (1-4). So if you have a servo connected to the "playfield" expansion board, and it's connected to port 1, then the number is
All of the MPF servo settings use floating point numbers from 0.0 to 1.0. The specific settings you can dial in via the
platform_settings: section relate to how those limits are translated to the actual servo's pulse width which is measured in microseconds. (The microsecond character is µ which is hard to type, so most people use
Your servo documentation will probably be wrong
We played with a lot of different servos while developing the FAST expansion board and MPF support. We found that the documentation for the servos we used was often wrong. For example, the docs would say a servo uses a range of 1000-2000 for the full 180 degree motion, but in reality it was 500-2500. etc. So if you're having trouble getting your servos to move the way you want, try playing with these settings.
The microsecond pulse width used to send this servo to its minimum position. The default is 1000.
The microsecond pulse width used to send this servo to its home position. The default is 1500.
The microsecond pulse width used to send this servo to its maximum position. The default is 2000.
How long this servo will run before it's automatically stopped. After this amount of time, the servo will be de-powered which will generally extend its life. (What happens under the hood is when a servo position is changed, the expansion board will send a continuous stream of pulses which will cause it to move to that position, and then it will stop sending pulses when this limit is reached. For example, if you set
max_runtime: to 2 seconds, the pulses will stop after 2 seconds.)
So figure out how much time it takes for your servo to move from its minimum position to its maximum position, and then set
max_runtime: to a little bit more than that.
The default is 2 seconds. Max is 65525ms (65.5 seconds).
Documentation Feedback? Requests? Confused?
Hi! I'm Brian, and I'm responsible for the documentation at FAST Pinball. If you have any feedback, requests, corrections, ideas, or any other thoughts about the docs, please let me know!
You can email me at firstname.lastname@example.org. I maintain this site in my spare time, so there might be a week or so delay if you email me.
If you have a more pressing need, reach out to us via Slack, or email Aaron Davis.
N or > jump the next page, P or < for previous, search with S or ?