LightningATM
š„š„š„ Now a seconde funding source next to LNbits is available. š„š„š„
ššš blink.sv š„ See how to update: Update ššš
This LightningATM was built to distribute small amounts of BTC - obviously - it only accepts coins. It shall demonstrate the power of Bitcoins Lightning Network. A two cent coin is enough to buy some satoshis at the LightningATM.
A physical coin exchanged into bitcoin and send to your lightning wallet in seconds. Use this project to educate your family and friends or guests at your bitcoin meetup - a convenient and easy on-boarding process for people that are new to bitcoin.
Please be aware that this is a hobbyist project and it is not secure and reliable enough to withstand attacks. I discourage the use of this setup in a professional environment - but it's rather a good educational tool
There are currently two versions of the Lightning ATM. The large full version with a camera for scanning invoices and a button for acknowledgment and other functions. And there is the somewhat slimmed-down version for mobile use, the pocket version.
Full Version |
Pocket Version |
![](https://github.com/21isenough/LightningATM/blob/master/resources/images/LightningATM_rev3.jpg) |
![](https://github.com/21isenough/LightningATM/raw/master/docs/pictures/readme_atm_pv.png) |
Required components
Installation guideline
Carry out the points step by step as described here. This is the quickest way to succeed. š
If you want to update your ATM with LNbits, see this guide: Update
More information of how to setup the LightningATM can be found here https://docs.lightningatm.me. Also join the Telegram group of LightningATM builders here https://t.me/lightningatm_building or contact 21isenough on Twitter (https://twitter.com/21isenough).
To see the Lightning ATM in action, check out this video LightningATM in action
Mentioned
Documentations in other languages
Todo list
Prio 1
- [ ] Implement lndconnect
- [ ] Add "no wallet setup" warning at boot
- [ ] Implement LNURLProxyAPI
- [ ] Support for more Lightning implementations and wallets
- [ ] Try different way of detecting inserted coins (populating a list and setting a delimiter)
- [ ] PCB Board design (https://easyeda.com/, http://kicad.org/)
- [ ] 5V-12V step up transformer (http://www.electronics-lab.com/project/5v-to-12v-step-up-dc-dc-converter/)
- [ ] Solve security concerns in regards to lnurl (scan over the shoulder)
Prio 2
- [ ] Dashboard for settings (via mobile)
- [ ] Add second button and admin menu
- [ ] Add admin function only available through qr pass
- [ ] Run certain functions in threads
- [ ] Additional button for restart and shutdown
- [ ] Find solution to work without jumper cables
- [ ] Add encrypted partition with sensible data
Prio 3
- [ ] Add TOR support for LND calls
- [ ] Store data in database
- [ ] Add AP option for users to login into their wifis (https://github.com/21isenough/RaspiWiFi)
- [ ] 2 layer for coins to reject before accepted
Done
- [X] Update doc with new features, screens
- [X] Check out BTCPay API to integrate backend
- [X] Add coin return stopper to 3d design
- [X] Try different e-ink screen
- [X] Add a language file to change strings easily
- [X] Write installations instructions (see docs.lightningatm.me)
- [X] Rethink the design decisions in regards to hardware (https://www.arrow.com/en/products)
- [X] Add encryption of admin.macaroon in idle mode
- [X] Design ideas for case
- [X] Slightly recline front board to the back, add immersion for camera
- [X] Move scanning function into utils
- [X] Move all display functions into display.py
- [X] Implement lnurl with lntxbot
- [X] Draw printer and boards in 3D (https://www.onshape.com/)
- [X] Write list of all compatible wallets/qr qr_codes
- [X] Test qr code on 2" eInk display (works)
- [X] Research camera resolutions / qr code scanning
- [X] Check if there's other zbar python libraries
- [X] Change to wide angle camera
- [X] Sort out scan errors
- [x] QR code scan function
- [x] Validate requested amount
- [x] Reject to high amounts
- [x] Add config file
- [x] Add parts list to readme
- [x] Ask for rescan of QR code
- [x] Inform about failed scan
- [x] Implement continuous QR Scan
- [x] Lower case ln invoices
- [x] Find a faster solution for QR scans (zbarcam)
- [x] Organize todos better