Skip to content
Lightning Pay Station - a simple lightning network point-of-sale terminal
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Fixed missing rubber feet in assembly Jul 22, 2019
case-shield.stl Added design files for the case. Jul 15, 2019
case.blend case20: shim battery, widen lip beam, adjust pyramid. Jul 23, 2019
lightning-pos.ino Fixed bug w/ auto resize overflow Aug 5, 2019
lightning-pos.jpg case20: shim battery, widen lip beam, adjust pyramid. Jul 23, 2019
opennode.ino Improved QR code gen. Fixed error handling of intermittent checkinvoi… Aug 4, 2019 fixed 3D printed case parts-list entry Jul 29, 2019

Lightning Pay Station

Lightning Pay Station

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:

  1. OpenNode Accounts
  2. BTCPay's Invoice API
  3. 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

Install pyserial:

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.

You can’t perform that action at this time.