
C92 decoder B1
slonket/c92-decoder
An MM1/MM2/Lenz decoder for classic Märklin locomotives and the pre-mfx digital systems.

An MM1/MM2/Lenz decoder for classic Märklin locomotives and the pre-mfx digital systems.
C92 decoder A1 is an open-source printed circuit board by slonket, from the slonket/c92-decoder repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 49 × 34 mm with 93 parts on 58 nets, routed with 368 tracks and 112 vias.
It is built around the STM32G031G8U6, TPS70933DBVR-MS and DSK34, with the DMN3190LDW, 3314J-1-104E and DDC114YU among its other parts. Its parts include 32 resistors, 18 capacitors, 14 connectors, 7 transistors and 6 diodes. It belongs with the STM32 boards of this library.
The c92 decoder was spawned out of a passion for the classic (pre-mfx) Märklin digital systems. The controllers of this era operated with three different protocols:
However, no single decoder from this era can operate on all three protocols, nor with all of their capabilities. Furthermore, there is a matrix of incompatibility between different controllers and combinations of decoders using MM1 and MM2. The c92 decoder is a superset of all decoder capabilities and their respective protocols; a universal classic decoder.

This project uses slonket-footprints as a submodule for all PCB designs. All KiCAD projects within this repository are configured to use the submodule libraries with local paths. Run the following to clone the repository with its submodule:
git clone --recurse-submodules https://github.com/slonket/c92-decoder.git| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 1k | Slonket_Footprints:R_0402 | R4, R5, R6, R7, R8, R9, R18, R19, R22, R23, R26, R27 |
| 10 | 47k | Slonket_Footprints:R_0402 | R10, R11, R17, R20, R21, R24, R25, R28, R29, R32 |
| 8 | 100n | Slonket_Footprints:C_0402 | C6, C7, C9, C14, C15, C16, C17, C18 |
| 5 | 10k | Slonket_Footprints:R_0402 | R2, R12, R13, R14, R31 |
| 5 | DSK34 | Slonket_Footprints:D_SOD-123F | D1, D2, D3, D4, D8 |
| 4 | 10u | Slonket_Footprints:C_1206 | C1, C2, C11, C13 |
| 3 | 100n | Slonket_Footprints:C_0603 | C3, C10, C12 |
| 3 | DMN3190LDW | Slonket_Footprints:U_SOT-363 | Q5, Q6, Q7 |
| 2 | 3314J-1-104E | Slonket_Footprints:RV_BOURNS_3314J | RV1, RV2 |
| 2 | 4u7 | Slonket_Footprints:C_0402 | C4, C8 |
| 2 | DDC114YU | Slonket_Footprints:U_SOT-363 | Q3, Q4 |
| 2 | DMC3071LVT | Slonket_Footprints:U_SOT-23-6 | Q1, Q2 |
| 1 | 100k | Slonket_Footprints:R_0402 | R1 |
| 1 | 100u | Slonket_Footprints:CP_1210_CASE_B | C5 |
| 1 | 12k | Slonket_Footprints:R_0402 | R3 |
| 1 | 20m | Slonket_Footprints:R_0603 | R16 |
| 1 | 220 | Slonket_Footprints:R_0805 | R30 |
| 1 | 5k1 | Slonket_Footprints:R_0402 | R15 |
| 1 | ADDRESS | Slonket_Footprints:SW_DIP_8_P1.27 | SW1 |
| 1 | BZD27C27P | Slonket_Footprints:D_SOD-123F | D5 |
| 1 | CAP | Slonket_Footprints:J_Pad_1mm_2mm | J14 |
| 1 | F0F_OUT | Slonket_Footprints:J_Pad_1mm_2mm | J4 |
| 1 | F0R_OUT | Slonket_Footprints:J_Pad_1mm_2mm | J5 |
| 1 | F1_OUT | Slonket_Footprints:J_Pad_1mm_2mm | J9 |
| 1 | F2_OUT | Slonket_Footprints:J_Pad_1mm_2mm | J10 |
| 1 | F3_OUT | Slonket_Footprints:J_Pad_1mm_2mm | J11 |
| 1 | F4_OUT | Slonket_Footprints:J_Pad_1mm_2mm | J12 |
| 1 | GND | Slonket_Footprints:J_Pad_1mm_2mm | J13 |
| 1 | INA180A3 | Slonket_Footprints:U_SOT-23-5 | U3 |
| 1 | MOTOR_L | Slonket_Footprints:J_Pad_1mm_2mm | J6 |
| 1 | MOTOR_R | Slonket_Footprints:J_Pad_1mm_2mm | J7 |
| 1 | STM32G031G8U6 | Slonket_Footprints:U_STM_UFQFPN-28_4x4_P0.5 | U2 |
| 1 | SWD | Slonket_Footprints:J_Pad_4_1.5mm | J2 |
| 1 | TPS70933DBVR | Slonket_Footprints:U_SOT-23-5 | U1 |
| 1 | TRACK_1 | Slonket_Footprints:J_Pad_1mm_2mm | J1 |
| 1 | TRACK_2 | Slonket_Footprints:J_Pad_1mm_2mm | J3 |
| 1 | VDD | Slonket_Footprints:J_Pad_1mm_2mm | J8 |
The 83 most common of 93 parts.
It measures 49 × 34 mm and has 4 copper layers, 1 mm thick.
93 parts, built around the STM32G031G8U6, TPS70933DBVR-MS, DSK34 and DMN3190LDW. 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 slonket/c92-decoder repository on GitHub, at the commit this page was made from: the board is hardware/c92_decoder_A1/c92_decoder_A1.kicad_pcb and its schematic hardware/c92_decoder_A1/c92_decoder_A1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

slonket/c92-decoder
An MM1/MM2/Lenz decoder for classic Märklin locomotives and the pre-mfx digital systems.

slonket/c92-decoder
An MM1/MM2/Lenz decoder for classic Märklin locomotives and the pre-mfx digital systems.

PCBench/PCBench
resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

oomlout/oomlout_oomp_project_bot_v_2

RoseDaggerDev/MiniOscilloscope
Through-Hole Version: Its been fully tested and works like a charm. Its got a BOM of 87 components and fits on a 50x50mm 2-layer board, manufactured by PCBWay.

cuteboy0323/1590A
These are not at all useful, but having done guitar pedal board kit builds, I decided I should try to make something from scratch.

TrendBit/SMBR-hardware
Design file for SMBR hardware modules in KiCAD.


ExcessiveOverkill/PCB-business-cards
Everything needed to make your own persistence of vision business cards

tomrodinger/servomotor
Open-source NEMA-17 integrated servomotor (motor + closed-loop driver + controller + encoder). RS-485, Python/Arduino libraries, MCP server for AI control. Hardware, firmware and software.