Open Source ATM
-
Ok, the Github repo has been updated and the code now reads like a FTC ATM.
Obviously testing is required, and I’m still getting my head round the logo bitmap, but I hope to have that sorted by the start of next week.
I can test aspects of the code on my Arduinos here at home, but I don’t have an SD card shield so will have to rely on others to do full testing.
Have fun!
-
Also some things to bear in mind:
The RTC (clock) that is being used is very inaccurate, it loses about 2 minutes a week. I know it’s only used for logging the timestamp of each transaction, but I’d recommend leaving the “Set Clock” flag set and uploading the sketch to the Arduino before every use, such as before a demo at the Oxford Blue for example.
Following on from that, I’d make it so the Arduino is easily accessible to access the SD card and plug the USB cable in to re-upload the sketch. If it was just the USB cable, I’d say put a USB B socket on the case, but as you’ll need to access the SD card, I’d say make the casing open easily. Not good physical security, but this is a PoC, right?
-
I’m still getting my head round the logo bitmap, but I hope to have that sorted by the start of next week.
That might be something I can help with. Is it documented?
-
Not very well, it is a whole string of hex bytes, I’ve been playing with it in Paint and a hex editor, but not got aywhere yet.
In Github, the logo.oba file is a text file which contains the width and height attributes and the actual bytes, and the sketch sort of steps through how its printed but I’m still working out the details. In the sketch, the header length is declared, so I’m thinking that if I strip this number of bytes, I should get the actual bitmap bytes (the header length is 25 bytes) but when I manually tried to create a bitmap from some online guides using the bytes in the logo.oba file, it failed rather miserably.
ignore the .oba extension, it is just a 3 letter contraction of OpenBitcoinATM, I’ve just changed that in the new sketch to .ofa
-
Spynappels, once again many thnaks for your help on this little project. I had a quick look throught the code in the wee hours of the morning (sometimes I wish I could just sleep) and all though I would have no idea how to start from scratch, there are certain things in there that look abvious as to their purpose.
I’ve never used a Arduino before, so I’ve done a bit of reading up on that as well and it seams simple enough to get my head around, adn I’m sure once it arives and I have it connected the gaps will instantly be filled in.
Point taken about the RTC and re-loading the sketch before each demo/outing
I’ll make sure things are mounted in the case when we get that far in such a way as you can gain easy access to the USB and SD slot of the Arduino, the case is going to need to be opened fairly easyily so that the cash can be removed from it, but I do take your point about physical security.
I can design/build a case that can with stand a 30min beating with a basball bat if you want me to but your not going to like the cost or the weight of it >:D
Yes this is a PoC to prove it can be done and also to take to a few places on my travels for a bit of fun, I would love to get it to the OB for next months meet-up and know the guys I meet down there last month will enjoy feeding it pound coins :)
I was going to look at the QR generation and conversion process today, as I want as many bits of the puzzle finished before the hardware arrives so testing can begin as soon as.
Thanks again guys for helping me make this happen, I liove the community spirit here and I’m proud to call this place home
UM
-
Don’t know if it’s going to be any help to you but here is a link to some documentation for the printer
http://skpang.co.uk/catalog/thermal-printer-p-1160.html
It’s not the site I used for the purchase, but they do seam to have all of the documents linked on this one.
-
If you guys can actually pull this off, I’ll pay in whatever currency you like +more for labor and also shipping to get my hands on one…
I would love to have one ahy… I could just chuck in all my spare change and buy my ftc that way :D
EDIT
OK… So I just thought about what I said… The ATM doesn’t magically send the coins to the seller… what am I missing here…
-
LOL well done Calem, no this version won’t it needs to be populated with private keys 1st, and then coins sent to the public keys of those private keys. So there has to be an element of trust involved as I will have seen the private keys, and you have to trust that I have loaded the wallets with the coins.
The idea is it goes open source, so everything you need will be avaialbe to you. Whilst hunting for hardware yesterday I came across quite a lot of bits on Oz eBay, I know you don’t like it but it is a valubale resouce when hackin things together. As far as the casing would go, all you need to find is a company local to you that can take a CAD drawing a laser cut you some steel, maybe a little bit of bending and welding and that should be you done. So you can have your very own machine over there without the cost of me building it or shipping ot to you, and you get that warm fuzzy feeling that you have made something :)
The next version, still in my head will be a lot more advanced. I’ll try and get something written down for features at some point but I gotta work again today and then I’m going to the Oxford Blue for the meet up tomrrow.
-
Not very well, it is a whole string of hex bytes, I’ve been playing with it in Paint and a hex editor, but not got aywhere yet.
In Github, the logo.oba file is a text file which contains the width and height attributes and the actual bytes, and the sketch sort of steps through how its printed but I’m still working out the details. In the sketch, the header length is declared, so I’m thinking that if I strip this number of bytes, I should get the actual bitmap bytes (the header length is 25 bytes) but when I manually tried to create a bitmap from some online guides using the bytes in the logo.oba file, it failed rather miserably.
ignore the .oba extension, it is just a 3 letter contraction of OpenBitcoinATM, I’ve just changed that in the new sketch to .ofa
I’ve dealt with these sorts of things in my job. From what I remember last time we configured an old till printer, years ago, the Hex denotes if a pixel is ‘on’ or ‘off’, black or white. I’ll brush up on the subject.
-
Yeah, I can do this.
-
That’s what I though, what worried me is that there was not just 0x00 and 0xff, there are other hex values too. Does this mean that each hex byte controls 8 pixels?
-
Ahh, I would have thought the same as you. Still reading up.
Have a look at…
http://www.ht-lab.com/freeutils/bin2hex/bin2hex.html
There are ways to convert two colour binary Tif into Intel Hex and it’s pretty well documented. I’m in work, so can’t give it my full attention.
-
And this…
-
I saw that the dogecoin guys made something like this using a brief case as the container. In theory this could save us some dosh if we used a security style brief case as it is already easy to open is secure and has a locking mechanism (combo locks?) obviously it would need to be cut into to fit the coin / note reader?
something like this?
-
Fudge me thats expensive. Kris I don’t expect the laser cut blank to be more than £10 to be honest looking at it on the screen here.
I lock and hinge from somewhere prob no more than another £10, little bit of bending and welding. Job done!
-
Is this the dimensions?
#define 0w90
#define 0hA0
144 x 160?
-
You working on the logo or the QR code?
-
That’s from the logo file.
-
Looks about right in pixels to me for the BTC logo I have seen on there site.
Without printing something out that size, I can’t be 100% thou.
UM
-
Ah right yeah £50 is canny expensive but I don’t think I was expecting you to say it would only cost £20 to get the case made. Lol