<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marco</title>
    <description>The latest articles on DEV Community by Marco (@pezzullo).</description>
    <link>https://dev.to/pezzullo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3920651%2F9ef050df-df52-4756-987e-57e731257437.png</url>
      <title>DEV Community: Marco</title>
      <link>https://dev.to/pezzullo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pezzullo"/>
    <language>en</language>
    <item>
      <title>SLX OrbitLab: satellite mission software with F Prime and Basilisk</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Wed, 14 Oct 2026 12:37:17 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-orbitlab-satellite-mission-software-with-f-prime-and-basilisk-3dp6</link>
      <guid>https://dev.to/pezzullo/slx-orbitlab-satellite-mission-software-with-f-prime-and-basilisk-3dp6</guid>
      <description>&lt;p&gt;An Earth observation mission requires coordinated orbital planning, attitude control, energy management and data transfer. SLX OrbitLab integrates these functions in a PC-based software system: a simulated satellite receives a target, plans the pass, acquires an optical product and transfers it during ground-station contact. Commands, telemetry and events track software decisions and the physical model's response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SLX OrbitLab is the Silicon LogiX platform for satellite mission software development and simulation, autonomous systems and embedded controllers.&lt;/strong&gt; Version 0.7.0 integrates a native NASA F Prime deployment running on Linux, a proprietary C++ core, Basilisk simulation, a Qt desktop console and Godot 3D inspection. An optional subsystem executes RTEMS firmware on a LEON3 processor emulated in Renode. The platform executes a complete command, physics simulation and telemetry cycle on a PC. Integration tests connect operational decisions, spacecraft dynamics and firmware behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embedded engineering and mission software integration
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flight software:&lt;/strong&gt; F Prime components, FPP interfaces, dispatching, telemetry, events and native command sequencing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simulation and control:&lt;/strong&gt; orbital and attitude dynamics, sensor measurements, reaction wheels and energy accounting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded systems:&lt;/strong&gt; RTEMS firmware, the LEON3 BSP, timers, periodic tasks, UART and CRC-protected protocols.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification:&lt;/strong&gt; repeatable faults, recording, synchronized replay, strategy comparisons and measured results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration:&lt;/strong&gt; Qt operation, Godot visualization and a C++ core that can be supplied separately as a binary library.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mission software architecture: commands, simulation and telemetry
&lt;/h2&gt;

&lt;p&gt;The operational path is explicit: &lt;strong&gt;command → mission software → physical simulation → telemetry → console and 3D update&lt;/strong&gt;. The GUI sends a request; F Prime receives it through its dictionary and dispatcher; the Mission component calls the C++ core to assess conditions and select actions. Basilisk applies actuator commands and power loads, integrates the dynamics and returns new measurements.&lt;/p&gt;

&lt;p&gt;At the next step, mission software consumes those measurements, updates its decisions and emits telemetry and events. GUI refreshes do not advance physical time. This boundary makes it possible to repeat an experiment, pause it, advance by individual steps and inspect the same moment through different views.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foifn6jbtfg16odg85hb6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foifn6jbtfg16odg85hb6.webp" alt="Closed loop from Qt console and FPP dictionary to native F Prime dispatching and C++ mission logic, Basilisk physics, telemetry and events, recording and Qt/Godot views" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;F Prime executes mission logic; Basilisk returns the physical response. Native packets and simulation snapshots feed recording, the console and 3D views. The optional RTEMS node uses a distinct interface, shown later.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SLX OrbitLab technology architecture&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;System responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;F Prime 4.3.0 / C++&lt;/td&gt;
&lt;td&gt;Commands, components, events, telemetry channels, responses and native sequencing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Silicon LogiX C++ core&lt;/td&gt;
&lt;td&gt;Mission decisions, target management, energy assessment, protection and attitude control.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Basilisk 2.12.0 / C++ and Python&lt;/td&gt;
&lt;td&gt;Orbit, attitude, sensors, reaction wheels, solar generation, battery and applied thrust.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qt 6.12 / QML&lt;/td&gt;
&lt;td&gt;Mission console, command and sequence editors, telemetry, recordings and reports.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Godot 4.5 / Blender and GLB assets&lt;/td&gt;
&lt;td&gt;Synchronized spacecraft, interior, exploded, orbit and ground station inspection.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTEMS 5 / Renode 1.16.1&lt;/td&gt;
&lt;td&gt;Energy-controller firmware running on an emulated LEON3/SPARC target as an optional subsystem.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  F Prime: C++ components, native commands and telemetry
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://fprime.jpl.nasa.gov/v4.3.0/docs/user-manual/overview/02-fprime-architecture/" rel="noopener noreferrer"&gt;F Prime&lt;/a&gt; organizes flight software into components with declared ports and connections. OrbitLab uses this architecture as its command execution path. FPP definitions describe parameters and interfaces, the Ground Data System uses the generated dictionary to encode requests and decode packets, and the native dispatcher delivers each command to its destination component.&lt;/p&gt;

&lt;p&gt;Version 0.7.0 exposes &lt;strong&gt;28 dictionary commands and 50 native channels&lt;/strong&gt;. Selecting a command shows its parameters, examples and operational meaning. Operators can request panel deployment, a relative rotation, Sun or Earth pointing, payload and downlink permissions, a beacon and the orbital maneuvers supported by the model. Diagnostic commands also verify the communication path.&lt;/p&gt;

&lt;p&gt;For example, &lt;code&gt;OrbitLab.mission.MANEUVER [3,30]&lt;/code&gt; requests a 30-degree relative rotation in mode 3. The dispatcher response confirms acceptance of the parameters; telemetry subsequently shows pointing error, attitude and actuator state. &lt;strong&gt;Acceptance, physical effect and operational completion are separate pieces of evidence.&lt;/strong&gt; An accepted request may remain pending while simulation time is paused or energy, sensors and protection inhibit the action.&lt;/p&gt;

&lt;p&gt;For a commissioned project, this executable path supports concrete discussions about interface contracts, parameter bounds, component behavior, failure handling and integration tests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszktb2jaz6hn58huqpaw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszktb2jaz6hn58huqpaw.webp" alt="Actual SLX OrbitLab interface: native MANEUVER command with \[3,30\] arguments, a confirmed response and F Prime telemetry channels" width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The F Prime console presents command arguments, operational responses and telemetry from the Linux deployment.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  F Prime sequences: planning, validation and execution
&lt;/h2&gt;

&lt;p&gt;OrbitLab integrates native &lt;a href="https://fprime.jpl.nasa.gov/v4.3.0/Svc/CmdSequencer/docs/sdd/" rel="noopener noreferrer"&gt;Svc.CmdSequencer&lt;/a&gt; execution. Operators prepare plans of 1 to 64 steps with relative delays in simulated seconds and validate them against the session dictionary. F Prime tools compile the binary file; native validation checks its format and CRC before execution.&lt;/p&gt;

&lt;p&gt;A plan can run automatically or advance through manual steps. Cancellation, completion verification and responses for each step are preserved. Delays follow simulation time and begin after the previous command's response. Pausing stops this clock as well, keeping sequencing and dynamics consistent.&lt;/p&gt;

&lt;p&gt;The eight-step example deploys the panels, suspends the optical instrument, requests Sun pointing, enables the beacon after five seconds, commands a 30-degree rotation after another 45 seconds, disables the beacon after another 60 seconds, and restores the payload and automatic mission. Events and telemetry show the executed list and its consequences for the spacecraft.&lt;/p&gt;

&lt;p&gt;Sequences time command requests; they do not automatically wait for attitude convergence. Acquisition conditions remain in the C++ mission state machine. Separating the operational plan from control of physical behavior supports focused testing and a correct interpretation of the results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz4yp4qmhxubru59mi1px.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz4yp4qmhxubru59mi1px.webp" alt="Actual F Prime sequence editor: operational plan, checksum-validated binary file and eight commands accepted by the native sequencer" width="799" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Qt console presents the operational plan and native validation. Step responses and times are preserved; completion of the command list is distinct from physical attitude convergence.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Basilisk: orbital dynamics and attitude control
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://avslab.github.io/basilisk/" rel="noopener noreferrer"&gt;Basilisk&lt;/a&gt; combines C++ numerical modules and Python configuration for space-system simulations. OrbitLab uses this foundation to integrate orbital position and velocity, attitude and angular rate, sensor measurements and reaction-wheel action. Python coordinates the laboratory and adapters; mission decisions execute in the C++ component.&lt;/p&gt;

&lt;p&gt;The reference case declares an initial circular orbit at approximately 550 km, a 65 kg rigid body and three reaction wheels. Quantities cross the simulation boundary with explicit units: metres, metres per second, seconds, radians, watts and joules. Attitude and measurements use declared frames, distinguishing the controller's available information from diagnostic simulator truth.&lt;/p&gt;

&lt;p&gt;Orbital maneuvers integrate mission commands, operational constraints and propulsion dynamics. An RTN delta-v command is checked against energy, propellant, sensors, alignment and orbital conditions. Basilisk integrates finite thrust applied to the body; reports retain delivered delta-v, remaining propellant and changes to orbital parameters. Adding a terrestrial target during a mission preserves the existing trajectory. The software predicts accessible passes, while a physical burn changes the orbit gradually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Energy management and activity planning
&lt;/h2&gt;

&lt;p&gt;The battery has a finite capacity of 180 Wh. Solar generation, panel orientation and deployment, eclipse and active loads contribute to the physical balance. The core compares available energy, reserves and activity demand, using a short-horizon energy forecast. The numerical foundation includes Basilisk's &lt;a href="https://avslab.github.io/basilisk/Documentation/simulation/power/simpleBattery/simpleBattery.html" rel="noopener noreferrer"&gt;storage model&lt;/a&gt; and &lt;a href="https://avslab.github.io/basilisk/Documentation/simulation/power/simpleSolarPanel/simpleSolarPanel.html" rel="noopener noreferrer"&gt;solar-generation model&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When energy is insufficient, acquisition is deferred, loads are reduced and the reason is recorded. The physical model therefore experiences a different consumed power from the load required to capture an image. Battery telemetry reflects an energy balance changed by the software decision. Protection remains active during manual requests.&lt;/p&gt;

&lt;p&gt;Two comparable strategies, priority-first and energy-aware, use different planning margins while both protect the minimum reserve. A comparison starts from the same initial conditions, targets, seed, faults and recorded stimuli, with separate F Prime processes and Basilisk simulations. Results include completed or deferred observations, final energy and pointing accuracy during acquisition.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpz2h61izrzw9yyoknxwq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpz2h61izrzw9yyoknxwq.webp" alt="Mission flow with access, energy and sensor checks; valid conditions lead to pointing, acquisition, downlink and SHA-256 verification, while inhibited activity is deferred" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A geometrically useful window is only part of the decision. Software authorizes the activity against energy and sensor state; deferral and its reason become recorded mission evidence.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Earth observation: targets, acquisition and downlink
&lt;/h2&gt;

&lt;p&gt;The operator selects coordinates and priority. Software predicts access windows, commands pointing and requires stability before exposure. The reference configuration requires a measured error below 0.5 degrees, three seconds of stability and a twelve-second exposure. These values are parameters of the simulated mission.&lt;/p&gt;

&lt;p&gt;The synthetic optical product uses actual simulated body attitude, camera-ray intersections with the spherical Earth and the geographic texture. Raw data is a 256 × 256 monochrome PGM image. A derived PNG preview relates the target, sensor footprint and cartographic context, making the experiment's content easier to interpret.&lt;/p&gt;

&lt;p&gt;Bytes are saved in modeled onboard storage and transferred during a geometric ground-station contact window when energy permits downlink. Storage capacity, the product queue and link availability can change the plan. Delivery is confirmed when the received file passes its SHA-256 integrity check. The link model verifies data handling and mission constraints; it does not calculate an RF link budget or radio modulation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qt console and 3D visualization with Godot and Blender
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://doc.qt.io/qt-6/qtquick-index.html" rel="noopener noreferrer"&gt;Qt Quick and QML&lt;/a&gt; compose the operational console: mission control, F Prime commands, sequence editing, channels, targets and products, orbital passes, tests and recordings. The telemetry model updates values while preserving the operator's browsing position. Parameters and descriptions connect a command to its function, operational response and telemetry. One operator controls a session; viewers receive its state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.godotengine.org/en/4.5/tutorials/3d/introduction_to_3d.html" rel="noopener noreferrer"&gt;Godot 4.5&lt;/a&gt; presents close-up spacecraft, interior, exploded, orbit and ground station views. Component selection connects geometry to subsystems and available commands. Attitude, panel joints, the beacon and antenna follow confirmed backend telemetry.&lt;/p&gt;

&lt;p&gt;Blender assets and GLB exports retain original component names, hierarchy and pivots. Earth's illustrative scale and exploded-view offsets belong to presentation and do not enter the dynamics. Blender/glTF axis conversion is explicit and applied once. This integration choice makes 3D a useful inspection tool while keeping it distinct from the physical model.&lt;/p&gt;

&lt;h2&gt;
  
  
  RTEMS and Renode: embedded firmware on emulated hardware
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.rtems.org/docs/5.1/c-user/index.html" rel="noopener noreferrer"&gt;RTEMS&lt;/a&gt; provides the kernel and services for real-time embedded applications. In OrbitLab it executes an independent energy-controller firmware. &lt;strong&gt;F Prime remains a Linux process; RTEMS is a separate subsystem.&lt;/strong&gt; Interfaces between mission software, the energy model and firmware handle power requests, controller responses and load states.&lt;/p&gt;

&lt;p&gt;Renode emulates the LEON3/SPARC target, including the peripherals needed for timers and UART. Antmicro's public &lt;a href="https://github.com/antmicro/renode-rtems-leon3" rel="noopener noreferrer"&gt;RTEMS/LEON3 example&lt;/a&gt; documents the platform overlap; OrbitLab's integration was verified with its own firmware. Compatibility requires alignment between the ELF, BSP, memory map, clocks and timer, followed by boot and execution tests.&lt;/p&gt;

&lt;p&gt;The adapter sends battery energy, capacity, requested power and explicit mission time through sequence-correlated, CRC-protected UART messages. Firmware returns permitted power, flags and the task heartbeat. This permission constrains the loads applied to Basilisk. Tests cover boot, timer interrupts, a periodic task, load reduction at low and critical energy, malformed CRC rejection and recovery after an invalid message.&lt;/p&gt;

&lt;p&gt;Emulated time advances in controlled intervals. Missing firmware responses stop the experiment; the laboratory does not silently replace RTEMS with PC logic. Compatibility and integration tests cover this specific combination of firmware, BSP and emulator. Qualification of electronics or a flight processor requires dedicated work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F97obla1d1npbj7mcaa9h.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F97obla1d1npbj7mcaa9h.webp" alt="Optional EPS subsystem: energy requests from the PC over UART with sequence and CRC, RTEMS 5 firmware on LEON3 emulated in Renode, permitted-power and heartbeat responses applied to Basilisk loads" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The physical model retains battery and load dynamics. Emulated firmware authorizes power over a verified protocol, allowing embedded execution and its effect on the mission to be analyzed independently.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mission scenarios, synchronized replay and results analysis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Operational scenarios and fault management&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Expected operational outcome&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nominal mission&lt;/td&gt;
&lt;td&gt;Target access, stable pointing, acquisition, storage and a delivered file with verified integrity.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insufficient energy&lt;/td&gt;
&lt;td&gt;Deferred activity, a recorded reason, reduced loads and a recorded recharge balance.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temporary sensor outage&lt;/td&gt;
&lt;td&gt;Acquisition held while measurements are invalid, tracked sensor state and renewed condition checks after recovery.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The extended campaign also covers actuator faults, loss of solar generation or ground link, multiple products, full storage and continuous operation. Fault-injection intervals and operator commands are retained as test evidence.&lt;/p&gt;

&lt;p&gt;SQLite recording preserves configuration, commands and native packets, events, physical snapshots and products. Replay restores recorded state without redispatching actuator commands. Timeline, telemetry, imagery and 3D follow the same instants. HTML, JSON and CSV reports and SHA-256 manifests support investigation from a shared trace and strategy comparisons with explicit metrics.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-orbitlab/blob/b9915536d1bd6371bbed4187f7db4606f1faacee/validation/release-0.7.0.json" rel="noopener noreferrer"&gt;release 0.7.0 acceptance evidence&lt;/a&gt; records 26 Linux integration tests, three Windows CTest checks, eight publication-boundary regressions and GUI workflows with native commands, sequences and maneuvers. Operation with a binary SDK, without the proprietary core sources, was verified separately.&lt;/p&gt;

&lt;p&gt;The documented SDK case delivers one product with an acquisition pointing RMS of approximately 0.0586 degrees. A maneuver delivers 2 m/s and updates remaining propellant. These are results for the stated configuration and test conditions, rather than an accuracy promise for arbitrary satellites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proprietary C++ core, binary APIs and simulation models
&lt;/h2&gt;

&lt;p&gt;The proprietary Silicon LogiX engine exposes a versioned C ABI with fixed-size structures, declared units and an opaque handle. Its interface contains no Qt, Godot, Python or F Prime types. The core can be supplied as a shared library and integrated or updated while preserving the binary contract, independently of presentation and adapters.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-orbitlab" rel="noopener noreferrer"&gt;public GitHub repository&lt;/a&gt; contains the GUI, integrations, API, example firmware, scenarios, approved assets, documentation and tests. Proprietary core implementation is excluded. Building and running OrbitLab from public source requires the matching evaluation binary SDK; distribution and commercial development follow the project's terms.&lt;/p&gt;

&lt;p&gt;The model declares its scope: spherical Earth, simplified reference frames, no J2 perturbation, atmosphere, terrain or thermal environment, an ideal battery, constant dynamic mass and a synthetic optical instrument. It does not represent cell chemistry, analog power electronics or a complete RF link. Repeatability is verified with the pinned Linux environment and the same seed; cross-platform bitwise identity is not promised. The &lt;a href="https://github.com/Silicon-Logix/slx-orbitlab/blob/b9915536d1bd6371bbed4187f7db4606f1faacee/docs/model.md" rel="noopener noreferrer"&gt;model documentation&lt;/a&gt; makes parameters, criteria and simplifications available for review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom engineering for companies and research organizations
&lt;/h2&gt;

