DIY Split-Flap Display

Split-flap displays are electromechanical display devices, which were common in airports or railway stations a few years ago.Unfortunately, most of them are gone and replaced by LED displays. Why not create a DIY version of it?

2×10 Split-Flap Display

As mechanical devices they are rather complex and subject of mechanical wear-out. But Split-Flap displays have many advantages over their LED counterparts: no power required if the display is static, good visibility and contrast, and the flapping sound draws attention if information changes.

Luckily, there is an open source project by Scott Bezek which helps you building your own DIY Split-Flap display. :-).

Starting Point

The project started with a link a good friend forwarded to me (thanks again, James!), pointing to blog article by Dave Madison which shows how he has built a split-flap display:

8-Unit Split-Flap by Dave Madison

This amazing project is based on the outstanding work of Scott Bezek:

If you need to know how such a display works:

I really like his mechanical design, and with the needed equipment available (laser-cutter, desktop CNC, PnP, …) this project was in reach for me :-).

The original project uses Arduino plus dedicated controller board. For many reasons I did not want to use Arduino. Instead, I wanted to build a system which can be used in the lab for my ‘Advanced Distributed Systems’ course, and this means using non-hobby software and development tools. Scott’s original design can drive up to 12 units, but I needed to have something which can be interconnected and distributed: giving each student one or more split-flap and have them connected and working with the units of other students. With this, I created a new driver/controller hardware and software.

If you want to build your own: start with Scott’s excellent documentation. What I describe here is how I created my version, so you can decide and pick what you want to use for your own build. Ideally you are able to assemble electronics, have access to a laser cutter and/or CNC. If you don’t want to build everything yourself: Scott is selling components from his Etsy store too.


I re-used the original design from Scott with minor modifications, and created both 3 mm MDF and acrylic versions of it.

For the MDF I used 60×60 cm sheets which get cut into pieces by the CNC:

Cutting MDF sheet into pieces

A laser cutter then cuts the parts out of each piece:

Laser-cut MDF

Similar for the PMMA/Acrylic version:

red PMMA pieces
Translucent red PMMA version

One modification was to add a washer to every spool:

Washer on Spool

I wanted to have a way to stack units:

Stacking Split-Flap Units

A 3D printed connectors keeps them on top of each other:

To prevent the front plate nut from falling out the enclosure, it is kept in place with a 3D printed holder:

Front Plate Nut Holder
Front Plate Nut

3D printed holders are used for the electronic boards behind the units. The holder simply get clipped between the enclosure units:

Below the assembly of 20 split-flap units:

Back of 20 split-flap units

To keep the motor cables away from the flaps, I have added a 3D printed cable tunnel:


One of the most important part of a split-flap are the flaps. I did experiment with aluminum flaps, but the sound of the flaps was not so good in my opinion.

Experimental aluminum sheets

The advantage would have been that they can be directly engraved with a laser cutter:

Experimental Aluminum Flaps

So I ended up using PVC cards, the same kind of material which is used in Scott’s original project: Credit-card-size PVC cards which then can be cut to be used as flaps:

Blank PVC Cards

But because of the ‘C’ for chlorine in PVC, it is very dangerous to cut them with a laser cutter. So instead, I used a desktop CNC to cut them.

To cut the flaps with the CNC, I created a jig:

Split-Flap Jig

Up to 10 PVC cards can be put into it:

Cards to be put into the jig

Two pieces of MDF with screws keep them in place:

Hold down with MDF and screws

Then the ‘tabs’ get milled out with a 1/8″ end mill. The result are cards with the needed cutouts:

Cards with cut-outs
CNC the flaps

With the masking tape which tightly keeps the cards in place, the result is clean and needs no real post-processing.

Clean Cuts

Below some of the cards cut with the CNC:

PVC cards with cut-outs

The next step is to cut them in half.

split-flaps ready to be cut in half

I did consider cutting them with knife or directly with the CNC. The best solution was to use a cutter which is used to cut wood or PCBs. A 3D printed jig is used to cut multiple cards in a single step:

Cutting cards

Blank split-flaps


Many thanks to Dave Madison who created python scripts to create split-flap letters, which I used to create all the letters. Below the two lines to create two sets of letters I can cut with the CNC:

python scripts/ -t "ABCDEFGHIJKLMNOPQRSTU" --ncolumns 7

python scripts/ -t "VWXYZ0123456789!?+.-#" --ncolumns 7

This generates SVG files which can be loaded into Inkscape and then converted into DXF files: Make sure units are set to millimeters:


Then store the file into the .dxf format (File > Save As..). Here again make sure it is using mm:

.dxf file with mm base units

Then load each file into DXF2GCODE (see “Optimized Vinyl Cutting G-Code Tool Path with DXF2GCODE“) and create the G-Code files. Make sure to set the correct origin with Options > Move Workpiece Zero (I’m using lower left corner):


Because I do the tool change manually, I have commented out the M6 (tool change command) in the resulting file(s).

Cutting Vinyl Letters with Desktop CNC
Vinyl Letters

The letters then get applied to the flaps with a transfer foil:

Cut-Out letters
added transfer foil
Removing back-paper
Removed back-paper
Added flaps
Removing transfer foil
Applied letter

Using the above process, it takes about 20-25 minutes to apply the letters for a single split-flap unit.

Assembly in progress

Hardware: Motors, Nuts, …

The motors (28BYI-48) are available in many stores. Make sure it is the 12V version:

In general for all the hardware (nuts, …), I recommend you follow the guide on Scott’s GitHub Wiki:


A first proof of concept was pretty messy, but worked :-).

Messy Proof of Concept of Controller Solution
Single-Unit Prototype

Below a first test with units:

Because these days it is very hard to get microcontroller, and because most students already have a tinyK22 or LPC845-BRK board, two designs around these boards have been created in KiCAD:

tinyK22 Split-Flap PCB
Split-Flap Controller Board with tinyK22 and OLED

The two boards are very similar: the main difference is if a LPC845-BRK (NXP ARM-Cortex M0+) or tinyK22 (NXP ARM-Cortex M4F) is used as MCU board.

  • 12V Power supply
  • 4 ‘breakable’ sensor PCBs for the hall sensors
  • JST 2.5mm connectors
  • RS-485 communication interface
  • up to 4 split-flaps
  • tinyK22 version only: I2C (OLED) connector and UART for ESP32
Split-Flap Controller board with LPC845-BRK

The sensor PCBs get detached from the main PCB.

Sensor PCBs

On the back side, there is the through-hole hall sensor:

Jig for soldering hall sensor


The firmware is uses FreeRTOS with the McuLib and is runs with the NXP MCUXpresso SDK and IDE:


The firmware includes a command line interface, which can be used with USB-CDC, SEGGER RTT, UART, RS-485 or over WifFi with an attached ESP32. Text over multiple lines can be sent with a ‘\n’, e.g.

display "hello\\nworld!"

will show the text on two lines.

Shell Command Line Interface

The settings are stored in FLASH memory using key-value pairs. The position of each split-flap unit can be freely configured (x, y position on display).

In case of missed steps of the stepper motors, the firmware is able to detect this with the magnet and hall sensor and automatically corrects it on-the-fly. For easy re-wiring of split-flap units, the firmware includes a pre-configured offset table, reducing the installation or reconfiguration time.

Both the tinyK22 and LPC845-BRK version uses shared firmware sources. For a larger display the boards communicate over the RS-485, and the display content can be controlled from a single controller board, from the Host PC (UART, SEGGER RTT, USB CDC) or over WiFi with an attached ESP32. The tinyK22 boards can use a OLED (SSD1306) display too.


Currently I have 30 Split-Flap units assembled, with material for about 20 more units, so next step will be to build a larger display. With the RS-485 bus, there is a limit of around 128 devices (4*128 split-flaps) on a single bus, but then the 12V power monitoring and distribution would get more challenging. Currently there is one MCU needed for 4 split-flaps: this is fine for the class environment, but for larger displays an overkill. Scott has been working on a chain-link version: a student just finished a similar project: driving larger displays with just a single MCU. More about this probably in a future article.

