Open Bitcoin ATM


Worlds First Open-Source Bitcoin ATM for Education and Experimentation.

Open Bitcoin ATM is the worlds first open-source automated teller machine for education and experimentation.

Want to make one? Here’s a step by step tutorial. It takes about 7 – 10 hours to build with simple tools. Cost of components are less than $650 new but used parts can be purchased for even less on eBay.

Want a kit? Click Here 



  1. Hi, I am new to dev-boards and was trying out this project. I was having trouble with the bill acceptor. I am not reading any pulses when bills are accepted, but get dozens of pulses when bills are rejected (such as a folded bill or a $5). I think I followed your instructions closely, but I might have soldered something in the wrong place. Thanks in advance for any help you might provide me.

    1. Hey, Stephen! Did you ever get a reply? I am having the same issues. My logic probe is reading no pulses when $1 is handled successfully, but pulses when there are issues as you stated.

      1. He did send me an email and I tore everything up and resoldered it but still had problems. It may be the bill acceptor, I did buy it used off ebay so I’ll probably buy a new one when budget allows.

  2. So, the diagram shows a 10K pull-down resistor. However, the picture here: show him using a pull-up resistor. (Connected to 5v not ground.)

    I found on the Instructables website someone having the same issue. They claimed with the pull-down resistor, nothing happens. However with the pull-up resistor, he get’s pulses but the Arduino crashes. @littleshop

    I’m thinking that maybe the diagram is just wrong. Going to try a pull-up resistor when I get home. I’ll keep you posted.

    P.S. I did buy my 7400 brand-new and have the same issues. So there’s hope that you’re not out a validator! Thanks and good luck!

    1. Yep. Pull-up resistor. The diagram is wrong. Changed that and I’m all good now. Printing BTC!


      1. Adam, thank you for finding this error. Circuit diagram (ver 1.6.0) now updated to show pull up resistor (shown in original photo). Also violet connection to pin 3 is not shown in ver 1.6.0, though this will eventually be implemented to turn off bill acceptor when BTC inventory is depleted.

      2. It appears this has solved the problem for me; the board now reads consistent pulses on insert. It appears I am getting 6 pulses instead of 4, but the code was easy to understand and adapt to this. Sometimes I get 1 or 2 pulses on a folded or fake dollar, but this doesn’t appear to be a problem. With some testing I might find out if these stray pulses are meaningful. I’m going to buy some plywood and get it properly nailed together and cased next. Thanks for your help guys.

  3. I am leaving a reply here because I have not received a reply to the comment I posted at “Bitcoin Admin” on June 9, 2014. We would like to purchase USD version of your Open Bitcoin ATM. We will provide you with our Fed Ex account no. for collect shipment and also pay you in advance in Bitcoin. Please send an estimate via email. Thank you.

  4. Hey I am looking to make a variation of this that connects to an exchange. If I use a WiFi shield + the necessary code alterations, can this design accept larger bills safely (since between the posts here and now, BTC has had a 600% increase in price)

    1. Open Bitcoin ATM can accept larger bills but this is not a requirement for addressing the increasing value of BTC. The amount of BTC dispensed (fraction of one bitcoin) depends on the exchange rate you set.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s