Open Fethercoin ATM is an open-source automated teller machine for education and experimentation. Based on John Mayo Smith’s OpenBitcoinATM which can be seen in action here
A “voucher” is printed containing a private key QR Code that has been pre-loaded with the correct value of Feathercoin for the denomination deposited during the setup stages.
Designed to work with any currency taken note or coin that outputs a number of pulses per denomination deposited.
The original development thread can be found here on the Feathercoin forum
Components
Where possible links are to retail type stores and not to eBay as listings come and go, but don’t be scared to get out there and hunt these things down, eBay is a great place to start and as projects move on for me check out the Feathercoin Market Place as I will be listing old hardware on there from time to time. I have no affiliation with any of these stores, but I have tried to use the fewest amount possible to reduce postage costs if you just want a point and click solution.
–Arduino Uno (http://www.phenoptix.com/collections/arduino-main-boards/products/arduino-uno-r3-open-source-electronics-prototyping-platform)
–Arduino SD Shield with Real Time Clock (RTC is used for transaction logging) (http://www.phenoptix.com/products/adafruit-assembled-data-logging-shield-for-arduino-1141)
–A2 Micro Panel Thermal Printer DC5-9v 1.5A (http://www.phenoptix.com/products/adafruit-mini-thermal-receipt-printer)
–CH-926 Coin Acceptor (http://www.amazon.co.uk/Sintron-Acceptor-Vending-Machine-Message/dp/B00C16P03I)
–Matrix Board (http://www.maplin.co.uk/p/39117-srbp-matrix-board-strip-jp51f) – A small section of this was used to mount the components on, and the diagram for such is in with circuits section of the project
–Relay (http://www.maplin.co.uk/p/12v-dc-2a-spdt-sub-miniature-relay-n15aw) – Unlike the original design the CH-926 doesn’t have an enable pin, so a relay was added to control the power to the CG-926 when the card was empty of QR Codes
–Diode (http://www.maplin.co.uk/p/15ke12a-200a-unidirectional-transient-voltage-suppressor-diode-n92ca) – To provide a reverse bias across the relay coin to protect the Arduino from back EMF. This diode is probably total over kill for what it’s being used for, but it was all I could get my hands on a short notice as I was trying to complete the build-Power Connector (http://www.maplin.co.uk/p/maplin-4-way-01-inch-series-straight-pcb-latch-plug-header-yw11m) – I used this as it provided some polarity check on the input from the PSU, get it the wrong way round and all of a sudden the magic smoke will come out of a lot of the components as your giving them +12v instead of +5v you can use the normal pins listed below if you like, but make sure that you connect the FDD connector the right way round or the smoke will be out and things will never work again!
–2.54mm Pin Strip (http://www.maplin.co.uk/p/254mm-pin-strip-jw59p) – Used to enable the reuse of a lot of the components, also handy for adding to the RTC Shield to avoid direct solder connections.
–Jumper Cables Female/Female (http://www.phenoptix.com/collections/prototyping/products/solderless-breadboard-jumper-cables-25-piece-colour-coded-wire-kit-female-female-f-f) – Used with the above pins to remove the need for direct solder connections to components that maybe re-used at a later date
PC Power Supply – The reason for using this is you’re going to need +5v and +12v for the project, I had a old 300W PSU in the house, also they are standard fitment the world over so the CAD files will work no matter where you are in the world. I utilised the FDD connector as I could get a pin connector that would stop the connector being put on the wrong way round, therefore making sure +5v was not +12v
–SD Card – Anything will do here, it doesn’t have to be fast and the size depends on how many QR Codes you want to store on it without topping it back up again.
Miscellaneous bits of wire, heat shrink sleeving, soldering iron, solder, etc…
The casing was custom built for the project, designed to be reasonably secure when closed, but also able to be run open so people can see whats going on if your doing demo’s etc.. But I’m sure there are many weird and wonderful ideas for cases that will spawn from this. If you’re interested in having one of the cases built by us drop me a PM via the Feathercoin forum
Software
There are a few software components needed to get everything up and running, again I will use external links where possible but please be wary of software version numbers as a few of the problems caused during testing where caused by incompatibility between versions.
Arduino – http://arduino.cc/en/Main/Software#.UyWNcvl_sbg at the heart of the ATM is an Arduino, I used version 1.0.5-r2 for the testing and setup.
QR Code Maker – https://github.com/mayosmith/BitcoinQRMaker further work from John Mayo Smith, provides the correct size QR Code output for the ATM
OpenFeathercoinATM on github – https://github.com/uncle-muddy/openfeathercoinatm the final version used for the project at launch, I’m not going to say that the code is tidy, infact I would go as far as to say it’s a mess. But it does work.
The following links are provided for reference
openbitcoinatm on github – https://github.com/mayosmith/openbitcoinatm the work of John Mayo Smith and where it all started.
The original openfeathercoinatm on github – https://github.com/spynappels/openfeathercoinatm the original work carried out by spynappels to get the project off the ground and fork the ATM from Bitcoin to Feathercoin.
Assembly
Step 1 – Build the circuit board
You’re going to need basic soldering skills for this. It’s not difficult take your time and double check everything! My original interest in electronics came from my grandfather, god rest his soul, he taught me a few things along the way and I’ would like to share a couple of them with you now.
After you think you have finished soldering it all together, don’t get excited and plug it in straight away. Go and do something else for 10 minutes, come back and check it again.
If you’re working with matrix board, strip board, vero board (or whatever it’s called in your country) take a small flat bladed screwdriver and run it up and down between the tracks of the board before you connect anything, after doing this, check track to track that you don’t have a connection with a meter.
There are now two tracks next to each other in this layout that will meter out as a short circuit, so for the sake of a couple of minuets test all the tracks, a short in the wrong place will dump +12v into a +5v component and the smoke will come out! If you look at the revisions of the code you will notice that a Pin number changes and stays changed, the reason for that is +12v down a +5v output track on the Arduino, lucky escape on my part as it only fried that Pin and not the complete board, but consider yourself warned!
circuit_diagram.png show the schematic layout of what should be going on, again all of the Pins are configurable in the code, so anything on the Digital I/O side of things can be changed if needed for your implementation. circuit_layout.jpg shows the component layout on the matrix board, this is looking down from above with the copper tracks on the underside of the board, and the components being placed on the upper side. As you can see I used a 16×17 section of board, it could be condensed into something a little smaller, but it just gets to fiddly for me to deal with.
Item Value
D1 1.5KE12A 200A Unidirectional Transient Voltage Suppressor Diode
J1 Printer Power
Pin 1 – +5v
Pin 2 – GND
J2 Printer Signal
Pin 1 – GND
Pin 2 – Data TX (Yellow)
Pin 3 – Data RX (Green)
J3 Power In
Pin 1 – +12v
Pin 2 – GND
Pin 3 – GND
Pin 4 – +5v
P1 Arduino +5vin
P2 Arduino GND
P3 Arduino Pin 6
P4 Arduino Pin 5
P5 0v Coin Taker (Black)
P6 Coin Taker Pulse (White)
P7 Arduino Pin 2
P8 Arduino Pin 7
P9 +12v Coin Taker (Red)
Relay1 LU-5 Relay
A couple of pointers
Solder the link cables in 1st, it’s so much easier if you put all of these in first before you have other components in the way stopping you from laying the board flat.
Pin 1 of the multi pin connectors is designated by the square on the layout diagram, and in my layout they are always to the north edge of the board.
If you get D1 in the wrong way round all that happens is the relay does not switch when you run out of QR Codes, so if this is your problem investigate the orientation of D1 1st. The two “X” on the diagram dictate that you need to cut the tracks at this point, I find a 3mm drill bit takes care of this. You’re not aiming to drill though the board just to cut away the copper connector, once done check with a meter either side of the break to make sure the track is open circuit across the break.
Step 2 – Setup the Arduino
Take the RTC sleeve, the one I purchased required you to solder on the pin strips to allow connection to the Uno, as you can see from the photos, we added additional pins to the sleev for the connection of the circuit board.
Topside of the sleeve, showing the additional pins soldered in place to allow reusable connections
Push the sleeve onto the Uno and install the battery in the RTC if required, as I discovered the RTC on the board I purchased did not function without the battery being installed.
Make the required connections to the Arduino/Sleeve setup as per the circuit diagram, if you’re following the design we have you should have six cables between the circuit board you made in step 1 and the Arduino/Sleeve setup. Download the latest version of the OpenFeathercoinATM
Link: https://github.com/uncle-muddy/openfeathercoinatm
Connect the circuit board to the PSU 1st and then connect the Arduino to the USB port, do it in this order to avoid damaging the USB port on your computer by drawing too much current from it. Remember that once the sketch is uploaded the USB connection to the computer is no longer required.
Open the openfeathercoinatm.ino sketch and edit the lines mentioned in the Quick Config section below as a minimum to get you up and running
For more detail: [FTC] Open Feathercoin ATM