• Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
    C++
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sniff a Multidrop Bus data stream and make it human readable

MDB Parser

Update

You are welcome to contact me about this project but I won't be moving forward on it. I was ripped off by the company that promised to sell my vending machine on consignment; I no longer have access to the hardware. I have moved on to bigger and better things. Getting me a machine and some testing hardware will not be enough - no two VM makers follow the MDB protocol the same way, the edge cases are painful. Good luck with your project!

What

Modern vending machines voluntarily adhere to the NAMA standard for Multidrop Bus (MDB). If these steps are correctly duplicated then this will output to the Arduino serial window a human-readable interpretation of the conversation taking place inside the vending machine between the various peripherals and the VMC.

Why

Many people want to create devices that "speak" MDB and can interact with a vending machine. Some examples include adding an RFID reader, Accepting payment with BitCoin, touch screens, and discount for secret knock.

How

This code is meant to be Arduino firmware. It assumes that the vending machine components adhere to the MDB 4.2 standard. There are three required components:

  • A physical circuit you will have to build/source. Section 4.4 of the standard describe the circuit. An example schematic from the Nottingham Hackspace Wiki has been included in this distro.
  • Arduino #1 runs "near_MDB" firmware. A1 connects to the physical circuit through the hardware serial. This means the hardware serial is not avilable to output data to a PC.
  • Arduino #2 runs "near_PC" firmware. A2 connects to your PC through a USB cable. A2 pin 10 connects to A1 pin 11. A2 pin 11 connects to A1 pin 10.

Don't forget the common ground between A1 and A2.

Who Where When

Created by Dan Royer ([email protected]) for the vending machine at the Vancouver Hackspace April 16, 2014.

"If I have seen further it is by standing on the shoulders of giants." -- Isaac Newton

Based on previous work from Nottingham Hackspace members James Hayward and Matt Lloyd.

More

More Repositories

1

Makelangelo-software

Software for plotters - especially the wall-hanging polargraph also called Makelangelo.
Java
345
star
2

GcodeCNCDemo

a simple example of making a CNC machine from an Adafruit Motor Shield
C++
210
star
3

Robot-Overlord-App

Simulation and control software for robots
Java
172
star
4

weaving_algorithm

weaving thread between nails in a circle to produce an image.
Processing
163
star
5

Makelangelo-firmware

CNC firmware for many different control boards and kinematic systems. Originally the brain of the Makelangelo art robot.
C++
158
star
6

Rotary-Stewart-Platform-2-firmware

Firmware for the Rotary Stewart Platform 6-axis motion control system
C++
43
star
7

Delta-Robot

Hobby scale for teaching basic robot concepts
Arduino
37
star
8

sixi-2

Sixi 2 Robot Arm
nesC
34
star
9

Skycam

Moving a weight hung on four cables pulled by motors at the top corners of a box
C++
28
star
10

Delta-Robot-v3-firmware

Delta Robot v3
C++
25
star
11

sixi

Sixi Robot Arm
22
star
12

Arm3

A stepper powered, Arduino based 3DOF palletizing robot based on ABB460
Arduino
18
star
13

GcodeSender

Sends file commands to a serial connected device
Java
18
star
14

RotaryStewartPlatform

Controls for a Rotary Stewart Platform hobby servos
Arduino
17
star
15

ArduinoStarterKit

Sample code for our Arduino Starter Kit tutorials
C++
16
star
16

armTorqueCalculator

Calculating forces serial manipulators like robot arms
Processing
12
star
17

Hexapod-firmware

A simulator for a 6-legged crab robot
Java
10
star
18

NodeGraphCore

Core elements for Data flow programming
Java
9
star
19

chiuEtAl2015

Implementation of Chiu Et Al 2015, "Tone‐ and Feature‐Aware Circular Scribble Art"
Processing
8
star
20

ArduinoTimerInterrupt

Example of how to use the internal clock interrupt TIMER1.
Arduino
6
star
21

Camera-PanTilt

Firmware to move a camera pan/tilt system with very high precision and repeatability.
Arduino
5
star
22

