Skip to the content
PCBKitNew board
2 layers30 × 60 mmSplitFlapDriverATtiny1616V4, the printed circuit board in 3D

SplitFlapDriverATtiny1616V4

adamgmakes/SplitFlapDisplay190

A modular, 3D-printed split-flap display controllable over RS485 from a Raspberry Pi. Each module holds 64 characters and modules can be chained together to build a display of any width.

Size
30 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
25
Nets
38
Pads
103
Tracks, vias
196, 22
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Nov 2025
Updated
28 May 2026

Overview

SplitFlapDriverATtiny1616V4 is an open-source printed circuit board by adamgmakes, from the adamgmakes/SplitFlapDisplay repository on GitHub. It is a 2-layer board of 30 × 60 mm with 25 parts on 38 nets, routed with 196 tracks and 22 vias.

It is built around the SN65HVD72DRBR, SPX3819M5-L-3-3 and SPX3819M5-L-5-0, with the ULN2003ADRG among its other parts. Its parts include 9 capacitors, 8 connectors, 5 ICs, 2 resistors and 1 diode. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

4

README

README.md

Split-Flap Display

A modular, 3D-printed split-flap display controllable over RS485 from a Raspberry Pi. Each module holds 64 characters and modules can be chained together to build a display of any width.

YouTube Build Video: https://www.youtube.com/watch?v=-C8_AtxEEQc


How It Works

Each module contains:

  • A 3D-printed drum that holds 64 individual flaps (one per character)
  • A stepper motor driving the drum through a gear train
  • A Hall effect sensor for homing
  • A custom driver PCB (ATtiny1616 + RS485 transceiver + ULN2003 stepper driver)

Modules communicate over a shared RS485 bus. A Raspberry Pi running a Python web interface sends commands over USB-RS485 to each module individually by address.


Repository Structure

text
cad/                       - 3D printable parts (Bambu Lab profiles included)
flaps-generator/           - OpenSCAD code to automatically generate (custom) flaps
pcb/
  driver-v2/               - Driver PCB KiCad project used in the video build
  driver-v3/               - Updated driver PCB KiCad project, slightly cheaper to manufacture
  bus-board/               - Bus board KiCad project
  bus-board-5-module/      - 5-module variant of the bus board
firmware/                  - Arduino firmware for the PCBs
frontend/                  - Raspberry Pi Python web frontend
docs/datasheets/           - Component datasheets
BOM.md                     - Bill of materials

OnShape Model: https://cad.onshape.com/documents/87c916b33ca5d6492b457485/w/b3e5f0f05f6619e6e7931347/e/582ef2164e20b0aa994708ab


Parts List

See BOM.md for the complete bill of materials, broken into three sections:

  • PCB / Electronics — all SMD components with JLCPCB part numbers for easy ordering
  • Module BOM — 3D printed parts and hardware per module, with quantities scaled to 45 modules
  • Other Components — system-level parts (Raspberry Pi, power supply, C14 connector, etc.)

Ordering the PCB from JLCPCB

The driver board is designed to be ordered from JLCPCB with their PCB Assembly (PCBA) service so the SMD components arrive pre-soldered.

Step 1 — Export Gerbers from KiCad

  1. Open the project in pcb/driver-v2/
  2. In KiCad PCB editor, go to File → Fabrication Outputs → Gerbers
  3. Export to a folder, then zip the contents
  4. Also export the drill file from the same menu

Alternatively, pre-exported Gerber and PCBA files are already be present in the KiCad project folder.

Step 2 — Upload to JLCPCB

  1. Go to jlcpcb.com and click Order Now
  2. Upload the Gerber zip file
  3. Set your desired quantity (minimum 5)
  4. Leave most settings at default; adjust PCB colour if desired

Step 3 — Enable PCB Assembly (PCBA)

  1. Toggle PCB Assembly on
  2. Select Standard PCBA and set the assembly side to Top Side
  3. Click Confirm

Step 4 — Upload BOM and CPL Files

  1. Upload the BOM file from the KiCad project folder — this maps component values to JLCPCB part numbers. The part numbers in BOM.md match what is in this file.
  2. Upload the CPL (Component Placement List) file — this tells JLCPCB where each component sits on the board
  3. Review the component matches on the next screen. All parts should auto-match using the C-numbers in BOM.md. Confirm any that need manual review.

Step 5 — Review and Order

  1. Check the parts list — confirm quantities and part numbers match the BOM.md PCB section
  2. Proceed through the review screens and place your order

Note: A few through-hole parts (pin headers, JST connectors) are not included in PCBA. These are listed in the BOM and will need to be soldered by hand.


3D Printing