&lt;p&gt;OrbitLab's architecture integrates engineering capabilities applicable to mission software, embedded controllers, simulation benches and operational consoles. For companies and research organizations, a project can begin with operational requirements, available measurements, energy constraints, abnormal conditions and system acceptance criteria.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;F Prime components:&lt;/strong&gt; FPP definitions, topologies, commands, telemetry, events, service integration and native tests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simulation and autonomy:&lt;/strong&gt; Basilisk models, C++ control, planning, resource management and fault scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded firmware:&lt;/strong&gt; RTOS/BSP integration, protocols, peripherals and emulated-target verification before hardware tests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consoles and tools:&lt;/strong&gt; Qt/QML applications, 3D inspection, evidence acquisition and presentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification and delivery:&lt;/strong&gt; repeatable campaigns, agreed metrics, reports, documentation and distributable interfaces.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Explore the &lt;a href="https://github.com/Silicon-Logix/slx-orbitlab" rel="noopener noreferrer"&gt;OrbitLab repository&lt;/a&gt; and technical documentation, or &lt;a href="https://www.siliconlogix.it/en/contact#service=software&amp;amp;source=article-orbitlab" rel="noopener noreferrer"&gt;contact Silicon LogiX&lt;/a&gt; for a technical presentation, an evaluation SDK or a custom project. The starting point is to define what the system must do, how it should respond at its limits and which tests must document compliance with those requirements.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>embedded</category>
      <category>simulation</category>
      <category>space</category>
    </item>
    <item>
      <title>SLX RadioTwin: industrial radio propagation studies with C++ and Qt</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 13 Oct 2026 07:20:43 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-radiotwin-industrial-radio-propagation-studies-with-c-and-qt-4mcb</link>
      <guid>https://dev.to/pezzullo/slx-radiotwin-industrial-radio-propagation-studies-with-c-and-qt-4mcb</guid>
      <description>&lt;p&gt;&lt;strong&gt;Silicon LogiX introduces SLX RadioTwin&lt;/strong&gt;, a desktop demonstrator for studying radio propagation in a three-dimensional industrial plant. The project brings geometry, antenna configuration, obstacles and robot movement into one environment, making it possible to compare how link conditions change. Version 0.2.1 is available on GitHub with a Windows evaluation package.&lt;/p&gt;

&lt;p&gt;For a company integrating wireless sensors, gateways or mobile robots, the questions concern what happens along a mission: where does received power fall? Which obstacles does the radio path cross? What difference does a metal door make? RadioTwin makes these questions explorable and documentable, connecting each result to the assumptions that produced it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Industrial connectivity also depends on geometry
&lt;/h2&gt;

&lt;p&gt;A plant contains surfaces, volumes and passages that affect propagation. Tanks, machine tools, shelving and walls can change the signal path; a door changing state or a moving receiver introduces different conditions even with the same radio parameters. Studying these variations requires a shared reference between object positions, link configuration and numerical results.&lt;/p&gt;

&lt;p&gt;The demonstrator uses a scene with &lt;strong&gt;2,584 meshes in its complete representation&lt;/strong&gt;: a process area with tanks and pumps, CNC machines, a warehouse, a raised control room, robotic arms, an inspection robot, two gateways and a sliding door. The cutaway view allows users to explore the interior, navigate and select components. The RF engine retains the complete enclosure, including walls and the roof, through 373 meshes dedicated to calculations. Opening up the factory view therefore keeps the obstacles in the radio model.&lt;/p&gt;

&lt;p&gt;The robot, door and gateways share the scenario state between the visualization and RF geometry. This consistency makes it possible to relate a change in estimated received power to the configuration actually analyzed, while keeping the demonstration animation distinct from experimental measurements.&lt;/p&gt;

&lt;h2&gt;
  
  
  An explicit RF model with interpretable results
&lt;/h2&gt;

&lt;p&gt;The solver combines &lt;strong&gt;free-space path loss&lt;/strong&gt; with effective losses associated with the obstacles crossed. Intersections are calculated on the triangles of the RF geometry; a BVH, or bounding volume hierarchy, accelerates the search for possible intersections. Antenna positions, frequency, transmit power, gains, receiver sensitivity and material parameters are configurable.&lt;/p&gt;

&lt;p&gt;An optional &lt;strong&gt;first-order reflection&lt;/strong&gt; model uses image sources on six enclosure planes. Each path reports power, length and delay. Powers are summed incoherently: this version does not reconstruct the phase interference of a coherent multipath channel. Results distinguish power in dBm, losses and margins in dB, distances in metres and delays in nanoseconds.&lt;/p&gt;

&lt;p&gt;Material coefficients are &lt;strong&gt;illustrative assumptions, not values calibrated against a real plant&lt;/strong&gt;. The model supports comparative studies and checks of software behavior; field accuracy requires surveys and calibration. Diffraction, polarization, antenna patterns, protocol traffic and throughput are not simulated in the published version. The &lt;a href="https://github.com/Silicon-Logix/slx-radiotwin/blob/main/docs/rf-model.md" rel="noopener noreferrer"&gt;RF model documentation&lt;/a&gt; describes equations, units and limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  From individual links to scenario comparisons
&lt;/h2&gt;

&lt;p&gt;The interface allows users to observe the link as the robot moves, visualize coverage, identify areas with reduced margin and save configurations for comparison. One example is studying an open door against a closed door while keeping the same planned route and radio parameters.&lt;/p&gt;

&lt;p&gt;Coverage is sampled on a 49 × 37 grid at receiver height, with points occupied by solids excluded from the count. The mission profile contains 81 samples along the planned 16-metre corridor. The placement search evaluates up to 15 candidates for gateway A, keeps gateway B fixed and compares the worst value of the best link along the route. This is a comparison between defined candidates; mounting feasibility and site performance require separate verification.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Favau78fumdn8v6twu35f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Favau78fumdn8v6twu35f.png" alt="SLX RadioTwin: scenario comparison, RF coverage and gateway placement evaluation" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The scenario laboratory in the software. The displayed values belong to an example using illustrative coefficients.&lt;/p&gt;

&lt;p&gt;Analyses can be exported as &lt;strong&gt;PDF, JSON and CSV&lt;/strong&gt;, retaining the configuration, geometry identity, units and assumptions. For a technical team, this makes it possible to discuss the same configuration, compare alternatives and retrace the reasoning behind a result. Before export, the application requires an updated analysis when the state has changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The technologies: C++, Qt Quick and native GPU rendering
&lt;/h2&gt;

&lt;p&gt;RadioTwin demonstrates a software architecture that separates the interface, scenario management and numerical computation. The &lt;strong&gt;C++17 core&lt;/strong&gt; handles asset import, geometry queries, propagation, coverage and candidate evaluation. The desktop presentation uses &lt;strong&gt;Qt Quick and QML&lt;/strong&gt;, while the 3D viewport is implemented in C++ with &lt;strong&gt;QQuickRhiItem and Qt RHI&lt;/strong&gt;, Qt's interface to the graphics backend.&lt;/p&gt;

&lt;p&gt;The renderer groups geometry by material and uses GPU buffers. The Windows distribution has been checked with Direct3D 11. &lt;strong&gt;GLB/glTF&lt;/strong&gt; assets retain geometry, materials and hierarchies; coordinate transformations connect the visual representation to the metric system used by the solver. GPU acceleration applies to rendering: RF calculations in this version run on the CPU.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QtConcurrent&lt;/strong&gt; runs analyses asynchronously on copies of the scenario. The application checks the parameter version before accepting a result, avoiding the presentation of calculations for an earlier configuration as current. The numerical core is distributed as a DLL with a public API and a versioned ABI, while its implementation remains proprietary. This separation provides a starting point for modules and integrations agreed with the customer.&lt;/p&gt;

&lt;p&gt;The build uses &lt;strong&gt;CMake, Ninja and the Qt 6.12.0 / MinGW GCC 13.1.0 kit&lt;/strong&gt;. Checks cover reference equations, radio link-budget accounting, reflections, geometry consistency, persistence and scenario comparison. Public-distribution audits also run through GitHub Actions. These checks verify implementation consistency; RF validation at a plant requires independent measured data.&lt;/p&gt;

&lt;h2&gt;
  
  
  A concrete basis for tailored industrial tools
&lt;/h2&gt;

&lt;p&gt;The value for companies is the opportunity to evaluate a working application and define a specific need: studying a robot route, comparing permitted antenna positions, documenting a scenario or connecting a model to plant data. This provides a basis for a technical discussion about geometry, devices, available measurements and acceptance criteria.&lt;/p&gt;

&lt;p&gt;The custom-development section presents &lt;strong&gt;eight proposals, explicitly not implemented in the demonstrator&lt;/strong&gt;. They cover measurement-based calibration and uncertainty quantification; coherent wideband channels with fading and Doppler; MIMO and beam steering; interference and coexistence; robot missions with radio and navigation constraints; network design with redundancy; CAD/BIM, OPC UA or MQTT integration; and research into programmable RIS surfaces and joint communication and sensing.&lt;/p&gt;

&lt;p&gt;Each proposal identifies required data, expected outputs and checks to agree on. The application lets users select modules and prepare a local brief containing objectives and constraints. Extensions can then be defined through a feasibility study, a development scope and a validation plan suited to the industrial case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluate RadioTwin and discuss a project
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-radiotwin" rel="noopener noreferrer"&gt;SLX RadioTwin repository&lt;/a&gt; contains the frontend, public API, binary SDK, assets and examples. &lt;a href="https://github.com/Silicon-Logix/slx-radiotwin/releases/tag/v0.2.1" rel="noopener noreferrer"&gt;Release 0.2.1&lt;/a&gt; includes a Windows x64 package that runs without installing Qt and without radio hardware. A &lt;a href="https://github.com/Silicon-Logix/slx-radiotwin/releases/download/v0.2.1/SLX_RadioTwin_Social_1080x1920.mp4" rel="noopener noreferrer"&gt;demonstration video with 3D animations and actual software screens&lt;/a&gt; is also available.&lt;/p&gt;

&lt;p&gt;The license permits study and business evaluation; production integration and distribution of modifications require an agreement with Silicon LogiX. To assess a custom development, &lt;a href="https://www.siliconlogix.it/en/contact" rel="noopener noreferrer"&gt;contact us&lt;/a&gt; with the type of plant, the wireless devices involved, the behavior to analyze and the data already available. These inputs help define the required model, measurement activities and results to verify.&lt;/p&gt;




&lt;p&gt;Originally published at &lt;a href="https://www.siliconlogix.it/en/article/slx-radiotwin-a-3d-digital-twin-for-industrial-radio-propagation-studies" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>qt</category>
      <category>simulation</category>
      <category>robotics</category>
    </item>
    <item>
      <title>Raspberry Pi 5 AI: quality inspection without the cloud</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 12 Oct 2026 11:41:55 +0000</pubDate>
      <link>https://dev.to/pezzullo/raspberry-pi-5-ai-quality-inspection-without-the-cloud-4313</link>
      <guid>https://dev.to/pezzullo/raspberry-pi-5-ai-quality-inspection-without-the-cloud-4313</guid>
      <description>&lt;p&gt;A reversed connector, a missing screw, the wrong label: catching a defect before shipping requires a repeatable inspection. &lt;strong&gt;Raspberry Pi 5 with local AI&lt;/strong&gt; is a platform worth evaluating for an initial visual inspection system that processes images close to the machine.&lt;/p&gt;

&lt;p&gt;On &lt;strong&gt;5 October 2026&lt;/strong&gt;, Raspberry Pi published an overview of &lt;strong&gt;Sixfab AI HAT+&lt;/strong&gt;, an accelerator board with a DEEPX NPU. For businesses, the useful question is how to connect image capture, recognition and inspection results in an application that can work without a cloud connection. &lt;a href="https://www.raspberrypi.com/news/seeing-understanding-and-responding-low-power-cnn-vlm-and-slm-workloads-on-raspberry-pi-5/" rel="noopener noreferrer"&gt;Read the Raspberry Pi article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The cover is an AI-generated conceptual illustration. The diagram and example below describe a possible design; they do not depict a system tested by Silicon LogiX.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sixfab AI HAT+ and DEEPX add
&lt;/h2&gt;

&lt;p&gt;The 25 TOPS version uses the &lt;strong&gt;DEEPX DX-M1M NPU&lt;/strong&gt;, a processor dedicated to model execution. The &lt;a href="https://docs.sixfab.com/docs/ai-hat-plus-raspberry-pi-5-overview" rel="noopener noreferrer"&gt;Sixfab documentation&lt;/a&gt; lists these main specifications:&lt;/p&gt;

&lt;p&gt;Sixfab AI HAT+ 25 TOPS: manufacturer specifications checked on 12 October 2026.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribute&lt;/th&gt;
&lt;th&gt;Specification&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AI compute&lt;/td&gt;
&lt;td&gt;Up to 25 TOPS at INT8 precision&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NPU memory&lt;/td&gt;
&lt;td&gt;2 GB dedicated LPDDR4x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connection&lt;/td&gt;
&lt;td&gt;PCIe Gen 3 ×1 to Raspberry Pi 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical power&lt;/td&gt;
&lt;td&gt;Approximately 3 W for the NPU alone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Processing&lt;/td&gt;
&lt;td&gt;On-device inference, including offline operation after installation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Three watts is not the power consumption of the complete station.&lt;/strong&gt; Its power budget must include the Raspberry Pi, camera, lighting, storage and interfaces. TOPS, or trillions of operations per second, describes computing capacity; the time to inspect a part must be measured across the complete application.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can a camera with local AI inspect?
&lt;/h2&gt;

&lt;p&gt;Start with a defect that is &lt;strong&gt;visible, clearly defined and distinguishable at the available resolution&lt;/strong&gt;. Three examples illustrate the kinds of projects to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Assembly:&lt;/strong&gt; check whether a connector or component is present and correctly oriented, with a controlled capture position.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Packaging:&lt;/strong&gt; identify a missing accessory or an incorrect product arrangement before closing the package.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Surface finish:&lt;/strong&gt; evaluate detection of scratches or surface anomalies after checking optics, contrast and lighting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A camera cannot see beneath an opaque component or replace an electrical measurement. On an electronic assembly, it can complement &lt;strong&gt;functional testing&lt;/strong&gt;: images check assembly, while measurements check behavior. Reading a code or checking a stable geometry may also be a good candidate for traditional computer vision algorithms.&lt;/p&gt;

&lt;h2&gt;
  
  
  From the part to the result: an inspection example
&lt;/h2&gt;

&lt;p&gt;Imagine a station that checks a connector on a small electronic module. An operator places the part in a fixture; a signal triggers capture; the software analyzes the image and displays the result. Communication with the machine uses an interface designed for its controller.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Part + controlled lighting
         |
         v
Raspberry Pi 5: capture and preparation
         |
         v
DEEPX NPU: model execution
         |
         v
Inspection software: rules and review
         |
         v
Result: operator, controller and records
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An original diagram of a possible station. Application software connects the model output to the product acceptance rules.&lt;/p&gt;

&lt;p&gt;For this application, we would design three outcomes: &lt;strong&gt;accepted&lt;/strong&gt;, &lt;strong&gt;defect detected&lt;/strong&gt; and &lt;strong&gt;review required&lt;/strong&gt;. A blurred image, a misplaced part or an insufficient score should trigger recapture or operator review. The application must handle uncertainty before commanding a rejection.&lt;/p&gt;

&lt;p&gt;Each inspection should record the part identifier, timestamp, model version and outcome. Which images to retain, and for how long, depends on the process. These records make it possible to investigate inspection conditions and compare two software versions against the same cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you actually need a Raspberry Pi 5 NPU?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The decision depends on the real workload.&lt;/strong&gt; Before buying an accelerator, measure a CPU implementation with the intended model. An NPU becomes interesting when inference time, image volume or application load requires more headroom. Our guide to &lt;a href="https://www.siliconlogix.it/en/article/npus-in-embedded-socs-edge-ai-without-sending-everything-to-the-cloud" rel="noopener noreferrer"&gt;NPUs in embedded systems&lt;/a&gt; explains the accelerator’s role.&lt;/p&gt;

&lt;p&gt;Consider an illustrative timing budget: at &lt;strong&gt;60 parts per minute&lt;/strong&gt;, a part arrives every &lt;strong&gt;1,000 milliseconds&lt;/strong&gt;. A proposed budget could allocate 100 ms to capture, 150 ms to processing and 100 ms to decision and communication, leaving 650 ms of headroom. &lt;strong&gt;These are design examples, not measured board performance.&lt;/strong&gt; The available capture window also matters: the part may spend much less than one second in front of the camera.&lt;/p&gt;

&lt;p&gt;Testing must include the slowest cycles while the system saves images, updates the interface and communicates with the machine. A favorable average can hide occasional delays, image queues or missed acquisitions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How an AI model reaches the board
&lt;/h2&gt;

&lt;p&gt;In the &lt;a href="https://docs.sixfab.com/docs/ai-model-deployment-workflow" rel="noopener noreferrer"&gt;workflow documented by Sixfab&lt;/a&gt;, a supported model is exported to ONNX, compiled with DX-COM on an Ubuntu x86_64 machine and deployed as a &lt;code&gt;.dxnn&lt;/code&gt; file. The Raspberry Pi runtime executes it through C++ or Python APIs. Training and compilation are separate from on-device inference.&lt;/p&gt;

&lt;p&gt;A product-specific defect requires representative images and consistent annotations. When photographing the same parts repeatedly, avoid placing near-identical images in both training and test sets. Splitting samples by physical part or production lot makes evaluation closer to real use.&lt;/p&gt;

&lt;p&gt;The INT8 conversion requires checking the deployed model: changes in its results must be measured on your own defects. For repeatable development cases, &lt;a href="https://www.siliconlogix.it/en/article/slx-synthforge-on-github-ai-for-industrial-vision" rel="noopener noreferrer"&gt;SLX SynthForge&lt;/a&gt; demonstrates a workflow with synthetic scenes and data. A production line still requires real images and validated capture conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How much does a Raspberry Pi quality inspection system cost?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://sixfab.com/product/ai-hat-plus-raspberry-pi-5/" rel="noopener noreferrer"&gt;Sixfab product page&lt;/a&gt; lists the &lt;strong&gt;25 TOPS AI HAT+ at US$90&lt;/strong&gt; as of the consultation date. That is the add-on board price; the Raspberry Pi and complete station must be budgeted separately. Check the final price, taxes and shipping with the supplier for your destination market.&lt;/p&gt;

