Instructables
Picture of Open Bitcoin ATM

The world's first completely open-source Bitcoin ATM for Education and Experimentation.

http://openbitcoinatm.org for more information.

 
 
Remove these adsRemove these ads by Signing Up

Step 1: Fabricate Box and Faceplate

Picture of Fabricate Box and Faceplate
OBCATM_bak.jpg
Out of a piece of 12″x12″ aluminum sheet metal, cut two rectangles and drill six rivet holes and four holes to attach the bill acceptor.

Cut aluminum angle into two 11 1/2″ lengths.

For each aluminum angle, drill and tap two holes; drill three faceplate rivet holes.

Rivet the two aluminum angles to each side of the faceplate. Allow room (about 1/8″) to overlap with the front of the box to create flush surface; make sure aluminum angles are positioned to lie flush on the inside of box.

Drill four holes through the box that exactly align with tapped holes in aluminum angle.  (tip: if using acrylic, set drill to reverse, and gently apply pressure to prevent cracking).

Measure 16″ leads, solder  one end to barrel plug and other end to J2 connectors.  Attach barrel plug to back of box. Tape leads to base of box.


Step 2: Attach Bill Acceptor and Printer

Picture of Attach Bill Acceptor and Printer
Position printer in faceplate and attach using bracket provided.

Position bill acceptor and attach using four screws, washers and nuts.

Step 3: Provision Arduino

Picture of Provision Arduino
Download and install Arduino environment from here.

Download openbitcoin.ino from here https://github.com/mayosmith/openbitcoinatm

Attach Arduino Uno to computer USB port.

Upload openbitcoin.ino to Arduino Uno.

http://openbitcoinatm.org for more information.

Step 4: Attach Resistor and Leads

Picture of Attach Resistor and Leads
OBCATM_JST-Connect.jpg
openbitcoinatm-circuit.png


Solder resistor and leads to SD shield as shown (note updated circuit diagram with pull up resistor)

Step 5: Attach SD Shield and Components



Attach SD shield to Arduino Uno.

Cover back of Arduino Uno with insulating tape.

Attach 5V power supply to back of faceplate (high strength velcro works well).

Attach Arduino/SD shield to back of faceplate with (high strength velcro).

Connect J2 connectors.

Step 6: Create QR Codes

Picture of Create QR Codes
Create a few dozen private keys at bitaddress.org.

Convert private keys to 176 x 176 pixel QR codes (sample pictured above).

Convert QR codes to thermal printer format. Sample QR code in thermal printer format:  BTC_4.btc (see http://openbitcoinatm.org for more information)

Here’s a hack that makes this process a snap:

https://github.com/mayosmith/BitcoinQRMaker

Here’s a wallet that can read the QR code:

https://blockchain.info/wallet/

This is AMAZING, but, how do you get the money out...

brendio1 month ago

So you would need to have a fixed BTC<->USD exchange rate. Not easily able to change it without resetting the whole thing and using new QR codes, right?

mayosmith (author)  brendio1 month ago
Two ways to handle exchange rates:

1) charge a reasonable conversion rate buffer

2) datestamp the BTC with future dates and adjust the amount of BTC in the wallet as the rates change (this requires small change in the arduino program)

Neither option requires resetting with new QR codes.

Best,

/jm
I don't quite understand option 2. How would one go about doing this? Could you explain it further?
Parzivail1 month ago

Couldn't I just re-feed the same bill in over and over? Its a good idea, but I see why its only for education xD

tmikk2 months ago

hello can i purchase this unit for a thesis project prototype can you ship it on the phillipines

littleshop6 months ago

Has anyone built this? I have had problems with the dollar bill interfacing with the Arduino. The unit never delivers pulses. It acts wierd (finds pulses and crashes) if I make the resistor a PULL UP resistor. Nothing happens if it is a pull down resistor. Is the diagram correct?

mayosmith (author)  littleshop4 months ago

While the photo is accurate there was an error in circuit diagram ver 1.5. This is fixed in diagram ver 1.6.0. Note: pull up resistor is shown; removed violet connection to pin 3 (this will eventually be needed to turn off bill acceptor when BTC inventory is depleted).

