Home · Apps · rl-bank-mvp
Status: Draft, C++/Pico SDK oriented.
The firmware should stay deliberately small and modular.
Responsibilities:
Non-goals for phase 1:
firmware/
src/
main.cpp
app/
app_controller.cpp
app_controller.h
session_state.h
drivers/
display_st7789.cpp
display_st7789.h
keypad.cpp
keypad.h
nfc_reader.cpp
nfc_reader.h
buzzer.cpp
buzzer.h
network/
wifi_manager.cpp
wifi_manager.h
http_client.cpp
http_client.h
terminal_api.cpp
terminal_api.h
domain/
payment_session.cpp
payment_session.h
models.h
ui/
screen_renderer.cpp
screen_renderer.h
screens.h
config/
pins.h
build_config.h
Primary terminal states:
BOOTCONNECTING_WIFIREADYAMOUNT_ENTRYWAITING_FOR_TAPAUTHORIZINGRESULT_APPROVEDRESULT_DECLINEDRESULT_ERRORCANCELLEDThis matters more than fancy graphics. A clean state machine will save the project.
requestIdFor first pass:
Keep rendering primitive and deterministic:
Avoid building a generic widget framework too early.
During development, support:
debugCorrelationId in logs and result screenGood enough for prototype:
Do not create a separate large firmware repo yet unless implementation starts immediately.
If/when coding begins, I would create a dedicated repo only once these are agreed:
Until then, docs-first is the correct move.