How to Connect Segment Displays as Lights to MPF
Related Config File Sections:
MPF can map segment displays to arbitrary lights which can be controlled via any hardware platform. You can select from multiple mappings (see platform_settings for details). Let us know if you need another mapping.
Video about segment displays:
BCD Seven Segment
Segment displays are readily available at most electronics suppliers. Most of them use some BCD encoder to save connectors. Those are easily recognizable because they got less than 8 connectors. You can use any driver or digital outputs on those. Be a bit careful with current driven light controllers (i.e. the PD-LED) here. Those cannot be dimmed currently (let us know if you need that).
Parallel Seven Segment
Those are not as common as BCD segment displays but still available. You can recognize them by more than 8 connectors. Make sure that your display is not multiplexed or it will not work without an additional controller chip. Those can be driven by any parallel LED controller (see LEDs for details). If you use drivers you will probably need current limiting resistors. In most cases BCD is simpler to use and will save you some outputs.
Those are also available as RGB. However, they often are multiplexed and will not work without an additional chip.
Serial Segment Displays
Additionally, there are serial segment displays which use chips such as WS2811 internally. Those can also be used here using a serial LED controller (see LEDs for details).
There is a hackaday project for monochrome serial segment displays. Furthermore, there are also full RGB serial segment displays. Both are controlled using WS2811 controllers.
You can also buy WS2811 controller with PCB in China (bulk 100 pcs) for about ten bucks solder your own display.
Color and Brightness
There is no color or brightness support for segment displays in MPF yet. Let us know if you need that. However, you can control both using normal light shows.
This is an example:
hardware: segment_displays: light_segment_displays lights: segment1_a: number: 1 segment1_b: number: 2 segment1_c: number: 3 segment1_d: number: 4 segment1_e: number: 5 segment1_f: number: 6 segment1_g: number: 7 segment2_a: number: 8 segment2_b: number: 9 segment2_c: number: 10 segment2_d: number: 11 segment2_e: number: 12 segment2_f: number: 13 segment2_g: number: 14 segment_displays: display1: number: 1 platform_settings: lights: - a: segment1_a b: segment1_b c: segment1_c d: segment1_d e: segment1_e f: segment1_f g: segment1_g - a: segment2_a b: segment2_b c: segment2_c d: segment2_d e: segment2_e f: segment2_f g: segment2_g type: 7segment
Here is another example for a monochrome serial 16-segment display using a WS2811 controller on OPP:
hardware: segment_displays: light_segment_displays lights: l_neoseg_0_0_a: start_channel: 0-0-60 #When using other RGB pixels in the chain before the display, # start_channel = 3 x start_pixel #Using RGBW, start_channel = 4 x start pixel #Here, there are 20 RGB neopixels before the display type: w subtype: led l_neoseg_0_0_m: previous: l_neoseg_0_0_a type: w subtype: led l_neoseg_0_0_k: previous: l_neoseg_0_0_m type: w subtype: led l_neoseg_0_0_h: previous: l_neoseg_0_0_k type: w subtype: led l_neoseg_0_0_u: previous: l_neoseg_0_0_h type: w subtype: led l_neoseg_0_0_s: previous: l_neoseg_0_0_u type: w subtype: led l_neoseg_0_0_t: previous: l_neoseg_0_0_s type: w subtype: led l_neoseg_0_0_g: previous: l_neoseg_0_0_t type: w subtype: led l_neoseg_0_0_f: previous: l_neoseg_0_0_g type: w subtype: led l_neoseg_0_0_e: previous: l_neoseg_0_0_f type: w subtype: led l_neoseg_0_0_dp: previous: l_neoseg_0_0_e type: w subtype: led l_neoseg_0_0_d: previous: l_neoseg_0_0_dp type: w subtype: led l_neoseg_0_0_r: previous: l_neoseg_0_0_d type: w subtype: led l_neoseg_0_0_p: previous: l_neoseg_0_0_r type: w subtype: led l_neoseg_0_0_c: previous: l_neoseg_0_0_p type: w subtype: led l_neoseg_0_0_n: previous: l_neoseg_0_0_c type: w subtype: led l_neoseg_0_0_b: previous: l_neoseg_0_0_n type: w subtype: led l_neoseg_0_0_na: previous: l_neoseg_0_0_b type: w subtype: led segment_displays: display1: number: 1 platform_settings: lights: - a: l_neoseg_0_0_a b: l_neoseg_0_0_b c: l_neoseg_0_0_c d: l_neoseg_0_0_d e: l_neoseg_0_0_e f: l_neoseg_0_0_f g: l_neoseg_0_0_g h: l_neoseg_0_0_h k: l_neoseg_0_0_k m: l_neoseg_0_0_m n: l_neoseg_0_0_n p: l_neoseg_0_0_p r: l_neoseg_0_0_r s: l_neoseg_0_0_s t: l_neoseg_0_0_t u: l_neoseg_0_0_u type: 16segment
What if it did not work?
Have a look at our hardware troubleshooting guide.
Something missing or wrong? You can fix it!
This website is edited by people like you! Is something wrong or missing? Is something out of date, or can you explain it better?
Please help us! You can fix it yourself and be an official "open source" contributor!
It's easy! See our Beginner's guide to editing the docs.
Page navigation via the keyboard: < >
You can navigate this site via the keyboard. There are two modes:
General navigation, when search is not focused:
- F , S , / : open search dialog
- P , , : go to previous page
- N , . : go to next page
While using the search function:
- Down , Up : select next / previous result
- Esc , Tab : close search
- Enter : go to highlighted page in the results