GM
EN/ES
Back to projects

Desktop monitoring / Serial and TCP

Serial Log Monitor

A desktop tool for watching serial and TCP logs in real time, with an integrated terminal for configuring the device without switching applications.

Role: Desktop architecture, serial communication and interface design Duration: Own project 2026

The problem

Debugging an embedded device means alternating between reading its output and sending it configuration commands. The available tools do one of the two well: a serial terminal does not help you read a continuous stream, and a log viewer does not let you answer back. Switching windows in the middle of a test is the fastest way to lose context.

Two transports, one source The serial port and the network connection are unified behind the same line source. Serial port USB TCP NETWORK Source TEXT LINES Viewer REAL TIME Terminal CONFIGURATION The only difference is how they open. Adding a third transport is an adapter, not a new branch.
Two transports, one source

Constraints

  • The incoming stream does not stop while you read
  • Long sessions without degrading memory usage
  • Two different transports, serial and network, behind one read interface

Decisions

Chose Treat the serial port and the network connection as the same kind of source
Instead of Two code paths split by transport
Because What differs between them is how they open; what they do afterwards — emit lines — is identical. Unifying it left the terminal and the viewer indifferent to transport.
Chose Separate logic from view with the MVVM pattern
Instead of Handling communication from the window's code-behind
Because Reading happens on a thread other than the interface's. Without that separation, synchronization scatters across event handlers.
Chose Independent tabs per connection
Instead of A single active session
Because Comparing two devices side by side is the real use case, not the exception.

Outcome

  • Real-time reading from serial ports and over TCP
  • Integrated terminal with a virtual keypad for configuring the device
  • Multi-tab interface for several simultaneous connections
  • High-contrast theme built for long sessions

Where electronics meets software

This project is where my earlier training stops being a biographical detail. Reading a frame over a serial port, understanding a device protocol and knowing what to ask when the stream cuts out is not application knowledge: it is hardware knowledge, applied from software.

The abstraction that paid off

Serial and network look like two problems. After writing both, the only difference was opening the connection: from there on, both emit lines of text. Unifying them behind one source left the viewer, the terminal and the filtering entirely indifferent to transport, and makes adding a third an adapter rather than a new branch scattered through the code.

Why it belongs here

Because it is the tool I reach for when something fails on a real device, and because it shows that separating responsibilities has an immediate practical consequence, even in a small application.