Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/temoto/vender
Open source vending machine controller firmware
https://github.com/temoto/vender
mdb-adapter status-working vending vending-machine
Last synced: about 2 months ago
JSON representation
Open source vending machine controller firmware
- Host: GitHub
- URL: https://github.com/temoto/vender
- Owner: temoto
- License: cc0-1.0
- Created: 2016-01-25T06:41:58.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-10-11T23:27:20.000Z (about 1 year ago)
- Last Synced: 2024-10-31T15:53:09.290Z (2 months ago)
- Topics: mdb-adapter, status-working, vending, vending-machine
- Language: Go
- Homepage:
- Size: 13.7 MB
- Stars: 63
- Watchers: 14
- Forks: 20
- Open Issues: 5
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# What
Vender is free open source VMC (Vending Machine Controller).Status:
- MDB adapter hardware module - works
- VMC - in development
- Configuration editor - planned# Hardware
Required for VMC:
- Works on RaspberryPI and OrangePi Lite (H3). Possibly anything with GPIO that runs Go/Linux.
- MDB signal level inverter and current limiter - required, see files in `hardware/schematic`
- MDB adapter, takes care of 9bit and timing, we use ATMega328p with `hardware/mega-firmware` It is not mandatory, software option is available: https://github.com/temoto/iodinSupported 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
- SSD1306-compatible graphic display (planned)# Design
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# Build
- Install Go 1.15 from https://golang.org/dl/
- Set target environment, default is `GOARCH=arm GOOS=linux`
- Run `script/build`
- Deploy file `build/vender` to your hardware## Supported Go versions: 1.13 and 1.15
Vender compiled with Go 1.13 was successfully running in production until release v0.200630.0.
Go 1.14 introduced async preemtible runtime by interrupting syscalls. Go 1.15 os and net packages automatically retry on EINTR.