Open Source ATM
-
try
{
0x00,0x00,0x1F,0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x06,0xFA,0x02,0x0A,0x0A,0x0A,0x0A,
0xF2,0xFA,0x06,0x05,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x19,0x26,0x58,0xA0,0x40,0x80,0x04,0x00,0x00,0x00,0x00,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x90,0x6C,0x1D,0x07,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xCF,0xF0,0x00,0x00,0x00,0x0E,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x06,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00,
0x00,0xFF,0x20,0x30,0x20,0xC0,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0,
0xE0,0x70,0x3D,0x07,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x3C,0x50,0xA0,0xC0,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x60,0x38,0x1F,0x07,0x00,0x00,0x00,0x00,
0x00,0xFF,0xE7,0x18,0x10,0x20,0x40,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xC0,0xA0,0x5F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xFE,0x79,0x06,0x01,0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x40,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0xFC,0xE0,0x00,0x00,0x00,0x00,
0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0x7C,0x00,0x00,0x00,0x30,0xFF,0x87,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0xE0,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x40,0xB0,0x58,0x0C,0x14,0x0A,0x06,0x05,0x06,0x02,0x02,0x02,0x02,
0x06,0x05,0x06,0x0A,0x0C,0x1C,0x38,0xF0,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0x28,0x28,0x18,0x0C,0x04,0x06,0x02,0x02,0x02,0x02,0x02,0x02,0x06,0x0A,
0x04,0x3C,0x78,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xD0,0x28,0x14,0x0A,0x06,
0x05,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x0C,0x1C,0x38,0x30,0x00,0x00,0x00,0x00,
0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}; -
Also the image is 248 x 135 which needs changing in the define on the first two lines.
-
whats that and how did you get it?
-
That should be the new logo’s code.
-
So at the moment I have no way of checking, but how did you get that and what did you start with?
I’m going to pop out in a bit and get some components to make up the circuit board, so hopefully a little later we can try some of these things out :)
-
Just trying to find the link. Gimme two.
-
Found. I’m in work, so had to close the window and my history is not set to save. DOH!
http://www.hobbytronics.co.uk/bmp-lcd-converter
Saved your png as a bpm and ran it through the converter listed. Is there enough there? Doesn’t seem like a lot?
-
Ahhh right cool, give me 2 and I will check it against the other one
-
Humm, theres a lot less in your code to that of the original file. Give me a couple of hours or so to go get some hardware and glue some bit’s together and we will see what happens
-
Yeah, it doesn’t seem like much. Thanks. Keep me posted.
-
I’m gonna pin this if that’s ok.
This is getting epic!
-
Sorry guys I got side tracked last night and made no more progress on this than picking up the rest of the components needed.
I’m taking a couple of days with Mrs Muddy for our 2 year anni, but will try and get back on this on Saturday, might even have a coin taker by then :)
Mental note to self save £1 coins for setting up the taker as it needs samples to work from
-
Hey that’s fine man. This is a nice solid project now.
Thank you Muddy, Wyrm and Spynapples for the work so far, and especialy Kevlar for the OP!
-
Yay I have managed to get a successful compile of the code after sorting out a RTClib problem, I don’t have any hardware here with me at all now, so I have to wait till later before I can try anything out :(
I have managed to get together 10 pound coins so if the taker has arrived I’ll get that setup later as well. So that just leaves the QR to Hex conversion to do I think…
-
Nice project !
I’ve some Arduino Uno and Mega laying around with ethernet so modifying/expanding it with Internet/network access isn’t a big problem.
I did look at the code and if i’m correct the SD card is just loaded with 10 Bitcoin QR codes and prints each code on receipt of an appropriate amount of cash correct ?
So this is how it works:
1: generate 10 new FTC addresses
2: pre-load each FTC address with 10FTC (or other amount FTC)
3: export private key for each FTC address
4: generate QR code for each private key
5: upload all 10 QR codes on SD card
6: put SD card in ATM
7: have customer ‘buy’ one or more QR code from ATM (gets printed)
8: customer scans QR code/private key and gains access to FTC address
9: customer can spend x amount of FTC
This is fairly static.
What if we can do this:
1: customer enters x amount of cash into ATM
2: ATM connects to server with amount of cash
3: server generates new FTC address
4: server preloads FTC address with such amount of FTC according to entered cash
5: server generates QR code with private key
6: ATM downloads QR code from server
7: ATM prints QR code for customer
8: customer scans QR code/private key and gains access to FTC address
9: customer can spend 10FTC
:-)
-
From what I’m seeing yes the only thing on the card is the QRCodes and the Logo files
-
Ahh, so the QR codes are images? I presumed there was a list of addresses that were pre-generated and presented as QR codes.
-
Nope, you make the image 1st, then convert it to hex then print it.
Hence all the questions about hex the other day ;)
-
Urgh! I thought that was only for the logo. Damn, that’s going to make things more tricky. I’ll put some time aside this weekend to have another look.
-
The FTC logo is already on github.
The QR generator for the 176x176 pixels png is also on github
You can generate QR images directly on the Arduino but not with the 328/Uno.
You need at least the Mega for that but then you can load just private keys on the SD card.