Many thanks to arcbtc, his OpenNode Tutorial and gift of working kit totally bootstrapped this project.
The goal of this project is to build an inexpensive open source point-of-sale terminal for lightning network payments. The terminal can connect to:
- OpenNode Accounts
- BTCPay's Invoice API
- LND's REST Interface
The unit is designed to be attached to a wall or used standalone on a counter. It contains an internal battery and can operate for many hours on battery power. It requires a WiFi network to connect to the invoice api.
The current software supports three "presets" for commonly purchased item descriptions and prices and an "other" item with a dynamically specified price.
The Parts List describes all needed parts.
The case can be 3D printed from the provided STL files.
The Assembly Instructions show how to put it together.
Create an account at OpenNode.
Navigate to Settings -> Integrations -> API keys.
Select "Add key" and set the permissions to "Invoices". Make a note of the Invoice API key string.
Start with the SparkFun Software Setup Directions to install the IDE and establish basic functionality.
Next, from "Manage Libraries" install:
* GxEPD2
* Arduinojson
* QRCode
* AdaFruit GFX
* Keypad
* base64
Install pyserial:
pip install --user pyserial
To configure the PoS terminal please copy config.h.template to config.h and edit as appropriate for your setup.
Press the "Upload" button to compile and load into the Arduino.