All printable files are in the cad/ folder. A Bambu Lab print profile is included in cad/64FlapsWithLetters (parts and bambu print profile)/ for the flaps. Print the flaps in the correct colour for each character — see the video for details on the full 64-character set.

Parts per module:

  • Enclosure Body, Right Cover, Left Cover
  • Drum Body, Drum Cap
  • Motor Gear, Center Gear, Gear Plate
  • DIN Rail Mount, Wire Retainer
  • 64 Flaps

Creating your own flaps

If you want to generate your own flaps, with your own font, size and characters, you can use the OpenSCAD script to automatically generate this.


Firmware

Located in firmware/. The firmware is Arduino-based and targets the ATtiny1616.


Frontend

Located in frontend/. A Python web interface running on a Raspberry Pi sends display commands over USB-RS485 at 115200 baud.

Need a USB-serial dongle. I used this one: https://www.adafruit.com/product/5994


License

This project is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

You are free to share and adapt this project for non-commercial purposes, as long as you give appropriate credit to Adam G Makes and distribute any derivatives under the same license.

Parts

25
QtyValueFootprintReferences
4470nCapacitor_SMD:C_0603_1608MetricC2, C3, C6, C8
4Conn_01x01_PinConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ2, J6, J7, J8
310uCapacitor_SMD:C_0603_1608MetricC4, C5, C9
10RResistor_SMD:R_0805_2012MetricR1
1100nCapacitor_SMD:C_0603_1608MetricC7
1100uCapacitor_SMD:C_Elec_5x5.4C1
160RResistor_SMD:R_0603_1608MetricR2
1ATtiny1616-MNRPackage_DFN_QFN:VQFN-20-1EP_3x3mm_P0.4mm_EP1.7x1.7mmU1
1Conn_01x05_PinConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ5
1Hall EffectConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ4
1LEDLED_SMD:LED_0603_1608MetricD1
1SN65HVD72DRPackage_SO:SOIC-8_5.3x6.2mm_P1.27mmU3
1SPX3819M5-L-3-3Package_TO_SOT_SMD:SOT-23-5U5
1SPX3819M5-L-5-0Package_TO_SOT_SMD:SOT-23-5U6
1Stepper ConnectorConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ3
1ULN2003ADRPackage_SO:SOIC-16W_5.3x10.2mm_P1.27mmU2
1UPDI ProgrammingConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1

Questions

How big is the SplitFlapDriverATtiny1616V4 PCB?

It measures 30 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the SplitFlapDriverATtiny1616V4 use?

25 parts, built around the SN65HVD72DRBR, SPX3819M5-L-3-3, SPX3819M5-L-5-0 and ULN2003ADRG. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the SplitFlapDriverATtiny1616V4 KiCad files?

From the adamgmakes/SplitFlapDisplay repository on GitHub, at the commit this page was made from: the board is PCBs/driver-v4/SplitFlapDriverATtiny1616V4.kicad_pcb.kicad_pcb and its schematic PCBs/bus-board/SplitFlapBusBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SplitFlapDriverATtiny1616V4 design in my own project?

Its repository states no licence, so its author keeps all rights: ask adamgmakes before reusing the design.

Similar boards

  • 2 layers41.3 × 38.1 mmControl interface, the printed circuit board in 3D

    Control interface

    zleffke/kicad_rtl_cohere

    KiCAD projects for RTL-SDR coherency projects

    78 parts3MIT
  • 6 layers44 × 68 mmMouse, the printed circuit board in 3D

    Mouse

    aerogull/beat

    working on designing a custom mouse around the paw3395 sensor

    83 parts1GPL-3.0
  • 2 layers153 × 61.5 mmReader, the printed circuit board in 3D

    Reader

    Computer4062/RFID-keyChain

    My KiCAD files

    63 parts
  • 4 layers117 × 107 mmHUB MPE, the printed circuit board in 3D

    HUB MPE

    felixmanfredi/MPE_HUB

    257 parts
  • 8 layers136.9 × 155.9 mmRA8M1, the printed circuit board in 3D

    RA8M1

    pickplace-de/hexagon

    243 parts
  • 2 layers105 × 90 mmSolenoid board, the printed circuit board in 3D

    Solenoid board

    PinballWizards/LED_Matrix_PCB

    114 partsGPL-3.0
  • 2 layers78 × 67 mmSolenoid board, the printed circuit board in 3D

    Solenoid board

    PinballWizards/pcb_solenoid_board

    KiCAD PCB files for Solenoid Node Board

    44 partsGPL-3.0
  • 4 layers122 × 87 mmK64-io pcb, the printed circuit board in 3D

    K64-io pcb

    ratsept/k64-io-pcb

    181 parts