Stawamus · Joerg's 3x3 on the production boards

Tile-20 3x3 kit

The 3x3 test runs on the boards the decks will use, instead of nine eval boards on perfboard: one Tile-20, nine encoder boards, one backplane segment, a row head and an END plug. Order them assembled at JLCPCB, buy the cables and the few hand-soldered parts at Digi-Key, plug the module onto the bench dock, wire it, and bring it up step by step. Every board's files are at the end for review. Deck plan: electronics plan ↗ · Order 1 bench: bench guide ↗ · parts list ↗

Encoder, backplane, row head: files ready · DRC 0 / 0 / 0Tile-20: files ready Firmware: the Cube image runs on the NUCLEO (SPI, TMC5240, 120 mm stroke); the Tile-20 image builds, first run on the first board
VM 28.5 V. The Tile-20's brake switches on at 29.9–32.0 V (worst case) and puts its 4.7 Ω resistor across the supply: about 200 W into a 5 W part. The firmware switches the brake off if it runs too long, but set the supply to 28.5 V and leave it. Order 2's 30 V setting is for the eval boards only. Row supply (pilot): Mean Well RSP-1600-27 on 208/240 VAC, pot at 28.5 V and sealed. Its CN1 plug needs the two local-sense loops (pins 13-15, 14-16) and SW1 ON; pins 3 / 4 go to row head J6 (INTERFACE.md, "Row motor supply"). Cold swap: both supplies off before docking or lifting the Tile-20, and before plugging a motor.

The kit

