Infrastructure Monitor
The Infrastructure Monitor is a desktop network and infrastructure status display built around a Raspberry Pi Pico W. It combines five OLED displays, an 8-LED NeoPixel status module, Wi-Fi connectivity, DHCP-derived network information, NTP time synchronization, and firewall SNMP traffic monitoring.
The goal is to create a small always-on dashboard that shows network health at a glance. Dedicated OLED displays present Internet, DNS, NTP, traffic, and system summary information, while NeoPixel indicators provide quick color-coded status for major infrastructure checks.
Hardware Baseline
| Component | Configuration |
|---|---|
| Controller | Raspberry Pi Pico W |
| I²C Bus | SDA = GP14, SCL = GP15 |
| I²C Multiplexer | TCA9548A at 0x70, reset on GP13 |
| NeoPixel Module | 8 RGB LEDs, data pin GP12 |
OLED Display Layout
| Bus | Display | Controller | Address | Role |
|---|---|---|---|---|
| 0 | 0.96" OLED | SSD1306 | 0x3C |
Internet status |
| 1 | 0.96" OLED | SSD1306 | 0x3C |
DNS status |
| 2 | 0.96" OLED | SSD1306 | 0x3C |
NTP status |
| 3 | 0.96" OLED | SSD1306 | 0x3C |
WAN RX/TX traffic |
| 4 | 1.3" OLED | SH1106 | 0x3C |
Main dashboard, configured with rotation |
Planned Display Content
OLED 1
INETOK
Internet connectivity status.
OLED 2
DNSOK
DNS resolution status.
OLED 3
NTPOK
NTP synchronization status.
OLED 4
RX / TX
WAN traffic values such as 12M and 3M.
OLED 5
Main summary dashboard with time, overall system status, RX/TX traffic, and warnings.
Main Dashboard Example
| Normal Operation | Warning State |
|---|---|
14:32 EST |
14:32 EST |
NeoPixel Status Indicators
| LED | Function | Normal | Warning | Failure |
|---|---|---|---|---|
| 0 | Wi-Fi | Green | Yellow | Red |
| 1 | Internet | Green | Yellow | Red |
| 2 | DNS | Green | Yellow | Red |
| 3 | NTP | Green | Yellow | Red |
| 4 | Gateway | Green | Yellow | Red |
| 5 | SNMP | Green | Yellow | Red |
| 6 | RX Activity | Off / Dim | Blue pulse | Bright Blue |
| 7 | TX Activity | Off / Dim | Blue pulse | Bright Blue |
myNeopixel, not the standard
NeoPixel class.
Network and Time Checks
- Wi-Fi: connected state is monitored continuously.
- DHCP: IP address, subnet mask, gateway, and DNS are obtained automatically using
wlan.ifconfig(). - Internet: tested using TCP connectivity to
1.1.1.1:53. - DNS: tested using hostname resolution for
google.com. - Gateway: tested using the DHCP-provided gateway.
- NTP: time synchronization is monitored as part of the system health checks.
Day and Night Modes
The current day/night concept uses configurable time thresholds. Day mode starts at 07:00
and night mode starts at 22:00.
| Mode | OLED Contrast | NeoPixel Brightness |
|---|---|---|
| Day | 255 |
10 |
| Night | 20 |
2 |
SNMP Firewall Monitoring
The monitor uses SNMP to poll firewall interface status and traffic counters. The selected monitored interface provides RX and TX byte counters, which are converted into live Mbps values for display on the OLED dashboard and activity LEDs.
Traffic is calculated from byte-counter deltas:
Mbps = (delta_bytes × 8) / seconds / 1,000,000
Display formatting examples include 0.25M, 3.1M, 15M, and 120M.
v1.7 Design Direction
The planned firmware baseline is hardware_test_v1.7.py. It is intended to run continuously,
refresh the display every 10 seconds, maintain Wi-Fi connectivity, periodically refresh NTP,
poll firewall SNMP counters, calculate RX/TX Mbps, and update OLED and NeoPixel indicators.
A minimal embedded SNMP v2c GET implementation has been implemented because MicroPython does not include native SNMP support.
Future Features
- Web dashboard
- Automatic DST handling
- Router uptime monitoring
- CPU and memory monitoring
- Multiple infrastructure checks
- Historical traffic graphs
- Additional SNMP OIDs
- Alert history
- Configuration page
- Optional MQTT integration
Current Status
| Component | Status |
|---|---|
| Pico W | OK |
| TCA9548A | OK |
| SSD1306 × 4 | OK |
| SH1106 × 1 | OK |
| NeoPixel × 8 | OK |
| Wi-Fi | Ready |
| SNMP | Ready |
The project is ready to proceed with implementation of the continuous live monitor.