&lt;p&gt;The project budget should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Image capture:&lt;/strong&gt; camera, lens, lighting, mounts and the part fixture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Electronics:&lt;/strong&gt; computer, power supply, cooling, enclosure and controller connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data and model:&lt;/strong&gt; sample collection, annotation, training and evaluation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software:&lt;/strong&gt; operator interface, result handling, records and business-system integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commissioning:&lt;/strong&gt; testing on real lots, acceptance thresholds and maintenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To estimate the station’s value, compare total cost with the existing process: inspection time, rework, rejected parts and escaped defects. A prototype helps collect the evidence for that assessment before extending the system to production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five checks before putting AI on the production line
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Missed defects:&lt;/strong&gt; measure how many defective parts are accepted and which defects remain difficult.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;False rejects:&lt;/strong&gt; check how many conforming parts are rejected or require manual review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real conditions:&lt;/strong&gt; test different lots, position variations, reflections and lighting changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuity:&lt;/strong&gt; check restarts, camera disconnection, exhausted storage and communication loss.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updates:&lt;/strong&gt; retain the approved model and software, a fixed test set and a procedure to restore the previous version.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Define these criteria before testing. If a model is selected after repeated trials on the same samples, use another independent set to verify the result. For multi-camera lines, our article on &lt;a href="https://www.siliconlogix.it/en/article/industrial-machine-vision-four-ethernet-cameras-microchip-nvidia" rel="noopener noreferrer"&gt;industrial vision over Ethernet&lt;/a&gt; also covers bandwidth and capture architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions about Raspberry Pi AI inspection
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can inspection work without Internet access?
&lt;/h3&gt;

&lt;p&gt;Inference runs locally after installation. Offline station operation also depends on application choices: models, licenses, authentication and result recording must be available at the deployment location.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will a ready-made model recognize my product’s defects?
&lt;/h3&gt;

&lt;p&gt;A pretrained example helps verify that the system processes images. For a specific defect, evaluate behavior on your own product samples and prepare a dedicated model if necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the board also accelerate language models?
&lt;/h3&gt;

&lt;p&gt;The consulted sources disagree: the Raspberry Pi post also describes language models, while Sixfab lists vision as the current scope. This article considers visual inspection. A language-model project requires support confirmation for the chosen hardware, model and runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  From a specific defect to a feasibility study
&lt;/h2&gt;

&lt;p&gt;Silicon LogiX can support a project by connecting &lt;a href="https://www.siliconlogix.it/en/embedded-ai-machine-learning" rel="noopener noreferrer"&gt;AI and machine learning&lt;/a&gt;, &lt;a href="https://www.siliconlogix.it/en/embedded-linux-yocto-buildroot" rel="noopener noreferrer"&gt;embedded Linux&lt;/a&gt; and &lt;a href="https://www.siliconlogix.it/en/custom-software-development" rel="noopener noreferrer"&gt;custom software&lt;/a&gt;. The first step is defining what to observe, the required timing and how to use the result in the business process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Want to assess whether AI can catch a defect in your product?&lt;/strong&gt; &lt;a href="https://www.siliconlogix.it/en/contact#service=generico&amp;amp;source=article-raspberry-pi-ai-quality-inspection" rel="noopener noreferrer"&gt;Describe the inspection you want to automate&lt;/a&gt;, your available samples and the line cadence. These details help establish a useful feasibility study.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Technical sources consulted on 12 October 2026. Specifications and pricing are manufacturer statements; the timing example and evaluation criteria are Silicon LogiX design contributions.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/raspberry-pi-5-ai-quality-inspection-without-the-cloud" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>raspberrypi</category>
      <category>iot</category>
      <category>computervision</category>
    </item>
    <item>
      <title>SLX ResilienceLab: simulated faults, measurable control responses</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Sat, 10 Oct 2026 11:31:04 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-resiliencelab-simulated-faults-measurable-control-responses-291h</link>
      <guid>https://dev.to/pezzullo/slx-resiliencelab-simulated-faults-measurable-control-responses-291h</guid>
      <description>&lt;p&gt;A sensor keeps sending a plausible value while the actuator moves away from it. The primary controller stops responding. Two measurements disappear while the system is approaching its requested position. Control software must handle these conditions, yet ordinary bench tests can make them difficult to reproduce.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SLX ResilienceLab&lt;/strong&gt; is Silicon LogiX's new desktop demonstrator for exploring these cases in an &lt;strong&gt;entirely software-based test bench&lt;/strong&gt;. A virtual motorized valve, three position sensors and two C++ controllers let you observe the response, inject faults and retain the results. The project demonstrates how a dedicated test environment can be built around a product's control software.&lt;/p&gt;

&lt;p&gt;For teams developing boards, firmware or machinery, the practical value is repeatability: recreate a critical condition, compare two control versions and discuss the response using &lt;strong&gt;recorded measurements, timings and events&lt;/strong&gt;. &lt;a href="https://www.siliconlogix.it/en/contact#service=firmware&amp;amp;source=article-resiliencelab" rel="noopener noreferrer"&gt;Contact me to discuss a test bench for your product&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A virtual valve with decisions computed by the software
&lt;/h2&gt;

&lt;p&gt;The operator requests an opening, such as 80%, and follows the valve's movement in normal and cutaway 3D views. The interface keeps &lt;strong&gt;requested opening, actual model position, three sensor readings and the control measurement&lt;/strong&gt; separate. This makes it possible to see when a reading no longer represents the movement.&lt;/p&gt;

&lt;p&gt;The primary and backup controllers execute real C++ code. They receive measurements and messages through a virtual transport and calculate the motor command. They cannot directly inspect the plant's actual position or the operator's fault settings: they must respond using received information. Heartbeats, commands and measurements travel through the transport, where delays and losses can be introduced.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fczxslebgc1wwe62x4gfz.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fczxslebgc1wwe62x4gfz.webp" alt="SLX ResilienceLab laboratory: 80% requested opening, 64.2% actual position, isolated S1 and a control measurement derived from S2 and S3" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An actual laboratory screenshot during the stuck-S1 scenario. Model position and the measurement used by control remain visible as separate values.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sensor redundancy compares readings using configurable disagreement thresholds, confirmation times and freshness limits. With two trustworthy measurements, it can exclude a disagreeing sensor; when information is insufficient, it requests a stop. Arbitration authorizes only one controller to command the motor at a time, including during transfer to backup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three tests with observable responses
&lt;/h2&gt;

&lt;p&gt;The demonstrator includes three ready-to-run scenarios. The following chart uses &lt;strong&gt;traces produced by executing version 0.4.0&lt;/strong&gt;, with an 80% requested opening, 12 simulated seconds, a 20 ms step and seed 2407. It represents software model results under these stated conditions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx6c07uem2u7lbk4mw1po.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx6c07uem2u7lbk4mw1po.webp" alt="Three charts from executed simulations: movement continues after S1 freezes, backup takes over after primary loss, and the valve stops after two measurements are lost" width="800" height="732"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Green: actual virtual plant position. Grey dashed line: requested opening. In the first chart, red: the frozen S1 reading. Times are simulated, not measurements from physical hardware.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stuck sensor.&lt;/strong&gt; S1 freezes at 1.60 s. The first isolation event appears at 2.12 s, after 0.52 s; the primary isolates S1 at 2.14 s. Control continues with S2 and S3 and finishes with approximately 0.14 percentage points of position error.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary controller loss.&lt;/strong&gt; The controller stops at 2.00 s. The watchdog stops the motor at 2.24 s and arbitration authorizes backup at 2.58 s: takeover occurs after 0.58 s. The valve resumes movement and finishes with approximately 0.16 percentage points of position error.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measurement loss.&lt;/strong&gt; S1 and S2 disconnect at 2.00 s. Their readings expire at 2.40 s and the motor stop is applied at 2.42 s. Final position is 51.48%: the expected outcome is to stop because sufficient information is unavailable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The report retains position errors, detections, transfers to backup and stops. &lt;strong&gt;HTML, JSON and CSV exports&lt;/strong&gt; make the evidence accessible and usable in other tools. Configuration, the fault timeline and seed let you replay a scenario and compare two control versions under the same simulated conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this approach helps embedded development
&lt;/h2&gt;

&lt;p&gt;The principle is &lt;strong&gt;software-in-the-loop&lt;/strong&gt;: execute compiled code on a computer and subject it to repeatable test inputs. &lt;a href="https://www.mathworks.com/help/ecoder/ug/about-sil-and-pil-simulations.html" rel="noopener noreferrer"&gt;MathWorks' SIL and PIL documentation&lt;/a&gt; describes how these environments help verify code behaviour during development. ResilienceLab applies this principle using its own C++ and Qt Quick architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fault injection&lt;/strong&gt; makes the condition under test explicit. Alongside the ready-to-run scenarios, the laboratory supports progressive sensor drift, disconnections, intermittent communication and actuator jamming. In a physical bench, electrical faults require dedicated interfaces: &lt;a href="https://www.ni.com/en/solutions/transportation/hardware-in-the-loop/using-fault-insertion-units--fius--for-electronic-testing.html" rel="noopener noreferrer"&gt;NI's explanation of fault insertion units&lt;/a&gt; illustrates that testing layer. In this demonstrator, faults affect the model and its messages.&lt;/p&gt;

&lt;p&gt;For a development project, the benefit is defining verification criteria early: how many measurements are needed to continue, how quickly a loss should be detected, which controller may issue commands and which events must be retained. The same test can then become a regression check when firmware changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  From PC control to a board connection
&lt;/h2&gt;

&lt;p&gt;The laboratory also supports live operation: change the requested opening and freeze, disconnect or restore sensors while the valve is moving. Actions are recorded so the test can be reconstructed. &lt;strong&gt;1× mode follows the PC clock&lt;/strong&gt;; a desktop operating system does not guarantee strict execution deadlines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8s7yoegm33ltw7uukynp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8s7yoegm33ltw7uukynp.webp" alt="Software loop diagram: virtual plant and three sensors, message transport, primary and backup C++ controllers, command arbitration and motor command" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Message exchange closes the control loop. Actual position remains a reference for observation and reporting; the controllers operate on received measurements.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To integrate customer code, a &lt;strong&gt;DLL interface with a C API&lt;/strong&gt; can replace the motor-command calculation on the PC. The bench retains measurement handling, heartbeats and arbitration. A local JSON-message API provides measurements and diagnostics, changes the setpoint and requests faults; local TCP and &lt;strong&gt;USB/serial&lt;/strong&gt; connections are available in the software. Integrating a specific board requires implementing and verifying the corresponding firmware protocol.&lt;/p&gt;

&lt;p&gt;A further step is &lt;strong&gt;hardware-in-the-loop&lt;/strong&gt;, connecting a physical controller to a simulated environment. As &lt;a href="https://www.ni.com/en/solutions/hardware-in-the-loop-testing.html" rel="noopener noreferrer"&gt;NI's HIL overview&lt;/a&gt; explains, appropriate timing and input/output interfaces are part of that architecture. Board firmware driving the virtual plant is an integration to be developed; ResilienceLab currently provides the software demonstrator and its connection points.&lt;/p&gt;

&lt;p&gt;Three sensors frozen at the same value can still agree. Majority voting alone does not establish that the valve is moving: in the laboratory, a movement request also enables measured-progress monitoring. This illustrates why a bench must be designed around the product's faults and requirements. &lt;strong&gt;SLX ResilienceLab is a software demonstrator with no safety certification&lt;/strong&gt;; it does not validate a physical valve or a customer's firmware.&lt;/p&gt;

&lt;h2&gt;
  
  
  A test bench designed for your product
&lt;/h2&gt;

&lt;p&gt;Silicon LogiX can build a dedicated environment for a board or control system: a plant model, an adapter for the product's interfaces, fault scenarios, acceptance criteria and reports. The starting point can be one concrete function, such as verifying the response to a frozen sensor or interrupted communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tell me about your product, available interfaces and the behaviour you need to verify.&lt;/strong&gt; If you already have a board, include its protocol, signals and timing requirements. We can define a representative first test and the integration path. &lt;a href="https://www.siliconlogix.it/en/contact#service=firmware&amp;amp;source=article-resiliencelab" rel="noopener noreferrer"&gt;Let's discuss your test bench&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Explore the project through the &lt;a href="https://github.com/Silicon-Logix/slx-resiliencelab/releases/tag/v0.4.0" rel="noopener noreferrer"&gt;portable Windows v0.4.0 release&lt;/a&gt; and the &lt;a href="https://github.com/Silicon-Logix/slx-resiliencelab" rel="noopener noreferrer"&gt;GitHub documentation&lt;/a&gt;. The proprietary core is distributed as compiled libraries under the Silicon LogiX evaluation licence; the interface and integration examples are separate.&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/slx-resiliencelab-simulated-faults-measurable-control-responses" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>embedded</category>
      <category>testing</category>
      <category>simulation</category>
    </item>
    <item>
      <title>SLX SynthForge on GitHub: AI for industrial vision</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Thu, 08 Oct 2026 18:01:47 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-synthforge-on-github-ai-for-industrial-vision-4mo1</link>
      <guid>https://dev.to/pezzullo/slx-synthforge-on-github-ai-for-industrial-vision-4mo1</guid>
      <description>&lt;p&gt;&lt;strong&gt;SLX SynthForge&lt;/strong&gt; is available on GitHub, bringing together &lt;strong&gt;computer vision for electronic board inspection&lt;/strong&gt;, 3D scenes and synthetic data. The Silicon LogiX desktop application lets operators edit a virtual board, capture its image and analyse defects with an AI model that runs locally.&lt;/p&gt;

&lt;p&gt;The application uses &lt;strong&gt;C++17, Qt Quick and QML&lt;/strong&gt;. The proprietary &lt;strong&gt;Silicon LogiX SynthForge Core&lt;/strong&gt; engine handles rendering, visual analysis and inference, while &lt;strong&gt;Python and NumPy&lt;/strong&gt; train the classifiers. The project documents the workflow from preparing examples to comparing model versions and preserving inspection evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  From a 3D board to defect detection
&lt;/h2&gt;

&lt;p&gt;The reference scene is &lt;strong&gt;PowerBoard&lt;/strong&gt;, a demonstration board with 46 editable components. Operators can remove a component, change its position or rotate it before starting an inspection. The board model distinguishes nominal appearance, missing components and changes in position or appearance.&lt;/p&gt;

&lt;p&gt;Each result connects the CAD reference to the captured image detail, the score and the model identity. Outcomes are labelled &lt;strong&gt;PASS, DEFECT and REVIEW&lt;/strong&gt;: an accepted component, a detected defect or a case requiring review. Insufficient visibility or captures outside the expected profile require review, as described in the &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/docs/interactive-board.md" rel="noopener noreferrer"&gt;inspection workflow&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhzz3ztjkxm1chi3zfie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhzz3ztjkxm1chi3zfie.png" alt="SLX SynthForge detects missing C2 and misplaced U4 components and links the defects to the 3D electronic board" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Virtual board inspection: defects in C2 and U4 are associated with the captured image and their CAD references.&lt;/p&gt;

&lt;h2&gt;
  
  
  The vision engine: Silicon LogiX SynthForge Core
&lt;/h2&gt;

&lt;p&gt;At the centre of the application is a &lt;strong&gt;C++ engine distributed as a binary SDK&lt;/strong&gt; in the &lt;code&gt;SiliconLogiX.SynthForge.Core.dll&lt;/code&gt; library. Public APIs expose rendering, dataset generation and inspection functions. The Engine module produces the scene image and applies the numerical model to the capture. The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/docs/sdk.md" rel="noopener noreferrer"&gt;SDK documentation&lt;/a&gt; describes the separation between the interface and the engine.&lt;/p&gt;

&lt;p&gt;Board recognition uses a &lt;strong&gt;640 × 480 pixel RGB image&lt;/strong&gt; and a defined inspection camera. The engine analyses the captured pixels; commands used to introduce defects remain preparation and traceability data. Model compatibility, asset identity and capture conditions are checked before inference.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CAD scene
  ↓ RGB capture
  ↓ Visual features
  ↓ Linear softmax classifier
  ↓ PASS / DEFECT / REVIEW and report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;The C++ engine connects the virtual scene to image analysis and the inspection outcome.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Machine learning: visual features and softmax classification
&lt;/h2&gt;

&lt;p&gt;The AI technology is a &lt;strong&gt;multiclass linear classifier with a softmax function&lt;/strong&gt;. Numerical image characteristics, called &lt;em&gt;features&lt;/em&gt;, are normalised and combined with weights learned during training. Softmax produces class scores, which are used alongside acceptance thresholds and capture checks.&lt;/p&gt;

&lt;p&gt;The editable board inspector works with &lt;strong&gt;16 visual features per example&lt;/strong&gt; and three classes: nominal, missing, and changed position or appearance. The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/tools/train-inspector.py" rel="noopener noreferrer"&gt;inspector training pipeline&lt;/a&gt; preserves normalisation parameters, weights and the model identifier.&lt;/p&gt;

&lt;p&gt;The dedicated C1 and U4 component laboratory uses &lt;strong&gt;24 × 24 pixel RGB crops aligned to the component regions&lt;/strong&gt;. Its model distinguishes five scenarios: nominal board, missing component, misalignment, reversed polarity and solder bridge. This is a separate pipeline with its own &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/tools/train.py" rel="noopener noreferrer"&gt;visual softmax classifier&lt;/a&gt;. Scores describe the model response and need to be assessed in the context of the experiment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python and NumPy for model training
&lt;/h2&gt;

&lt;p&gt;Training uses &lt;strong&gt;NumPy for numerical computation&lt;/strong&gt; and the &lt;strong&gt;Adam optimiser&lt;/strong&gt; to update weights. The loss function is &lt;em&gt;cross entropy&lt;/em&gt;, which measures how far classifications differ from example labels. The model is selected using validation loss.&lt;/p&gt;

&lt;p&gt;Training, validation and testing have distinct roles. Normalisation is fitted on training data; a separate test set evaluates the model after selection. Parameters are exported as &lt;strong&gt;versioned JSON files&lt;/strong&gt; and loaded by the C++ engine for inference. Inspection with the included models works without installing Python; a Python environment is needed to train new models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Synthetic data and capture robustness
&lt;/h2&gt;

&lt;p&gt;Dataset forge generates examples from the 3D scene and associates them with simulated defect labels. This makes experiments repeatable, organises cases and diversifies training examples. Capture groups are separated between training, validation and testing to reduce data leakage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Robustness lab&lt;/strong&gt; varies lighting, reflections, blur and camera tilt. Its result grid shows where the model maintains acceptable decisions and where review or a new capture is needed. The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/docs/enterprise-workflow.md" rel="noopener noreferrer"&gt;evaluation workflow&lt;/a&gt; connects image quality to classifier behaviour.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qt Quick and C++ for the desktop application
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Qt Quick, QML and Qt Quick Controls&lt;/strong&gt; provide the operator interface: board editing, capture controls, inspection results and AI laboratories. &lt;strong&gt;OpenGL&lt;/strong&gt; handles the interactive 3D preview, with a software mode available for workstations that need it.&lt;/p&gt;

