temoto / vender

Open source vending machine controller firmware
Creative Commons Zero v1.0 Universal
63 stars 20 forks source link

Friendly chat about vending projects #1

Open mhaqs opened 6 years ago

mhaqs commented 6 years ago

I stumbled upon this repository in search of open source firmwares for vending machines. I've skimemd through the source code a bit but cannot put a finger on what hardware this firmware is for. It'd be a good addition to the repo, to have a supported hardware profile or readme that explains, how to use this.

endes0 commented 6 years ago

Its all made in go, so I think is for a Raspberry pi or similar.

temoto commented 6 years ago

@mhaqs we run on RaspberryPi. It could be virtually any machine supported by Go. Readme is a must, of course. I understand it's a bad reason, but didn't put much effort into documentation because it's early development stage. Hold on, I am committed to make this work publicly useful.

Dependencies:

Updated 2019-02: MDB external hardware module is our best choice again.

mhaqs commented 6 years ago

@temoto It's good to know the project's active and you're maintaining it. May be this project could help: http://eliverse.com/wiki/index.php?title=Programming_Vendiverse_VMC_Board?

I know it differs in many respects but I've been meaning to work on a generic firmware myself. I'll go through the repo and see if I can contribute something. This is one of the primary reasons why I wanted to know the project's goal or architecture.

temoto commented 6 years ago

@mhaqs do you know how to see their sources? I couldn't find it with a quick look.

mhaqs commented 6 years ago

I was able to scrape the following files:

http://eliverse.com/downloads/vendiverse/software/ENV/ENV.ino http://eliverse.com/downloads/vendiverse/software/MDB/MDB_STABLE.ino

The last one found here: http://eliverse.com/wiki/index.php?title=Vendiverse_MDB_Module

temoto commented 6 years ago

Thank you.

mhaqs commented 6 years ago

Just so if it helps you @temoto , I looked into the armbian image on the vendiverse website, and it has the python source code. I'm attaching it here, so you don't need to download the whole image.

https://drive.google.com/file/d/1Heywm-dtGibz40IBfigaMmpYiOhnLkyE/view

temoto commented 6 years ago

Thank you. What was interesting to me is references to hardware they used, NFC reader MFRC522 in particular.

mhaqs commented 6 years ago

I think the differences come from using I2C as preferred communication method with the other hardware. The choice of RFC522 might also be because of that.

azonicdh2000 commented 5 years ago

@mhaqs Have you tried making the Vendiverse vmc board?

mhaqs commented 5 years ago

@azonicdh2000 I haven't. I have instead been working on a pi3/udoo equivalent with arduinos instead. It was a bit hard to copy everything vendiverse offers.

This is why I like the approach vender takes. The vmc software should be able to cope with the hardware at offer. However, a configuration of the hardware would be great to start with. I've seen some hardware schematics posted on this repo by @AlexTransit. I will contribute some hardware and software knowledge as well in the near future.

What are you looking for @azonicdh2000? We can move the discussion else where as well.

temoto commented 5 years ago

The key takeaway from Alex schematics is UART-MDB converter. It is optoisolated logic level 3.3-5V switch with level inverter on one line, as per MDB spec. It works, use it. Huge thanks to this person http://blog.bouni.de/2012/the-mdb-protocol-part-1.html

As of 2018-11-22 vender has (maybe alpha-beta) support for MDB coin changer and bill validator. Right now we work on drink preparing devices, and overall "kitchen" codebase, like recipes. Next step is user interface after which we'll have something to show and talk about.

azonicdh2000 commented 5 years ago

@mhaqs I’m trying to create the Vendiverse vmc board. So which part of the vendiverse was a bit hard to copy? Was it the main vmc board or tray board?

Yes maybe we should move to another discussion for vendiverse.

But I will try to look at vender.

azonicdh2000 commented 5 years ago

@mhaqs were you able to obtain all of the files of vendiverse? If so can you share it with me? Thank you. My email add is azonicdh2000@yahoo.com

mhaqs commented 5 years ago

@azonicdh2000 The vendiverse website is now down, but I've hosted the contents here: https://github.com/mhaqs/vendiverse. You may move this discussion over there as well.

