vender
vender copied to clipboard
second hardware configuration
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).
Originally posted by @mhaqs in https://github.com/temoto/vender/issues/1#issuecomment-513727955
@mhaqs hello, moved this to separate thread if you don't mind.
For a plan, please:
- describe in text an end result you like to see
- list MDB devices
- specifically what motor control array, how to operate it? Datasheet?
@temoto Thanks for creating a separate issue for this. I think it's better this way. I have sent you an email with my supposed motor control array setup/schematic. As an end result (even if it's creating a vending machine), I'd like Vender to be able to help with the basic of operations:
- Help and control MDB devices (Cash, Coin like ICT and Cashless like Nayax)
- The MDB devices can be in master/slave set up but that's not an issue for now.
- I've shared my humble design of a motor control array with you over email. See if it's valid at all to work with Vender.
- My design includes Raspberry Pi and Arduinos over I2C. The reason behind this was to have a modular system where, I can replace Pis and Arduinos in and out as needed or upgrade them over the air in the future. But this is again a very far fetched idea.
As an MVP, if Vender can build/sit on the Pi and control these devices; I can use that knowledge to build more and understand the code base. I can then contribute my findings and build/contribute from there.
Let's start with connecting Raspberry to MDB as we did. Roadmap:
- (mandatory) UART-MDB level inverter / current limiter
- one of
-
- operate MDB from Raspberry (might have 5ms ACK timeout issue, may be solved with kernel tuning, I will help, but be ready that it may not be stable)
-
- operate MDB via atmega-like mcu (currently works for us); be warned and ready that after uploading our firmware you may not ever use that mcu as Arduino with USB. We don't have Arduino, so I'm just warning about worst case scenario, most likely nothing irreversible happens.
Are you comfortable with installing KiCad program? Alex did all hardware schema in it and I don't know if anything else would open their files. Please study these
- https://github.com/temoto/vender/tree/master/hardware/schematic/KiCad
- https://github.com/temoto/vender/tree/master/hardware/evend-adapter/kicad and/or this
- http://blog.bouni.de/2012/the-mdb-protocol-part-1.html
If done properly, you should have working UART-MDB level invertor / current limiter.
At this stage I highly recommend having digital sampling oscilloscope. It feels stupid helpless to see things "just not working" when you don't know where exactly. It's possible to use Raspberry as DSO, search: [piscope] or https://abyz.me.uk/rpi/pigpio/piscope.html
Just to make it absolutely clear, to talk MDB, you should make small hardware component which inverts UART Tx. http://blog.bouni.de/2012/mdb-levels.svg I don't know any way around this.