<< Back to Documentation Index
Building a split-flap display? I would love to hear from you and see photos/videos of your project in progress or completed! This project has been a hobby of mine for a few years and the coolest part by far is hearing from other people making their own and seeing them in action. Feel free to shoot me an email at scott@bezeklabs.com 🙂 or, join the Discord server to share and discuss with the wider split-flap community!
See the complete ordering guide (v0) or the easy guide (v0) for info on ordering parts
- 1 Controller PCB
- 4 Sensor PCBs
- 4 Magnets
- components for controller and sensor boards
- 4 laser-cut panels
- 2 letter sticker packs
- 4 motors
- 4 sensor cables
- ~165 flaps (160 are necessary)
- ~46 M4 bolts (44 are necessary)
- ~46 M4 nuts (44 are necessary)
- 12V 2A Power Supply
- Tools:
- Metric hex key
- Soldering supplies
- Calipers or metric ruler
- Hobby knife
- Plastic wrap and glass storage container (For applying letter stickers)
- [if hand-cutting flaps] Badge slot punch
https://www.youtube.com/watch?v=vQMnWK6PwJ0&
💡 New (not shown in video!): The laser cut files include a jig for spacing the hall effect sensor accurately without having to measure the 5.8mm gap. See photos of it below.
The latest PCB design also has holes that are spaced further apart for the sensor to make soldering them easier. You’ll need to bend the sensor’s pins outward to fit into the holes.
The rough steps are:
- solder 90-degree pin headers from the top side (0:21)
- bend leads on hall effect sensor 90 degrees (2:00)
- insert hall effect sensor from the back side of the PCB (opposite the pin headers) (2:45)
- adjust hall effect sensor so there's a ~5.8mm gap between the back of the sensor and the PCB (3:00)
- solder the hall effect sensor in place (3:30)
- clip off excess pin length (4:24)
Sensor spacing jig cut from white acrylic
If your laser cut parts came in a full sheet as-cut (e.g. Ponoko does this, but not Elecrow), you’ll find the jig inside the motor cutout, highlighted in red above
Note: if using acrylic rather than MDF/wood, do not force parts together if they don’t quite fit. Acrylic is extremely brittle and will crack. Use a small file if necessary to remove any excess material. While the design attempts to achieve a tight fit, different laser-cutters may remove more or less material, so undersized holes/slots can occur.
https://www.youtube.com/watch?v=zHM8W6Rm2i4&
The rough steps are:
- separate laser-cut parts (0:12)
- remove protective film (0:34)
- Spool:
- pass motor through side hole and secure with 2 bolts (5:05)
- mount hall effect sensor module and secure with a bolt (6:02)
- press spool onto motor shaft (7:15)
- press fit bottom piece into left piece, with laser-engraved lettering facing up and circular hole toward the back (7:50)
- press fit top piece into left piece, with circular hole toward the back (8:14)
- press right piece into top/bottom pieces and aligned with spool axle (8:34)
- press front piece into top/bottom pieces, with thicker side on the left (9:05)
- secure enclosure pieces using captive nuts+bolts (9:27)
- attach flap backstop bolt/nut (10:26)
- to connect to another module, remove front face, insert inter-module connectors, and replace front face (10:55)
https://www.youtube.com/watch?v=3lFECISLwyI&
By default, the splitflap code assumes the flaps appear in a particular order, so it’s easiest to apply the stickers as follows:
(space), A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (period), (comma), (apostrophe)
Note: for a display that will commonly count down, it may make sense to reverse the order of the numbers so that counting down doesn't require a full revolution each time.
You will need to make a few simple changes to the control software to tell it what order the letters appear if you use something other than the default.
Do not insert the flaps into the spool until step 6 (just keep them in order).
See the Electronics Guide for complete instructions on assembling and using the electronics.
Rough steps:
-
Setup
- Download and install Microsoft Visual Studio Code
- Follow these steps to set up Platform IO and the splitflap code (watch screencast):
- Install the Platform IO extension
- Choose “Clone Respository” in the Explorer sidebar and enter the git repo URL:
https://github.com/scottbez1/splitflap.git- Note: downloading the source as a zip from github is NOT recommended, as it will make it harder to get help if any issues arise (git will keep track of which precise version of the code you checked out, along with any changes you make, which helps a lot when debugging)
- Open the repository. You may need to choose to “Trust” the folder to allow the Platform IO extension to run.
- Install the splitflap firmware on the device and open a serial monitor
- Open the Platform IO sidebar and run the
chainlink→Upload and Monitortask
- Open the Platform IO sidebar and run the
-
Confirm that you see the startup message that looks like this: {"type":"init", "num_modules":12, "character_list":" abcdefghijklmnopqrstuvwxyz0123456789.,'"}
-
Plug in all motors and sensors
-
Plug in 12V motor power
-
Restart the microcontroller
- Spools should rotate slowly until the home position is reached, then complete one revolution at full speed
- Make sure spools are rotating the right direction
- Confirm that all 4 RGB LEDs are green before moving on
-
Open Serial Monitor - we’ll do some testing to make sure the motors are configured correctly
- Send
= \n(equal space space space space newline) - Check that all motors complete a full revolution and stop
- Repeat this process 10 more times and make sure that none of the modules have to recalibrate (rotate slowly as in the startup procedure) during this test
- Confirm that the reported
"count_missed_home":0, "count_unexpected_home":0values are both zero for all 4 modules
- Send
-
Send
@in Serial Monitor to force all modules to recalibrate, and= \nto tell all the modules to go to the home position -
Install flaps
- Start by taking the top and bottom halves of the empty (space) character. Insert the top half into the holes marked with a “-” on the spool. Insert the bottom half into the spool holes below it.
- Rotate the spool forward a few characters (e.g. by sending
=e\nor by gently rotating the spool by hand) and insert the next few flaps. Repeat this until all 40 flaps are installed.
-
Calibration
- Use the Serial Monitor to send characters to the modules
- If the module consistently doesn’t turn quite far enough or turns a little too far for some letters, then the home position sensor may need to be adjusted:
- Loosen the hall-effect sensor bolt
- If the module wasn’t turning far enough, slide the sensor toward the rear of the module
- If the module was turning a little too far, slide the sensor toward the front of the module
- Re-tighten the hall-effect sensor bolt
- Send a
@to recalibrate - Check if the calibration is better now
https://www.youtube.com/watch?v=VmKuWdmhPtM&&feature=youtu.be
Components with polarity have been labeled with a
Recommended assembly order:
- 4 WS2812b RGB LEDs - U5, U6, U7, U8 - center near A B C D labels
⚠️ Make sure to get polarity correct - LED notch aligns with right-angle silkscreen line - top left corner (on some PCBs, this marker may be missing or hard to see; just make sure the notch is pointing toward the top left corner)
- Arduino pin headers (BOTTOM SIDE):
- 3 pin straight male header - “Arduino D4 D5 D6” label on bottom
- 2x3 Female header - ISP label on bottom
- 2 pin straight male header - VIN label on bottom
- 470 resistor (Yellow Purple Brown) - R9 (center top side, between the two MIC5842 spots)
- Top left corner:
- 2 pin straight male header - JP1
- Yellow LED - D1 (Mot+) -
⚠️ make sure to get polarity correct - match flat side to silkscreen - Green LED - D2 (5V)-
⚠️ make sure to get polarity correct - match flat side to silkscreen - 2.2k resistor (Red Red Red) - R1
- 220 resistor (Red Red Brown) - R7
- Capacitors:
- 100uF electrolytic capacitor - C1 -
⚠️ make sure to get polarity correct - 100uF electrolytic capacitor - C3 -
⚠️ make sure to get polarity correct - 0.1uF capacitor - C2 (to the left of “A” LED)
- 100uF electrolytic capacitor - C1 -
- Barrel Jack Connector - top right “5-12V” label
- Sensor connectors (place all of these at once with a sensor cable plugged in across all 3 to ensure proper alignment when soldering)
- 4 pin straight male header - “GND” label
- 4 pin straight male header - “5V” label
- 4 pin straight male header - “A” and “D” labels
- 47k resistors (Yellow Purple Orange) - R3 R4 R5 R6 R10
- Motor connectors - P1 P2 P3 P4 -
⚠️ make sure to get polarity correct (match silkscreen) - ICs - make absolutely sure to get the polarity correct!!!!
- MIC5842 - U2 -
⚠️ make sure to get polarity correct (match silkscreen - notch facing left) - MIC5842 - U4 -
⚠️ make sure to get polarity correct (match silkscreen - notch facing left) - 74HC165 - U3 -
⚠️ make sure to get polarity correct (notch facing bottom - see right-angle silkscreen line near pin 1)
- MIC5842 - U2 -
You should have the following parts left over:
- Jumper connector - this is an optional component that is generally not needed; you should leave it off unless you're certain you need it. Never connect the Arduino's USB cable to anything if jumper JP1 is in place! The JP1 to power the Arduino from the driver board’s motor power supply, allowing the Arduino to run without a computer connection. - while the Arduino theoretically protects against 12V back-flowing to the USB connector via the VIN pin, you risk damaging your computer if that protection fails (or is not implemented for some reason on a cheap knock-off Arduino clone).