&lt;p&gt;C++ services coordinate processing outside the interface flow, keeping presentation separate from rendering and generation tasks. &lt;strong&gt;CMake and CTest&lt;/strong&gt; organise builds and automated checks. The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/docs/architecture.md" rel="noopener noreferrer"&gt;documented architecture&lt;/a&gt; distinguishes presentation, the vision engine and training tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model comparison and result traceability
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Assembly AI lab&lt;/strong&gt; collects development cases, prepares new examples and compares the initial model with a candidate. An independent benchmark is frozen before collection: both versions are evaluated on the same data with the same threshold. New examples feed training and validation.&lt;/p&gt;

&lt;p&gt;The comparison considers missed defects, false alarms, REVIEW cases and the proportion of accepted decisions. Candidate activation is explicit. Experiments and reports preserve images, CAD references, edits and model identity; &lt;strong&gt;HTML, CSV and JSON&lt;/strong&gt; formats make outcomes accessible. The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/docs/validation.md" rel="noopener noreferrer"&gt;published validation&lt;/a&gt; documents results and the conditions of synthetic experiments.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to try SLX SynthForge
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/releases/tag/v0.4.1" rel="noopener noreferrer"&gt;v0.4.1 release&lt;/a&gt; includes a portable Windows package. The &lt;a href="https://github.com/Silicon-Logix/slx-synthforge" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; contains application sources, screenshots, documentation and examples. The proprietary engine is supplied as a binary SDK under the &lt;a href="https://github.com/Silicon-Logix/slx-synthforge/blob/f6178d3168f95259629196dda523fb047e9bc45b/LICENSE" rel="noopener noreferrer"&gt;Silicon LogiX evaluation licence&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;SynthForge is an industrial vision demonstration environment based on synthetic data. Applying the workflow to a production line requires validation with real images, optics, lighting and defects representative of the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Industrial vision and custom software
&lt;/h2&gt;

&lt;p&gt;For businesses developing inspection tools or integrating visual analysis and reporting, Silicon LogiX offers &lt;a href="https://www.siliconlogix.it/en/custom-software-development" rel="noopener noreferrer"&gt;custom software development&lt;/a&gt; and &lt;a href="https://www.siliconlogix.it/en/embedded-ai-machine-learning" rel="noopener noreferrer"&gt;AI and machine learning services&lt;/a&gt;. SynthForge shows how a desktop interface, native engine, training data and verifiable results can work together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.siliconlogix.it/en/contact#service=software&amp;amp;source=article-slx-synthforge" rel="noopener noreferrer"&gt;Contact Silicon LogiX about an industrial vision project&lt;/a&gt;&lt;/strong&gt;: describe the process, available data and required functions to define requirements and feasibility experiments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topics and technologies&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=desktop-software" rel="noopener noreferrer"&gt;#DesktopSoftware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=computer-vision" rel="noopener noreferrer"&gt;#ComputerVision&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=industrial-ai" rel="noopener noreferrer"&gt;#IndustrialAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=machine-learning" rel="noopener noreferrer"&gt;#MachineLearning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=synthetic-data" rel="noopener noreferrer"&gt;#SyntheticData&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=c" rel="noopener noreferrer"&gt;#C++&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=qt" rel="noopener noreferrer"&gt;#Qt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=qml" rel="noopener noreferrer"&gt;#QML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=python" rel="noopener noreferrer"&gt;#Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=numpy" rel="noopener noreferrer"&gt;#NumPy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=softmax" rel="noopener noreferrer"&gt;#Softmax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.siliconlogix.it/en/news?tag=github" rel="noopener noreferrer"&gt;#GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/slx-synthforge-on-github-ai-for-industrial-vision" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>cpp</category>
      <category>python</category>
    </item>
    <item>
      <title>SLX Serial Check on GitHub: serial testing with React and Rust</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Wed, 07 Oct 2026 13:03:38 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-serial-check-on-github-serial-testing-with-react-and-rust-2mg4</link>
      <guid>https://dev.to/pezzullo/slx-serial-check-on-github-serial-testing-with-react-and-rust-2mg4</guid>
      <description>&lt;p&gt;&lt;strong&gt;SLX Serial Check&lt;/strong&gt; is now available on GitHub. This new Silicon LogiX project runs &lt;strong&gt;repeatable serial tests on electronic boards and embedded devices&lt;/strong&gt;. The desktop application sends command sequences, checks responses against defined acceptance criteria and retains results, timings and communication traffic in a local archive.&lt;/p&gt;

&lt;p&gt;The software is built with &lt;strong&gt;React, TypeScript, Rust and Tauri 2&lt;/strong&gt; and is distributed as Windows and Linux packages. The project shows how we connect interfaces built with web technologies to native services and hardware communication: from configuring a test to handling errors and exporting the evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  From manual checks to a repeatable test procedure
&lt;/h2&gt;

&lt;p&gt;When developing an electronic product, many checks use a serial port: reading the firmware version, sending a command, retrieving a value or verifying a diagnostic response. Repeating these operations manually means keeping commands, limits, waiting times and notes consistent for every board.&lt;/p&gt;

&lt;p&gt;SLX Serial Check describes this procedure as a &lt;strong&gt;reusable test sequence&lt;/strong&gt;. The operator selects a port, identifies the board and station, loads the sequence and starts execution. Each command has its own acceptance criterion and produces a result that can be inspected afterwards. This workflow supports laboratory checks, comparisons between firmware revisions and preparation of product-specific test procedures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurable sequences: text, HEX and numeric limits
&lt;/h2&gt;

&lt;p&gt;The editor arranges commands in execution order and lets the operator set the expected response, timeout, delay before sending and repetition count. A command can be disabled while retaining its configuration, or tried individually before starting the complete sequence.&lt;/p&gt;

&lt;p&gt;The application supports &lt;strong&gt;text commands and binary packets in HEX format&lt;/strong&gt;. Text responses can be checked with an exact comparison, a substring, a regular expression or a numeric range. Binary packets can be checked against expected bytes, with a precise response length when needed.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/tree/main/examples" rel="noopener noreferrer"&gt;examples included in the repository&lt;/a&gt; illustrate the workflow: send &lt;code&gt;PING&lt;/code&gt; and expect &lt;code&gt;PONG&lt;/code&gt;, verify a firmware version format, or extract a value between 4.9 and 5.1 V from the response to &lt;code&gt;VOUT?&lt;/code&gt;. In the last example, the software evaluates the value reported by the device. The HEX example sends &lt;code&gt;AA 01 55&lt;/code&gt; and checks a four-byte response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fogrj6fuax2xik9ekbpjc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fogrj6fuax2xik9ekbpjc.webp" alt="SLX Serial Check sequence editor with commands, expected responses, timeouts and repetitions" width="800" height="1073"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The editor keeps commands and acceptance criteria together in a sequence, with separate settings for each check.&lt;/p&gt;

&lt;h2&gt;
  
  
  A sequence library with revision management
&lt;/h2&gt;

&lt;p&gt;Procedures are saved with a &lt;strong&gt;name and revision&lt;/strong&gt; in a local library. The JSON format allows them to be imported, exported and inspected outside the application. A saved snapshot retains the sequence configuration; subsequent edits become part of that library entry when the operator explicitly saves them.&lt;/p&gt;

&lt;p&gt;Changing the name or revision creates a new entry and retains the previous one. The application indicates unsaved changes and asks for confirmation before replacing the current work. For teams preparing procedures for several products, these features help organise variants and identify the configuration in use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Execution, response timing and error handling
&lt;/h2&gt;

&lt;p&gt;The complete sequence is validated &lt;strong&gt;before any data is sent to the board&lt;/strong&gt;. The engine keeps one serial connection open throughout the run and handles both individual command repetitions and multiple cycles of the procedure. Baud rate, data bits, parity, stop bits and response framing are part of the configuration.&lt;/p&gt;

&lt;p&gt;During a test, the interface displays progress, the current cycle, transmitted and received traffic, and check outcomes. A response that fails its acceptance criterion can stop execution according to the operator’s selected policy. Timeouts, communication errors, invalid data and cancellation stop the sequence, keeping failed checks distinct from checks that were never executed.&lt;/p&gt;

&lt;p&gt;An operator-requested stop retains the available evidence and prevents subsequent cycles from starting. Closing the application during a test also handles cancellation and evidence storage before exiting. Measured timings describe execution on the desktop system and help compare the behaviour observed across tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  React and TypeScript for the operator interface
&lt;/h2&gt;

&lt;p&gt;The interface is built with &lt;strong&gt;React&lt;/strong&gt; and divided into three workspaces: &lt;em&gt;Test Bench&lt;/em&gt; for connection and execution, &lt;em&gt;Sequences&lt;/em&gt; for procedure preparation, and &lt;em&gt;Results&lt;/em&gt; for browsing saved runs. Dedicated components handle the command editor, connection state, progress, confirmation dialogs and result details.&lt;/p&gt;

&lt;p&gt;Interface logic is organised into separate &lt;strong&gt;React hooks&lt;/strong&gt; for execution, the sequence library and the archive. The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/src/hooks/useSerialRun.ts" rel="noopener noreferrer"&gt;active-run hook&lt;/a&gt; follows the starting, running, waiting and stopping states, retains the configuration used by the test and discards late events belonging to an earlier run. These choices make the lifecycle of asynchronous operations explicit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; defines the structures used for sequences, requests, events and reports, helping keep the code that consumes them consistent. Static type checks work alongside data validation in the native engine. &lt;strong&gt;Vite&lt;/strong&gt; handles frontend development and builds: the same interface code can be explored in a browser preview, while serial execution takes place in the desktop application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rust for serial communication and test logic
&lt;/h2&gt;

&lt;p&gt;The software’s core is &lt;strong&gt;a Rust engine independent of the interface&lt;/strong&gt;, organised in the &lt;code&gt;serialcheck-core&lt;/code&gt; library. Separate modules handle profile models, serial access, execution, command encoding, response acceptance and result export. This separation allows sequence behaviour to be tested without launching the GUI.&lt;/p&gt;

&lt;p&gt;The engine addresses practical communication details: partial reads, fragmented responses, message terminators, packet lengths and receive deadlines. Desktop services run the test separately from the interface and allow only one active execution. Cancellation requests are checked during exchanges and pauses.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/docs/architecture.md" rel="noopener noreferrer"&gt;architecture documented in the repository&lt;/a&gt; demonstrates Rust development applied to I/O, state management, concurrency and error handling. The procedure logic remains separate from the services that display events and persist data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tauri 2: web technologies and native desktop services
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tauri 2&lt;/strong&gt; connects the React frontend to Rust services through native commands and event channels. The interface requests the port list, starts or stops a test, and queries saved runs; the backend accesses serial devices and the filesystem and reports progress. These responsibilities are also explicit in the &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/src/backend.ts" rel="noopener noreferrer"&gt;frontend-backend communication module&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The result is a desktop application that uses web technologies for presentation and native services for device operations. Sequences, history and the quick-start guide remain available locally, and startup does not require an Internet connection. This approach suits technical tools that run on the operator’s workstation and communicate directly with hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traceable results and integration with SLX Test Report
&lt;/h2&gt;

&lt;p&gt;Each run retains the board serial number, operator, station, run identifier, effective configuration, responses and outcomes. The &lt;strong&gt;SHA-256 fingerprint of the effective profile&lt;/strong&gt; identifies the configuration used. The TX/RX log retains transmitted and received data, including text and hexadecimal representations and timing information.&lt;/p&gt;

&lt;p&gt;Saved runs can be searched and filtered by date and outcome, with details for each cycle and individual check. Export formats include &lt;strong&gt;CSV, JSON and JSONL&lt;/strong&gt;: CSV contains the results, JSON holds the complete report, and JSONL preserves the event stream. Statuses distinguish passed checks, failed checks, errors, cancellations and skipped controls.&lt;/p&gt;

&lt;p&gt;Persistence is part of the execution workflow: events are recorded before being sent to the interface, and a log-writing failure interrupts the test. Final files are completed through temporary-file writes. This behaviour helps keep displayed outcomes connected to the retained evidence.&lt;/p&gt;

&lt;p&gt;The CSV is compatible with &lt;a href="https://www.siliconlogix.it/en/article/slx-test-report-on-github-from-electronic-testing-to-pdf-reports" rel="noopener noreferrer"&gt;SLX Test Report, our software for PDF test reports&lt;/a&gt;. The two projects cover consecutive steps: Serial Check executes checks and collects results; Test Report imports the CSV, analyses measurements and generates the PDF document. The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/docs/sequence-format.md" rel="noopener noreferrer"&gt;evidence format&lt;/a&gt; is described in the documentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxjfocococif9bkzw8ys.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxjfocococif9bkzw8ys.webp" alt="SLX Serial Check result archive with search, filters, cycle details and CSV, JSON and JSONL exports" width="800" height="912"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result inspection and evidence export. The illustrated data comes from the Linux integration test using an operating-system virtual serial port.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automated tests and Windows and Linux packages
&lt;/h2&gt;

&lt;p&gt;The repository includes TypeScript tests with &lt;strong&gt;Vitest&lt;/strong&gt; and Rust tests for profile validation, saved revisions, fragmented responses, binary packets, timeouts, cancellation and CSV export. On Linux, an integration test uses an operating-system pseudo-terminal to exercise the serial driver with a controlled exchange.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/.github/workflows/ci.yml" rel="noopener noreferrer"&gt;GitHub Actions workflow&lt;/a&gt; configures Windows and Linux checks for code analysis, types, formatting, tests, compilation and package verification. It also checks Linux archive startup in Ubuntu 22.04 and Debian 12 environments without preinstalled WebKitGTK.&lt;/p&gt;

&lt;p&gt;Distribution also covers application dependencies: the Windows package includes its own WebView2 runtime, and the Linux package includes its application libraries. The operator’s workstation does not need Node.js or Rust installed. The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/docs/building.md" rel="noopener noreferrer"&gt;build and packaging documentation&lt;/a&gt; describes archive preparation, dependency checks and startup verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to download and try SLX Serial Check
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/releases/tag/v0.3.1" rel="noopener noreferrer"&gt;Release v0.3.1&lt;/a&gt; provides x64 packages for &lt;strong&gt;Windows 10/11&lt;/strong&gt; and &lt;strong&gt;Linux with a graphical desktop, Ubuntu 22.04+ or Debian 12+&lt;/strong&gt;, together with SHA-256 archive checksums. Extract the complete folder, then start the Windows executable or Linux launcher.&lt;/p&gt;

&lt;p&gt;For a first test, load an example sequence, adapt it to the board’s commands, choose the serial port and enter the run metadata. The &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/docs/user-guide.md" rel="noopener noreferrer"&gt;operator guide&lt;/a&gt; covers preparation, execution and result inspection. Serial is the implemented transport; TCP/IP, SCPI instruments and multi-board testing are shown in the interface as integrations that can be developed on request.&lt;/p&gt;

&lt;p&gt;Source code, screenshots and examples are available in the &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck" rel="noopener noreferrer"&gt;SLX Serial Check GitHub repository&lt;/a&gt;. The project is distributed under the &lt;a href="https://github.com/Silicon-Logix/slx-serialcheck/blob/main/LICENSE" rel="noopener noreferrer"&gt;Silicon LogiX Evaluation License&lt;/a&gt; for study and evaluation; production or commercial use requires written authorisation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom software for interfaces, devices and testing
&lt;/h2&gt;

&lt;p&gt;SLX Serial Check demonstrates a complete &lt;strong&gt;custom software development&lt;/strong&gt; workflow: React interface design, TypeScript models, a Rust engine, Tauri desktop integration, data management, testing and distribution. These capabilities support technical tools tailored to a company’s processes, from control panels to applications that communicate with devices and existing systems.&lt;/p&gt;

&lt;p&gt;Silicon LogiX develops &lt;a href="https://www.siliconlogix.it/en/custom-software-development" rel="noopener noreferrer"&gt;desktop and web applications for businesses&lt;/a&gt; and &lt;a href="https://www.siliconlogix.it/en/firmware-development" rel="noopener noreferrer"&gt;firmware for embedded devices&lt;/a&gt;. A project can therefore include both workstation software and the product’s protocol and diagnostics, keeping commands, acceptance criteria and exported data consistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.siliconlogix.it/en/contact#service=software&amp;amp;source=en-article-slx-serialcheck" rel="noopener noreferrer"&gt;Let’s discuss your software project&lt;/a&gt;&lt;/strong&gt;: describe the device or process, intended operating systems, data to retain and operations to automate. We can assess the requirements and first development step together.&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/slx-serial-check-on-github-serial-testing-with-react-and-rust" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>rust</category>
      <category>tauri</category>
    </item>
    <item>
      <title>SLX Test Report on GitHub: from electronic testing to PDF reports</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 06 Oct 2026 10:31:55 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-test-report-on-github-from-electronic-testing-to-pdf-reports-3l5n</link>
      <guid>https://dev.to/pezzullo/slx-test-report-on-github-from-electronic-testing-to-pdf-reports-3l5n</guid>
      <description>&lt;p&gt;&lt;strong&gt;SLX Test Report&lt;/strong&gt; is now available on GitHub. This Silicon LogiX desktop application turns electronic test results into &lt;strong&gt;traceable PDF reports&lt;/strong&gt;. It works with CSV exports from the test bench, without requiring a direct connection to the instruments.&lt;/p&gt;

&lt;p&gt;The project addresses a practical need: collecting measurements, checking them against acceptance criteria and keeping them in a document that can be reviewed. The release lets you explore this workflow through the application, source code and supplied examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  From measurements to reports
&lt;/h2&gt;

&lt;p&gt;The workflow has three steps: &lt;strong&gt;import, verify and generate the report&lt;/strong&gt;. The software compares measurements with acceptance limits, handles functional checks and distinguishes passed, failed and skipped tests from invalid data. Search, filters and an analysis view help identify anomalies and readings close to their limits.&lt;/p&gt;

&lt;p&gt;Alongside file import, a visual editor lets you prepare CSV files directly in the application. When a file contains several serial numbers, results are grouped by device, with the option to export one PDF for each unit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON test profiles&lt;/strong&gt; define the model, revision, expected checks and their limits. They keep acceptance criteria separate from the collected measurements and allow the software to highlight missing required tests, duplicates and tests outside the profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test traceability
&lt;/h2&gt;

&lt;p&gt;Each report includes measurements, units, limits, outcomes and diagnostics, together with the model, serial number, date, operator, station and procedure revision. A report ID identifies the document, while a &lt;strong&gt;SHA-256 digest&lt;/strong&gt; links it to the original CSV and, when used, the test profile.&lt;/p&gt;

