Meshtastic payment ledger with Firebeetle 2: Meshtbank

Meshtbank maintains a central ledger with users, transactions, and balances. It uses the default channel to broadcast system information such as activation and command notices, and it uses direct messages for all operations. An administrator, authenticated through a PIN, can remotely operate the system: creating and deleting accounts, or checking balances and transaction histories.

Parts

1 Ɨ FireBeetle 2 ESP32C6 board

1 Ɨ 2.0-inch TFT display, 320Ɨ240 px

1 Ɨ Xiao nRF52840 + Xiao SX1262 LoRa shield

1 Ɨ 3.7V battery

Meshtbank runs on battery power, and the FireBeetle board supports the connection of a small solar panel, allowing it to operate without the electrical grid. The LCD display is optional and can be disconnected to reduce power consumption.

Circuit

The circuit consists of mounting the SX1262 shield onto the Xiao nRF52840, then wiring jumper connections for 3V3 and GND. Connect FireBeetle pin 17 to Xiao pin 7, and FireBeetle pin 16 to Xiao pin 6. It’s a good idea to remove the plastic housings from the jumper cable tips and lightly crimp the connectors going into the SX1262, since the headers are very thin and jumper cables often fit poorly.

LCD screen is connected to Firebeetle using GDA ribbon.

Ā 

Software

Install the Meshtastic firmware on the Xiao using https://flasher.meshtastic.org/. You usually need to press the tiny Boot button before plugging in the USB cable. In my case I ran into several ā€œ0x800701B1 a device which does not exist was specifiedā€ errors, which I solved by manually dragging and dropping the UF2 file.

Ā 

Ā 

After flashing, connect the USB cable, visit https://client.meshtastic.org, choose serial mode, and configure the module: set region, set the main channel name to Meshtbank, set the Serial module to Proto mode, and assign pin 7 as TX and pin 6 as RX.

Ā 

Ā 

Install the LCD and Meshtastic Arduino libraries in the Arduino IDE:
DFRobot_GDL-master.zip and Meshtastic-arduino-master.zip.

Ā 

Ā 

If you haven’t changed the default channel parameters, it’s a good idea during testing to set hops to 1 and disable MQTT to avoid message propagation.

Ā 

Operation

Ā 

User commands (via DM):

balance — Shows current balance.

pay — Transfers funds (example: pay !27e52039 50).

history — Shows transaction history.

history — Shows line N of history.

help — Lists available commands.

Admin commands (with password):

setup — Create/overwrite a user with an initial balance.

delete — Delete a specific user.

reset — Factory reset (wipes all data).

listusers — List all users and balances.

checkbal — View a user’s balance.

checkhist — View a user’s history.

Ā 

Ā 

Ā 

Source code

Ā 

https://github.com/ronibandini/Meshtbank

Ā 

Ā 

3d files

Ā 

Ā 

https://cults3d.com/en/3d-model/gadget/meshtbank-experimental-meshtastic-baking-node

Ā 

Ā 

License
All Rights
Reserved
licensBg
0