Rapax Point Of eXtensions.
Hardware dispositive with multiple extensions (in progress) realted with Lightning Network and NOSTR.
Aims to be a device with multiple extensions related to Lightning Network and NOSTR. The connection between the digital (LN and NOSTR) and the analog (human senses), that is, all virtual actions and interactions have an impact on hardware of the real world.
Offer to people, entrepreneurs, merchants, sales premises, etc. the possibility of playing and/or obtaining money through extensions in a simple way, both for the owner of the device and for the user. And most importantly, bitcoinize the galaxy.
This project born in La Crypta, argentinian bitcoiner community. Your are invited to join a our Discord to continue the talk of this project and build more.
- ESP-WROOM-32.
- Display OLED 0.96" 128x32 pixels.
- NFC module PN532 13.56MHz.
- x3 LEDs (I use red, yellow and green).
- Buzzer.
- 3D case. (files available soon).
- x12 screw 1/8x3/8 inchs and its correspondin nut, and x2 additional nuts for touch screw.
- USB cable.
- breadboard 400 points.
- Several breadboard wires (Male-Male and Male-Female).
In the future would I like to make a PCB.
Setting up this project entails two main parts:
- hardware setup, and
- setting up your development evoirement using PlatformIO IDE extension in VSCode.
This setup is for the test in a breadboard.
At the final of this section you will find an image with the electronic connections. Click here to go.
- Connect your ESP32 in a breadboard.
- Connect the 5V (pin
19
) and the GND (pin14
) of your ESP32 to power channels (From now on I will call it VCC channel and GND channel accordingly) of the breadboard. And connect both power channels to each other accordingly (GND channel with GND channel and VCC channel with VCC channel). - Connect the modules and peripherals as follow.
All the cathodes of the LEDs and the GND of the buzzer are connected to the GND channel.
peripheral | pin |
---|---|
buzzer | 36 |
green | 25 |
yellow | 33 |
red | 32 |
touch - | 13 |
touch + | 15 |
For the test, touches are a simple open wire.
name in board
is a common name that the pins are on the module usually have.
name in board | pin |
---|---|
SCK | 22 |
SDA | 21 |
VCC | VCC channel |
GND | GND channel |
Someone modules have a two switches to change communication type. Check it to be in SPI communication.
name in board | pin |
---|---|
MOSI/TX/SDA | 3 |
SS/RX/SCL | 4 |
MISO | 5 |
SCK | 2 |
VCC | VCC channel |
GND | GND channel |
- Install PlatformIO extension in VSCode. I recomend looking at this Quick Start Guide.
- Clone this repo within
~/PlatformIO/Projects
directory. - Import the project from PlatformIO: Home and open it.
- Copy
env.hpp.example
content toenv.hpp
(create it). - Change the placeholder values (ie.
*ENV_...
strings):- replace
*ENV_SSID
for you WiFi SSID. It is important that the network must is 2.4GHz (5GHz networks don't are detected), - replace
*ENV_PASS
for you WiFi password, - replace
*ENV_LNURL
for your LNURL, included domain (ie.user@domain
). Obtain your [email protected] ๐ here ๐.
- replace
- Connect your ESP32.
- Upload project using PlatformIO.
- Current project was adapted to work with PlatformIO. See Development Enviroment Setup.
- Current project works with ESP-WROOM-32.
- All libraries needed shown on platform.ini.
NOTE: Probably, in the future (not too far), update the ESP32 to Raspberry Zero or similary to upgrade the power of RapiPOX.
- Turn off NTAG424 debug.
- LEDs and status buzzer.
- Customizable amount of invoice.
- Make a README as mpr would like.
- Replace HTTP request for Websocket connection to my own sever.
- Beautifuly code.
- Rename task with camelCase.
- Separate tips code of the loop. (ex-Modularize extensions)
- Add debug define to extensions/tips/*
- Visual Home Menu.
- Add elegible/activate extension to Home Menu. (Add extension thread to loop).
- Task parameters (delete global variables).
- Normalize and documentate names:
- thread: multithreading extension code
- task: multithreading task depend of an extension
- Rename extension tips files to get/set.
- Error handling.
- Fix limits of the invoice depend to LNURL.
- Increment invoice amount of 100 in 21. (eg. 100, 121, 200, 221, 300, ...).
- Acelerate increment and decrement invoice amount.
- Play epic music with the max tip of an sesion.
- Write vision and mision.
- Continue Hardware Setup.
- Conection planes.
- Contribution guidlines. In progress.
- Add 3D files and print configuration.
- Make a PCB for the electronic circuit.
- Add numeric keyboard.
- Add relese in GitHub.
- Add license.
There are extensions ideas to incorporate into the project.
- Nerdminer.
- LaWallet light notification.
- Zap light notification in NOSTR.
- Lightning Node