
Heteromycin
hasenbanck/heteromycin
A 3D printer board using a powerfull STM32 MCU, TMC5160/TMC2160 driver and a Raspberry Pi or compatible SBC

MDB/ICP vending machine interface
Sparkvend is an open-source printed circuit board by eltariel, from the eltariel/sparkvend repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 65 × 56.5 mm with 25 parts on 69 nets, routed with 108 tracks and 0 vias.
It is built around the VO615A-9, DMG2305UX and DMMT5401. Its parts include 9 resistors, 4 ICs, 3 connectors and 2 transistors. It belongs with the NXP (LPC, Kinetis, i.MX RT) boards of this library.
This is a collection of bits that allows a device to communicate with a vending machine that implements the MDB/ICP standard.
At SparkCC we have a bunch of vending machines. Of these, at least one talks MDB/ICP, which is a protocol that connects a VMC (vending machine controller) to a number of devices, like coin mechs, bill acceptors, and cashless (credit card etc) devices. There's been a long-standing project idea to actually use this vending machine, probably for common components for projects, but managing money is a lot of effort and we could do it another way if we had the interface.
So. I'm building one.
There's a lot of info floating around about how these things work, but I wanted to learn how to do a heap of things, so I'm building it from scratch instead.
The biggest complication for this interface is the electronic interface - an opto-isolated multidrop serial bus isn't a big deal on its own, but finding a UART that supports 9-bit communications is a little less straightforward. A lot of microcontrollers have these, but then we want to hook the vending machine to more powerful systems so we don't have to deal with low-level considerations when we eventually build something way more complex than it needs to be.
Many of the design decisions for this project come from the contents of my gadget bin, as well as my own abilities:
This project has a bunch of filters defined to keep the KiCad files as git-friendly as possible. To set this up correctly, run this:
git config include.path ../extra.gitconfigFor more info about the filters, see here.
Contains project global stuff:
Schematics and PCB layouts for the board that connects all of the pieces together. Uses KiCad v5.
MDB/ICP interface firmware for the Teensy. This acts as MDB Cashless Device 1 (0x10). Uses Teensyduino via PlatformIO, because the Arduino IDE is... weird.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3, R5, R8, R9 |
| 4 | MountingHole | MountingHole:MountingHole_2.7mm_M2.5 | H1, H2, H3, H4 |
| 3 | VO615A-9 | Package_DIP:DIP-4_W7.62mm | U1, U2, U3 |
| 2 | 4.7K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2, R4 |
| 1 | 100 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 10K | Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder | R6 |
| 1 | 47K | Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder | R7 |
| 1 | DMG2305UX | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | DMMT5401 | Package_TO_SOT_SMD:SOT-23-6 | Q2 |
| 1 | MDB Signals | Connectors:SCREWTERMINAL-3.5MM-6 | J1 |
| 1 | MDB/ICP | Connector_Molex:Molex_Mini-Fit_Jr_5569-06A2_2x03_P4.20mm_Horizontal | J2 |
| 1 | OSHW Logo goes here | Symbol:OSHW-Logo2_7.3x6mm_SilkScreen | LOGO3 |
| 1 | OX40HAT | Connector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_Vertical | J3 |
| 1 | Power From Pi | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | SparkCC logo | ellie:SPARKCC_LOGO | LOGO1 |
| 1 | Teensy3.2 | sparkvend:teensy-3.x-common | U4 |
It measures 65 × 56.5 mm and has 2 copper layers, 1.6 mm thick.
25 parts, built around the VO615A-9, DMG2305UX and DMMT5401. 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 eltariel/sparkvend repository on GitHub, at the commit this page was made from: the board is hardware/sparkvend.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.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).

hasenbanck/heteromycin
A 3D printer board using a powerfull STM32 MCU, TMC5160/TMC2160 driver and a Raspberry Pi or compatible SBC

fwachsmuth/Filmkorn-Raw-Scanner
The Filmkorn Raw Scanner, turning 8mm and 16mm films into lossless 12-bit CinemaDNG


heyspacebuck/huffboard
A carrier board for a Raspberry Pi 4 running Huffbox controls. Drives relays and a SPI bus.



