
Hexpansion L80
TechCabin/EMFBadge-Hexpansions-GPS
A GPS Hexpansion module and basic software implementation for the Tildagon badge.

Open source EtherCAT slaves for machine tools running LinuxCNC: hardware, firmware and tooling.
Base is an open-source printed circuit board by bornier-dev, from the bornier-dev/bornier repository on GitHub. It is a 4-layer board of 150 × 107.5 mm with 517 parts on 372 nets, routed with 4,360 tracks and 1,113 vias.
It is built around the STM32H523VET6, CA-IS3092W and LAN9253-I/R4X, with the TPS54360BDDAR, TPS1H000AQDGNRQ1 and LTV-357T-C among its other parts. Its parts include 255 resistors, 99 capacitors, 75 diodes, 32 ICs and 14 connectors. It belongs with the STM32 boards of this library.
Open source EtherCAT slaves for machine tools running LinuxCNC: hardware, firmware and tooling.
Status: design phase. Nothing here is usable yet. The base board schematic is complete and checked; PCB layout comes next. The firmware is a build scaffold running on a NUCLEO-H563ZI development board, without the EtherCAT stack yet.
lcec).arm-none-eabi-gcc, CMake) and updates over EtherCAT (FoE).Out of scope: functional safety. E-stop and STO stay hardwired.
EtherCAT (daisy chain)
LinuxCNC PC ──► [Base board A] ──► [EtherCAT drive] ──► [Base board B] ──► ...
(IgH master) │ HE10 ribbon (local bus, not EtherCAT)
├── I/O module 1
└── I/O module nSchematic and PCB in hardware/base/, generated by script (see below); the PCB is
being placed.
| Block | Content |
|---|---|
| Core | Microchip LAN9253 EtherCAT slave controller (two ports, RJ45 with magnetics), STM32H523 MCU in LQFP-100 over SPI/OCTOSPI, one shared 25 MHz MEMS oscillator |
| Power | 12 V or 24 V logic supply (10.8–30 V): fuse, TVS, reverse polarity protection, bucks to 5 V and 3.3 V; USB micro-B for bench power and DFU flashing |
| Motion | 4 axes, each on a dual RJ45: drive port (differential step/dir, enable, alarm, current-limited supply output) and encoder port (RS-422, TTL or HTL, 5 V or supply voltage); fast probe input |
| Spindle | 0-10 V speed reference, PWM, enable and direction |
| Modbus | Isolated RS-485, switchable termination |
| Safety | E-stop state input (wired, not a safety function), external watchdog on the MCU reset |
| Local bus | HE10 2 × 17 connector to the extension modules: SPI, 12 chip selects, I²C, IRQ, LATCH, OE |
The STM32H523 footprint takes any STM32H5 in LQFP-100 (H523, H533, H562, H563) without a PCB
change. The board is meant to be fed by a dedicated supply in the same cabinet; the
simulation of the input stage and its limits is in hardware/base/sim/.
The board is 107.5 × 150 mm. It mounts on a DIN rail in a Phoenix Contact UM-BASIC 108 profile (housing kit UM-BASIC-KIT-B108-L150-7035), resting on the profile walls at the top level, or screws onto a panel through four M3 holes at the corners, one of them plated to earth the board. A plated hole takes the Phoenix PE contact, which earths the board to the DIN rail. Every edge connector sits on a long edge: the profile closes the short ones; the USB jack is vertical.
| Directory | Contents |
|---|---|
firmware/ | C++23 firmware on the OpSy RTOS, generated STM32H563 register headers, board support for the NUCLEO-H563ZI, bring-up example and on-target tests |
hardware/lib/ | kicadgen, the Python schematic generator and checker (ERC, netlist), and the symbols, footprints and 3D models missing from the KiCad libraries, with their generators |
hardware/base/ | Base board: schematic generator (gen/), KiCad project (kicad/), Gerbers (fab/), circuit simulation (sim/) |
tools/hil/ | Hardware-in-the-loop test scripts |
tools/udev/ | udev rules for debug probes on Linux |
The schematic is generated: edit the scripts in hardware/base/gen/, then run
python hardware/base/gen/schematic.py, which regenerates it and runs the checks. The PCB is edited in
KiCad: after a schematic change, update it from the schematic (Tools > Update PCB from Schematic).
Building, flashing and coding rules: CONTRIBUTING.md.
| Part | License |
|---|---|
| Hardware (KiCad projects) | CERN-OHL-W-2.0 |
| Firmware and tools | MPL-2.0 |
| Documentation | CC-BY-4.0 |
Each file carries an SPDX header naming its license.
Official releases will carry the Bornier EtherCAT Vendor ID. Forks distributing hardware or firmware must use their own Vendor ID.
EtherCAT® is a registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 55 | 100nF | Capacitor_SMD:C_0402_1005Metric | C11, C12, C13, C14, C15, C16, C17, C18, C22, C23, C24, C26, C28, C30, C31, C312 +39 |
| 53 | 4.7k | Resistor_SMD:R_0402_1005Metric | R12, R100, R101, R103, R104, R110, R111, R113, R114, R118, R119, R121, R122, R126, R127, R129 +37 |
| 45 | 10k | Resistor_SMD:R_0402_1005Metric | R20, R106, R132, R158, R189, R190, R191, R192, R193, R194, R195, R196, R197, R198, R199, R200 +29 |
| 36 | 49.9 | Resistor_SMD:R_0603_1608Metric | R15, R16, R203, R204, R205, R206, R207, R208, R209, R210, R211, R212, R213, R214, R215, R216 +20 |
| 33 | 1k | Resistor_SMD:R_0402_1005Metric | R14, R18, R25, R26, R29, R30, R188, R228, R238, R240, R247, R248, R251, R253, R303, R304 +17 |
| 26 | 1µF 50V | Capacitor_SMD:C_0603_1608Metric | C20, C25, C27, C29, C32, C46, C47, C48, C50, C54, C310, C311, C314, C315, C317, C318 +10 |
| 24 | 3.3k | Resistor_SMD:R_1206_3216Metric | R102, R109, R112, R117, R120, R125, R128, R135, R138, R143, R146, R151, R154, R161, R164, R169 +8 |
| 24 | BAT54S | Package_TO_SOT_SMD:SOT-23 | D29, D30, D31, D32, D33, D34, D36, D37, D38, D39, D40, D41, D43, D44, D45, D46 +8 |
| 22 | 4.7k | Resistor_SMD:R_1206_3216Metric | R13, R60, R108, R116, R124, R134, R142, R150, R160, R168, R176, R184, R185, R249, R250, R306 +6 |
| 18 | 100k | Resistor_SMD:R_0402_1005Metric | R1, R3, R11, R19, R58, R64, R223, R224, R225, R229, R233, R237, R239, R300, R308, R311 +2 |
| 13 | TPD4E05U06DQAR | Package_SON:USON-10_2.5x1.0mm_P0.5mm | D60, U2, U7, U8, U13, U15, U18, U20, U31, U32, U33, U34, U35 |
| 9 | 2.2k | Resistor_SMD:R_0402_1005Metric | R8, R10, R81, R107, R133, R159, R226, R227, R236 |
| 8 | 10µF 25V | Capacitor_SMD:C_0805_2012Metric | C9, C10, C19, C43, C76, C83, C85, C300 |
| 8 | 120 | Resistor_SMD:R_0603_1608Metric | R232, R234, R235, R242, R243, R244, R245, R246 |
| 8 | SS56B | Diode_SMD:D_SMB | D2, D3, D4, D5, D28, D35, D42, D49 |
| 7 | SMBJ33CA | Diode_SMD:D_SMB | D1, D13, D17, D21, D25, D63, D65 |
| 7 | TPS1H000AQDGNRQ1 | Package_SO:HVSSOP-8-1EP_3x3mm_P0.65mm_EP1.57x1.89mm | U10, U21, U23, U25, U27, U302, U303 |
| 6 | 1N4148WS | Diode_SMD:D_SOD-323 | D15, D19, D23, D27, D57, D70 |
| 6 | AO3422 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q6, Q7 |
| 5 | 220R@100MHz | Inductor_SMD:L_0603_1608Metric | FB1, FB2, FB3, FB4, FB5 |
| 5 | LTV-357T-C | Package_SO:SO-4_4.4x3.6mm_P2.54mm | U12, U14, U17, U19, U39 |
| 4 | 1nF 2kV | Capacitor_SMD:C_1206_3216Metric | C37, C86, C301, C302 |
| 4 | 47k | Resistor_SMD:R_0402_1005Metric | R2, R4, R187, R301 |
| 4 | AM26LV32EIDR | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U22, U24, U26, U28 |
| 4 | ENC 5V|VIN | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP1, JP2, JP3, JP4 |
| 4 | HC-WK88-H132-1X2-55B | Bornier:RJ45x2_HongCheng_HC-WK88-H132-1X2-55B | J6, J7, J8, J9 |
| 4 | SN75ALS191DR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U11, U16, U300, U301 |
| 4 | green ENA | LED_SMD:LED_0603_1608Metric | D12, D16, D20, D24 |
| 4 | red ALM | LED_SMD:LED_0603_1608Metric | D14, D18, D22, D26 |
| 3 | 12.1k | Resistor_SMD:R_0402_1005Metric | R6, R17, R302 |
| 3 | M3 | MountingHole:MountingHole_3.2mm_M3 | H2, H3, H4 |
| 3 | green | LED_SMD:LED_0603_1608Metric | D6, D7, D300 |
| 2 | 2.2µF 100V | Capacitor_SMD:C_1210_3225Metric | C2, C3 |
| 2 | 470pF | Capacitor_SMD:C_0402_1005Metric | C21, C80 |
| 1 | +3V3 | TestPoint:TestPoint_Pad_D1.5mm | TP7 |
| 1 | +5V | TestPoint:TestPoint_Pad_D1.5mm | TP6 |
| 1 | +VIN | TestPoint:TestPoint_Pad_D1.5mm | TP4 |
| 1 | +VIN_OUT | TestPoint:TestPoint_Pad_D1.5mm | TP5 |
| 1 | 100µF 10V | Capacitor_SMD:C_1210_3225Metric | C5 |
| 1 | 1µH | Inductor_SMD:L_1008_2520Metric | L2 |
| 1 | 3.5A 63V | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | 47µF 63V | Capacitor_SMD:CP_Elec_6.3x7.7 | C1 |
| 1 | 8.2µH | Inductor_SMD:L_Sunlord_MWSA1004S | L1 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q11 |
| 1 | BOOT | Bornier:SW_XKB_TS-1187A | SW1 |
| 1 | CA-IS3092W | Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm | U38 |
| 1 | ESC_IRQ | TestPoint:TestPoint_Pad_D1.5mm | TP1 |
| 1 | ESTOP | PROBE | Connector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_Horizontal | J14 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.5mm | TP3 |
| 1 | HY911105AE IN | Connector_RJ:RJ45_Hanrun_HR911105A_Horizontal | J3 |
| 1 | HY911105AE OUT | Connector_RJ:RJ45_Hanrun_HR911105A_Horizontal | J4 |
| 1 | LAN9253-I/R4X | Package_DFN_QFN:QFN-64-1EP_9x9mm_P0.5mm_EP6x6mm_ThermalVias | U4 |
| 1 | LOCAL BUS | Connector_IDC:IDC-Header_2x17_P2.54mm_Vertical | J10 |
| 1 | M24C16-RMN6TP | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U6 |
| 1 | M3 CHASSIS | MountingHole:MountingHole_3.2mm_M3_Pad | H1 |
| 1 | MODBUS | Connector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_Horizontal | J13 |
| 1 | OPA2990IDR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U36 |
| 1 | PE CONTACT | MountingHole:MountingHole_3.2mm_M3_Pad | H5 |
| 1 | POWER | Connector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_Horizontal | J1 |
| 1 | PSM712-LF-T7 | Package_TO_SOT_SMD:SOT-23 | D66 |
| 1 | SMF15A | Diode_SMD:D_SOD-123F | D59 |
| 1 | SN74AHCT1G125DBVR | Package_TO_SOT_SMD:SOT-23-5 | U37 |
| 1 | SPINDLE A | Connector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_Horizontal | J11 |
| 1 | SPINDLE B | Connector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_Horizontal | J12 |
| 1 | SS8550 | Package_TO_SOT_SMD:SOT-23 | Q5 |
| 1 | STM32H523VET6 | Package_QFP:LQFP-100_14x14mm_P0.5mm | U9 |
| 1 | SYNC0 | TestPoint:TestPoint_Pad_D1.5mm | TP2 |
| 1 | SiT8008BI-71-33E-25.000000 | Oscillator:Oscillator_SMD_SiT_PQFN-4Pin_2.0x1.6mm | X1 |
| 1 | TC2030 | Connector:Tag-Connect_TC2030-IDC-FP_2x03_P1.27mm_Vertical | J5 |
| 1 | TLP2361 | Package_SO:SO-5-6_4.55x3.7mm_P1.27mm | U29 |
| 1 | TPS2553DBVR | Package_TO_SOT_SMD:SOT-23-6 | U30 |
| 1 | TPS3808G33DBVR | Package_TO_SOT_SMD:SOT-23-6 | U5 |
| 1 | TPS3828-33DBVR | Package_TO_SOT_SMD:SOT-23-5 | U40 |
| 1 | TPS54360BDDAR | Package_SO:TI_SO-PowerPAD-8_ThermalVias | U1 |
| 1 | TPS62A02ADRLR | Package_TO_SOT_SMD:SOT-563 | U3 |
| 1 | USB micro-B | Connector_USB:USB_Micro-B_Molex-105133-0001 | J2 |
| 1 | green DIR | LED_SMD:LED_0603_1608Metric | D64 |
| 1 | green EN | LED_SMD:LED_0603_1608Metric | D62 |
| 1 | green ESTOP OK | LED_SMD:LED_0603_1608Metric | D69 |
| 1 | green MCU | LED_SMD:LED_0603_1608Metric | D11 |
The 509 most common of 517 parts.
It measures 150 × 107.5 mm and has 4 copper layers, 1.6 mm thick.
517 parts, built around the STM32H523VET6, CA-IS3092W, LAN9253-I/R4X and TPS54360BDDAR. 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 bornier-dev/bornier repository on GitHub, at the commit this page was made from: the board is hardware/base/kicad/base.kicad_pcb and its schematic hardware/base/kicad/base.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask bornier-dev before reusing the design.

TechCabin/EMFBadge-Hexpansions-GPS
A GPS Hexpansion module and basic software implementation for the Tildagon badge.

Corteil/EMF_space_unicorn
code and PCB design files for my Space Unicorn hextension for EMF 2026

bebenlebricolo/BTS-MainBoard-Power
Beer thermoregulation system mainboard - power section


CU-Rocketry/flight_computer
Competition Flight Computer Module 25-26


PolybiusBiotech/led_beacon
The PCBA and firmware for the controllable LED Beacons.