LightningATM
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.
A comprehensive guide on how to setup the LightningATM will follow here - please stay tuned. Meanwhile just just send me messages and ask questions via Twitter (@21isenough).
Please check out this video, to see the LightningATM in action:
Parts list (price estimate: 50-70 USD)
Please find the detailed parts list on the LightningATM documentation website:
https://docs.lightningatm.me/requirements/hardware-requirements
Todo
Prio 1
- [ ] Try different way of detecting inserted coins (populating a list and setting a delimiter)
- [ ] Rethink the design decisions in regards to hardware (https://www.arrow.com/en/products)
- [ ] PCB Board design (https://easyeda.com/, http://kicad-pcb.org/)
- [ ] 5V-12V step up transformer (http://www.electronics-lab.com/project/5v-to-12v-step-up-dc-dc-converter/)
- [ ] Try different e-ink screen
- [ ] Write installations instructions
- [ ] Solve security concerns in regards to lnurl (scan over the shoulder)
- [ ] Add coin return stopper to 3d design
Prio 2
- [ ] 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
- [ ] Check out BTCPay API to integrate backend
Prio 3
- [ ] 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] 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
Mentioned