&lt;p&gt;The PDF is laid out on A4 pages and retains anomalous and incomplete results. An appendix preserves full test names and diagnostic notes when the compact table cannot display them in full.&lt;/p&gt;

&lt;h2&gt;
  
  
  The technologies behind the project
&lt;/h2&gt;

&lt;p&gt;The project is built with &lt;strong&gt;C++17 and Qt 6&lt;/strong&gt;. Its interface uses &lt;strong&gt;Qt Quick, QML and Qt Quick Controls&lt;/strong&gt;, while C++ modules handle data reading, result evaluation and reporting. This structure separates test logic from the presentation of results, as shown in the &lt;a href="https://github.com/Silicon-Logix/slx-testreport/blob/main/CMakeLists.txt" rel="noopener noreferrer"&gt;project configuration&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;CSV and JSON are the exchange formats for measurements and profiles. For &lt;a href="https://github.com/Silicon-Logix/slx-testreport/blob/main/src/pdfexport.cpp" rel="noopener noreferrer"&gt;PDF generation&lt;/a&gt;, the software uses Qt's QPdfWriter and QPainter: tables, summaries and graphics are composed directly by the application. The output file is committed only after generation has finished.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CMake&lt;/strong&gt; coordinates compilation and &lt;strong&gt;CTest&lt;/strong&gt; runs the tests, which cover CSV handling, profiles, filters and the reporting workflow. The repository also includes a &lt;a href="https://github.com/Silicon-Logix/slx-testreport/blob/main/.github/workflows/ci.yml" rel="noopener noreferrer"&gt;GitHub Actions workflow&lt;/a&gt; to build the project and run checks on Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to try it
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Silicon-Logix/slx-testreport/releases/tag/v0.5.2" rel="noopener noreferrer"&gt;Release v0.5.2&lt;/a&gt; includes a Windows package that you can extract and run, with example data to explore the workflow and produce a first report. The &lt;a href="https://github.com/Silicon-Logix/slx-testreport" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; provides source code, screenshots and documentation, including instructions for building the application.&lt;/p&gt;

&lt;p&gt;The project is distributed under the &lt;a href="https://github.com/Silicon-Logix/slx-testreport/blob/main/LICENSE" rel="noopener noreferrer"&gt;Silicon LogiX Evaluation License&lt;/a&gt;, which permits study and evaluation; commercial use requires written permission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom software for testing and reporting
&lt;/h2&gt;

&lt;p&gt;Need an application to manage test data, automate reports or connect software you already use? Silicon LogiX provides &lt;a href="https://www.siliconlogix.it/en/custom-software-development" rel="noopener noreferrer"&gt;custom software development for businesses&lt;/a&gt;: desktop and web applications, data analysis tools and integrations with existing systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.siliconlogix.it/en/contact#service=software&amp;amp;source=en-article-slx-testreport" rel="noopener noreferrer"&gt;Contact us about your software project&lt;/a&gt;&lt;/strong&gt;: describe the process you want to improve, the data available and the functions you need. Together, we can assess the requirements and the first step towards implementation.&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/slx-test-report-on-github-from-electronic-testing-to-pdf-reports" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>qt</category>
      <category>testing</category>
      <category>showdev</category>
    </item>
    <item>
      <title>ESP32 without a board: firmware tests with Zephyr and QEMU</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 29 Sep 2026 12:52:46 +0000</pubDate>
      <link>https://dev.to/pezzullo/esp32-without-a-board-firmware-tests-with-zephyr-and-qemu-65j</link>
      <guid>https://dev.to/pezzullo/esp32-without-a-board-firmware-tests-with-zephyr-and-qemu-65j</guid>
      <description>&lt;p&gt;&lt;strong&gt;The board has not arrived, but firmware development needs to move forward.&lt;/strong&gt; Perhaps the PCB is being revised, several engineers share the first prototypes, or a regression is difficult to isolate. Running selected checks on a development computer helps separate software problems from hardware issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zephyr and Espressif’s QEMU fork&lt;/strong&gt; provide a way to execute firmware for supported ESP32 targets in an emulated environment. The value is earlier, repeatable verification. To interpret the results correctly, engineers need to understand which parts of the device are modeled and which tests still require real hardware.&lt;/p&gt;

&lt;p&gt;The starting point is &lt;a href="https://developer.espressif.com/blog/2026/09/zephyr-espressif-qemu-hello-world/" rel="noopener noreferrer"&gt;Espressif’s guide published on September 15, 2026&lt;/a&gt;, covering Zephyr startup and debugging with QEMU. For product development, the useful idea is to establish an observable software baseline before validating it on the physical board.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key points
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;QEMU executes firmware using models of the processor and supported peripherals.&lt;/li&gt;
&lt;li&gt;These targets require Espressif’s fork; a generic QEMU installation is not sufficient.&lt;/li&gt;
&lt;li&gt;A passing emulation test does not measure radio performance, power consumption or electrical reliability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How ESP32 emulation with Zephyr and QEMU works
&lt;/h2&gt;

&lt;p&gt;Three components have distinct roles. &lt;strong&gt;Zephyr&lt;/strong&gt; provides the operating system and application environment. The &lt;strong&gt;toolchain&lt;/strong&gt; compiles sources for the target architecture. &lt;strong&gt;QEMU&lt;/strong&gt; executes that code against a software model of the machine on the development computer.&lt;/p&gt;

&lt;p&gt;A debugger can pause execution, inspect memory and registers, and follow a program path. The connection uses the remote debugging mechanism described in the &lt;a href="https://www.qemu.org/docs/master/system/gdb.html" rel="noopener noreferrer"&gt;QEMU GDB documentation&lt;/a&gt;. This emulated debugging session does not need a physical probe attached to a board.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F74rmbqx3w5ohsx50hg25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F74rmbqx3w5ohsx50hg25.png" alt="Application code and Zephyr are compiled for ESP32-C3. Firmware runs in Espressif QEMU on a computer, observed through UART logs and GDB." width="720" height="1010"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The firmware path in the emulated environment. GDB uses the ELF file for program symbols and information; the physical board belongs to a separate verification layer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This distinction determines what a result means. Reaching an expected execution point verifies one path in that configuration. It does not establish how a power rail will respond to a current spike or how long a transmission will take at the installation site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported ESP32 targets: what to check first
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://docs.zephyrproject.org/latest/boards/espressif/esp32c3_devkitc/doc/index.html#using-espressif-qemu" rel="noopener noreferrer"&gt;Zephyr documentation for Espressif QEMU&lt;/a&gt; lists the following combinations. Check that the required board variant exists in your Zephyr revision before configuring the build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Targets in the documented workflow; support also depends on the emulator build.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SoC&lt;/th&gt;
&lt;th&gt;Architecture&lt;/th&gt;
&lt;th&gt;QEMU executable&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ESP32&lt;/td&gt;
&lt;td&gt;Xtensa&lt;/td&gt;
&lt;td&gt;&lt;code&gt;qemu-system-xtensa&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ESP32-S3&lt;/td&gt;
&lt;td&gt;Xtensa&lt;/td&gt;
&lt;td&gt;&lt;code&gt;qemu-system-xtensa&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ESP32-C3&lt;/td&gt;
&lt;td&gt;RISC-V&lt;/td&gt;
&lt;td&gt;&lt;code&gt;qemu-system-riscv32&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ESP32-C6&lt;/td&gt;
&lt;td&gt;RISC-V&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;qemu-system-riscv32&lt;/code&gt; with the C6 machine available&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;ESP32-C6 needs an additional check:&lt;/strong&gt; the prebuilt &lt;code&gt;esp-develop-9.2.2-20260417&lt;/code&gt; release referenced by the documentation does not include that machine; the documented route is to build from &lt;code&gt;esp-develop&lt;/code&gt;. For later packages, inspect the &lt;a href="https://github.com/espressif/qemu/releases" rel="noopener noreferrer"&gt;official releases&lt;/a&gt; and the machines listed by the installed executable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What emulation can verify, and what remains outside it
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/espressif/esp-toolchain-docs/blob/main/qemu/README.md" rel="noopener noreferrer"&gt;Espressif QEMU feature matrix&lt;/a&gt; identifies modeled peripherals. Coverage differs between SoCs; the ESP32 family name alone does not establish compatibility. Wi-Fi and Bluetooth are not emulated, and many external sensor and device interfaces are also outside the model.&lt;/p&gt;

&lt;p&gt;The matrix also describes additional virtual peripherals for particular uses, including emulated Ethernet. A virtual network path does not validate the product’s Wi-Fi connection: association, antenna behavior, interference and coverage need their own tests.&lt;/p&gt;

&lt;p&gt;Choose tests by asking a precise question. “Does the parser reject an incomplete message?” differs from “Does the sensor respond correctly on the bus?” Controlled inputs can exercise the first case. The second also depends on the driver, peripheral model and, ultimately, the physical connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  A first ESP32-C3 boot: where to begin
&lt;/h2&gt;

&lt;p&gt;Start with a working Zephyr workspace, SDK, Espressif dependencies and a revision containing the required QEMU target. The &lt;a href="https://docs.zephyrproject.org/latest/develop/getting_started/index.html" rel="noopener noreferrer"&gt;Zephyr getting started guide&lt;/a&gt; covers environment setup. Install the emulator separately from Espressif’s releases.&lt;/p&gt;

&lt;p&gt;Before building, check that the executable selected by your shell knows the required machine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qemu-system-riscv32 &lt;span class="nt"&gt;-machine&lt;/span&gt; &lt;span class="nb"&gt;help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The list should include &lt;code&gt;esp32c3&lt;/code&gt;. If it does not, check the executable path and version. A compiler and an emulator serve different purposes: installing the former does not add a chip model to the latter.&lt;/p&gt;

&lt;p&gt;The following is a &lt;strong&gt;documentation-based reference sequence&lt;/strong&gt;, run from the workspace root containing &lt;code&gt;zephyr/&lt;/code&gt;. It is not presented as a laboratory measurement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;west build &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-b&lt;/span&gt; esp32c3_devkitc/esp32c3/qemu &lt;span class="se"&gt;\&lt;/span&gt;
  zephyr/samples/hello_world &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; build-qemu-c3 &lt;span class="nt"&gt;--no-sysbuild&lt;/span&gt; &lt;span class="nt"&gt;--pristine&lt;/span&gt;

west build &lt;span class="nt"&gt;-d&lt;/span&gt; build-qemu-c3 &lt;span class="nt"&gt;-t&lt;/span&gt; run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;/qemu&lt;/code&gt; variant selects the emulation configuration. The initial check is to observe startup and the sample’s message. That establishes a starting point, rather than validating a complete application.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://docs.zephyrproject.org/latest/develop/west/build-flash-debug.html" rel="noopener noreferrer"&gt;west build documentation&lt;/a&gt; explains build directories and &lt;code&gt;--pristine&lt;/code&gt;, which recreates the contents of the build directory. Use a dedicated folder and keep source files and documents elsewhere. A clean build helps avoid stale settings when changing targets or configurations.&lt;/p&gt;

&lt;p&gt;For debugging, Espressif’s workflow uses the &lt;code&gt;debugserver&lt;/code&gt; target and GDB for the correct architecture. The &lt;code&gt;zephyr.elf&lt;/code&gt; file must match the running build: symbols from another compilation can make an investigation misleading.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical design example: verifying alarm handling
&lt;/h2&gt;

&lt;p&gt;Consider a device that reads a temperature, activates an alarm above a threshold and clears it below a second threshold. Hysteresis prevents repeated switching near the limit. Several software decisions can be checked before introducing the sensor.&lt;/p&gt;

&lt;p&gt;Separate measurement acquisition from the function that updates the alarm state. A test supplies a known sequence: a normal value, a threshold crossing, an intermediate fluctuation and a return below the clearing threshold. At each step, compare the actual state with the expected state. Then add invalid readings, stale measurements and inconsistent configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synthetic inputs verify the logic that receives them.&lt;/strong&gt; They do not demonstrate that an I2C sensor works inside QEMU. This separation makes it possible to identify a hysteresis bug independently of wiring. Once the board arrives, testing also covers acquisition, timing and driver error handling.&lt;/p&gt;

&lt;p&gt;A useful report names the verified requirement. “Alarm active after a valid reading above the threshold” communicates evidence; “test OK” alone does not explain coverage or limitations. Repeating the sequence after adding a new sensor helps detect regressions in the application rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logic tests, QEMU and physical hardware: complementary layers
&lt;/h2&gt;

&lt;p&gt;A product needs different checks with specific objectives. Logic tests investigate decisions. Emulation exercises parts of firmware integration. Device tests establish properties that exist only in physical hardware and its operating environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F01pq422omwi7kerebfu0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F01pq422omwi7kerebfu0.png" alt="Three complementary layers: logic tests with synthetic inputs, QEMU for boot and integration, and physical hardware for radio, I/O, timing and power measurements." width="720" height="1004"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Each layer answers a different question. Passing a QEMU test adds firmware evidence but does not replace validation of the complete product.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Zephyr provides &lt;a href="https://docs.zephyrproject.org/latest/develop/test/ztest.html" rel="noopener noreferrer"&gt;Ztest&lt;/a&gt; for organizing tests and assertions. Its &lt;a href="https://docs.zephyrproject.org/latest/boards/native/native_sim/doc/index.html" rel="noopener noreferrer"&gt;native_sim platform&lt;/a&gt; also runs Zephyr applications compiled for the host. That is a different environment from ESP32 emulation and can be useful for software logic and integration that do not require a model of that SoC.&lt;/p&gt;

&lt;p&gt;For an automated pipeline, record the code revision, configuration, tool versions and expected outcome for every run. A job should distinguish an application failure, a timeout and an environment startup problem. Otherwise, process termination can be mistaken for a successful test.&lt;/p&gt;

&lt;p&gt;Start with a few checks tied to costly defects: invalid configuration, incomplete messages, a full queue or recovery after an error. Evaluate the benefit by tracking which defects are caught earlier and which still need reproduction on the board. There is no universal percentage of time saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  ESP32, Zephyr and QEMU: frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can QEMU verify ESP32 Wi-Fi and Bluetooth?
&lt;/h3&gt;

&lt;p&gt;Those radios are not emulated in the workflow described here. Their operation and performance require real hardware. A virtual network interface does not constitute a radio test.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I reuse the production configuration automatically?
&lt;/h3&gt;

&lt;p&gt;Check its peripheral dependencies first. Applications that initialize unmodeled components may need a test configuration or replaceable interfaces. Document the differences from production firmware.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a passing QEMU test enough to release firmware?
&lt;/h3&gt;

&lt;p&gt;It is one part of the evidence. Release criteria must address the product, including board integration, error handling and the intended operating conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making verification part of firmware development
&lt;/h2&gt;

&lt;p&gt;A practical first step is to identify a critical software module and the behavior that must remain stable. Build repeatable tests around those requirements, choose where to run them, and connect the results to device-level verification.&lt;/p&gt;

&lt;p&gt;Silicon LogiX provides &lt;a href="https://www.siliconlogix.it/en/esp32-firmware-development" rel="noopener noreferrer"&gt;ESP32 firmware development&lt;/a&gt;, system integration and &lt;a href="https://www.siliconlogix.it/en/firmware-software-debugging-problem-solving" rel="noopener noreferrer"&gt;firmware debugging support&lt;/a&gt;. To discuss verification for your product, &lt;a href="https://www.siliconlogix.it/en/contact#service=firmware&amp;amp;source=en-news-esp32-zephyr-qemu" rel="noopener noreferrer"&gt;describe the device, the current software and the problem you need to solve&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Related reading: &lt;a href="https://www.siliconlogix.it/en/article/freertos-vs-zephyr-vs-threadx-choosing-the-right-rtos" rel="noopener noreferrer"&gt;FreeRTOS, Zephyr and ThreadX compared&lt;/a&gt;, &lt;a href="https://www.siliconlogix.it/en/article/esp32-local-iot-with-wi-fi-rest-apis-and-a-web-ui" rel="noopener noreferrer"&gt;ESP32 with Wi-Fi, REST APIs and a web UI&lt;/a&gt;, and &lt;a href="https://www.siliconlogix.it/en/article/firmware-black-box-how-to-find-out-why-an-embedded-device-resets-in-the-field" rel="noopener noreferrer"&gt;diagnosing embedded resets in the field&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Technical references checked on September 29, 2026. Diagrams are original explanatory illustrations; the alarm scenario is a design example. Check commands and compatibility against your installed versions.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/esp32-without-a-board-firmware-tests-with-zephyr-and-qemu" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>embedded</category>
      <category>zephyr</category>
      <category>testing</category>
    </item>
    <item>
      <title>Satellite IoT: keeping sensors connected beyond cellular coverage</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 21 Sep 2026 12:46:16 +0000</pubDate>
      <link>https://dev.to/pezzullo/satellite-iot-keeping-sensors-connected-beyond-cellular-coverage-43cg</link>
      <guid>https://dev.to/pezzullo/satellite-iot-keeping-sensors-connected-beyond-cellular-coverage-43cg</guid>
      <description>&lt;p&gt;&lt;strong&gt;A sensor can keep taking measurements after cellular coverage disappears. Without an available connection, however, those readings and alerts never reach the person who needs to act.&lt;/strong&gt; This happens on farmland far from towns, at an isolated storage tank, or along a vehicle’s route through areas without mobile service. The device remains powered, but the last update on the monitoring platform gets older and older.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Satellite IoT&lt;/strong&gt; offers a practical option: compatible devices can use a satellite link to transmit data beyond the reach of cellular networks. For a business, this opens up monitoring opportunities at sites that have been difficult to connect, potentially reducing the need for manual visits. The outcome depends on the complete system: sensors, antenna, firmware, power supply, connectivity service and the software receiving the messages.&lt;/p&gt;

&lt;p&gt;A sign of this market’s development came in &lt;a href="https://www.nordicsemi.com/Nordic-news/2026/08/Nordics-nRF9151-opens-satellite-and-cellular-IoT-to-a-new-class-of-connected-devices" rel="noopener noreferrer"&gt;Nordic Semiconductor’s announcement on August 6, 2026&lt;/a&gt;: the &lt;strong&gt;LooUQ MTC2-N9151&lt;/strong&gt; embedded modem, based on the &lt;strong&gt;nRF9151&lt;/strong&gt;, received Skylo certification for NTN satellite connectivity. It provides an integration platform that combines cellular and satellite communication and simplifies product development.&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A satellite link can carry readings and alerts beyond cellular coverage, with compatible hardware and an enabled service.&lt;/li&gt;
&lt;li&gt;Agriculture, isolated infrastructure and logistics are applications in which to assess sensors with hybrid connectivity.&lt;/li&gt;
&lt;li&gt;Firmware, energy consumption, antenna design and data handling determine how useful and sustainable the solution will be in the field.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When cellular coverage is missing, the problem becomes operational
&lt;/h2&gt;