mayosmith (author)  littleshop4 months ago

While the photo is accurate there was an error in circuit diagram ver 1.5. This is fixed in diagram ver 1.6.0. Note: pull up resistor is shown; removed violet connection to pin 3 (this will eventually be needed to turn off bill acceptor when BTC inventory is depleted).

orsd littleshop5 months ago

are you using the right bill acceptor?

you should probably use the 12 volt pulse, however there are may may more like 120v single price, executive, 24v MDB, etc.

SawyerRoper8 months ago

so would this be able to recognize different bills? like you're using a $1 in this, but could it also accept $20 bills?

I was looking on their website and the qr code assigner has a form you fill out to tell it what to accept, long-story-short the bills it will accept are completely customizable

evansss8 months ago
Hey would you have any interest in designing a similar device for a special education setting? I need something to assign currency to a credit card that can be swiped in exchange for goods. willing to compensate generously as it is very important to my school. Let me know
Muniosi8 months ago

Wow, this is genius! Cool concept!

orsd8 months ago

are you using the Pyramid technologies "phoenix" thermal printer?

ReconIII8 months ago

Cool but how accurately can it look at the money coming in? What about fake bills? :P

orsd ReconIII8 months ago

the bill validator he is using, the apex 7000, is used in many commerical machines, so it will be able to detect counterfeit currency

http://pyramidacceptors.com/apex-7000/

sconner18 months ago

Please inform everyone that this is a proof-of-concept prototype and not meant for actual public use. There's no security for the currency inside it.

orsd sconner18 months ago

you cuold probably get a cheap "coffee inns" brand quarter changer from ebay for less than 100, use that as cabinet, it also come with a bill acceptor, just rip the quarter dispensing guts out and replace the cheap lock with a better one.

You could also replace your stackerless style validator with a stacker, that is, one with a bill box, and get the lockable bill box for more security.

the downsides of a stacker is that they can only hold 200-1000 bills depending on what size box you get, are generally more expensive, and are bulkier.

MikB sconner18 months ago

I think it's transparently obvious that this is demonstration of the technology. :)

bfischer48 months ago
Where can you get bill acceptors
orsd bfischer48 months ago

you can get bill vals from suzo happ, ebay, etc

your local vending repair dude, etc

there are many different interfaces for bill validators, 120volt, 12volt, 24volt,MDB, executive, i believe this project uses 12V

also, stay away from the"maka" and "ardac" brands, they are way too old.

AJMansfield8 months ago

But how would I know that it won't just take my money and give me nothing, or spit out invalid bitcoins? The whole reason that ATMs work is because the operating entity is trusted by the user. Even though that sort of trust is not needed for online transactions with bitcoin, the particular case of an ATM is one where trust is paramount.

kaheidt8 months ago

Really really cool stuff. I get why you would call it an "ATM", but it's really more of a converter of $->BTC than what you would conventionally think of for a typical ATM. Although technically I guess bank tellers DO perform conversions (I think)... so having a machine that automates what a teller does would still qualify as an ATM.

FrankenPaper8 months ago

That is very cool!

Please forgive my off topic question. How did you stableize the shakey video?

Not the poster, but to me it looked like virtual dub which is free and in my experience stabilises really well. The only trouble is importing and exporting footage as it doesn't work with every file type.

Istarian8 months ago

Maybe it's just me, but it seems like using some kind of security screw might be good on such a thing. Something you can't open with a coin or a flat piece of metal.

Orngrimm8 months ago

Nice one! Also it is good to have it not-connecting to any live wallet. Would be too dangerous for hacking and fraud.

I like the premade QR-code-method! :)

JoLoveN8 months ago
What would this be used for? Like buying tickets for a school function or something?
Orngrimm JoLoveN8 months ago

As written on the side of the ATM:

For educational and experimental purposes.

Bitcoin is a new concept for many people and this apparatus helps to understand how you can change $ to BTC. more and more shops accept bitcoin as currency.

MrRedBeard8 months ago

Oh that is fantastic! If you want or need help with the website I'll gladly help you out no strings attached.