I want to thank again Scott Bezek for his work and excellent documentation, which was a big help for this project.

Happy flapping 🙂

23 thoughts on “DIY Split-Flap Display

  1. Wunderbar! Great work! I like how you added a lot of your stuff like from Luzern Hochshule.

    Do you by any chance sell the flaps? I wanted to make one but buying them from Scott, the shipping costs more than the flaps.


    Liked by 1 person

  2. Great project, reminds me of waiting for my train in the Düsseldorf Hauptbahnhof in the 90s where they had a big display like this displaying all the departures. It was mesmerizing to watch it update! Maybe it’s still there? I don’t know, but it was a very specific memory for me. I know there is a commercial version of the split flap display for purchase now, I’ve seen lots of ads on instagram for it. it was surprisingly expensive, but after seeing how these work in your well documented post, I understand that they’re relatively complicated. Nice job!

    Liked by 1 person

    • Hi Curt,
      Thanks for your comment!
      I don’t know if the one in Düsseldorf still exists. The ones I’m aware of in Switzerland have been replaced by LED displays. I have seen the commercial one too, they do a lot of advertisements with no clear pricing, but yes, they are expensive. The DIY version is not cheap neither, and the mechanical details need some attention too. For example I have to use Loctite 222 to prevent he nuts from becoming loose. The other thing is you have to pay attention to turn off the current to the motor coils carefully, otherwise they can get really, really hot.


      • Yeah, I did a little googling, and it looks like the Dusseldorf HBh got rid of the split flap display in 2005 in favor of a digital one. I can imagine the difficulties (and cost) of your project, but you’ve done a great job: it looks excellent. Though i’m too lazy to do it myself, i appreciate you making your work so transparent and open so that others can learn from your experience.

        Liked by 1 person

  3. Pingback: This DIY Split-Flap Sign Will Get Anyone's Attention -

  4. Hi Erich, do you happen to have more details about the jig that you used with your CNC machine to cut the flaps? I’m looking to build my own display.

    Liked by 1 person

  5. Hi Erich, great article! Do you happen to have details about that CNC jig you used to cut the PVC cards? I’d love to do this myself.


  6. Thank you very much for sharing all of your working and thoughts. This saves me from trying aluminium for the flaps, amongst many other helpful aspects you included.

    You mention to get the 12v stepper and not the 5v. I was sure that every source I’ve seen had indicated the 5v. What is the reason for the 12v over the 5v?

    How do you know the controller can only manage 4 split flap modules?
    Asking this question from perspective of trying to use only pre-made electronic modules (as have no idea what I’m doing) and there is so much assumed knowledge on anything I can find.

    If you respond, please don’t spend time going into much detail, I’d be happy with simple pointers so I can keep solving the mysteries.

    CONTEXT: I’ve been working on trying to get existing split flaps to cooperate with an art project idea I’ve had for more than a decade. On and off over this period I’ve tried countless ways and things to retrofit existing operating splitflaps to meet the concept I’m trying to create. I’m super keen to see the idea come to life and surely there’s a solution, somehow. So in doing another round of research I’ve found Scott’s and then David’s work and now yours. While I really don’t understand more than the basics of the circuitry, and definitely not enough to do any free styling, I am very much looking forward to testing if this will help me achieve the vision I’ve had. Massive learning curve ahead for putting together the circuits, working out how to get parts made and make adjustments necessary for the sizes I’m hoping to make. Having only a basic knowledge of electronics I am incredibly appreciative of all of their and your work and openness is sharing it.


    • Hi Mac,
      >You mention to get the 12v stepper and not the 5v.
      The issue is that with 5V you need a lot more current, so thicker wires, and you have more voltage drop. Not an issue with 1 or 2 motors, but quickly is an issue with lots of motors.

      >How do you know the controller can only manage 4 split flap modules?
      That controller module presented in this article has only 4 connectors, so only 4 modules supported. But I do have an updated electronic which allows a higher number of split flap modules (currently up to 256).

      I hope this helps,


What do you think?

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.