&lt;p&gt;Consider a pump supplying an irrigation system. A sensor detects an abnormal pressure drop, but the modem cannot connect. The alert remains on the device while the operator continues to see an earlier reading. If the platform does not clearly distinguish recent data from stale data, a communication failure can even look like normal operation.&lt;/p&gt;

&lt;p&gt;Storing readings locally allows the history to be recovered when connectivity returns. That is essential, but responding while a fault is occurring also requires an available communication path. This is where a second connection option becomes valuable: it increases the opportunities for useful information to reach its destination.&lt;/p&gt;

&lt;p&gt;The assessment must cover the network the device will actually use. Signal bars on a smartphone do not establish whether a sensor can access the intended cellular service with its particular modem, SIM and installation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How satellite IoT works with NTN networks
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;NTN stands for Non-Terrestrial Network.&lt;/strong&gt; In the solution discussed here, the device communicates by radio with a satellite; the traffic then passes through ground infrastructure and the operator’s network to the receiving service. &lt;a href="https://www.skylo.tech/knowledge-base/integration-guide" rel="noopener noreferrer"&gt;Skylo’s network integration documentation&lt;/a&gt; describes an architecture that complements cellular networks using existing geostationary satellites.&lt;/p&gt;

&lt;p&gt;A product can therefore be designed with two paths: the cellular network when available, and a satellite connection under supported conditions. Switching depends on compatibility between the modem, firmware, antenna and operator service. The application must still handle connection times, failed transmissions and periods when neither path is usable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyzfbfcemlv86g5r3agm4.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyzfbfcemlv86g5r3agm4.webp" alt="Two paths for sensor data: a cellular network, or a satellite and ground station, reaching the operator network and monitoring platform" width="800" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two possible telemetry paths. The satellite relays data towards ground infrastructure, and the backend makes it available to the dashboard. Conceptual diagram, not to scale: the NTN path requires service coverage, a suitable radio path and an enabled device. If both connections are unavailable, firmware stores readings locally within the available memory capacity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NB-NTN&lt;/strong&gt; provides narrowband connectivity for compact messages such as a reading, a status update or a position. Product design should start with the information that is essential and the time within which it is needed. Sending a meaningful event can be far more useful than trying to transmit every sensor sample over satellite.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the LooUQ modem based on nRF9151 changes
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.nordicsemi.com/Products/nRF9151" rel="noopener noreferrer"&gt;Nordic nRF9151&lt;/a&gt; is a System-in-Package integrating an application processor and a modem supporting LTE-M, NB-IoT and NB-NTN. LooUQ uses it as the foundation of its &lt;a href="https://www.loouq.com/" rel="noopener noreferrer"&gt;MTC2-N9151&lt;/a&gt;, designed for integration into a device. Developers can start evaluating an existing communication platform and focus their work on the product and its application.&lt;/p&gt;

&lt;p&gt;Certification of the underlying platform reduces some of the integration and verification work. The finished product still needs to be assessed in its actual configuration, including its enclosure, antenna and firmware. Skylo distinguishes between &lt;a href="https://www.skylo.tech/faq" rel="noopener noreferrer"&gt;chipset, module and device certification&lt;/a&gt;: the applicable process should be agreed before planning production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Remsight example: water monitoring in the American West
&lt;/h2&gt;

&lt;p&gt;Nordic’s announcement cites &lt;strong&gt;Remsight&lt;/strong&gt;, which uses the MTC2-N9151 in its HydroProxy platform to monitor irrigation infrastructure in the American West. Its solar-powered sensors operate in locations where cellular coverage is unreliable.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.remsight.com/" rel="noopener noreferrer"&gt;system described by Remsight&lt;/a&gt; combines field measurements, hybrid telemetry and map-based dashboards to support water managers. The practical benefit is easy to understand: observing distributed infrastructure without physically visiting every measurement point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Applications: agriculture, remote infrastructure and logistics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Agriculture and irrigation
&lt;/h3&gt;

&lt;p&gt;Reservoir level, pipe flow, irrigation pressure and pump status remain useful measurements even when a field is far from a cell tower. An agricultural system can be designed to send key readings periodically and report threshold crossings, taking seasonality and the required operating autonomy into account.&lt;/p&gt;

&lt;p&gt;Silicon LogiX can work on sensor acquisition, &lt;a href="https://www.siliconlogix.it/en/firmware-development" rel="noopener noreferrer"&gt;firmware development&lt;/a&gt; and the logic that decides when to transmit. Monitoring software can then associate readings with a site and its history, helping operators identify unusual consumption or conditions that require investigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Storage tanks, pumps and energy infrastructure
&lt;/h3&gt;

&lt;p&gt;For an isolated tank, knowing the level and its trend may be sufficient. A pumping station may need operating hours, temperature and alarm status. Distributed energy installations and equipment in poorly served areas can also benefit from sending essential diagnostics, provided the site and service support the connection.&lt;/p&gt;

&lt;p&gt;We can contribute by integrating existing electronics, processing data locally and transferring useful information to the backend. Machine protection and responses requiring guaranteed timing must remain local; the remote link provides visibility and maintenance support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Logistics and asset tracking
&lt;/h3&gt;

&lt;p&gt;A mobile asset may pass through areas with intermittent coverage. A hybrid tracker can be designed to send location, temperature or selected events according to the available network. Two functions must be distinguished: GNSS determines the position, while cellular or satellite connectivity carries it to the platform.&lt;/p&gt;

&lt;p&gt;Silicon LogiX can develop acquisition logic, event storage and integration with business systems. Antenna placement is critical: a device inside a metal container requires a different assessment from a tracker mounted outside. Countries and service availability along the route also need to be checked.&lt;/p&gt;

&lt;h3&gt;
  
  
  Environmental monitoring and temporary installations
&lt;/h3&gt;

&lt;p&gt;Weather stations, river-level measurements and instruments at isolated construction sites are further scenarios to assess. Feasibility depends on data volume, access to the installation and available energy. We can contribute through &lt;a href="https://www.siliconlogix.it/en/hardware-software-prototyping" rel="noopener noreferrer"&gt;hardware and software prototyping&lt;/a&gt;, data acquisition and the diagnostic tools needed to understand the system’s behaviour during field trials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Firmware must handle hours without a connection
&lt;/h2&gt;

&lt;p&gt;Adding a compatible modem is one step in the project. A reliable product also needs a policy for what happens after each measurement: which data to retain, which events take priority, when to attempt a connection and how long to keep retrying. These are application decisions based on operational requirements.&lt;/p&gt;

&lt;p&gt;One possible strategy uses timestamped readings, a persistent queue and message identifiers. The backend can then recognise retransmissions and delayed data. The queue needs a defined capacity and a policy for handling a full buffer while preserving the events most useful to the process.&lt;/p&gt;

&lt;p&gt;The dashboard must also make this distinction visible. &lt;strong&gt;“Last received value” and “current state” are not always the same thing.&lt;/strong&gt; Showing measurement time, receipt time and prolonged gaps between updates helps users interpret an alert correctly. This is a central consideration when developing &lt;a href="https://www.siliconlogix.it/en/business-dashboard-development" rel="noopener noreferrer"&gt;dashboards for operational monitoring&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Power consumption: validate the complete operating cycle
&lt;/h2&gt;

&lt;p&gt;At a remote site, replacing a battery may take longer than collecting a sensor reading. Evaluating autonomy requires measuring a representative cycle: acquisition, processing, network search, attachment, transmission and any subsequent retries. Low sleep current alone does not describe the behaviour of the complete device.&lt;/p&gt;

&lt;p&gt;In our firmware work, we can set separate acquisition and reporting intervals, combine several readings into a message and limit repeated network searches. The objective is to keep important information available within a measured energy budget. If the design includes a solar panel, sizing must also account for energy storage, seasons and periods with limited sunlight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coverage, antennas and costs: what to check before prototyping
&lt;/h2&gt;

&lt;p&gt;The first check concerns the installation site. The &lt;a href="https://www.skylo.tech/resources/geographical-coverage" rel="noopener noreferrer"&gt;official Skylo coverage map&lt;/a&gt; is a starting point, but availability must be confirmed with the provider for the country, service and device selected. A project in Italy needs that specific assessment; a deployment in the United States does not establish feasibility at another location.&lt;/p&gt;

&lt;p&gt;The second check concerns the antenna and its view towards the satellite. Buildings, terrain, vegetation and enclosures can obstruct the radio path. A sensor in an underground chamber or a metal cabinet may require an external antenna in a suitable position. Tests should use the intended mounting arrangement because orientation and the surroundings affect performance.&lt;/p&gt;

&lt;p&gt;Cost includes the connectivity service as well as hardware. Skylo states that SIMs and data plans are generally available through operator partners. A quotation should reflect the intended usage: device count, messages, data volume and contract terms. Installation, testing, certification and maintenance also belong in the comparison.&lt;/p&gt;

&lt;p&gt;Finally, measure the time between an event and its receipt. Periodic readings may tolerate a substantial delay, while an urgent alert has different requirements. Test criteria should include delivered messages, delivery times, energy consumed and behaviour when both connections are unavailable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Satellite IoT frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can a sensor transmit without cellular coverage?
&lt;/h3&gt;

&lt;p&gt;Yes, with hardware and firmware compatible with a satellite network, an active service and suitable radio conditions. Having a cellular modem alone does not guarantee that capability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does satellite connectivity work indoors or underground?
&lt;/h3&gt;

&lt;p&gt;Feasibility depends on the radio path and installation. Shielded locations need an assessment of how to place the antenna in a suitable position. Testing at the site is part of the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it suitable for video, remote access or large updates?
&lt;/h3&gt;

&lt;p&gt;The NB-NTN connection discussed here should be sized for small data exchanges. Video, interactive sessions and large transfers require a different assessment. Firmware updates also need a strategy consistent with the available connection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can an existing device be adapted?
&lt;/h3&gt;

&lt;p&gt;It can be assessed by checking interfaces, power supply, antenna space and access to the firmware. An initial review can establish whether to integrate a modem, add a gateway or change the device architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Silicon LogiX can turn the requirement into a project
&lt;/h2&gt;

&lt;p&gt;The starting point is to describe what becomes invisible when the signal disappears: a reading, a fault, an asset’s location or the status of an installation. We can then define reporting frequency, acceptable delay, autonomy and installation conditions, comparing satellite connectivity with the other options available for that setting.&lt;/p&gt;

&lt;p&gt;Silicon LogiX can support firmware development, sensor and modem integration, power optimisation and prototype testing. On the software side, we can build &lt;a href="https://www.siliconlogix.it/en/iot-web-app-development" rel="noopener noreferrer"&gt;IoT platforms and device management systems&lt;/a&gt;, backends, historical data storage and dashboards with notifications and diagnostics. The development path depends on the hardware, documentation and services available to the project.&lt;/p&gt;

&lt;p&gt;A useful first trial connects a representative sensor to the platform and measures its behaviour at the intended site. The result supports a decision on whether to proceed, what needs adjustment and which costs to consider before deploying more devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official references
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.nordicsemi.com/Nordic-news/2026/08/Nordics-nRF9151-opens-satellite-and-cellular-IoT-to-a-new-class-of-connected-devices" rel="noopener noreferrer"&gt;Nordic Semiconductor, August 6, 2026 announcement&lt;/a&gt;: LooUQ modem certification and the Remsight application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.nordicsemi.com/Products/nRF9151" rel="noopener noreferrer"&gt;Nordic nRF9151&lt;/a&gt; and &lt;a href="https://www.loouq.com/" rel="noopener noreferrer"&gt;LooUQ MTC2-N9151&lt;/a&gt;: platforms and supported connectivity.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.remsight.com/" rel="noopener noreferrer"&gt;Remsight&lt;/a&gt;: sensors, connectivity and tools for water management.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.skylo.tech/knowledge-base/integration-guide" rel="noopener noreferrer"&gt;Skylo, network architecture and integration&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.skylo.tech/resources/geographical-coverage" rel="noopener noreferrer"&gt;Skylo, geographical coverage&lt;/a&gt; and &lt;a href="https://www.skylo.tech/faq" rel="noopener noreferrer"&gt;FAQs on services, SIMs and certification&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Does your installation stop reporting when the signal disappears?
&lt;/h3&gt;

&lt;p&gt;Tell us where it is, which readings or alerts you need to receive and how the device is powered. We can use these details to assess connectivity, firmware and monitoring, and define an initial feasibility trial.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.siliconlogix.it/en/contact?service=iot-web-app&amp;amp;source=en-article-satellite-iot" rel="noopener noreferrer"&gt;Discuss your IoT project beyond cellular coverage&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://www.siliconlogix.it/en/article/satellite-iot-sensors-beyond-cellular-coverage" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>iot</category>
      <category>embedded</category>
      <category>firmware</category>
      <category>networking</category>
    </item>
    <item>
      <title>Industrial machine vision: four Ethernet cameras with Microchip and NVIDIA</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 07 Sep 2026 15:43:10 +0000</pubDate>
      <link>https://dev.to/pezzullo/industrial-machine-vision-four-ethernet-cameras-with-microchip-and-nvidia-3ale</link>
      <guid>https://dev.to/pezzullo/industrial-machine-vision-four-ethernet-cameras-with-microchip-and-nvidia-3ale</guid>
      <description>&lt;p&gt;&lt;strong&gt;Adding machine vision to an industrial machine means building a reliable chain between what happens on the part and the control system’s decision. Images must show the relevant detail, arrive in time, be processed, and remain associated with the correct component. Once a system uses two, four or more cameras, connectivity, synchronisation and data management become as important as the recognition algorithm itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A recent US product release makes this topic especially timely. On 11 August 2026, Microchip announced &lt;a href="https://www.microchip.com/en-us/about/news-releases/products/microchip-advances-edge-ai-sensor-connectivity-with-rev-2-0-polarfire-fpga-ethernet-sensor-bridge" rel="noopener noreferrer"&gt;Revision 2.0 of its PolarFire FPGA Ethernet Sensor Bridge&lt;/a&gt;: a board designed to connect sensors and cameras to NVIDIA processing platforms over Ethernet using Holoscan Sensor Bridge technology.&lt;/p&gt;

&lt;p&gt;Microchip states that the new revision supports up to four cameras, reduces the form factor by 60% compared with the first generation, and is offered at a lower price. For machine builders, the relevant opportunity is a multi-camera acquisition path on which to evaluate quality inspection, assembly verification and robotic-vision functions.&lt;/p&gt;

&lt;p&gt;The starting question is practical: &lt;strong&gt;which inspection do we want to automate, and which images are needed to perform it at the speed of the machine?&lt;/strong&gt; The scenarios and calculations below are design-assessment examples. Product characteristics come from the linked official sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The new Microchip bridge provides up to four camera inputs and two 10GbE SFP+ ports.&lt;/li&gt;
&lt;li&gt;In the architecture described here, the FPGA acquires and transfers data while the NVIDIA platform runs vision and AI processing.&lt;/li&gt;
&lt;li&gt;Resolution, pixel format and frame rate determine the required bandwidth.&lt;/li&gt;
&lt;li&gt;Industrial results also depend on lighting, synchronisation and integration with the machine controller.&lt;/li&gt;
&lt;li&gt;The assessment must cover the actual compatible hardware and software versions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What changes with the PolarFire Ethernet Sensor Bridge Rev 2.0
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.microchip.com/en-us/development-tool/mpf200-eth-sensor-bridge-R2" rel="noopener noreferrer"&gt;MPF200-ETH-SENSOR-BRIDGE-R2 product page&lt;/a&gt; describes a platform based on a PolarFire MPF200T FPGA, with a camera adapter and expansion interfaces. This separates signal acquisition from the computer that processes it while keeping Ethernet as the link between the two.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Stated characteristic&lt;/th&gt;
&lt;th&gt;Design implication&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Video inputs&lt;/td&gt;
&lt;td&gt;Four four-lane MIPI CSI-2 D-PHY receive interfaces via the Jetson Adapter Card.&lt;/td&gt;
&lt;td&gt;A hardware basis for capturing images from several viewpoints.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Host link&lt;/td&gt;
&lt;td&gt;Two 10GbE SFP+ Ethernet ports.&lt;/td&gt;
&lt;td&gt;Flows, physical links and the host’s receiving capacity still need to be sized.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logic and memory&lt;/td&gt;
&lt;td&gt;PolarFire MPF200T FPGA and 2GB DDR4.&lt;/td&gt;
&lt;td&gt;Resources for the acquisition and transport design.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expansion&lt;/td&gt;
&lt;td&gt;FMC HPC and PMOD connectors.&lt;/td&gt;
&lt;td&gt;Additional interfaces can be developed after checking the required logic and software.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power&lt;/td&gt;
&lt;td&gt;USB-C and 12V DC input support.&lt;/td&gt;
&lt;td&gt;Options to validate against the installed configuration and peripherals.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;a href="https://www.microchip.com/en-us/about/news-releases/products/microchip-advances-edge-ai-sensor-connectivity-with-rev-2-0-polarfire-fpga-ethernet-sensor-bridge" rel="noopener noreferrer"&gt;launch announcement&lt;/a&gt; also mentions on-board optical latency measurement circuitry and available design collateral. These can accelerate a bench evaluation, but the performance of the whole machine still has to be measured in the application configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  From cameras to AI: the architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.nvidia.com/holoscan/sensor-bridge/getting-started/introduction" rel="noopener noreferrer"&gt;NVIDIA’s documentation&lt;/a&gt; describes a path in which the FPGA acquires sensor data and sends it to the host through UDP over Ethernet. Software receives those streams and inserts them into a Holoscan pipeline, which can include image conversion, preprocessing, inference and visualisation.&lt;/p&gt;

&lt;p&gt;cameras → FPGA acquisition → Ethernet → NVIDIA processing → vision result → machine control&lt;/p&gt;

&lt;p&gt;Responsibilities must be explicit at every step. The bridge has to transfer usable data; the vision software has to produce a result; the controller interface has to state which part the result belongs to and whether it is still valid. The application design connects those elements, including cases in which an image is missing or arrives too late.&lt;/p&gt;

&lt;p&gt;The receiving method depends on the host. NVIDIA documents accelerated configurations with ConnectX interfaces that can place data directly in GPU memory, as well as Linux-socket configurations such as a Jetson AGX Orin Developer Kit without an RDMA NIC. The computer, network interface and software stack therefore need to be checked as one configuration; figures from one setup cannot simply be extended to every other host.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why multiple cameras change the machine design
&lt;/h2&gt;