Dial

Java Swing Dial UX
Java
5
star
23

makelangeloFirmwareAMS

firmware for makelangelo version <=2
C++
5
star
24

Neopixel_clock

a single line clock using Neopixel LED strips and an Arduino
Arduino
5
star
25

vnh5019_linear_actuator

How to control an electric linear actuator with an Arduino
Arduino
5
star
26

stewart-platform-animatronic

PCB design for animatronic stewart platform
C++
5
star
27

AS5147Test

testing AS5147 sensor
C++
4
star
28

DogML

Unity + machine learning + quadruped
Python
4
star
29

processingPhysics

Physics in Processing
Processing
4
star
30

sixi-joystick

Sixi 2 joystick firmware, STL, and PCB files
C++
4
star
31

zarplotter

simulations and tests of zarplotter style four-motor drawing robot
Processing
4
star
32

LED8x16tetris

an 8x16 WS2811 LED tetris game
Arduino
3
star
33

cycloidGenerator2

generates profiles for cycloid gearbox parts
Processing
3
star
34

micromouseSketches

Processing sketches related to micromouse maze solving robots.
Processing
3
star
35

open-source-servo

rotation sensor + stepper motor = servo!
Arduino
3
star
36

Donatello

Editor for Flow Based Programming
Java
3
star
37

Twitch-Jigsaw-Robot-Controller

Twitch finishes a jigsaw puzzle!
HTML
3
star
38

two-daisy-chained-shift-registers

how to daisy chain shift registers, with schematic diagram.
KiCad Layout
2
star
39

A4988tester

Example code to drive an A4988 stepper motor driver carrier
Arduino
2
star
40

one-shift-register

tutorial resources for connecting one shift register to an arduino
KiCad Layout
2
star
41

LED-grid-8x8

How to use an 8x8 LED grid
KiCad Layout
2
star
42

arduinoMorse

How to make an Arduino blink any message in Morse Code
Arduino
2
star
43

POVSpinner

Spinning LED persistence-of-vision tutorial
C++
2
star
44

PolargraphDifference

Visualizing the mathmatical errors in polargraph setups
Processing
2
star
45

beltMeasurementMachine

A machine to measure precise amounts of timing belt.
C++
2
star
46

robotOverlordArms

Robot arms supported in Robot Overlord app
1
star
47

SpotMicroMissingManual

Missing Manual for Spot Micro robot
C++
1
star
48

MarginallyClever.github.io

Marginally Clever Project descriptions
1
star
49

gcodeBorder

Processing
1
star
50

ELEC-0112-Touchless-Endstop

ELEC-0112 Touchless Endstop example code for Arduino
Arduino
1
star
51

shift-register-tetris

Shift registers and LED grids to teach basics of programming
KiCad Layout
1
star
52

kernighanlin

kernighan lin TSP solving demonstrated in Processing
Processing
1
star
53

RGBLEDMarquee

A full color scrolling text sign that updates on the fly
Arduino
1
star
54

10MinuteCode

Each project takes me about 10 minutes. They build on each other.
Processing
1
star
55

stepperClock

stepper driven analog-style clock with controls, good for film production
C++
1
star
56

TriangleInTestProcessing

Interactive point-in-triangle test in Processing
Processing
1
star
57

fourDigitSevenSegmentDisplay

practical examples, schematics, kicad project.
KiCad Layout
1
star
58

fontConverter

converts black & white bitmap font to 1s and 0s for programmers
Processing
1
star
59

DelaunayTriangulationTest

Interactive Delaunay Triangulation In Processing
Processing
1
star
60

kmeans

k-means clustering demo for Processing
Processing
1
star
61

lineClipTest

line segment/box clipping test in Processing
Processing
1
star
62

LED8x8

How to direct drive a one color 8x8 LED grid from Arduino
Arduino
1
star
63

LEDCube

Arduino code to control LED cubes
Arduino
1
star
64

shared-anodes-and-cathodes

Shared anodes and cathodes example
KiCad Layout
1
star
65

processingErosionMap

Erosion sim in processing
Processing
1
star