Skip to content

Latest commit

 

History

History
222 lines (156 loc) · 7.84 KB

README.md

File metadata and controls

222 lines (156 loc) · 7.84 KB

RapiPOX

Latest Release License Stars Forks

Rapax Point Of eXtensions.

Hardware dispositive with multiple extensions (in progress) realted with Lightning Network and NOSTR.


  1. Images
  2. About the project
    1. Vision
    2. Mision
    3. Community
  3. Hardware equirements
    1. Electronic
    2. Case and others
  4. Setup
    1. Hardware Setup
    2. Development Enviroment Setup
  5. Contribution Guidelines
  6. Developing
    1. Code
    2. Others
    3. Extensions

Images

Hardware test RapiPOX MVP RapiPOX in La Crypta

About the project

Mision

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.

Vision

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.

Community

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.

Hardware Requirements

Electronic

  1. ESP-WROOM-32.
  2. Display OLED 0.96" 128x32 pixels.
  3. NFC module PN532 13.56MHz.
  4. x3 LEDs (I use red, yellow and green).
  5. Buzzer.

Case and others

  1. 3D case. (files available soon).
  2. x12 screw 1/8x3/8 inchs and its correspondin nut, and x2 additional nuts for touch screw.
  3. USB cable.
  4. breadboard 400 points.
  5. Several breadboard wires (Male-Male and Male-Female).

In the future would I like to make a PCB.

Setup

Setting up this project entails two main parts:

  1. hardware setup, and
  2. setting up your development evoirement using PlatformIO IDE extension in VSCode.

Hardware Setup

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.

  1. Connect your ESP32 in a breadboard.
  2. Connect the 5V (pin 19) and the GND (pin 14) 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).
  3. Connect the modules and peripherals as follow.

Modules and pins

Buzzer, LEDs and touches

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.

Screen

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
NFC lector

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

Image of the circuit connections

Electronic connections

Development Enviroment Setup

  1. Install PlatformIO extension in VSCode. I recomend looking at this Quick Start Guide.
  2. Clone this repo within ~/PlatformIO/Projects directory.
  3. Import the project from PlatformIO: Home and open it.

env.hpp Setup

  1. Copy env.hpp.example content to env.hpp (create it).
  2. Change the placeholder values (ie. *ENV_... strings):
    1. replace *ENV_SSID for you WiFi SSID. It is important that the network must is 2.4GHz (5GHz networks don't are detected),
    2. replace *ENV_PASS for you WiFi password,
    3. replace *ENV_LNURL for your LNURL, included domain (ie. user@domain). Obtain your [email protected] 👉 here 👈.

Run the RapiPOX

  1. Connect your ESP32.
  2. Upload project using PlatformIO.

Contribution Guidelines

Developing

NOTE: Probably, in the future (not too far), update the ESP32 to Raspberry Zero or similary to upgrade the power of RapiPOX.

Code

Done

  • Turn off NTAG424 debug.
  • LEDs and status buzzer.
  • Customizable amount of invoice.
  • Make a README as mpr would like.

To Do

  • 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.

Others

Done

To Do

  • 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.

Extensions

There are extensions ideas to incorporate into the project.