&lt;p&gt;Consider a station inspecting an assembled component. A top view may check the presence of primary parts; a side view may help verify an insertion; another view may read a label. Splitting checks across cameras can be useful when one viewpoint leaves hidden areas or does not provide enough detail.&lt;/p&gt;

&lt;p&gt;It also adds information that must be coordinated. The software must know whether the images belong to the same part, which inspection recipe applies and how the outcomes are combined. If one camera returns a valid reading while another fails to acquire, the machine must handle an incomplete state. Treating it as an automatically conforming product would create a process error.&lt;/p&gt;

&lt;p&gt;For this reason, a technical assessment should first draw the inspection sequence: part entry, identification, acquisitions, processing, decision and confirmation of the action. That sequence also makes clear whether four views are really needed, whether two well-positioned cameras are enough, or whether the part should be presented differently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fikoe1pk1gnomtgy9qmbc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fikoe1pk1gnomtgy9qmbc.webp" alt="Four industrial cameras and an edge system connected to an assembly line" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Size video bandwidth before choosing the platform
&lt;/h2&gt;

&lt;p&gt;For an uncompressed stream, a first estimate of pixel payload is obtained by multiplying the number of cameras, resolution, frames per second and the effective bits per pixel carried by the link. The result immediately exposes configurations that need more capacity than is available.&lt;/p&gt;

&lt;p&gt;pixel bandwidth = number of cameras × width × height × frames/s × bits/pixel&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Theoretical examples for image payload only, before protocol overhead and operating margin.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Illustrative configuration&lt;/th&gt;
&lt;th&gt;Transported format&lt;/th&gt;
&lt;th&gt;Pixel bandwidth&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;One camera, 1,920 × 1,080 pixels, 30fps.&lt;/td&gt;
&lt;td&gt;8 bits per pixel.&lt;/td&gt;
&lt;td&gt;About 0.50Gbit/s.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Four cameras, 1,920 × 1,080 pixels, 30fps each.&lt;/td&gt;
&lt;td&gt;8 bits per pixel.&lt;/td&gt;
&lt;td&gt;About 1.99Gbit/s.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Four cameras, 1,920 × 1,080 pixels, 60fps each.&lt;/td&gt;
&lt;td&gt;24-bit RGB.&lt;/td&gt;
&lt;td&gt;About 11.94Gbit/s.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Four cameras, 3,840 × 2,160 pixels, 60fps each.&lt;/td&gt;
&lt;td&gt;8 bits per pixel.&lt;/td&gt;
&lt;td&gt;About 15.93Gbit/s.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are illustrative calculations, not board benchmarks. Link sizing also needs packet headers, metadata, possible format padding and margin. The location of conversion matters too: Bayer data sent at 8 bits per pixel may become a three-channel RGB image in the computer, with a different memory requirement.&lt;/p&gt;

&lt;p&gt;The final example already exceeds 10Gbit/s for pixels alone. Two ports do not by themselves state the usable system capacity: the design must show how sources are distributed and how the host receives them. Cropping to the useful region or acquiring a frame rate consistent with the inspection may reduce traffic, but only if the defect detail and required time coverage are retained.&lt;/p&gt;

&lt;h2&gt;
  
  
  Latency, synchronisation and the time available to decide
&lt;/h2&gt;

&lt;p&gt;Bandwidth tells us how much data can pass; latency tells us how long it takes for an observed event to yield an available result. A production line may need both: it must handle a stream of successive parts and deliver each decision before the relevant component reaches the reject or selection point.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://docs.nvidia.com/holoscan/sensor-bridge/applications/latency" rel="noopener noreferrer"&gt;NVIDIA latency guide&lt;/a&gt; distinguishes transfer of a frame to the bridge, reception on the computer and subsequent processing stages. Metadata includes frame numbers and timestamps that help observe those steps. Times shown in the examples apply to specific configurations.&lt;/p&gt;

&lt;p&gt;An industrial implementation must additionally account for camera exposure, model preparation and result exchange with the controller. Some stages may overlap, so total time must be measured on the real path. It is useful to record latency distribution, observed peaks and decisions that miss the deadline—not only an average value.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The useful requirement is to deliver a valid result for the correct part to the controller within the time available in the process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Synchronisation needs a separate check. NVIDIA’s &lt;a href="https://docs.nvidia.com/holoscan/sensor-bridge/fpga-ip/ptp-application-note" rel="noopener noreferrer"&gt;PTP application note&lt;/a&gt; describes timestamp alignment between bridge and host and synchronised camera VSYNC. Aligning exposures still requires sensors, links and logic configured for that purpose. In a system with moving objects, this helps prevent views captured at different times from being interpreted as simultaneous. For cameras at successive stations, correctly associating images with the part identifier may matter even more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image quality starts with optics and lighting
&lt;/h2&gt;

&lt;p&gt;Before selecting compute performance, verify that the defect is visible. A reflective surface, a shadowed edge or a part moving during exposure can make the inspection unstable at the acquisition stage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.baslerweb.com/optimizing-image-quality" rel="noopener noreferrer"&gt;Basler’s image-quality documentation&lt;/a&gt; notes that a longer exposure increases brightness but may increase motion blur and reduce acquisition rate; increasing gain also amplifies noise. These trade-offs have to be addressed together with lighting and lens choice.&lt;/p&gt;

&lt;p&gt;An initial trial should use real parts, including defects that are difficult to distinguish, and reproduce the distance, orientation and machine speed. The smallest feature to be recognised must occupy enough pixels for the chosen method. Where the check depends on position or dimensions, calibration and mounting stability must also be evaluated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq8akgzakn59ptgwt6mwk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq8akgzakn59ptgwt6mwk.webp" alt="Industrial camera inspecting a seal on a metal component" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use AI and when to assess classical vision
&lt;/h2&gt;

&lt;p&gt;The acquisition platform can also be useful for work that does not require a neural network. Hole presence, edge alignment or code reading can initially be addressed with classical machine-vision tools when optical conditions give sufficiently stable results.&lt;/p&gt;

&lt;p&gt;For defects with variable shapes or classifications that are difficult to express as rules, an AI model is an option to compare experimentally. Use the same samples and goals in that comparison: missed defects, false rejects, processing time and cases that require a human review. Reserve images from different parts and lots for final validation, rather than testing only images already seen during development.&lt;/p&gt;

&lt;h2&gt;
  
  
  How this bridge compares with other vision architectures
&lt;/h2&gt;

&lt;p&gt;Microchip’s announcement adds an option to an existing set of architectures. The comparison should also consider &lt;a href="https://www.automate.org/vision/vision-standards/vision-standards-gige-vision" rel="noopener noreferrer"&gt;GigE Vision&lt;/a&gt;, which defines an image-transfer and interoperability interface over Ethernet. Sharing the same transport medium does not automatically make application interfaces equivalent.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Architecture to assess&lt;/th&gt;
&lt;th&gt;Where it can fit&lt;/th&gt;
&lt;th&gt;Central check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cameras connected directly to the embedded computer.&lt;/td&gt;
&lt;td&gt;A compact product with sensors close to the compute system.&lt;/td&gt;
&lt;td&gt;Available interfaces, physical connections, drivers and simultaneous capture.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GigE Vision industrial cameras.&lt;/td&gt;
&lt;td&gt;A machine that can use complete cameras and the industrial-vision ecosystem.&lt;/td&gt;
&lt;td&gt;Camera features, host compatibility, network and synchronisation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FPGA sensor bridge with Holoscan Sensor Bridge.&lt;/td&gt;
&lt;td&gt;A project requiring customised acquisition and NVIDIA-pipeline integration.&lt;/td&gt;
&lt;td&gt;Sensor support, FPGA design, data transport and software versions.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Total cost, space, cabling, heat dissipation and maintenance work also belong in the comparison. A more flexible solution is valuable when the product genuinely needs that flexibility; otherwise a complete vision subsystem may reduce integration effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software checks before starting the prototype
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/microchip-fpga-solutions/mpf200-esb-mipi" rel="noopener noreferrer"&gt;official Microchip application note&lt;/a&gt; includes examples for video streaming, processing and camera setup. It is therefore a useful starting point for proving acquisition before developing the machine-specific function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At the time of review on 7 September 2026, the same documentation notes that the NVIDIA repository does not currently support MPF200-ETH-SENSOR-BRIDGE-R2 for Holoscan Sensor Bridge SDK 2.7.0 and points to a dedicated SDK branch in the interim.&lt;/strong&gt; That detail should be checked again when preparing the bench and selecting the versions to maintain.&lt;/p&gt;

&lt;p&gt;To make development repeatable, record the board revision, loaded FPGA configuration, sensors, drivers and software packages. An update needs to be verified across the whole chain: received images, recognition result, timing and controller communication. The application should also distinguish a nonconforming part from a measurement that is unavailable after a stream interruption, peripheral restart or queue saturation.&lt;/p&gt;

&lt;h2&gt;
  
  
  An illustrative assembly-line inspection
&lt;/h2&gt;

&lt;p&gt;Imagine a line carrying small mechanical assemblies. The business wants to check a gasket, connector insertion and a label. This is an illustrative scenario on which to set requirements and measurements.&lt;/p&gt;

&lt;p&gt;Four viewpoints may be an initial hypothesis: three for the individual checks and one for an overall view. The trial may show that fewer cameras are sufficient, or that one inspection needs a different lens. The bridge is a possible basis for that assessment.&lt;/p&gt;

&lt;p&gt;Assume a conveyor running at 2m/s and a 20cm distance between the observation point and the reject point. Transit time is 100ms. If actuator response takes 30ms and 20ms are reserved as margin, 50ms remain for acquisition, processing and command delivery.&lt;/p&gt;

&lt;p&gt;time available for vision and communication = (0.20m ÷ 2m/s) − 30ms − 20ms = 50ms&lt;/p&gt;

&lt;p&gt;Those numbers define a hypothetical requirement; the bench must establish whether the selected configuration meets it. The controller interface can associate every inspection with an identifier, an outcome, a validity state and a timestamp. A result arriving after its deadline must not be applied to the next component.&lt;/p&gt;

&lt;h2&gt;
  
  
  From proof of concept to a production-ready function
&lt;/h2&gt;

&lt;p&gt;An effective assessment produces evidence for a decision. Before testing, define the required inspections, available samples, line speed and acceptance criteria. Then collect images, compare processing options and measure execution on the selected hardware.&lt;/p&gt;

&lt;p&gt;inspection requirement → representative images → architecture choice → prototype → line measurements → product integration&lt;/p&gt;

&lt;p&gt;The output should include the proposed architecture, results on samples, observed timing, conditions that make a reading invalid and the work still required. Longer-running tests then help assess temperature, stability and recovery after expected interruptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does the Microchip board run AI recognition directly?
&lt;/h3&gt;

&lt;p&gt;In the path described here, the bridge acquires and transports data to the NVIDIA system. The recognition model runs on the connected processing platform, so acquisition and inference must be sized together.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do four inputs guarantee four 4K cameras at 60fps?
&lt;/h3&gt;

&lt;p&gt;No. Simultaneous operation depends on pixel format, sensor configuration, FPGA design, flow distribution and host capacity. The bandwidth examples show why the number of connectors alone does not describe overall performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a cloud connection required to inspect parts?
&lt;/h3&gt;

&lt;p&gt;No. The processing path can be designed to run locally on the machine. Sending results to a server, remote management and archival are separate functions to define according to operating needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can any MIPI CSI-2 camera be connected?
&lt;/h3&gt;

&lt;p&gt;Electrical connections, power, data format and configuration software must be checked. Support for a specific sensor has to be confirmed in the adopted FPGA design and software chain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can this be used to retrofit an existing machine?
&lt;/h3&gt;

&lt;p&gt;It can be assessed for a retrofit after checking space for imaging, lighting, power, cabling and result exchange with the controller. A trial with real parts clarifies feasibility before final integration.&lt;/p&gt;

&lt;h3&gt;
  
  
  What determines the cost of an initial assessment?
&lt;/h3&gt;

&lt;p&gt;The required inspection, sample availability and acquisition and integration effort. The defect to recognise, part dimensions, speed and existing hardware are the most useful inputs for defining a focused activity and a reasoned estimate.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Silicon LogiX can support the assessment
&lt;/h2&gt;

&lt;p&gt;Silicon LogiX supports companies and technical teams in defining embedded-vision functions, starting from the problem to solve and the machine constraints. Initial work can include analysis of the available images, comparison of architectures and definition of a measurable proof of concept.&lt;/p&gt;

&lt;p&gt;The work can continue with &lt;a href="https://www.siliconlogix.it/en/embedded-ai-machine-learning" rel="noopener noreferrer"&gt;on-device AI and machine learning&lt;/a&gt;, embedded Linux integration, FPGA logic and &lt;a href="https://www.siliconlogix.it/en/firmware-development" rel="noopener noreferrer"&gt;embedded firmware&lt;/a&gt; for acquisition and communication. Diagnostic software, HMIs and dashboards can complete the system when operators and service teams need them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Microchip’s new bridge is a concrete starting point for assessing multi-camera acquisition and NVIDIA processing. For a machine builder, the opportunity is to develop an inspection function that matches its process, using documented hardware and software as a foundation.&lt;/p&gt;

&lt;p&gt;The result depends on the whole chain: visible detail, correctly associated images, sized transport, verified recognition and a decision delivered in time. Taking those requirements to a bench test turns a technology announcement into a reasoned product decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official references
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.microchip.com/en-us/about/news-releases/products/microchip-advances-edge-ai-sensor-connectivity-with-rev-2-0-polarfire-fpga-ethernet-sensor-bridge" rel="noopener noreferrer"&gt;Microchip: PolarFire Ethernet Sensor Bridge Rev 2.0 announcement&lt;/a&gt;, 11 August 2026.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.microchip.com/en-us/development-tool/mpf200-eth-sensor-bridge-R2" rel="noopener noreferrer"&gt;Microchip: MPF200-ETH-SENSOR-BRIDGE-R2 product page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/microchip-fpga-solutions/mpf200-esb-mipi" rel="noopener noreferrer"&gt;Microchip: MIPI-camera reference design and application note&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nvidia.com/holoscan/sensor-bridge/getting-started/introduction" rel="noopener noreferrer"&gt;NVIDIA: Holoscan Sensor Bridge introduction&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nvidia.com/holoscan/sensor-bridge/applications/latency" rel="noopener noreferrer"&gt;NVIDIA: Holoscan Sensor Bridge latency measurement&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nvidia.com/holoscan/sensor-bridge/fpga-ip/ptp-application-note" rel="noopener noreferrer"&gt;NVIDIA: PTP application note and camera synchronisation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.baslerweb.com/optimizing-image-quality" rel="noopener noreferrer"&gt;Basler: image-quality optimisation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.automate.org/vision/vision-standards/vision-standards-gige-vision" rel="noopener noreferrer"&gt;Association for Advancing Automation: GigE Vision&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Want to add visual inspection to your machine or product?
&lt;/h3&gt;

&lt;p&gt;Describe the defect or component to recognise, the operating speed and the hardware already in place. Representative images and a short description of the operating sequence help establish the first technical discussion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.siliconlogix.it/en/contact" rel="noopener noreferrer"&gt;Request an assessment for your machine-vision project&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/industrial-machine-vision-four-ethernet-cameras-microchip-nvidia" rel="noopener noreferrer"&gt;Industrial machine vision: four Ethernet cameras with Microchip and NVIDIA&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>ai</category>
      <category>fpga</category>
      <category>industrial</category>
    </item>
    <item>
      <title>Building an Industrial HMI and Edge Controller on STM32 with FreeRTOS and Modbus TCP</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Sun, 30 Aug 2026 13:19:23 +0000</pubDate>
      <link>https://dev.to/pezzullo/building-an-industrial-hmi-and-edge-controller-on-stm32-with-freertos-and-modbus-tcp-435b</link>
      <guid>https://dev.to/pezzullo/building-an-industrial-hmi-and-edge-controller-on-stm32-with-freertos-and-modbus-tcp-435b</guid>
      <description>&lt;h1&gt;
  
  
  Building an Industrial HMI and Edge Controller on STM32 with FreeRTOS and Modbus TCP
&lt;/h1&gt;

&lt;p&gt;Industrial control demos are often judged by the screen. The more useful question is whether the firmware, HMI and simulated process all explain the same state transition.&lt;/p&gt;

&lt;p&gt;SLX FlowControl is a demonstrator built on an STM32H750B-DK. It combines a FreeRTOS control task, an LVGL touch HMI, a Modbus TCP/IP server and a Factory I/O Fill Tank digital twin. The goal is to make behaviour testable before a physical machine is connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem behind the demo
&lt;/h2&gt;

&lt;p&gt;A buffer tank must accept incoming fluid, supply downstream demand and retain an operating reserve around a target level. That sounds simple until commands overlap, sensors are missing at startup, data stops arriving or an operator needs to understand why the process will not restart.&lt;/p&gt;

&lt;p&gt;The design therefore treats field demand, automatic control, conflicts, alarms and recovery as explicit machine states. It does not leave them as special cases hidden inside a main loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture at a glance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A periodic FreeRTOS control task runs every 100 ms.&lt;/li&gt;
&lt;li&gt;Factory I/O acts as a Modbus TCP client; the STM32 acts as the server.&lt;/li&gt;
&lt;li&gt;The Modbus map separates measurements, field commands, valve outputs and diagnostics.&lt;/li&gt;
&lt;li&gt;LVGL exposes the same state through dashboard, process view, controls, session recipes, alarms, setup and diagnostics.&lt;/li&gt;
&lt;li&gt;Fill and discharge are mutually exclusive. A simultaneous request becomes an explicit conflict, not an ambiguous valve command.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A sequence worth validating early
&lt;/h2&gt;

&lt;p&gt;The most useful part of the digital twin is not the animation. It is the ability to test a complete operational sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The controller starts in &lt;code&gt;STOPPED&lt;/code&gt;. Before the first Modbus exchange, the HMI reports sensors as pending rather than raising a misleading blocking alarm.&lt;/li&gt;
&lt;li&gt;A field request for fill or discharge is reflected by the virtual valve, signal tower, firmware state and HMI.&lt;/li&gt;
&lt;li&gt;Two seconds after both commands are released, AUTO moves the level back toward the target with a ±1% deadband.&lt;/li&gt;
&lt;li&gt;After another two seconds with both valves closed, field commands are accepted again.&lt;/li&gt;
&lt;li&gt;When control is requested, communication loss or stale sensor data drives outputs to a safe state within 1.5 seconds.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That sequence gives firmware, commissioning and product teams a common object to review before final I/O hardware and plant testing exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watch the short demonstration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtube.com/shorts/ZeqFnvZLpsE" rel="noopener noreferrer"&gt;Watch the SLX FlowControl short demo on YouTube&lt;/a&gt;: Factory I/O digital twin, touch HMI and STM32 edge-control logic shown together.&lt;/p&gt;

