Vender is free open source VMC (Vending Machine Controller). (fork https://github.com/temoto/vender)
Status:
- MDB adapter hardware module - works
- VMC - works
Required for VMC:
- Works on RaspberryPI, OrangePi Lite (H3) OrangePi PC2(H5). Possibly anything with GPIO that runs Go/Linux.
- MDB signal current limiter - required, see files in
hardware/schematic
(https://namanow.org/wp-content/uploads/Multi-Drop-Bus-and-Internal-Communication-Protocol.pdf) - MDB adapter, takes care of 9bit and timing, we use ATMega328p (168) with
hardware/mega-firmware
. (software option is available: https://github.com/temoto/iodin . in a similar solution, another author made measurements. delay may be up to 10ms. in the specification MDB the maximum delay is 5ms )
Supported peripherals:
- MDB coin acceptor, bill validator
- Evend MDB drink devices
- any MDB device via configuration scenarios (work in progress)
- MT16S2R HD44780-like text display
- TWI(I2C) numpad keyboard
- graphic display (anyone registered in the system.)
VMC overall structure:
- engine (see internal/engine packages) executes actions, handles concurrency and errors
- device/feature drivers provide actions to engine
- configuration scenario specifies action groups and when to execute them
- Install latest Go from https://golang.org/dl/ (now worked on 1.21)
- Set target environment, default is
GOARCH=arm GOOS=linux
- Run
script/build
- Deploy file
build/vender
to your hardware