
Attiny1624-ring
TheBeachLab/alphabets
Open Source Mechanical Split Flap Display, AKA Solari display

Open Source Mechanical Split Flap Display, AKA Solari display
Attiny44-ring is an open-source printed circuit board by TheBeachLab, from the TheBeachLab/alphabets repository on GitHub, published under the MIT licence. It is a 2-layer board of 50 × 50 mm with 21 parts on 28 nets, routed with 145 tracks and 0 vias.
It is built around the ATTINY44A-SSU. Its parts include 3 connectors, 2 capacitors, 1 resistor and 1 IC. It belongs with the lEDs and displays boards and the AVR (ATmega, ATtiny) boards of this library.
This directory contains the editable KiCad 10 design for one Alphabets V2 split-flap module. The board keeps the existing 2x3 synchronous-ring connector, drives an external four-input stepper board, reads a powered HOME sensor, and uses the ATtiny1624's one-wire UPDI programming interface.
The hardware assignment follows Microchip's ATtiny1624/1626/1627 data sheet. Microchip documents PA0 as UPDI/RESET and PA1, PA2, and PA3 as SPI0 MOSI, MISO, and SCK respectively. The standard programming connection is the 2x3, 2.54 mm UPDI header described in Microchip's UPDI connection guide.
U1: ATtiny1624-SSU in SOIC-14.J1: 2x3 SMD ring connector for LATCH, CLOCK, serial data, +5 V, and GND.J3: four logic outputs for the external stepper driver.J4: powered three-pin HOME sensor connector with a 10 kOhm pull-up.J5: 2x3 SMD UPDI connector; pins 1, 2, and 6 carry UPDI, target VDD, and
GND. Pins 3 through 5 are intentionally not connected.R1: 10 kOhm UPDI pull-up; R2: 10 kOhm HOME pull-up.C1: 100 nF local MCU decoupling; C2: 1 nF high-frequency bypass;
C3: 10 uF board bulk capacitance.JP1 through JP4, JP6, and JP9: removable 0 Ohm 1206
links that partition power, ground, and ring signals for assembly and
diagnosis.The board defines this ATtiny1624 signal assignment:
| Function | MCU signal | Physical pin |
|---|---|---|
| VDD | VDD | 1 |
| LATCH | PA4 / SPI0 SS | 2 |
| HOME | PA5 | 3 |
| Motor 4 | PB3 | 6 |
| Motor 3 | PB2 | 7 |
| Motor 2 | PB1 | 8 |
| Motor 1 | PB0 | 9 |
| UPDI | PA0 / UPDI | 10 |
| DATA_IN | PA1 / SPI0 MOSI | 11 |
| DATA_OUT | PA2 / SPI0 MISO | 12 |
| CLOCK | PA3 / SPI0 SCK | 13 |
| GND | GND | 14 |
PA6 and PA7 remain available and are intentionally not connected in this
revision. The matching firmware and host-side protocol tests are in
ATtiny1624 module firmware.
| Connector | Pinout |
|---|---|
J1 CHAIN | 1 LATCH, 2 CLOCK, 3 DATA_IN, 4 +5V, 5 DATA_OUT, 6 GND |
J3 DRIVER | 1 MOTOR1, 2 MOTOR2, 3 MOTOR3, 4 MOTOR4 |
J4 HOME | 1 +5V, 2 HOME, 3 GND |
J5 UPDI | 1 UPDI, 2 target VDD, 3-5 NC, 6 GND |
The chain connector follows the module protocol: pins 1, 2, 4, and 6 are bused, while pin 5 of one module feeds pin 3 of the next module.
F.Cu; the design contains no vias or back-copper
tracks.Ten insulated wire links cross above the routed copper. Solder insulated wire
between the two pads of each footprint; the dashed F.Fab line marks its
assembly path and is not copper:
| Reference | Signal | Pad spacing |
|---|---|---|
JP5 | CLOCK | 22.3 mm |
JP7 | DATA_IN | 25.6 mm |
JP8 | DATA_OUT | 23.5 mm |
JP10 | UPDI | 16.6 mm |
JP11 | chain GND | 29.7 mm |
JP12 | motor phase 3 | 23.5 mm |
JP13 | MCU power source | 17.7 mm |
JP14 | motor phase 1 | 30.3 mm |
JP15 | motor phase 2 | 24.5 mm |
JP16 | main power distribution | 27.0 mm |
attiny1624-ring.kicad_pro, .kicad_sch, and .kicad_pcb: editable
native KiCad project files.fabrication/: Gerbers, drill outputs, BOM, positions, and STEP model.preview/: top render, front-copper drawing, and schematic drawing.validation/: ERC and DRC/schematic-parity reports.routing/attiny1624-ring.ses: checked-in single-layer routing session.tools/: deterministic generators, route import, organic post-processing,
and project-specific electrical/mechanical checks.The normal reproducible path starts from the checked-in route:
make schematic board route organic check fabrication previewsSet KICAD_CLI, KICAD_PYTHON, KIUTILS_PYTHON, and
KICAD10_FOOTPRINT_DIR for the installed KiCad environment. When placement or
the netlist changes, create a new session with:
make autoroute FREEROUTING_JAR=/path/to/freerouting.jarmake check enforces the 50 x 50 mm outline, front-copper-only routing, zero
vias, 16/20 mil widths, ten wire links, native arcs, teardrops, zero ERC/DRC
violations, zero unrouted connections, and exact schematic-to-PCB parity.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 0R CHAIN DATA_OUT jumper 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP8 |
| 1 | 0R CHAIN power bridge 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP19 |
| 1 | 0R CLOCK MCU bridge 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP16 |
| 1 | 0R CLOCK input jumper 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP5 |
| 1 | 0R DATA chain bridge 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP17 |
| 1 | 0R DATA input jumper 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP7 |
| 1 | 0R ISP RESET crossover 1206 | Alphabets:R_1206_3216Metric_CompactCrossover | JP24 |
| 1 | 0R ISP SCK crossover 1206 | Alphabets:R_1206_3216Metric_CompactCrossover | JP25 |
| 1 | 0R ISP VCC bridge 1206 | Alphabets:R_1206_3216Metric_CompactCrossover | JP20 |
| 1 | 0R LATCH crossover 1206 | Alphabets:R_1206_3216Metric_CompactCrossover | JP22 |
| 1 | 0R LATCH input jumper 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP6 |
| 1 | 0R MCU power bridge 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | JP18 |
| 1 | 0R POWER crossover 1 1206 | Alphabets:R_1206_3216Metric_CompactCrossover | JP21 |
| 1 | 0R POWER crossover 2 1206 | Alphabets:R_1206_3216Metric_CompactCrossover | JP23 |
| 1 | 100n MCU 1206 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1 |
| 1 | 10k RESET pull-up 1206 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R2 |
| 1 | 10u BULK 1206 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C2 |
| 1 | ATtiny44A-SS | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U1 |
| 1 | AVR_ISP_2X3 | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMD | J5 |
| 1 | CHAIN_RING | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMD | J1 |
| 1 | STEPPER_DRIVER_IN | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical_SMD_Pin1Left | J3 |

TheBeachLab/alphabets
Open Source Mechanical Split Flap Display, AKA Solari display

RaysceneNS/SV-650-GearPositionIndicator
This is a simple circuit that augments the second gen Suzuki SV650 to have a gear position indicator.

ServError/Thrustmaster_Warthog_Throttle_Alps_Slew_Mod
An open source replacement for the terrible TM Warthog Throttle slew stick


danlil666/documentation
This is the starting point of me trying to use GitHub.

gusmanb/logicanalyzer
24 channel, 100Msps logic analyzer hardware and software

mntmn/amiga2000-gfxcard
MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog


hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
It measures 50 × 50 mm and has 2 copper layers, 1.6 mm thick.
21 parts, built around the ATTINY44A-SSU. 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.
From the TheBeachLab/alphabets repository on GitHub, at the commit this page was made from: the board is V2/Hardware/Prototype/electronics/attiny44-ring/attiny44-ring.kicad_pcb and its schematic V2/Hardware/Final/electronics/attiny1624-ring/attiny1624-ring.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).