&lt;h2&gt;
  
  
  HMI is part of the control design
&lt;/h2&gt;

&lt;p&gt;The HMI is designed to explain what the controller is doing, not only to display a red alarm. Alarm pages carry severity, first-out context, cause, required action and a guided reset path. Acknowledge cannot force a restart while the underlying cause is still present.&lt;/p&gt;

&lt;p&gt;The same principle applies to diagnostics: network state, sensor freshness and configuration validity need to be visible so an operator can distinguish waiting, inhibited and faulted behaviour.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the demonstrator does not claim
&lt;/h2&gt;

&lt;p&gt;SLX FlowControl is validated in simulation and on target firmware. It is not a substitute for risk analysis, hardwired safety functions, physical-process validation, authenticated access, OT firewalls or persistent production logging.&lt;/p&gt;

&lt;p&gt;Modbus TCP in this build does not add authentication or encryption. A production machine needs network segmentation and security controls appropriate to its operational context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;A digital twin can be a practical engineering tool when it lets a team validate real firmware behaviour, operator feedback and failure paths before field integration. The value is not a prettier demo. It is a clearer contract between process, controller and operator.&lt;/p&gt;




&lt;p&gt;Read the complete case study, including visuals and technical context: &lt;a href="https://www.siliconlogix.it/en/solution/slx-flowcontrol-industrial-hmi-modbus-stm32" rel="noopener noreferrer"&gt;SLX FlowControl: Industrial HMI and Edge Control on STM32&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>firmware</category>
      <category>iot</category>
      <category>freertos</category>
    </item>
    <item>
      <title>CAN XL: what changes for robots, HMIs and industrial machines</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 25 Aug 2026 11:47:47 +0000</pubDate>
      <link>https://dev.to/pezzullo/can-xl-what-changes-for-robots-hmis-and-industrial-machines-1o39</link>
      <guid>https://dev.to/pezzullo/can-xl-what-changes-for-robots-hmis-and-industrial-machines-1o39</guid>
      <description>&lt;p&gt;&lt;strong&gt;For decades, CAN has been one of the most dependable languages used by machines. Controllers, sensors, actuators, operator panels and safety modules can exchange information with predictable priority and the robustness required by industrial and automotive environments. Today, however, a machine is no longer sending only a few commands and states: it has to handle richer diagnostics, high-frequency feedback, more capable HMIs, updates, data from multiple sensors and distributed software components.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this context, CAN XL is not simply faster CAN. It is the third generation of the CAN protocol, designed to increase the amount of data a network can carry without giving up the principles that made CAN so widespread in control systems.&lt;/p&gt;

&lt;p&gt;The subject has become especially timely after Texas Instruments announced the &lt;a href="https://www.ti.com/about-ti/newsroom/news-releases/2026/ti-advances-next-generation-industrial-systems-with-the-first-commercially-available-can-xl-transceiver.html" rel="noopener noreferrer"&gt;TCAN6062, described as the first commercially available CAN XL transceiver&lt;/a&gt;, on August 12, 2026. It moves CAN XL from standardisation into the practical availability of hardware for industrial products, robots, HMI systems and next-generation control architectures.&lt;/p&gt;

&lt;p&gt;For a team building a machine, an embedded device or a product with several electronic nodes, the question is not “should we replace CAN?” A more useful question is: &lt;strong&gt;will our communication architecture still be adequate when data, software functions, sensors and diagnostic requirements grow?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  At a glance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;CAN XL is the third generation of the CAN protocol and is standardised in the ISO 11898:2024 family.&lt;/li&gt;
&lt;li&gt;It supports data fields up to 2,048 bytes and configurable data rates up to 20 Mbit/s, depending on the physical network design.&lt;/li&gt;
&lt;li&gt;TI's first commercial CAN XL transceiver makes the technology practical to evaluate for new industrial products.&lt;/li&gt;
&lt;li&gt;It is not an automatic replacement for CAN FD or Ethernet: it is relevant when a product needs more data while retaining priority, determinism and continuity with the CAN world.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  From classic CAN to CAN XL: the evolution is about more than speed
&lt;/h2&gt;

&lt;p&gt;Classic CAN was created for control networks in which short, high-priority messages must arrive reliably. CAN FD has already extended that model by increasing the data field and making it easier to support richer firmware, diagnostics and extra functions.&lt;/p&gt;

&lt;p&gt;CAN XL takes a further step. According to &lt;a href="https://www.can-cia.org/canxl" rel="noopener noreferrer"&gt;CAN in Automation&lt;/a&gt;, the international association behind the CAN ecosystem, the protocol can use data fields of up to 2,048 bytes and configurable throughput up to 20 Mbit/s. The association identifies CAN XL as the third CAN generation, alongside classic CAN and CAN FD, in &lt;a href="https://can-cia.org/news/slider-2" rel="noopener noreferrer"&gt;ISO 11898-1:2024&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Typical role&lt;/th&gt;
&lt;th&gt;Data-field limit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Classic CAN&lt;/td&gt;
&lt;td&gt;Commands, status and essential control signals.&lt;/td&gt;
&lt;td&gt;8 bytes per frame.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAN FD&lt;/td&gt;
&lt;td&gt;Networks with more diagnostics, application data and a need for greater efficiency.&lt;/td&gt;
&lt;td&gt;64 bytes per frame.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAN XL&lt;/td&gt;
&lt;td&gt;Architectures with larger data flows, robotics, advanced HMIs and integration with IP networks.&lt;/td&gt;
&lt;td&gt;Up to 2,048 bytes per frame.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference has an important practical effect. When information has to be fragmented across many CAN FD messages, it does not only take longer to transmit: bus load rises, firmware becomes more complex, there are more cases to verify and predictable response times are harder to preserve under load.&lt;/p&gt;

&lt;p&gt;CAN XL lets engineers work with larger packets while retaining CAN arbitration. Important messages can still receive priority, while the network has more room for diagnostics, parameters, sensor data and updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why robots, HMIs and industrial machines are creating a new network problem
&lt;/h2&gt;

&lt;p&gt;A modern industrial machine is no longer a linear chain in which a PLC sends one command and an actuator returns one state. It is increasingly a distributed system: drives, I/O modules, HMI panels, safety controllers, gateways, cameras, smart sensors and support software must coexist without turning the network into a bottleneck.&lt;/p&gt;

&lt;p&gt;In industrial robots, for example, motion control requires priority and predictable timing. At the same time, the system may need to collect encoder data, torque-sensor measurements, temperatures, drive diagnostics and information useful for maintenance. In HMIs, the amount of configuration, recipes, service logs, process parameters and operator-facing information also keeps increasing.&lt;/p&gt;

&lt;p&gt;The need is not created by artificial intelligence or cloud connectivity alone. Even when every data point stays on-site, edge computing brings more processing close to the machine. Local nodes then need to exchange richer information while preserving a reliable control foundation that can be understood and supported throughout the product lifecycle.&lt;/p&gt;

&lt;p&gt;Texas Instruments specifically cites humanoid robots, industrial robots and HMI systems among the intended applications for its new transceiver. The value of that announcement is therefore not limited to a single component: it signals that higher-capacity CAN architectures are becoming a concrete option beyond a purely theoretical protocol discussion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the first commercial hardware changes the time to evaluate CAN XL
&lt;/h2&gt;

&lt;p&gt;CAN XL did not start in August 2026. Its protocol and physical layer were already standardised. What changes is that a commercial transceiver makes it possible to build a real evaluation chain: compatible controller, transceiver, network topology, firmware, test tools and prototype.&lt;/p&gt;

&lt;p&gt;The TCAN6062 supports the CAN XL physical-layer requirements of ISO 11898-2:2024. Its data sheet also describes modes intended to reduce ringing in complex topologies and to handle the fast data phase. This does not remove network-design work. On the contrary, it confirms that at higher speeds, wiring, termination, stub length and signal quality are part of the product design rather than details to fix at the end.&lt;/p&gt;

&lt;p&gt;One misconception is worth avoiding: changing the transceiver does not automatically turn an existing machine into a CAN XL system. The controller must support the protocol, firmware must manage the new stack, the network must be verified physically and the behaviour of existing nodes must be designed carefully. TI states that the component supports CAN FD and CAN SIC operation in mixed networks, but the actual migration path depends on the product architecture, not on replacing a single chip.&lt;/p&gt;

&lt;h2&gt;
  
  
  CAN XL does not automatically replace Ethernet
&lt;/h2&gt;

&lt;p&gt;When data volumes grow, Ethernet is often the first answer. In many applications that is the right choice: Ethernet remains appropriate for large streams, complete IP networks, cameras, industrial PCs, gateways and enterprise infrastructure.&lt;/p&gt;

&lt;p&gt;CAN XL addresses a different problem. It retains CAN's non-destructive arbitration, which makes it possible to give priority to messages that cannot wait. It can be attractive when control, sensors and diagnostics must share an architecture without imposing the complexity of a complete Ethernet network on every node.&lt;/p&gt;

&lt;p&gt;The two technologies can also coexist. CAN in Automation describes mapping Ethernet frames into CAN XL frames, while Texas Instruments refers to TCP/IP tunnelling in mixed architectures. That does not make Ethernet unnecessary. It means a product can use Ethernet where broad connectivity is required and CAN XL where priority, distributed control and continuity with an existing CAN estate matter more.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The right decision is not “CAN XL or Ethernet?” but “which data must move, which data has priority, which nodes must remain simple, and which architecture can be maintained after delivery?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  When CAN XL is worth evaluating in a new product
&lt;/h2&gt;

&lt;p&gt;CAN XL is not necessary on every microcontroller board. A simple sensor, a low-frequency actuator or a machine with a small number of short messages can continue to work extremely well with classic CAN or CAN FD.&lt;/p&gt;

&lt;p&gt;The question becomes relevant when a team is already encountering concrete limits: bus load is high; diagnostics are reduced so control is not slowed; useful data travels over a poorly integrated second network; or the HMI needs an increasing amount of information from peripheral modules.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question to ask&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Are CAN FD messages being fragmented continuously?&lt;/td&gt;
&lt;td&gt;Fragmentation increases overhead, application complexity and the number of test cases.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Must control share a network with richer diagnostics and sensor data?&lt;/td&gt;
&lt;td&gt;Critical messages need priority without losing system visibility.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Will the product grow with new modules, HMIs or software functions?&lt;/td&gt;
&lt;td&gt;A network sized only for the prototype can become a limit during industrialisation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Are there CAN FD nodes that must be retained?&lt;/td&gt;
&lt;td&gt;Migration can be gradual, but it has to be planned at architecture level.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The decision should not be based on a protocol's headline peak rate. A network designed for 20 Mbit/s does not automatically deliver 20 Mbit/s in every topology. The result depends on the physical characteristics of the machine: number of nodes, cable lengths, branches, connectors, electromagnetic interference, power and environmental conditions.&lt;/p&gt;

&lt;p&gt;This is where a proof of concept is more valuable than a catalogue choice. Before a final PCB is defined, a team can simulate load, analyse expected traffic, build a representative network and measure latency, errors, degraded behaviour and diagnostic capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration is not a bus update: it is an architectural decision
&lt;/h2&gt;

&lt;p&gt;In an existing product, moving toward CAN XL requires hardware, firmware and support processes to be considered together. The first step is not choosing a component. It is understanding what crosses the network today, how often it does so, which information is genuinely essential and where bottlenecks are emerging.&lt;/p&gt;

&lt;p&gt;The options can then be compared. In some cases, optimising the application protocol is enough. In others, keeping CAN FD for control and adding Ethernet for one specific function is a better fit. CAN XL becomes particularly interesting when the aim is to reduce fragmentation, create room for growth and retain CAN's priority model in a more capable network.&lt;/p&gt;

&lt;p&gt;existing architecture → measured real traffic → future requirements → topology → prototype → firmware and physical-layer verification → industrialisable decision&lt;/p&gt;

&lt;p&gt;This approach avoids two opposite mistakes. One is adopting a new technology simply because it is available, without a measurable benefit. The other is retaining a saturated network because it “has always worked”, only to find the limit when the product needs a new HMI, gateway, support function or sensor-rich module.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example: a modular machine with HMI, drives and diagnostics
&lt;/h2&gt;

&lt;p&gt;Consider a modular machine with multiple axes, an operator panel, acquisition modules and a service gateway. CAN FD sends commands and states. Over time, the company adds process parameters, drive diagnostics, recipes, quality data and predictive-maintenance requirements.&lt;/p&gt;

&lt;p&gt;Each new feature appears small at first. The result, however, is that information is split across many messages, diagnostics are limited during busy phases and firmware must coordinate a growing number of communication channels. CAN FD is not “wrong”; the original architecture was simply not sized for the product's real evolution.&lt;/p&gt;

&lt;p&gt;A CAN XL assessment can determine whether diagnostic and configuration flows can move more efficiently while preserving priority control messages. It can also clarify whether a combined CAN XL and Ethernet design correctly separates local control, HMI functions and gateway connectivity.&lt;/p&gt;

&lt;p&gt;The useful outcome is not the promise of a “more modern” network. It is an architecture that identifies which nodes to update, which to retain, which data to move, which physical constraints to respect and how to verify system stability before production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions about CAN XL
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can CAN XL already be used in commercial products?
&lt;/h3&gt;

&lt;p&gt;The protocol and physical layer are standardised in the ISO 11898:2024 family. TI's TCAN6062 announcement provides a commercial component with which to start evaluations and new projects. A complete system still depends on controller availability, tools, firmware and the product's requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does CAN XL replace CAN FD?
&lt;/h3&gt;

&lt;p&gt;No. CAN FD remains an excellent solution for many embedded networks. CAN XL should be considered when larger frames, throughput and architectural growth create a measurable benefit over the complexity of migration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can any microcontroller become CAN XL-capable with a new transceiver?
&lt;/h3&gt;

&lt;p&gt;No. A transceiver implements the physical layer; the controller and firmware must support CAN XL. Feasibility must therefore be checked against the specific MCU, any real-time operating system in use and the available software stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is CAN XL only an automotive technology?
&lt;/h3&gt;

&lt;p&gt;No. CAN has strong automotive roots, but the newly available hardware is also presented for industrial robots, HMIs and control systems. The assessment should start with the use case, not with the sector in which the protocol originated.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can CAN XL replace Ethernet in a machine?
&lt;/h3&gt;

&lt;p&gt;Not universally. Ethernet can remain essential for high-capacity links, industrial PCs, gateways, cameras and IP networks. CAN XL is useful when a team wants to retain CAN priority behaviour while increasing the capacity of a distributed control network.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Silicon Logix can support an evaluation
&lt;/h2&gt;

&lt;p&gt;Silicon Logix can support companies and technical teams in evaluating the communication architecture of machines, embedded devices and modular systems. The work can begin with an existing CAN or CAN FD network, a new product under definition or a prototype that must progress toward industrialisation.&lt;/p&gt;

&lt;p&gt;The objective is not to recommend CAN XL by default. It starts with data flows, priorities, topology, available MCUs, firmware and the future needs of the HMI, diagnostics, gateway or remote support. From there, the team can define a measurable proof of concept and a realistic technical path for the product.&lt;/p&gt;

&lt;p&gt;Where needed, the assessment can continue with &lt;a href="https://www.siliconlogix.it/en/firmware-development" rel="noopener noreferrer"&gt;embedded firmware development&lt;/a&gt;, protocol integration, HMI interfaces, Linux gateways or diagnostic tools. The goal is to keep the device, communications and support software coherent without adding needless complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The first commercially available CAN XL transceiver marks an important transition: a technology already defined by standards is becoming a concrete choice for teams designing the next generation of industrial products.&lt;/p&gt;

&lt;p&gt;CAN XL will not erase classic CAN, CAN FD or Ethernet. Each technology will retain its place. Its value lies in an increasingly important space: networks that must carry more data without giving up priority, robustness and continuity with the CAN ecosystem.&lt;/p&gt;

&lt;p&gt;For a company, the best decision is not adopting the newest protocol. It is designing a network with room for the product's actual evolution, one that can be verified before production and remains maintainable when the machine, firmware and customer requirements change.&lt;/p&gt;

&lt;p&gt;The question is no longer only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How much data can we transmit today?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Will our architecture handle the next HMI, the next module and the next functions without having to be redesigned from scratch?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Official references
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.ti.com/about-ti/newsroom/news-releases/2026/ti-advances-next-generation-industrial-systems-with-the-first-commercially-available-can-xl-transceiver.html" rel="noopener noreferrer"&gt;Texas Instruments, TI advances next-generation industrial systems with the first commercially available CAN XL transceiver&lt;/a&gt;, August 12, 2026.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.ti.com/lit/gpn/TCAN6062" rel="noopener noreferrer"&gt;Texas Instruments, TCAN6062 CAN XL Transceiver with Standby Mode data sheet&lt;/a&gt;, ISO 11898-2:2024 physical requirements and component characteristics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.can-cia.org/canxl" rel="noopener noreferrer"&gt;CAN in Automation, CAN XL&lt;/a&gt;, official description of the third CAN generation, payload and throughput.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.can-cia.org/can-knowledge/can-xl" rel="noopener noreferrer"&gt;CAN in Automation, CAN XL (extended data-field length)&lt;/a&gt;, XL frame structure and its relationship to classic CAN and CAN FD.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://can-cia.org/news/slider-2" rel="noopener noreferrer"&gt;CAN in Automation, ISO 11898-1:2024 released&lt;/a&gt;, standardisation of classic CAN, CAN FD and CAN XL.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.can-cia.org/can-knowledge/physical-layer-options" rel="noopener noreferrer"&gt;CAN in Automation, Physical layer options&lt;/a&gt;, CAN SIC XL physical-layer characteristics and network-design constraints.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Are you designing a machine, HMI or device with more nodes and more data to manage?
&lt;/h3&gt;

&lt;p&gt;Silicon Logix can carry out a technical assessment of the communication architecture, analysing traffic, priorities, nodes, firmware, topology and the product's room to evolve.&lt;/p&gt;

&lt;p&gt;The work can start from an existing CAN or CAN FD network or from a new project, with a focused proof of concept before the hardware design is finalised.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.siliconlogix.it/en/contact" rel="noopener noreferrer"&gt;Request a technical assessment of your project&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/can-xl-robots-hmis-industrial-machines" rel="noopener noreferrer"&gt;CAN XL: what changes for robots, HMIs and industrial machines&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>robotics</category>
      <category>industrial</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
