Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Friendly chat about vending projects #1

Open
mhaqs opened this issue Sep 10, 2018 · 25 comments
Open

Friendly chat about vending projects #1

mhaqs opened this issue Sep 10, 2018 · 25 comments

Comments

@mhaqs
Copy link

mhaqs commented Sep 10, 2018

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
Copy link

endes0 commented Sep 10, 2018

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

@temoto
Copy link
Owner

temoto commented Sep 10, 2018

@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:

  • Go supported arch
  • MDB requires soldering even with software choice below or we can talk about manufacturing
    • Custom hardware device (with ATMega328) -- best option so far, both schematics and code is available in this repo.
    • GPIO bit-banging -- works, thanks to pigpio library, MDB latency is half of maximum (5ms) per spec, maybe latency can be fixed with kernel scheduler settings.
    • With Linux kernel 4.9+ it's possible to do 9bit serial using termios -- easiest, but least reliable option. MDB latency is 4ms, close to max per spec (5ms). I've seen good report on stackoverflow about USB-serial hardware module with async_low_latency flag. That flag did not affect built-in UART in Raspberry1.
  • 4 GPIO pins for MT16S2R like display driver (as of 2018-09 in development)
  • TWI (I2C) for a numpad keyboard

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

@mhaqs
Copy link
Author

mhaqs commented Sep 11, 2018

@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
Copy link
Owner

temoto commented Sep 11, 2018

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

@mhaqs
Copy link
Author

mhaqs commented Sep 11, 2018

@temoto
Copy link
Owner

temoto commented Sep 11, 2018

Thank you.

@mhaqs
Copy link
Author

mhaqs commented Sep 17, 2018

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
Copy link
Owner

temoto commented Sep 17, 2018

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

@mhaqs
Copy link
Author

mhaqs commented Sep 20, 2018

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
Copy link

@mhaqs Have you tried making the Vendiverse vmc board?

@mhaqs
Copy link
Author

mhaqs commented Nov 22, 2018

@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
Copy link
Owner

temoto commented Nov 22, 2018

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
Copy link

@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
Copy link

azonicdh2000 commented Jan 22, 2019

@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 [email protected]

@mhaqs
Copy link
Author

mhaqs commented Feb 3, 2019

@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
Copy link

@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
Copy link

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 temoto changed the title Hardware information Friendly chat about vending projects Feb 6, 2019
@temoto
Copy link
Owner

temoto commented Feb 6, 2019

@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
Copy link

DarkOctane commented Feb 6, 2019

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

@smashah
Copy link

smashah commented Mar 11, 2019

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
Copy link
Owner

temoto commented Mar 12, 2019

@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
Copy link
Owner

temoto commented Jul 19, 2019

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. [email protected]

@temoto temoto pinned this issue Jul 19, 2019
@mhaqs
Copy link
Author

mhaqs commented Jul 22, 2019

@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
Copy link

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
Copy link
Owner

temoto commented Apr 22, 2022

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants