This project documents how to configure an ARM single-board computer (SBC) as a network-accessible serial programmer and console using RFC2217. The reference platform is an Orange Pi Zero running Armbian, but most of the setup can be adapted to other Linux SBCs, like RaspberryPi.
The system is intended for remote flashing and serial debugging of Espressif MCUs with esptool, where OTA updates are unsuitable and the programming workstation is not physically near the target device.
The SBC exposes a locally attached USB serial device over the network through an RFC2217 server. Wi-Fi onboarding is performed through a temporary access point and captive portal. Once connected, the SBC reports its DHCP address through Telegram. OliveTin optionally provides a web interface to start the RFC2217 server without SSH.
An optional SPI TFT display can show connection state, IP addresses, SSID, and RFC2217 server status.
- Comitup: Wi-Fi onboarding access point and captive portal.
- OliveTin: web dashboard for controlled command execution.
- esptool: Espressif tooling and
esp_rfc2217_server. - luma.lcd: ST7735 SPI TFT display driver.
- telegram-send: Telegram notifications from the SBC.
- Base system and prerequisites: prepare Armbian/Debian, the Python virtual environment, and optional mDNS name resolution.
- Wi-Fi onboarding with Comitup: configure a captive portal access point for selecting a wireless network without a local display or keyboard.
- Network notifications: configure Telegram notifications when NetworkManager obtains or loses a network connection.
- Optional SPI TFT display: enable an ST7735 display and install the status-display service.
- RFC2217 serial service: install
esptool, expose a USB serial port, and connect from a remote workstation. - OliveTin dashboard: install and configure the web launcher used to control services and network actions.
- Physical GPIO buttons: configure the GPIO Buttons Manager to execute scripts or actions pressing 2 physical buttons connected to GPIO
The reference configuration is designed for a trusted LAN. RFC2217 exposes a serial device and can control reset or boot signals; do not expose it directly to the Internet. Restrict access with network segmentation, a VPN, a firewall, or equivalent controls.
Telegram credentials, Wi-Fi credentials, target serial devices, interface names, GPIO pins, and package architecture must be adapted to the target system.
- better OliveTin configurations
display more info on TFT Displayadd a physical button to reset WiFi connection and return in AP modeadd a physical button to shutdown the system- more notifications via Telegram Bot
- add commands to Telegram Bot to start/stop services and scripts
- more tests on serial debugging
- design and print a case
- create scripts called by button_manager service, to reboot esp32 or other usefull actions
Display PowerOff in TFT Display and notify via telegram
