Back to projects
Apr 10, 2026 • Project

HeroLink: Industrial IoT Hub

A C# desktop application automating parcel dimensioning and weighing via laser sensors and hardware integration.

C#.NET 10AvaloniaUIIoTHardware
HeroLink UI Concept

Illustration generated by AI to represent the wireframe of the interface, respecting the actual design

The Challenge

In e-commerce logistics, manual entry of parcel dimensions and weight is a major bottleneck. It is time-consuming and prone to typos, which ultimately leads to costly shipping surcharges.

The goal of HeroLink was to create a “Plug-and-Play” station. The application orchestrates 4 peripherals simultaneously (1 scale + 3 lasers) to capture parcel data as soon as a barcode is scanned, then synchronizes the information with an ERP via an API.

Technical Choices

Why .NET 10 & Avalonia UI?

The Hardware Stack

Everything relies on System.IO.Ports for serial communication (COM):

The Problem: Serial Port Instability

During testing, the connection with the scale was inconsistent. After about ten minutes of inactivity, the port would stop responding. This occasionally blocked the main thread, causing the user interface to freeze.

The Solution: Multithreaded Management

To resolve this, I overhauled the communication architecture:

Technical Deep Dive: API

I used Refit to transform the API into a strongly-typed C# interface:

Lessons Learned

Retrospective

The project is currently in production. If I were to evolve it further, I would isolate the hardware logic into a separate Windows Service (Background Worker). The interface would then act as a light client communicating via SignalR, making data capture entirely independent of the UI state.