The vendiverse project does not talk about the motor control matrix. So, to answer your question, and to help with this project, I found this:

https://github.com/CCHS-Melbourne/vend-matrix

It shows, how you can use continuous motors in a matrix and to sense a low current to finish a vend. cc @AlexTransit , if that helps.

DarkOctane commented 5 years ago

@temoto Hey I just found your project! I'm also making open source vending software, mine is just focused on the MDB protocol specifically. Do you have any interest in merging projects or anything like that?

My project is currently aimed to run on an ESP32 development board, but can be modified to work on most other hardware. The end-goal is to have it run as a module on a linux operating system (once finished) as a module, so sticking as closely to C code as possible is a requirement for mine.

Anyways, if it's of interest, let me know, because that'd be pretty cool.

DarkOctane commented 5 years ago

As in it'd be cool to have some sorta help, but also cool if no help was had, and someone found it useful (it's not currently operational, but will be soon).

temoto commented 5 years ago

@mr-darker hello mate. We just finished MDB translator device code two days ago https://github.com/temoto/vender/tree/05de26478b9932c53c0d676d7333c4d4d9286967/hardware/mega-firmware It's for ATMega328 and TWI(i2c) interface to master board (raspberrypi/orangepi in our case) but I can see how ESP family would be useful with their communication options.

I'm interested in any open vending software/hardware effort. We can start by creating Github organisation and some communication channel (not sure what is popular these days). Code merging is a good idea, let's talk details in a separate topic.

What kind of help you need?

Are you developing a vending machine?

DarkOctane commented 5 years ago

@temoto I made a separate forum for this topic. I don't really have a communication preference.

smashah commented 5 years ago

Hey there,

Just wonder what everyone thinks of this bit of kit:

https://www.aliexpress.com/item/Raspberry-pi-to-vending-machine-MDB-cashless-interface-adapter-board-with-housing-working-with-bill-acceptor/32883995334.html

They haven't shared any library or code with me yet. Will this repo work with this hardware?

temoto commented 5 years ago

@smashah hello.

Will vender work with this MDB / RS-232 adapter hardware?

Not right now. By design vender is ready for another MDB adapter. I will happily help to write required code.

I think 95$ for a simple PCB is too much. We have made custom MDB / I2C adapter exactly because alternatives have unreasonable prices. Our adapter is less than 3$ in parts, both schematic and firmware is open source here. If you are comfortable with soldering, I suggest make our adapter. I can make and send you one.

temoto commented 5 years ago

For anyone interested, using this as public announcement channel.

Current project state is "one issue from public installation". Ingredient state is lost on power off.

Now is good time to begin integration with other hardware. Please contact me if you want to run this VMC. temotor@gmail.com

mhaqs commented 5 years ago

@temoto I've been following this project for a while. I'd like to set up the VMC and help the project while doing so as well. I've a Raspberry Pi B+ and an Arduino Uno R3. Some other hardware that I can procure as well.

I was wondering about a plan on how to go about running the project on said hardware and have the bare minimum of MDB device and a motor control array (maybe).

shirerre commented 2 years ago

I'm interested in this project or at least in someone helping me to develop something similar. I need a vending controller that utilize mdb can accept coins and dollars. Make change. And basically activates a relay upon correct change being presented and the relay closes when a sensor/switch is tripped. I'm trying to replicate the board utilized by the BillMate 2 attached to the old national 222 cigarette machines.

temoto commented 2 years ago

@shirerre

I'm interested in this project or at least in someone helping me to develop something similar. I need a vending controller that utilize mdb can accept coins and dollars. Make change. And basically activates a relay upon correct change being presented and the relay closes when a sensor/switch is tripped. I'm trying to replicate the board utilized by the BillMate 2 attached to the old national 222 cigarette machines.

If your task is really that simple to activate relay without complex scenario, telemetry, etc, probably your best option is to build mega component only (atmega328p powered MDB converter) and put relay activation logic directly into it. See files in hardware/schematic and hardware/mega-firmware accordingly.

This board successfully worked with ICT and JCM money hardware. Beware, it is sensitive to power noise, we didn't have enough electronic expertise to make proper filter.