This project is a virtual embedded runtime diagnostics and monitoring platform built using custom bare-metal ARM Cortex-M4 firmware, Renode simulation, Python socket communication, and Streamlit-based live analytics visualization.
The system simulates embedded firmware execution on a virtual STM32F4 Discovery platform and streams live UART runtime logs into a real-time monitoring dashboard for diagnostics analysis and fault visualization.
This project demonstrates embedded firmware workflow, runtime monitoring, UART-based debugging, socket communication, and live embedded analytics infrastructure.
ARM Cortex-M4 Firmware ↓ UART Peripheral ↓ Renode Virtual UART ↓ TCP Socket Stream ↓ Python Runtime Capture ↓ Streamlit Dashboard ↓ Live Runtime Diagnostics
- Custom bare-metal ARM Cortex-M4 firmware
- Virtual STM32F4 Discovery simulation using Renode
- UART-based runtime diagnostics streaming
- TCP socket-based firmware log communication
- Live firmware monitoring dashboard
- Runtime WARNING / CRITICAL / FAULT classification
- Real-time UART log visualization
- Embedded fault analytics and monitoring
- Live diagnostics statistics tracking
- Interactive Streamlit dashboard UI
- ARM Cortex-M4
- STM32F4 Discovery
- Bare-metal Embedded C
- UART Communication
- Memory-Mapped Peripheral Programming
- Renode
- TCP Socket Communication
- Python
- Streamlit
- Real-Time Runtime Monitoring
- Live Diagnostics Visualization
The firmware simulates dynamic runtime monitoring behavior using state-machine based diagnostics logic.
SYSTEM NORMAL
WARNING: HIGH TEMPERATURE
CRITICAL: SENSOR OVERLOAD
FAULT: SYSTEM SHUTDOWN
renode-runtime-diagnostics-platform/
├── firmware/
│ └── firmware.elf
│
├── dashboard/
│ ├── live_dashboard.py
│ └── uart_socket_reader.py
│
├── screenshots/
│
├── README.md
│
├── requirements.txt
│
└── .gitignore
Custom ARM Cortex-M4 firmware executes inside Renode virtual hardware simulation.
Firmware continuously sends runtime diagnostic messages through UART.
Renode redirects UART runtime logs through a TCP socket stream.
Python socket client receives live UART runtime data.
Streamlit dashboard displays:
- live firmware logs
- runtime diagnostics
- error classifications
- fault analytics
Run Renode and execute:
mach create
machine LoadPlatformDescription @platforms/boards/stm32f4_discovery-kit.repl
sysbus LoadELF "firmware/firmware.elf"
emulation CreateServerSocketTerminal 3456 "term"
connector Connect sysbus.usart2 term
start
Open terminal and run:
python -m streamlit run dashboard/live_dashboard.py
Firmware Runtime ↓ UART Diagnostics ↓ Renode Socket Stream ↓ Python Runtime Capture ↓ Live Dashboard Monitoring
This project helped in understanding:
- UART runtime debugging workflows
- Virtual embedded system simulation
- ARM Cortex-M firmware execution
- TCP socket communication
- Client-server architecture
- Embedded diagnostics infrastructure
- Runtime analytics systems
- Real-time monitoring dashboards
- Firmware fault classification
- Streamlit-based visualization systems
Planned future upgrades include:
- FreeRTOS integration
- Interrupt-driven UART handling
- DMA-based communication
- GDB debugging support
- Multi-node embedded simulation
- Advanced runtime telemetry
- Physical STM32 deployment
Add screenshots of:
- Renode UART runtime logs
- Live Streamlit dashboard
- Runtime fault analytics
- Diagnostics visualization
Ragul D
Mtech in Vlsi And Embedded System Engineering