Lightning Pay Station
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 Account at OpenNode
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.
Setup Arduino IDE
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
pip install --user pyserial
Compile and Upload
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.