Order 2 plan (eval boards)This kit
NUCLEO-G474RE + 9 TMC5240-BOB on perfboard and ribbons1 Tile-20, 3x3 build (STM32G474, 9 × TMC5240 fitted)
9 TBMA732 encoder boards, soldered leads9 AS5047P encoder boards with plug-in GH cables
Star point, row fuses, WAGO rails, 2 × 2200 µF, 33 V shuntBackplane on two bus bars; on the Tile-20: 15 A fuse, TVS, 2.2 mF, brake chopper
E-stop relay cutting the 30 V lineOn the bench: a wire bridge into the row head's ENABLE and the supply's output switch as the stop; an E-stop goes into the same ENABLE input later
Boards on standoffsPlug-in: the module (Joerg's tile + Tile-20 on a foot plate) lifts off and drops onto the spring pins, guided by printed posts
USB serial through the NUCLEO's ST-LINKUSB-serial on the Tile-20's J3 (same pins, peripheral and protocol); CAN FD through the row head with any CAN FD adapter (later)

1 · Order the boards at JLCPCB

Per board: upload its Gerber zip, enter the settings below, choose PCB assembly, then upload the BOM and CPL from the bundle's jlc/ folder (parts swapped to JLC basic parts where possible; README.md in each bundle says the same). Untick what JLC cannot place and solder it yourself (step 6): the backplane's 20 spring pins, and F1 and R7 on the Tile-20. All four boards came to about $773 with assembly and shipping (quote, 17 Oct 2026). PCBWay works too: same Gerbers, the BOM and centroid from pcbway/, turnkey.

Changed 2026-10-20. Row head: U2 is now a PhotoMOS relay (Panasonic AQY212GS, LCSC C415471) instead of the TLP293. Upload the row head's Gerbers and HEAD / END BOM and CPL again. In JLC's placement preview, U2's pin-1 dot sits top left. Tile-20: new BOM: U1 is now TLV3011BQDBVRQ1 (LCSC C20345922; JLC ran out of the TLV3011BIDBVR). Same chip in its automotive grade, same footprint and position: the Gerbers and CPL are unchanged, upload the new tile20_3x3_JLC_BOM.csv. Encoder and backplane: unchanged.

Tile-20

files ready · DRC 0 / 0 / 0

The driver board: 20 column channels, MCU, CAN, power entry, brake. The 3x3 build fits channels A1–A3, B1–B3, C1–C3 only.

PCBs
5
Assembled
1 (2 for a spare)
Layers6 · 1.6 mm · 192 × 240 mm
FinishENIG (the bottom pads are contacts)
Copper1 oz outer, 1 oz inner (0.5 oz acceptable)
Min track / hole0.15 / 0.15 mm · 0.3 mm
SidesTop only; bottom has no parts
Assembly65 unique parts · 1045 SMD pads, 127 THT pins · parts ≈ $82 per board (est.)

Encoder board

files ready · DRC 0 / 0 / 0

AS5047P magnetic encoder, one per motor, under the magnet: 1,000 pulses per turn out of the box.

PCBs
20 (in a panel)
Assembled
12 (9 + 3 spares)
Layers2 · 1.6 mm · 24 × 24 mm
FinishENIG or HASL lead-free
Copper1 oz
Min track / hole0.15 / 0.15 mm · 0.3 mm
SidesTop only; ask for a 5 × 5 panel
Assembly7 unique parts · 39 SMD pads, 0 THT pins · parts ≈ $4 per board (est.)

Backplane segment

files ready · DRC 0 / 0 / 0

Spring pins for two modules, bolted on the bus bars; carries CAN, 24 V, ENABLE, slot ID. Order the SLOT1 build (backplane_SLOT1_* BOM and centroid): only slot 1's 20 pins; slot 2 stays empty (JP2 closed).

PCBs
5
Assembled
1, both sides (2 for a spare)
Layers4 · 1.6 mm · 384 × 34 mm
FinishENIG
Copper1 oz outer (2 oz better)
Min track / hole0.15 / 0.15 mm · 0.3 mm
SidesBoth: spring pins on top, 2 × GH 14 underneath
Assembly5 unique parts · 42 SMD pads, 14 THT pins · parts ≈ $23 per board (est.)

Row head + END plug

files ready · DRC 0 / 0 / 0

HEAD: CAN in, 24 V in, ENABLE gating, presence loop. END: termination and loop return (7 parts).

PCBs
5
Assembled
1 HEAD + 1 END
Layers2 · 1.6 mm · 90 × 64 mm
FinishHASL lead-free
Copper1 oz
Min track / hole0.15 / 0.15 mm · 0.3 mm
SidesTop only
Assembly24 unique parts · 88 SMD pads, 19 THT pins · parts ≈ $7 per board (est.)
END build5 unique parts · 29 SMD pads · ≈ $1

Row head: one PCB, two builds. JLC takes one BOM per order: order the same Gerbers twice, once with the HEAD BOM and CPL, once with the END ones.

2 · Buy the rest

Only what the 3x3 needs, with a few spares: cables, the parts JLC cannot place, the 24 V adapter and the ST-LINK. Checked 2026-10-16. Upload the list to Digi-Key's BOM manager in one go. No CAN adapter and no E-stop for now: the serial port runs the same link, and the ENABLE wire bridge plus the supply's output switch are the stop.

Already filled your Digi-Key cart? One line changed on 2026-10-20: the short spring pins are now ED1397-ND (Mill-Max 0914-1), not ED1398-ND. Swap that line; everything else in the bench list is unchanged. The row supply below is new and only for the pilot row.
ItemPart · Digi-Key no.QtyUSDLineWhy
Cables and connectors
Motor plug housing, XH 4-wayJST XHP-4
455-2267-ND
110.101.109 + 2 spares. Mates the Tile-20's motor header.
XH crimp contact, 22-28 AWG (strip of 100)JST SXH-001T-P0.6
455-1135-100-ND
1000.044.50Crimped straight onto the motor wires (Joerg): 36 + spares. Sold as a strip of 100.
Encoder and harness leads, GH, pre-crimped both ends, 12 in, 28 AWGJST AGHGH28K305
455-3074-ND
800.5241.605 per encoder cable (45) + 14 per row harness (28) + spares. Push into the housings: no crimp tool.
Encoder plug housing, GH 5-wayJST GHR-05V-S
455-1595-ND
200.153.002 per encoder cable.
Row harness housing, GH 14-wayJST GHR-14V-S
455-1604-ND
50.180.902 per harness: row head - backplane, backplane - END.
Power
Fuse 15 A, MINI bladeLittelfuse 0997015.WXN
F1875-ND
21.042.08The Tile-20's F1 (no motor power without it). Any car MINI blade fuse, 15 A, does the same: skip this line if you buy one locally.
24 V adapter, 1.5 AMean Well GST36B24-P1J
1866-2127-ND
115.2015.20Logic supply. Cut the plug off and land the two wires in the row head's 24 V terminal (centre conductor = +, check). Needs a C7 (figure-8) mains cord: any you have.
Ring lug, 16-14 AWG, #8 (M4)Panduit PV14-8R-M
298-10305-ND
40.431.72Supply wires onto the bench bus bars.
Wire 1.5 mm², red, per ftCNC Tech 1569-16-1-0500-004-1-TS
1175-1569-16-1-0500-004-1-TS-DS-ND
70.886.15Supply + to the VM bar.
Wire 1.5 mm², black, per ftCNC Tech 1569-16-1-0500-001-1-TS
1175-1569-16-1-0500-001-1-TS-DS-ND
70.886.15Supply - to the GND bar. The row head's ENABLE and RUN bridges: two short offcuts of this wire.
Encoders
Magnet, diametric 6 x 2.5 mm, N35SHRadial Magnets 9049
469-1075-ND
120.657.81On each motor's rear shaft (printed holder, as on the jig).
Solder by hand (JLC has none in stock)
Spring pin, SMT, 9.63 mm (backplane P101-P106)Mill-Max 0919-0-15-20-89-14-11-0
ED10766-ND
81.108.806 + 2 spares. Not in JLC's library. PCBWay turnkey buys all pins itself.
Spring pin, through-hole, 9.63 mm (P107, P110, P114)Mill-Max 7939-1-15-20-89-14-11-0
54-7939-1-15-20-89-14-11-0-ND
41.275.083 + 1 spare. The ground pins: longest, they touch first.
Changed Spring pin, through-hole, 8.43 mm (the other 11)Mill-Max 0914-1-15-20-77-14-11-0
ED1397-ND
131.0313.39Changed 2026-10-20: was ED1398-ND (0914-2, 8.48 mm). Remove ED1398-ND from the cart, add ED1397-ND. 11 + 2 spares. CAN, 24 V, ENABLE, slot ID, presence loop.
Fuse holder, MINI blade (Tile-20 F1)Keystone 3568
36-3568-ND
20.751.50One per Tile-20 built at JLC.
Brake resistor 4.7 ohm 5 W (Tile-20 R7)YAGEO SQP500JB-4R7
4.7W-5-ND
20.310.62One per Tile-20 built at JLC.
Programming
ST-LINK probeSTMicroelectronics STLINK-V3MINIE
497-STLINK-V3MINIE-ND
125.5125.51Flashes the Tile-20 over SWD, with the Tag-Connect cable (below). Free alternative: the NUCLEO's own ST-LINK and 5 thin wires soldered to the TC2030 pads.
Total145.10USD, qty-1 prices; × 9.5623 + 25 % VAT ≈ NOK 1,734

Row supply for the pilot (not for the bench)

The bench runs on the lab supply. The customer's row runs on one Mean Well RSP-1600-27, wired as in step 5. A separate upload, so it does not mix into the bench order.

ItemPart · Digi-Key no.QtyUSDLineWhy
Row supply
New 2026-10-20 Row motor supply 27 V 1593 W (set to 28.5 V)Mean Well RSP-1600-27
1866-4237-ND
1465.50465.50One per row. Replaces the RSP-1500-27: its 31 V over-voltage trip did not fit the brake. Run it on 208/240 VAC.
New 2026-10-20 CN1 plug housing, 2 x 8, 2 mmHirose DF11-16DS-2C
H2025-ND
20.360.721 per supply + 1 spare. Plugs into the supply's CN1 (Mean Well spec p.7).
New 2026-10-20 CN1 crimp contact, AWG 24-28Hirose DF11-2428SC
H1504-ND
100.191.906 per plug (two loops + two wires to the row head) + spares. Crimp tool for DF11, or have them crimped.
Total468.12USD, qty-1 prices; × 9.5623 + 25 % VAT ≈ NOK 5,595

Not at Digi-Key (have, borrow or make)

ItemWhereWhy
USB-serial cable, 3.3 V logic (e.g. FTDI TTL-232R-3V3)any you haveTile-20 J3 debug port, 921 600 baud: three jumper wires (GND, TXD → J3 RX, RXD → J3 TX). Leave its VCC wire unconnected.
Crimp tool for JST XH contacts (e.g. IWISS SN-28B, ~$25)only if Joerg has noneCrimps the XH contacts onto the motor wires.
Tag-Connect TC2030-CTX-NL-STDC14tag-connect.com (~$40)SWD cable from the STLINK-V3MINIE to the Tile-20's TC2030 pads (no-legs type: hold or clip it).
Bench supply set to 28.5 V, ≥ 8 A, current limitborrow (lab)Motor supply VM, 28.5 V. Never above 29 V: see the warning at the top.
Mechanics: dock, bus bars, foot plate, posts, encoder mounts, magnet holders, screwsJoerg (his repo)Mastered in Joerg-ffs/stawamus: prototype/cad_b123d/BUILD_TILE20_A.md, cut files in prototype/cut, prints in prototype/stl.

The parts on the boards

JLC buys these with the assembly. Here for review only: nothing to order.

Tile-20, 3x3 build
QtyPartDigi-Key no.Digi-Key stock (2026-10-15)Other sourceWhere
11VZH101M1JTR-1010
Panasonic · 100u 63V
PCE3819CT-ND335 in stockLCSC C249836
Lelon VZH101M1JTR-1010
C1 C1020 C1120 C120 C2 C220 C320 C520 C620 C720 C920
9CL10B225KP8NNNC
Samsung · 2.2u
1276-1134-1-NDonly 7LCSC C100082
Murata GRM188R71A225KE15D
C1001 C101 C1101 C201 C301 C501 C601 C701 C901
28CL10B104KB8NNNC
Samsung · 100n
1276-1000-1-ND0 at Digi-KeyLCSC C1591
Yageo CC0603KRX7R9BB104
C1002 C102 C1102 C202 C26 C27 C302 C41 C42 C43 C44 C46 C5 C50 C502 …
22CL10B105KA8NNNC
Samsung · 1u
1276-1184-1-ND0 at Digi-KeyLCSC C29936
Yageo CC0603KRX7R8BB105
C1003 C1023 C103 C1103 C1123 C123 C203 C223 C303 C323 C36 C47 C49 …
9CC0603KRX7R0BB223
Samsung · 22n
1276-CL10B223KC8WPNCCT-ND3,750 in stockLCSC C313105
Yageo CC0603KRX7R0BB223
C1004 C104 C1104 C204 C304 C504 C604 C704 C904
19CL10B104KC8NNNC
Samsung · 100n
1276-6807-1-ND0 at Digi-KeyLCSC C15725
Yageo CC0603KRX7R0BB104
C1005 C1006 C105 C106 C1105 C1106 C205 C206 C305 C306 C4 C505 C506 …
21CC0805KKX7R0BB105
Samsung · 1u
13-CC0805KKX7R0BB105CT-ND43,000 in stockLCSC C5370002
Yageo CC0805KKX7R0BB105
C1021 C1022 C1121 C1122 C121 C122 C21 C221 C222 C3 C321 C322 C35 C …
1CL10B223KB8NNNC
Samsung · 22n
1276-1104-1-ND341,588 in stockLCSC C21122
Yageo CC0603KRX7R9BB223
C22
1CL31B106KBHNNNE
Samsung · 10u
1276-6767-1-ND0 at Digi-KeyLCSC C89632
TDK C3216X7R1H106K160AC
C23
2CL31B475KBHNNNE
Samsung · 4.7u
1276-2789-1-ND9,568 in stockLCSC C51205
Yageo CC1206KKX7R9BB475
C24 C25
3CL21A226MAQNNNE
Samsung Electro-Mechanics · 22u
–not at Digi-KeyLCSC C45783
C28 C29 C31
2CL10A106MA8NRNC
Samsung Electro-Mechanics · 10u
–not at Digi-KeyLCSC C96446
C30 C32
2CL21A106KAYNNNE
Samsung · 10u
1276-2891-1-NDonly 2LCSC C15850
Murata GRM21BR61E106KA73L
C33 C93
1CL10A475KO8NNNC
Samsung · 4.7u
1276-1900-1-ND341,672 in stockLCSC C69335
Murata GRM188R61E475KE11D
C45
2CL10B103KB8NNNC
Samsung · 10n
1276-1009-1-ND383,151 in stockLCSC C1589
Yageo CC0603KRX7R9BB103
C48 C9
20603CG3R0C500NT
FH (Guangdong Fenghua) · 3p
DK: not stocked0 at Digi-KeyLCSC C46219
C52 C53
1CL10C101JB8NNNC
Samsung · 100p
1276-1008-1-ND659,120 in stockLCSC C14858
Yageo CC0603JRNPO9BN101
C6
1SMBJ30A
Littelfuse · SMBJ30A
–not at Digi-KeyLCSC C83851
D1
1ES2DA-13-F
onsemi · ES2DA
ES2DA-FDICT-ND102,066 in stockLCSC C154882
LGE ES2D (SMA)
D2
1LTST-C191KGKT
Lite-On · green
160-1446-1-ND2,818,153 in stockLCSC C125098
NationStar NCD0603G1
D3
1LTST-C191KRKT
Lite-On · red
160-1447-1-ND1,451,175 in stockLCSC C125099
NationStar NCD0603R1
D4
1ESD2CAN24DBZRQ1
Texas Instruments · ESD2CAN24DBZRQ1
296-ESD2CAN24DBZRQ1CT-ND197,609 in stockLCSC C5736151
onsemi NUP2105LT1G
D5
13568
Keystone · 15A MINI 0997015.WXN
36-3568-ND107,387 in stockLCSC C5249699
Littelfuse 01530008Z
F1
1BLM18KG601SN1D
Murata · 600R@100MHz
490-5258-1-ND373,641 in stockLCSC C85833
TDK MPZ1608S601ATA00
FB1
9B4B-XH-A(LF)(SN)
JST · B4B-XH-A
455-B4B-XH-A-ND82,615 in stockLCSC C144395
HCTL XH-4A
J1001 J101 J1101 J201 J301 J501 J601 J701 J901
9BM05B-GHS-TBT(LF)(SN)(N)
JST · BM05B-GHS-TBT
455-BM05B-GHS-TBTCT-ND67,743 in stockLCSC C189891
Hong Cheng HCZZ0494-5
J1002 J102 J1102 J202 J302 J502 J602 J702 J902
1PRPC004SAAN-RC
Sullins Connector Solutions · UART
35-PRPC004SAAN-RC-ND12,936 in stockLCSC C2691448
XFCN PZ254V-11-04P
J3
1SRN6045TA-100M
Bourns · 10uH
SRN6045TA-100MCT-ND3,238 in stockLCSC C2046332
Sunlord SWPA6045S100MT
L21
2DFE252012F-2R2M=P2
Murata · 2.2uH
–not at Digi-KeyLCSC C576403
L22 L23
1CSD19532Q5B
Texas Instruments · CSD19532Q5B
296-37478-1-ND7,172 in stockLCSC C473333
Infineon BSC040N10NS5ATMA1
Q1
1RT0603BRD07232KL
YAGEO · 232k
YAG4506CT-ND15,127 in stockLCSC C861240
Viking Tech ARG03BTC2323
R1
1RC0603FR-07200KL
YAGEO · 200k
311-200KHRCT-ND0 at Digi-KeyLCSC C105574
UniOhm 0603WAF2003T5E
R10
9RC0603FR-0712KL
YAGEO · 12k
311-12.0KHRCT-ND473,310 in stockLCSC C114659
UniOhm 0603WAF1202T5E
R1001 R101 R1101 R201 R301 R501 R601 R701 R901
29RC0603FR-07100RL
YAGEO · 100R
311-100HRCT-ND0 at Digi-KeyLCSC C105588
UniOhm 0603WAF1000T5E
R1021 R1022 R1023 R1121 R1122 R1123 R121 R122 R123 R221 R222 R223 …
15RC0603FR-0710KL
YAGEO · 10k
311-10.0KHRCT-ND0 at Digi-KeyLCSC C98220
UniOhm 0603WAF1002T5E
R11 R4 R41 R46 R47 R50 R51 R54 R55 R6 R60 R61 R62 R65 R66
2RC0603FR-074K7L
YAGEO · 4.7k
311-4.70KHRCT-ND4,127,688 in stockLCSC C99782
UniOhm 0603WAF4701T5E
R12 R8
1RT0603BRD079K76L
YAGEO · 9.76k
–not at Digi-KeyLCSC C861616
R2
1RC0603FR-07715KL
YAGEO · 715k
311-715KHRCT-ND86,827 in stockLCSC C137685
UniOhm 0603WAF7153T5E
R21
2RC0603FR-0720KL
YAGEO · 20k
311-20.0KHRCT-ND751,773 in stockLCSC C105575
UniOhm 0603WAF2002T5E
R22 R9
1RC0603FR-0732K4L
YAGEO · 32.4k
–not at Digi-KeyLCSC C13187
UniOhm 0603WAF3242T5E
R23
1RC0603FR-0724KL
YAGEO · 24k
311-24.0KHRCT-ND119,145 in stockLCSC C137760
UniOhm 0603WAF2402T5E
R25
1RC0603FR-0733K2L
YAGEO · 33.2k
311-33.2KHRCT-ND151,230 in stockLCSC C185338
UniOhm 0603WAF3322T5E
R26
4RC0603FR-07100KL
YAGEO · 100k
311-100KHRCT-ND0 at Digi-KeyLCSC C14675
UniOhm 0603WAF1003T5E
R27 R30 R32 R64
1RC0603FR-0713K7L
YAGEO · 13.7k
311-13.7KHRCT-ND81,987 in stockLCSC C482771
UniOhm 0603WAF1372T5E
R28
2RC0603FR-07453KL
YAGEO · 453k
311-453KHRCT-ND36,496 in stockLCSC C273765
UniOhm 0603WAF4533T5E
R29 R31
1RC0603FR-072M4L
YAGEO · 2.4M
13-RC0603FR-072M4LCT-ND17,320 in stockLCSC C141686
UniOhm 0603WAF2404T5E
R3
3RC0603FR-071KL
YAGEO · 1k
311-1.00KHRCT-ND2,647,767 in stockLCSC C22548
UniOhm 0603WAF1001T5E
R42 R43 R63
7RC0603FR-0733RL
YAGEO · 33R
13-RC0603FR-0733RLCT-ND147,074 in stockLCSC C108661
UniOhm 0603WAF330JT5E
R44 R45 R48 R49 R52 R53 R58
1RC0603FR-074R7L
YAGEO · 4.7R
YAG3371CT-ND110,879 in stockLCSC C137705
UniOhm 0603WAF470KT5E
R5
2RC0603FR-0747KL
YAGEO · 47k
311-47.0KHRCT-ND1,373,035 in stockLCSC C105579
UniOhm 0603WAF4702T5E
R56 R57
1RC0603FR-0768KL
YAGEO · 68k
311-68.0KHRCT-ND497,598 in stockLCSC C114633
UniOhm 0603WAF6802T5E
R59
1SQP500JB-4R7
YAGEO · 4.7R 5W
4.7W-5-ND1,753 in stockLCSC C1364740
Vishay AC05000004708JAC00
R7
5YC164-JR-0710KL
YAGEO · 4x10k
YC164J-10KCT-ND81,528 in stockLCSC C107374
UniOhm 4D03WGJ0103T5E
RN1 RN2 RN3 RN4 RN5
1NCU18XH103F6SRB
Murata · NTC 10k B3380
490-18139-1-ND73,489 in stockLCSC C13564
Sunlord SDNT1608X103F3380FTF
TH1
1TLV3011BQDBVRQ1
Texas Instruments · TLV3011BQDBVRQ1
–not at Digi-KeyLCSC C20345922
Texas Instruments TLV3011BIDBVR
U1
1TCAN1044AVDRQ1
Texas Instruments · TCAN1044AVDRQ1
296-TCAN1044AVDRQ1CT-ND0 at Digi-KeyLCSC C3234993
NXP TJA1051T/3/1J
U10
9TMC5240ATJ+T
Analog Devices · TMC5240ATJ+T
505-TMC5240ATJ+-ND2,846 in stockLCSC C7494373
none (single source)
U1001 U101 U1101 U201 U301 U501 U601 U701 U901
1UCC27517DBVR
Texas Instruments · UCC27517DBVR
296-39527-1-ND3 in stockLCSC C99395
JSMSEMI UCC27517DBVR-JSM
U2
1TPS26600PWPR
Texas Instruments · TPS26600PWPR
296-47292-1-ND0 at Digi-KeyLCSC C544399
none (single source)
U3
1LMR51420XDDCR
Texas Instruments · LMR51420XDDCR
296-LMR51420XDDCRCT-ND6,210 in stockLCSC C5246146
none (single source)
U4
2TLV62569DBVR
Texas Instruments · TLV62569DBVR
296-47360-1-ND241,378 in stockLCSC C141836
TECH PUBLIC TLV62569DBVR-TP
U5 U6
1TLV76012DBZR
Texas Instruments · TLV76012DBZR
296-48331-1-ND22,512 in stockLCSC C2872732
none (single source)
U7
1STM32G474RET6
STMicroelectronics · STM32G474RET6
–not at Digi-KeyLCSC C521608
STMicroelectronics STM32G474RET3
U8
1SN74LVC1G132DBVR
Texas Instruments · SN74LVC1G132DBVR
–not at Digi-KeyLCSC C403723
U9
1NX2016SA-24MHZ-EXS00A-CS10820
NDK · 24MHz
644-CS10820-24MCT-ND38,048 in stockLCSC C6943225
YXC X201624MKB4SI
Y1
Encoder board
QtyPartDigi-Key no.Digi-Key stock (2026-10-15)Other sourceWhere
1CL10B104KB8NNNC
Samsung · 100n
1276-1000-1-ND0 at Digi-KeyLCSC C1591
Yageo CC0603KRX7R9BB104
C1
1CL10B105KA8NNNC
Samsung · 1u
1276-1184-1-ND0 at Digi-KeyLCSC C29936
Yageo CC0603KRX7R8BB105
C2
1PESD5V0S1BA,115
Nexperia · PESD5V0S1BA
1727-PESD5V0S1BA,115CT-ND0 at Digi-KeyLCSC C19224
TECH PUBLIC PESD5V0S1BA
D1
1SM05B-GHS-TB(LF)(SN)
JST · SM05B-GHS-TB
455-SM05B-GHS-TBCT-ND19,698 in stockLCSC C189896
CJT A1257WR-S-5P
J1
3RC0603FR-0710KL
YAGEO · 10k
311-10.0KHRCT-ND0 at Digi-KeyLCSC C98220
UniOhm 0603WAF1002T5E
R1 R2 R3
3RC0603FR-0733RL
YAGEO · 33R
13-RC0603FR-0733RLCT-ND147,074 in stockLCSC C108661
UniOhm 0603WAF330JT5E
R4 R5 R6
1AS5047P-ATSM
ams OSRAM · AS5047P-ATSM
–not at Digi-KeyLCSC C962063
ams OSRAM AS5047P-ATST
U1
Backplane segment, SLOT1 build
QtyPartDigi-Key no.Digi-Key stock (2026-10-15)Other sourceWhere
2BM14B-GHS-TBT(LF)(SN)(N)
JST · BM14B-GHS-TBT
455-1590-1-ND4,455 in stockLCSC C265384
JST BM14B-GHS-TBT(LF)(SN)
J1 J2
60919-0-15-20-89-14-11-0
Mill-Max · 0919 9.63mm
ED10766-ND10,713 in stock
none (single source)
P101 P102 P103 P104 P105 P106
37939-1-15-20-89-14-11-0
Mill-Max · 7939 9.63mm
54-7939-1-15-20-89-14-11-0-ND2,962 in stock
none (single source)
P107 P110 P114
110914-1-15-20-77-14-11-0
Mill-Max · 0914-1 8.43mm
ED1397-ND36,077 in stock
P108 P109 P111 P112 P113 P115 P116 P117 P118 P119 P120
2RC0603FR-071KL
YAGEO · 1k
311-1.00KHRCT-ND2,647,767 in stockLCSC C22548
UniOhm 0603WAF1001T5E
R1 R2
Row head, HEAD build
QtyPartDigi-Key no.Digi-Key stock (2026-10-15)Other sourceWhere
1CL10B472KB8NNNC
Samsung · 4.7n
1276-1098-1-ND2,951,726 in stockLCSC C1621
Yageo CC0603KRX7R9BB472
C1
1CL31B106KBHNNNE
Samsung · 10u
1276-6767-1-ND0 at Digi-KeyLCSC C89632
TDK C3216X7R1H106K160AC
C2
1CL10B104KB8NNNC
Samsung · 100n
1276-1000-1-ND0 at Digi-KeyLCSC C1591
Yageo CC0603KRX7R9BB104
C3
1CL10B105KA8NNNC
Samsung · 1u
1276-1184-1-ND0 at Digi-KeyLCSC C29936
Yageo CC0603KRX7R8BB105
C4
1ESD2CAN24DBZRQ1
Texas Instruments · ESD2CAN24DBZRQ1
296-ESD2CAN24DBZRQ1CT-ND197,609 in stockLCSC C5736151
onsemi NUP2105LT1G
D1
1SS34
onsemi · SS34
B340A-FDICT-ND268,206 in stockLCSC C8678
MDD SS34 (SMA)
D2
2SMAJ30A
Littelfuse · SMAJ30A
SMAJ30ALFCT-ND149,218 in stockLCSC C148230
Diodes SMAJ30A-13-F
D3 D7
2LTST-C191KGKT
Lite-On · green
160-1446-1-ND2,818,153 in stockLCSC C125098
NationStar NCD0603G1
D4 D5
1LTST-C191KSKT
Lite-On · yellow
160-1448-1-ND856,734 in stockLCSC C125100
NationStar NCD0603Y1
D6
10451003.MRL
Littelfuse · 3A
F2583CT-ND16,401 in stockLCSC C13982
prosemi 2410FA-3A
F1
1SM14B-GHS-TB(LF)(SN)
JST · SM14B-GHS-TB
455-1576-1-ND3,759 in stockLCSC C265343
HDGC HDGC1257WR-S-14P
J1
1L717SDE09PA4CH4F
Amphenol · DB9 male
L717SDE09PA4CH4F-ND208 in stockLCSC C5428849
CONNFLY DS1037-09MNAKT74-0CC
J2
41715721
Phoenix Contact · MKDS 1,5/2-5,08
277-1263-ND35 in stockLCSC C480516
Cixi Kefa KF128-5.08-2P-AA
J3 J4 J5 J6
1MMBT3904LT1G
onsemi · MMBT3904
MMBT3904LT1GOSCT-ND2,632,778 in stockLCSC C81464
Nexperia MMBT3904,215
Q1
1BSS84,215
Nexperia · BSS84
1727-BSS84,215CT-ND0 at Digi-KeyLCSC C493579
Diodes BSS84-7-F
Q2
2RC1206FR-0760R4L
YAGEO · 60.4R
311-60.4FRCT-ND75,443 in stockLCSC C274017
UniOhm 1206W4F604JT5E
R1 R2
2RC0603FR-074K7L
YAGEO · 4.7k
311-4.70KHRCT-ND4,127,688 in stockLCSC C99782
UniOhm 0603WAF4701T5E
R10 R14
2RC0603FR-0747KL
YAGEO · 47k
311-47.0KHRCT-ND1,373,035 in stockLCSC C105579
UniOhm 0603WAF4702T5E
R12 R15
2RC0603FR-07100KL
YAGEO · 100k
311-100KHRCT-ND0 at Digi-KeyLCSC C14675
UniOhm 0603WAF1003T5E
R13 R16
6RC0603FR-0710KL
YAGEO · 10k
311-10.0KHRCT-ND0 at Digi-KeyLCSC C98220
UniOhm 0603WAF1002T5E
R17 R18 R3 R4 R5 R6
1201007F2201T4E
UNI-ROYAL · 2.2k
–not at Digi-KeyLCSC C407069
R19
2RC0603JR-070RL
YAGEO · 0R
311-0.0GRCT-ND8,947,873 in stockLCSC C95177
UniOhm 0603WAF0000T5E
R7 R8
1TLV431BIDBZR
Texas Instruments · TLV431BIDBZR
296-17571-1-ND19,406 in stockLCSC C398375
TECH PUBLIC TLV431BIDBZR-TP
U1
1AQY212GSX
Panasonic · AQY212GS
–not at Digi-KeyLCSC C415471
Panasonic AQY212GS
U2
Row head, END build
QtyPartDigi-Key no.Digi-Key stock (2026-10-15)Other sourceWhere
1CL10B472KB8NNNC
Samsung · 4.7n
1276-1098-1-ND2,951,726 in stockLCSC C1621
Yageo CC0603KRX7R9BB472
C1
1ESD2CAN24DBZRQ1
Texas Instruments · ESD2CAN24DBZRQ1
296-ESD2CAN24DBZRQ1CT-ND197,609 in stockLCSC C5736151
onsemi NUP2105LT1G
D1
1SM14B-GHS-TB(LF)(SN)
JST · SM14B-GHS-TB
455-1576-1-ND3,759 in stockLCSC C265343
HDGC HDGC1257WR-S-14P
J1
2RC1206FR-0760R4L
YAGEO · 60.4R
311-60.4FRCT-ND75,443 in stockLCSC C274017
UniOhm 1206W4F604JT5E
R1 R2
2RC0603JR-070RL
YAGEO · 0R
311-0.0GRCT-ND8,947,873 in stockLCSC C95177
UniOhm 0603WAF0000T5E
R11 R9

3 · Mechanics (Joerg's repo)

The dock, foot plate, posts, encoder mounts and magnet holders are Joerg's design: BUILD_TILE20_A.md ↗ (cut files in prototype/cut, prints in prototype/stl). What the boards need from it:

4 · Cables

Motor cable × 9

Joerg's job: shorten the motor's four wires to reach the Tile-20's header under its column, crimp an XH contact on each and push it into an XHP-4 until it clicks, in the order below. Label it with its column (A1 … C3).

XH pinTile-20Motor lead
1A1 (OUT1A)black
2A2 (OUT2A)green
3B1 (OUT1B)red
4B2 (OUT2B)blue

Same colours as the Order 1 bench (black + green = coil A). A column that runs backwards: flip it in firmware.

Encoder cable × 9

Five GH leads between two GHR-05V-S housings, pin 1 to pin 1. Twist the bundle loosely; keep it away from the motor cable.

GH pinSignal
13.3 V
2GND
3A
4B
5Z (index)

Row harness × 2

Fourteen GH leads between two GHR-14V-S housings, pin 1 to pin 1. Harness A: row head J1 → backplane J1. Harness B: backplane J2 → END plug J1.

PinSignal (both ends the same)
1GND
2CANH
3CANL
4GND
5+24V_BP
6+24V_BP
7+24V_BP
8GND
9ENABLE_BP
10SLOT_REF
11LAD
12LOOP
13LOOP_RET
14GND

Which channel drives which column

The Tile-20's silkscreen names each channel by its grid position, so A1 on the board is A1 on the 3x3.

3x3 columnTile-20 channelMotor plugEncoder plugBusChip select
A11J101J102SPI ACS01 · MCU pin 18
A22J201J202SPI ACS02 · MCU pin 22
A33J301J302SPI ACS03 · MCU pin 23
B15J501J502SPI ACS05 · MCU pin 25
B26J601J602SPI ACS06 · MCU pin 26
B37J701J702SPI ACS07 · MCU pin 17
C19J901J902SPI BCS09 · MCU pin 33
C210J1001J1002SPI BCS10 · MCU pin 34
C311J1101J1102SPI BCS11 · MCU pin 38

5 · Wiring

ROW HEAD · start of the rowTILE-20 · in the module, parts side upBACKPLANE · top side (bars and J1 / J2 underneath)END PLUG · end of the rowENCODER ×9J2 · CAN (DB9)empty: CAN adapter laterLEDs: 24 V · presence · ENABLE24 V adapter (logic power)Mean Well GST36B24 · mainsJ3 24V INleft: +right: −ENABLE bridge (orange)J3 left → J4 leftpull it = drivers offRUN bridge: J5 left→rightJ6: empty on the benchHarness AGH-14 ×14 wiresrow head J1 →backplane J1pin 1 to pin 1backplane J1 (underneath)Lab supply (motor power)28.0 V · limit 1 A, later 8 A+ → VM bus barM4 ring lug, red− → GND bus barM4 ring lug, blackSlot 1: the module lowers onto itTile-20 gold pads ↔ 20 spring pinsslot 2: empty · JP2 closedHarness B (GH-14)backplane J2 →END plug J1F1: 15 A fuse(motor power)MOTOR C3Motor cable (XH-4) ×91 black · 2 green3 red · 4 blueshown: C3 → J1101Encoder cable (GH-5) ×9pin 1 to pin 1shown: C3 → J1102PC (USB)host tool · STM32CubeProgrammerST-LINK V3MINIE+ Tag-Connect TC2030USB-serial 3.3 Ve.g. FTDI cableJ2 SWD padsTag-Connect:flashing onlyTile-20 J3 (UART)1 GND ← black2 RX ← TXD (blue)3 TX → RXD (green)4 and VCC: not usedA1A2A3B1B2B3C1C2C3
The real boards (renders from the design files, to scale per board), every wire drawn to its pin. Red: + (24 V, motor power). Black: GND. Orange: the two wire bridges on the row head. Purple: GH harnesses and encoder cables. Grey: USB. Gold dashes: the module lowering onto slot 1 (no wires there). One column (C3) is wired as the example; the other eight are the same, each to its own pair of plugs (A1 … C3 on the Tile-20). Scroll sideways on a small screen.
FromToWireNote
Lab supply +VM bar, M4 lug1.5 mm² red, ring lug28.5 V; limit 1 A first, 8 A later
Lab supply −GND bar, M4 lug1.5 mm² black, ring lug
24 V adapter +, −Row head J3 (+, −)adapter cable, ferrulesCheck + with a meter before you connect
Row head J3 +Row head J4 pin 1 (ENABLE_IN)wire bridge, 0.5 mm² redPulled = drivers off; an E-stop's NC contact goes here later
Row head J5 pin 1J5 pin 2wire bridgeRUN; a toggle switch later
CAN FD adapter (later)Row head J2 (DB9)straight DB9 cable / directTerminated on the row head and the END plug; the adapter's own termination off
Row head J1Backplane J1harness AFrom below, through the plate cut-out
Backplane J2END plug J1harness B
ST-LINKTile-20 SWD pads (TC2030)Tag-Connect cableFor flashing only
USB-serial GND, TXD, RXDTile-20 J3 pin 1 GND, pin 2 RX, pin 3 TX3 jumper wires3.3 V logic; its VCC wire stays unconnected (J3 pin 4 is empty)
Tile-20 J·01 (×9)Motorsmotor cablesSupplies off when plugging
Tile-20 J·02 (×9)Encoder boardsencoder cables

Row supply for the pilot: Mean Well RSP-1600-27

On the bench the lab supply does this job: skip this part. For the pilot row, all the wiring below is in one 16-pin plug that pushes into the supply's CN1 socket. Nothing changes on our boards.

CN1 pinNameWireWhy
3+5V-AUXto row head J6 pin 1 ("PSU 1")The row head closes 3 to 4 while the row may run: supply on. STOP, a missing module or the END plug out: supply off.
4Remote ON-OFFto row head J6 pin 2 ("PSU 2")
13 and 15+V(signal), +Sshort loop, about 2 cm, inside the plugLocal sense. Without the two loops the output voltage is not guaranteed (Mean Well spec p.4).
14 and 16-V(signal), -Sshort loop, about 2 cm, inside the plug
all othersempty

6 · Bring-up

In order; each step has the value to expect. Ticks stay in this browser only. Values marked (est.) are estimates: write the measured ones down for the review.

Solder by hand (JLC leaves these off)

  1. 20 pins in slot 1, on the top side (the side with the gold pads and R1; J1 and J2 are underneath). Three kinds, marked in the picture: 6 SMT pins (orange squares), 3 tall pins (red rings) and 11 short pins (blue rings). Through-hole pins: push one pin fully in, hold its tip with masking tape, turn the board over and solder it underneath. SMT pins: put a little solder on the pad, hold the pin upright with tweezers, heat the pad again. Every pin must stand straight up (within 0.2 mm): solder one leg, check it with a small square, then finish. Slot 2 stays empty.

    SLOT 1 · top side (gold pads and R1 on this side) · 20 spring pinsJP2 · other end1234567891011121314151617181920JP1: leave openR1 (from JLC)JP2: solder blobacross both pads(slot 2 empty)6 × SMT pin 0919 (VM, GND) · Digi-Key ED10766-ND3 × tall pin 7939 (GND, touches first) · 54-7939-1-15-20-89-14-11-0-ND11 × short pin 0914-1 · ED1397-NDNumbers = P101 … P120. Every pin stands straight up (within 0.2 mm). Slot 2's pads stay empty.WHOLE BACKPLANE · dashed: the two close-ups aboveJ1 underneathJ2 underneath
  2. JP2 (at the far end, near J2; top right in the picture above): a blob of solder across both pads, because slot 2 is empty and the presence loop must still close. Meter: JP2 0 Ω. JP1 stays open (slot 1 has its module).

  3. Only on a JLC-built board (PCBWay fits them). F1: the fuse holder, 4 legs, from the top. R7: the 4.7 Ω 5 W brake resistor, flat on the board, from the top. Solder underneath, then cut all leads underneath to about 1.5 mm. No fuse in F1 yet.

    TILE-20 · top side · F1 and R7 (enlarged)WHOLE BOARDF1 · fuse holderKeystone 3568, 4 legsDigi-Key 36-3568-NDR7 · brake resistor 4.7 Ω 5 Wlying flat · Digi-Key 4.7W-5-ND1 Push in from the top2 Solder underneath3 Cut the leads underneath to about 1.5 mm4 No fuse in F1 yet
  4. Tile-20 on the foot plate, no screws yet: it must not rock. Each through-hole part sits over a cut-out in the plate (the grey boxes in the drawing). If it rocks, a lead is too long, or the plate was cut from the old file without cut-outs (before 17 Oct 2026).

Before any power

  1. Tile-20 (3x3 build): driver chips only at A1–A3, B1–B3, C1–C3. No solder bridges on the chips' pins (magnifier). F1 holder empty. Encoder boards: one AS5047P each.

  2. Meter on the bottom pads: VM1 to PG1 reads rising (capacitors charging) to > 10 kΩ. V24A to G1 > 10 kΩ. Test points +5V, +3V3, +3V3_ENC to GND > 100 Ω. A short here: stop and look.

  3. Joerg's dock as in his BUILD_TILE20_A.md: bars on their blocks, backplane bolted on (slot 1 over the bars), posts in place. Harness A row head J1 → backplane J1, harness B backplane J2 → END plug. Motor and encoder cables made and labelled A1…C3.

  4. Backplane bolted on, nothing connected. VM bar to the spring-pin pad P101 (slot 1, the SMT pins beside bolts BB101 / BB102): 0 Ω. GND bar to P104: 0 Ω. VM bar to GND bar: open. The VM bar is the one under BB101 / BB102: the upper row of bolts when the backplane's printed text reads the right way up. Only then the supply's + goes to the VM bar.

24 V only (no VM, Tile-20 not docked)

  1. 24 V on J3, ENABLE bridge (J3 + → J4.1) and RUN bridge (J5) in. Expect: green 24 V LED on; TP VREF = 2.48 V (2.45–2.51); presence LED off (no module docked); ENABLE LED off.

  2. 24 V off. Tile-20 flat on the foot plate (8 × M3 × 6), Joerg's tile on the plate, cables in; lower it onto the posts (guides first). 24 V on: presence LED on, ENABLE LED on. Tile-20 test points: +5V 4.9–5.1 V, +3V3 3.25–3.35 V, +3V3_ENC 3.25–3.35 V, +12V_GD 11.6–12.4 V. 24 V current about 50–100 mA without firmware (est.).

  3. Pull the ENABLE bridge: ENABLE LED off, TP ENABLE on the row head ≈ 0 V. Back in: on again. Lift the module 5 mm: presence and ENABLE LEDs off.

  4. STLINK-V3MINIE + Tag-Connect on the Tile-20's TC2030 pads, STM32CubeProgrammer → Connect. Expect an STM32G474 (device ID 0x469). This needs no firmware.

Firmware (make cube-tile20)

  1. Flash firmware/dist/firmware_tile20_g474_cube.bin (built by make cube-tile20). USB-serial on the Tile-20's J3 (1 GND, 2 RX, 3 TX), 921 600 baud 8N1: the same host tool and protocol as the NUCLEO. Expect the boot message and an answer to GET_BOARD.

  2. GET_BOARD: slot 1 (SLOT_TAP / SLOT_REF ≈ 1.00), ENABLE high, brake off, VM and 24 V read back within 2 %.

  3. Adapter on the row head's DB9, its own termination off. The board takes node 1 from slot 1 by itself (the row head and END plug make the ladder). Run CAN_SELFTEST, then the same commands over CAN FD (500 kbit/s / 4 Mbit/s). The first real test of the bus: do it early.

  4. One column: turn the motor exactly one revolution and read the encoder counts (GET_HEALTH): expect 4,000 (the AS5047P's 1,000 pulses per turn, no setup). The firmware's default is already 4,000. Counts that jump or drift: the magnet is too close or too far (35–70 mT at the chip): change the air gap by 0.5 mm and repeat.

Motor power

  1. 15 A fuse in F1 (the supply's 1 A limit protects the first power-up). Supply 28.5 V, limit 1 A. Expect: VM at the test point 28.3–28.5 V, idle current under 0.2 A, brake off (BRAKE_SENSE low).

  2. The firmware probes all 20 channels: 9 answer (1–3, 5–7, 9–11 = A1…C3), 11 read empty. It re-initialises them by itself whenever VM comes back.

  3. A1 at 0.5 A run current: move 1 mm up and down; encoder counts follow; no motor noise when idle.

  4. Limit 8 A, run current up to 1.4 A until the foot plate's cooling is measured. IR thermometer on the driver chips: below 90 °C.

  5. Supply limit 1 A, raise VM to 30.5 V for 2 s: the brake switches on (BRAKE_SENSE high) and the supply goes into current limit. Back to 28.5 V.

7 · Files

Everything an electronics engineer needs to check the design: the KiCad 10 projects (schematics and layout, opened from the zip as they are), the fab files (JLC and PCBWay), and the review reports. The design is generated: the generator and its history are in the repository (hardware/tile20/gen/).

BoardGerbers, JLC BOM + CPL, PCBWay BOM + centroid, schematic PDF, STEP, renders, DRC reportSchematics + layout (KiCad 10)
Tile-20 28.1 MB 3.9 MB
without tile20.kicad_pcb (19 MB, over the page's file limit): in git at hardware/tile20/tile20/tile20.kicad_pcb
Encoder board 2.4 MB 373 kB
Backplane segment 2.1 MB 804 kB
Row head + END plug 4.3 MB 888 kB

Reports

Design review: every deviation, risk, estimate and check
Calculations
SPICE results (brake, slot ID)
Net-by-net check against the vendor references
Click-in interface: heights, mating order, swap
Every part, every board, sourcing
Cost roll-up

Not done yet