LNPoS
Free and open-source bitcoin point-of-sale
https://lnbits.github.io/lnpos/installer/
Easy setup using browserLNPoS includes:
- LNPoS (for online LN payments, original project)
- LNURLPoS (for offline LN payments, original project )
- OnChain (for onchain payments)
- LNURLATM (for making offline LN withdraw links).
Original demo
Video tutorial https://twitter.com/arcbtc/status/1585605023337168896
Join our telegram group MakerBits
Configuring
Go to
settings
to lanch USB config mode or wifi access point If using access opint the device SSID default password is "ToTheMoon1"
LNPoS – Online Lightning Network payments
Invoices are generated and checked from LNbits install.
Setting up
https://lnbits.github.io/lnpos/installer/
Easy setup using browserWiFi Access Point config
Launch portal and enter an LNbits endpoint (ie.legend.lnbits.com), invoice key, and a fiat currency to make things easier for product pricing.
LNURLPoS – Offline Lightning Network payments
A random pin generated on the device is encrypted and passed trough the payee. When the payment has been made the unencrypted pin is sent as a receipt. This function makes use of LNURL-pay protocol. Uses LNbits LNURLDevice extension.
Setting up
Launch portal and enter the string from the LNURLDevice extension on LNbits
OnChain – Generate fresh addresses using an xPub
Use an xPub to generate a fresh address for every payment. Useful for large purchases. Includes a mempool.space QR so the payment can be verified.
Setting up
Launch portal and enter BIP39 xPub and a pin, to make the function secure.
LNURLATM – Meatbag ATM, give refunds, accept cash for sats.
Create withdraw/faucet links. Uses more-or-les. This function makes use of LNURL-withdraw protocol. Uses LNbits LNURLDevice extension.
Setting up
Launch portal and enter the string from the LNURLDevice extension on LNbits
Purchasing:
- The Lilygo Tdisplay is a cheap and small ESP32/screen development board.
- You can either attach a keypad membrane or use the breakout board Lilygo specifically made for the LNURLPoS!
- Any 3.7V lithium iron flat battery with 1.25mm JST connector should be fine. Go for at least 1000 mAh. If you want the battery to fit inside the breakout board, max. dimensions are 40x52x11mm. Example 1100 mAh 3.7V battery.
Software installation:
-
Install Arduino IDE 1.8.19
-
Install ESP32 boards, using boards manager
-
Download this repo
-
Copy these libraries into your Arduino install "libraries" folder
-
Open this LNPoSTdisplay.ino file in the Arduino IDE
-
Select "TTGO-LoRa32-OLED-V1" from tools>board
-
Upload to device
Press/hold any button on the keypad during startup to launch portal. Default password is "ToTheMoon1" (without the quotes)
Note: If using MacOS, you will need the CP210x USB to UART Bridge VCP Drivers available here https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers If you are using MacOS Big Sur or an Mac with M1 chip, you might encounter the issue
A fatal error occurred: Failed to write to target RAM (result was 0107)
, this is related to the chipsest used by TTGO, you can find the correct driver and more info in this GitHub issue