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.
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 Display
- add a physical button to reset WiFi connection and return in AP mode
- add 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
