Skip to the content
PCBKitNew board
2 layers65 × 56.5 mmSparkvend, the printed circuit board in 3D

MDB/ICP vending machine interface

Size
65 × 56.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
25
Nets
69
Pads
127
Tracks, vias
108, 0
Pours
3
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
8 Aug 2019
Updated
23 Aug 2019

Overview

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.

Main components

3

README

README.md

SparkVend

This is a collection of bits that allows a device to communicate with a vending machine that implements the MDB/ICP standard.

Ok, what?

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:

  • MDB/ICP protocol implemented on a Teensy 3.x because I have spares
  • Host system is (going to be) a Raspberry Pi because they're everywhere
  • PCB design is mostly through-hole because I can just about manage to solder well enough for that

Setup

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:

text
git config include.path ../extra.gitconfig

For more info about the filters, see here.

Repo Layout

/

Contains project global stuff:

  • This README
  • Licensing info
  • Additional git configuration

/hardware

Schematics and PCB layouts for the board that connects all of the pieces together. Uses KiCad v5.

/teensy

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.

Parts

25
QtyValueFootprintReferences
410KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3, R5, R8, R9
4MountingHoleMountingHole:MountingHole_2.7mm_M2.5H1, H2, H3, H4
3VO615A-9Package_DIP:DIP-4_W7.62mmU1, U2, U3
24.7KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R4
1100Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
110KResistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR6
147KResistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR7
1DMG2305UXPackage_TO_SOT_SMD:SOT-23Q1
1DMMT5401Package_TO_SOT_SMD:SOT-23-6Q2
1MDB SignalsConnectors:SCREWTERMINAL-3.5MM-6J1
1MDB/ICPConnector_Molex:Molex_Mini-Fit_Jr_5569-06A2_2x03_P4.20mm_HorizontalJ2
1OSHW Logo goes hereSymbol:OSHW-Logo2_7.3x6mm_SilkScreenLOGO3
1OX40HATConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ3
1Power From PiConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1SparkCC logoellie:SPARKCC_LOGOLOGO1
1Teensy3.2sparkvend:teensy-3.x-commonU4

Questions

How big is the Sparkvend PCB?

It measures 65 × 56.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Sparkvend use?

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.

Where can I download the Sparkvend KiCad files?

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.

Can I use the Sparkvend design in my own project?

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).

Similar boards

  • 4 layers200 × 100 mmHeteromycin, the printed circuit board in 3D

    Heteromycin

    hasenbanck/heteromycin

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

    373 parts40
  • 4 layers122.2 × 115.1 mmScan controller kicad, the printed circuit board in 3D

    Scan controller kicad

    fwachsmuth/Filmkorn-Raw-Scanner

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

    170 parts13MIT
  • 2 layers65 × 56 mmReef piHat, the printed circuit board in 3D

    Reef piHat

    Ranthalion/reef-piHat

    RPI Hat for reef-pi

    116 parts13
  • 2 layers124 × 116 mmHuffboard, the printed circuit board in 3D

    Huffboard

    heyspacebuck/huffboard

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

    77 parts8
  • 2 layers129.5 × 72.6 mmOpenPLC, the printed circuit board in 3D

    OpenPLC

    radioelf/OpenPlc

    Hardware for OpenPLC with raspberry PI Z and Mod. software OpenPlc

    165 parts7
  • 2 layers65 × 56 mmPi hat, the printed circuit board in 3D

    Pi hat

    MaZderMind/jukebox

    Software and Hardware of my RaspberryPi-Jukebox-Project

    98 parts4
  • 2 layers65 × 56.5 mmMeArmPiHat, the printed circuit board in 3D

    MeArmPiHat

    mimeindustries/mearm-pi-hat-pcb

    The Raspberry Pi HAT for the MeArm Pi Edition

    27 parts4