
C92 decoder A1
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 B1 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 73 parts on 49 nets, routed with 306 tracks and 78 vias.
It is built around the STM32G031G8U6, TPS70933DBVR-MS and DSK34, with the DMN3190LDW, 3314J-1-104E and BZD27C27P among its other parts. Its parts include 18 resistors, 15 capacitors, 14 connectors, 6 diodes and 4 transistors. 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 |
|---|---|---|---|
| 7 | 47k | Slonket_Footprints:R_0402 | R20, R21, R24, R25, R28, R29, R32 |
| 6 | 1k | Slonket_Footprints:R_0402 | R18, R19, R22, R23, R26, R27 |
| 5 | 100n | Slonket_Footprints:C_0402 | C6, C7, C9, C17, C18 |
| 5 | DSK34 | Slonket_Footprints:D_SOD-123F | D1, D2, D3, D4, D8 |
| 4 | 10u | Slonket_Footprints:C_1206 | C1, C2, C2, C2 |
| 3 | 100n | Slonket_Footprints:C_0603 | C3, C3, C3 |
| 3 | DMN3190LDW | Slonket_Footprints:U_SOT-363 | Q5, Q6, Q7 |
| 2 | 10k | Slonket_Footprints:R_0402 | R2, R31 |
| 2 | 3314J-1-104E | Slonket_Footprints:RV_BOURNS_3314J | RV1, RV2 |
| 2 | 4u7 | Slonket_Footprints:C_0402 | C4, C8 |
| 1 | 100k | Slonket_Footprints:R_0402 | R1 |
| 1 | 100u | Slonket_Footprints:CP_1210_CASE_B | C5 |
| 1 | 12k | Slonket_Footprints:R_0402 | R3 |
| 1 | 220 | Slonket_Footprints:R_0805 | R30 |
| 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 | DDC114YU | Slonket_Footprints:U_SOT-363 | Q4 |
| 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 | 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 62 most common of 73 parts.
It measures 49 × 34 mm and has 4 copper layers, 1 mm thick.
73 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_B1/c92_decoder_B1.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


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.


