<?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>AI for industrial alarms: turning SCADA events into useful diagnoses</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 14 Jul 2026 07:35:03 +0000</pubDate>
      <link>https://dev.to/pezzullo/ai-for-industrial-alarms-turning-scada-events-into-useful-diagnoses-499e</link>
      <guid>https://dev.to/pezzullo/ai-for-industrial-alarms-turning-scada-events-into-useful-diagnoses-499e</guid>
      <description>&lt;p&gt;&lt;strong&gt;A high-temperature SCADA alarm on a motor is not yet a diagnosis.&lt;/strong&gt; A technician must determine whether it is a temporary spike or an emerging trend, check for unusual vibration or current draw, reconstruct recent maintenance work, and find the correct procedure for that specific machine. In many companies, the data already exists, but it is scattered across SCADA systems, PLCs, &lt;a href="https://www.siliconlogix.it/en/iot-gateway-mqtt-modbus-development" rel="noopener noreferrer"&gt;IoT gateways&lt;/a&gt;, PDF manuals, and maintenance records. The problem is not a lack of information. It is a lack of operational context.&lt;/p&gt;

&lt;p&gt;This is where AI for industrial alarms can become a practical tool. It should not replace the maintenance technician or autonomously control the machine. Its role is to collect relevant data, connect it to technical documentation, and return a first diagnosis that people can verify. The goal is to reduce the time between an alarm and a useful decision while making interventions, work orders, and procedures more consistent.&lt;/p&gt;

&lt;p&gt;The starting point for this article is an &lt;a href="https://developer.nvidia.com/blog/building-an-analysis-ai-agent-for-industrial-alarm-management-with-nvidia-nemotron/" rel="noopener noreferrer"&gt;NVIDIA technical article on AI agents for industrial alarm management&lt;/a&gt;, published on July 7, 2026. The proposed architecture receives an alarm together with its sensor data, retrieves history and procedures, runs targeted checks, and returns a structured evidence package containing an observation, a root-cause hypothesis, a remedy, and a recommended action. It is not a universal, ready-made solution for every factory, but it highlights a concrete direction: alarms can become an entry point into the operational data a company already owns.&lt;/p&gt;

&lt;h2&gt;
  
  
  An alarm is not a diagnosis
&lt;/h2&gt;

&lt;p&gt;In a real plant, an error code or a threshold violation is only the beginning. Before deciding whether an intervention is actually required, staff must check whether the same event has occurred before, whether the value is unusual for the current production cycle, whether other sensors confirm the issue, and which procedure applies to that exact machine revision.&lt;/p&gt;

&lt;p&gt;When answering these questions means opening several dashboards, searching through PDF documents, reviewing old tickets, and relying on the memory of the people who know the plant, even a simple alarm can become time-consuming. The risk is not limited to downtime. Teams may make decisions from incomplete information, while repeated events gradually become background noise.&lt;/p&gt;

&lt;p&gt;An AI-based support system can help during triage. It can collect the event, inspect the available context, and prepare a useful technical brief. Instead of merely displaying “high temperature,” it can show how long the value has remained above the threshold, which related signals have changed, whether similar cases exist in the maintenance history, and which procedure deserves attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI agents for industrial alarm triage
&lt;/h2&gt;

&lt;p&gt;The idea behind an AI agent for industrial alarms is straightforward: every important event triggers a process that gathers, analyzes, and summarizes relevant information. The input is not a generic question typed into a chatbot. It is an operational payload containing an alarm code, timestamp, machine identifier, relevant sensor readings, and asset metadata.&lt;/p&gt;

&lt;p&gt;The system can then consult different sources. SCADA alarms and PLC data help reconstruct the event sequence. Temperature, vibration, current, or pressure sensors help determine whether a real trend exists. Manuals, diagrams, and service procedures describe which checks should be performed. Maintenance records show whether the company has already solved a similar case and which intervention worked.&lt;/p&gt;

&lt;p&gt;The output should not be vague prose. It should be a clear evidence package: what happened, which data supports the observation, which cause is plausible, which documentation was consulted, and which action should be evaluated. The technician remains in control of the decision without having to rebuild the entire context from scratch for every alarm.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical example: a pump with abnormal temperature
&lt;/h2&gt;

&lt;p&gt;Consider a pump that raises a high-temperature alarm. A traditional dashboard may show the code, timestamp, and current value. An assisted diagnosis can surface much more useful evidence.&lt;/p&gt;

&lt;p&gt;The system may detect that the temperature has remained above the threshold for eighteen minutes and has increased over three production cycles. It can then verify that motor current is stable while vibration on the coupling-side bearing has risen compared with the previous month's baseline. It can search earlier interventions on pumps from the same family and find cases related to misalignment or insufficient lubrication. Finally, it can retrieve the checks and reference values from the manual for the installed revision.&lt;/p&gt;

&lt;p&gt;The resulting recommendation can be concrete: inspect the coupling and lubrication during the next available maintenance window, monitor the trend for a defined number of cycles, and open a work order if the value continues to rise. The AI should not command the pump, modify PLC parameters, or autonomously decide to stop the line. It should turn scattered data into an operational brief, supported by evidence that the technician can verify and correct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the data comes from: SCADA, PLCs, gateways, and documents
&lt;/h2&gt;

&lt;p&gt;A useful project does not necessarily require replacing the existing automation stack. In most cases, it starts from systems that are already in place: PLC signals acquired through Modbus, OPC UA, EtherNet/IP, or documented proprietary protocols; alarms and trends available in the SCADA system; data collected by IoT gateways or additional sensors; and manuals, service procedures, PDF reports, tickets, and maintenance history.&lt;/p&gt;

&lt;p&gt;Normalization is the critical step. An alarm code must be linked to a machine, line, component, revision, relevant sensors, and the correct procedure. Without this foundation, AI can produce plausible but unreliable text. With an organized data model, it can accelerate the same information retrieval process that technical staff already perform every day.&lt;/p&gt;

&lt;p&gt;This is why a serious project does not start with the AI model. It starts with the asset map, the data that is actually available, the quality of the historical records, and the operational meaning of each event. Only then does it make sense to choose between rules, statistical analysis, anomaly detection, document retrieval, or a more advanced AI agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edge, cloud, or a hybrid architecture?
&lt;/h2&gt;

&lt;p&gt;There is no single answer for every plant. The choice depends on data volume, required response time, available connectivity, and the type of analysis. A local gateway or industrial PC can collect, filter, and correlate field signals close to the machine. A central service can compare data across several sites, index technical documentation, and provide shared &lt;a href="https://www.siliconlogix.it/en/business-dashboard-development" rel="noopener noreferrer"&gt;operational dashboards&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A hybrid architecture is often the most practical option. Critical data and logic remain close to the plant, while heavier analysis or document-retrieval services run centrally. A company with a few machines and limited historical data may begin with dashboards, rules, and document search. A production site with many events and enough data can later add anomaly-detection models and more structured AI services.&lt;/p&gt;

&lt;p&gt;The architecture should follow the real process constraints, not the “AI” label. The objective is not to add technology everywhere. It is to make a decision that currently depends on time and distributed knowledge faster and more reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to start without creating an endless project
&lt;/h2&gt;

&lt;p&gt;The right way to test this technology is not to build a “factory brain” on day one. Start with a narrow, measurable use case that is valuable to the people doing the work. One family of pumps, compressors, ovens, or motors with recurring alarms is an excellent starting point.&lt;/p&gt;

&lt;p&gt;A proof of concept can focus on three to five high-priority error codes. For each event, connect process data, intervention history, and technical documentation. Maintenance technicians should then validate the system's responses. A spectacular demo is not the objective. The relevant questions are whether the suggestion is useful, whether the supporting data is correct, and whether the system reduces the time needed to reach a first intervention hypothesis.&lt;/p&gt;

&lt;p&gt;At the end of the test, the company can measure average triage time, the percentage of events with correct technical context, false suggestions, source quality, and the cases in which the system avoided a manual search. These metrics show whether the project should be extended to other lines or whether the data, procedures, and integrations must be improved first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What an industrial AI agent should not do
&lt;/h2&gt;

&lt;p&gt;Defining boundaries is the most important part of this kind of project. A useful agent should suggest, explain, and connect information. It should not become an opaque control layer between the operator and the machine.&lt;/p&gt;

&lt;p&gt;Control and safety logic must remain separate, deterministic, and managed by PLCs, certified systems, and company procedures. AI can support analysis and propose a sequence of checks, but approving an intervention, opening a work order, or changing parameters must remain under human control.&lt;/p&gt;

&lt;p&gt;This distinction makes the project more credible and easier to adopt. AI is not presented as a replacement for experience, but as a tool that makes experience available when it is needed, including when the technician who knows a machine best is not present.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Silicon LogiX can support industrial teams
&lt;/h2&gt;

&lt;p&gt;Silicon LogiX develops systems that connect firmware, industrial connectivity, Linux gateways, data collection, &lt;a href="https://www.siliconlogix.it/en/business-dashboard-development" rel="noopener noreferrer"&gt;operational dashboards&lt;/a&gt;, and &lt;a href="https://www.siliconlogix.it/en/embedded-ai-machine-learning" rel="noopener noreferrer"&gt;on-device or on-premises AI&lt;/a&gt;. The objective is to turn alarms, logs, and technical documents into a practical tool for the people who manage machines and plants.&lt;/p&gt;

&lt;p&gt;The work can begin with a single asset or an existing line. We evaluate protocols, available data, historical-data quality, technical procedures, and plant constraints. This analysis can lead to a proof of concept that combines PLC and gateway data collection, ticket or report integration, an operational dashboard, and clear criteria for measuring the value of the solution.&lt;/p&gt;

&lt;p&gt;There is no need to begin with a large platform. In many cases, the first useful outcome is an assisted, readable, and traceable diagnosis that helps staff identify the likely cause of an alarm sooner and follow a more consistent procedure. If the test delivers value, the platform can evolve toward predictive maintenance, multi-site monitoring, anomaly classification, and integration with existing business processes.&lt;/p&gt;

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

&lt;p&gt;Industrial alarms are already a valuable source of information, but they often remain isolated events inside separate systems. Connecting SCADA, sensor data, technical documentation, and maintenance history turns them into a starting point for faster diagnoses and better-documented decisions.&lt;/p&gt;

&lt;p&gt;AI becomes valuable when it is applied to a concrete problem: reducing the time required to understand what is happening, giving technicians the right context, and making years of company knowledge easier to reuse. The first step is not purchasing a complex infrastructure. It is choosing a real use case, measuring it, and building a reliable technical foundation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do your alarms, logs, and technical documents work together today?
&lt;/h3&gt;

&lt;p&gt;Silicon LogiX can evaluate a proof of concept on an existing asset or production line: PLC and gateway data collection, integration with historical records and documentation, an operational dashboard, and measurable criteria for determining whether AI delivers real value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.siliconlogix.it/en/contact" rel="noopener noreferrer"&gt;Evaluate an industrial proof of concept&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Originally published at &lt;a href="https://www.siliconlogix.it/en/article/ai-for-industrial-alarms-diagnosis-with-scada-and-plc-data" rel="noopener noreferrer"&gt;Silicon LogiX&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>iot</category>
      <category>machinelearning</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Secure BLE OTA Firmware Updates on nRF5340: Architecture Notes</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Sun, 12 Jul 2026 18:02:33 +0000</pubDate>
      <link>https://dev.to/pezzullo/secure-ble-ota-firmware-updates-on-nrf5340-architecture-notes-1efo</link>
      <guid>https://dev.to/pezzullo/secure-ble-ota-firmware-updates-on-nrf5340-architecture-notes-1efo</guid>
      <description>&lt;p&gt;Firmware updates are one of the places where an embedded prototype either becomes maintainable or becomes expensive to support. The hard part is not moving a binary from a laptop to a board. The hard part is making the whole path controlled, observable and recoverable when the device is in the field.&lt;/p&gt;

&lt;p&gt;This internal R&amp;amp;D project explores that path on a Nordic nRF5340-DK. It uses Bluetooth Low Energy for a local maintenance connection, Zephyr and the nRF Connect SDK for the firmware base, MCUmgr SMP for management transport and MCUboot for verified boot and recovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use BLE for an OTA workflow?
&lt;/h2&gt;

&lt;p&gt;Many embedded products are installed where permanent Internet access is not available, desirable or reliable. A technician may still be able to stand next to the device with a laptop or phone. BLE provides a practical local channel for commissioning, diagnostics and controlled updates without adding a cloud dependency simply for maintenance.&lt;/p&gt;

&lt;p&gt;For that to be useful, the update flow needs more than a file picker. Before the upload, the operator should be able to identify the device and inspect its current firmware and diagnostic state. During the upload, the target should enforce its own policy. After reboot, the system must know whether the new image is actually healthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The update path
&lt;/h2&gt;

&lt;p&gt;The browser dashboard uses Web Bluetooth to connect to the nRF5340-DK. The device exposes identity, version and diagnostic information, then accepts an approved firmware package over MCUmgr SMP carried by Bluetooth LE.&lt;/p&gt;

&lt;p&gt;The uploaded image is written to the secondary slot. On the next reboot, MCUboot validates it and starts it as a test image. The application runs its defined startup checks and explicitly confirms the image only after it is operational. If confirmation never happens, MCUboot restores the previous known-good image on the following reboot.&lt;/p&gt;

&lt;p&gt;That sequence creates a simple but important distinction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an image can be transferred;&lt;/li&gt;
&lt;li&gt;an image can be allowed to boot;&lt;/li&gt;
&lt;li&gt;an image can be confirmed as healthy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treating those as separate states is what makes field recovery possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Signing and version policy
&lt;/h2&gt;

&lt;p&gt;The prototype signs firmware images with ECDSA P-256. MCUboot verifies the signature against the public key in the boot chain before a candidate image is executed. A BLE connection alone is therefore not enough to make an arbitrary binary runnable.&lt;/p&gt;

&lt;p&gt;The update policy also checks release metadata to prevent unsafe downgrades. The exact product rules can differ, but the principle is consistent: the target device must decide whether a package is appropriate for its hardware, software generation and operating state.&lt;/p&gt;

&lt;p&gt;For normal operation, update access can be limited through a timed service mode. The device enables maintenance for a defined period, then closes it again automatically. This keeps the control near the target instead of relying entirely on the dashboard to behave correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dual-core nRF5340 design
&lt;/h2&gt;

&lt;p&gt;The nRF5340 provides an application core and a network core. In this project, the application core owns the device logic, update policy and diagnostics, while the network core supports Bluetooth LE connectivity. The split is useful because it makes firmware responsibilities visible early, before more product-specific functions are added.&lt;/p&gt;

&lt;p&gt;The development kit is not the final product, but it is the right place to test the interaction between flash layout, bootloader configuration, radio transfer and application startup. Those details are difficult to validate with desktop tooling alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What physical-hardware testing changed
&lt;/h2&gt;

&lt;p&gt;The demo update sequence was verified on a real nRF5340-DK with signed releases from 1.0.11 to 1.0.14. The tests covered BLE transfer, boot behavior, version controls, image confirmation and automatic rollback.&lt;/p&gt;

&lt;p&gt;The key lesson is that OTA is a system feature. The browser interface, BLE transport, MCUboot slots, firmware startup checks and service procedure all have to agree. A robust implementation is less about one clever component than about making the failure states explicit and recoverable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving from a demo to a product
&lt;/h2&gt;

&lt;p&gt;A production adaptation needs dedicated signing keys, secure key handling, a defined manufacturing process, protected debug policy and a repeatable release pipeline. It also needs an update process that fits the physical product: how technicians connect, what happens if power is interrupted and how the device is recovered in the rare case that both normal operation and the new image fail.&lt;/p&gt;

&lt;p&gt;The case study is useful whenever a product needs local field maintenance without permanent Internet access, especially when custom electronics, firmware and the technician-facing interface need to work as one system.&lt;/p&gt;

&lt;p&gt;Read the full case study on the &lt;a href="https://www.siliconlogix.it/en/solution/slx-field-device-manager-secure-ble-ota" rel="noopener noreferrer"&gt;Silicon LogiX Solutions Hub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>firmware</category>
      <category>iot</category>
      <category>bluetooth</category>
    </item>
    <item>
      <title>AI search and business websites: why companies should update now</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Wed, 01 Jul 2026 13:00:43 +0000</pubDate>
      <link>https://dev.to/pezzullo/ai-search-and-business-websites-why-companies-should-update-now-47eg</link>
      <guid>https://dev.to/pezzullo/ai-search-and-business-websites-why-companies-should-update-now-47eg</guid>
      <description>&lt;p&gt;AI-powered search is changing how people discover information, compare suppliers and decide which companies to contact.&lt;/p&gt;

&lt;p&gt;For many businesses, this makes one thing very clear: having a website online is no longer enough.&lt;/p&gt;

&lt;p&gt;The website has to be understandable, fast, structured and useful. It has to help both people and search systems understand what the company does, who it helps and why it should be trusted.&lt;/p&gt;

&lt;h2&gt;
  
  
  A website is no longer just a digital brochure
&lt;/h2&gt;

&lt;p&gt;Many company websites were built with an old assumption: the goal was simply to be present online.&lt;/p&gt;

&lt;p&gt;That often led to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generic service pages&lt;/li&gt;
&lt;li&gt;vague copy&lt;/li&gt;
&lt;li&gt;slow mobile experience&lt;/li&gt;
&lt;li&gt;hidden contact forms&lt;/li&gt;
&lt;li&gt;no clear path from visit to enquiry&lt;/li&gt;
&lt;li&gt;no useful data about what actually converts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was already a problem in classic search. With AI-assisted search experiences, it becomes even more important. If a page is weak, unclear or generic, it is harder for users and systems to extract real value from it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes with AI search
&lt;/h2&gt;

&lt;p&gt;AI search does not remove SEO. It raises the bar.&lt;/p&gt;

&lt;p&gt;A useful business website still needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;indexable pages&lt;/li&gt;
&lt;li&gt;clear technical structure&lt;/li&gt;
&lt;li&gt;fast loading&lt;/li&gt;
&lt;li&gt;mobile-readable content&lt;/li&gt;
&lt;li&gt;dedicated service pages&lt;/li&gt;
&lt;li&gt;internal links that explain context&lt;/li&gt;
&lt;li&gt;useful content that answers real questions&lt;/li&gt;
&lt;li&gt;visible calls to action&lt;/li&gt;
&lt;li&gt;conversion tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are no magic tricks here. The fundamentals simply matter more.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real goal: from traffic to qualified contacts
&lt;/h2&gt;

&lt;p&gt;Traffic is not the final metric.&lt;/p&gt;

&lt;p&gt;For a business website, the key question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does the visitor understand the offer quickly enough to take the next step?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A good website should explain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the company does&lt;/li&gt;
&lt;li&gt;who the service is for&lt;/li&gt;
&lt;li&gt;which problem it solves&lt;/li&gt;
&lt;li&gt;what makes the company credible&lt;/li&gt;
&lt;li&gt;what the next step is&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For technical, industrial and service companies, this is especially important. Their value is often not obvious at first glance. The website has to educate, clarify and guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  From brochure website to working platform
&lt;/h2&gt;

&lt;p&gt;The best websites can grow into operational tools.&lt;/p&gt;

&lt;p&gt;For some companies, the first step is a clearer and faster business website. For others, the website becomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a lead-focused landing page system&lt;/li&gt;
&lt;li&gt;a customer portal&lt;/li&gt;
&lt;li&gt;an internal dashboard&lt;/li&gt;
&lt;li&gt;a document area&lt;/li&gt;
&lt;li&gt;a ticketing system&lt;/li&gt;
&lt;li&gt;a custom web management platform&lt;/li&gt;
&lt;li&gt;an integration layer between customers, data and internal processes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, the website is no longer only a communication channel. It becomes part of how the business works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Give every important service its own page.&lt;/li&gt;
&lt;li&gt;Write pages around real customer questions, not generic slogans.&lt;/li&gt;
&lt;li&gt;Make contact paths visible and measurable.&lt;/li&gt;
&lt;li&gt;Track form submissions, CTA clicks and source pages.&lt;/li&gt;
&lt;li&gt;Improve mobile speed and readability.&lt;/li&gt;
&lt;li&gt;Connect related pages with useful internal links.&lt;/li&gt;
&lt;li&gt;Keep content specific, current and trustworthy.&lt;/li&gt;
&lt;li&gt;Treat the website as a system that evolves, not as a one-off project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;AI search is not a reason to chase shortcuts. It is a reason to build better websites.&lt;/p&gt;

&lt;p&gt;Companies that invest in clear structure, useful content, technical SEO and conversion paths will be better prepared for how users search, compare and choose suppliers in the next phase of the web.&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/ai-search-and-business-websites-why-companies-should-update-now" rel="noopener noreferrer"&gt;AI search and business websites: why companies should update now&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Silicon LogiX builds business websites, landing pages, dashboards, customer portals and custom web platforms for companies that want their website to become a real acquisition and work tool.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>ai</category>
      <category>business</category>
    </item>
    <item>
      <title>Firmware Black Box: diagnosing embedded resets in the field</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 30 Jun 2026 09:26:29 +0000</pubDate>
      <link>https://dev.to/siliconlogix/firmware-black-box-diagnosing-embedded-resets-in-the-field-15ml</link>
      <guid>https://dev.to/siliconlogix/firmware-black-box-diagnosing-embedded-resets-in-the-field-15ml</guid>
      <description>&lt;p&gt;A device that resets in the field is not always the hardest problem.&lt;/p&gt;

&lt;p&gt;The harder problem is a device that resets, comes back online, and leaves no evidence about what happened before the reboot.&lt;/p&gt;

&lt;p&gt;That is where a firmware black box becomes useful.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the DEV.to edition of a Silicon LogiX technical article. The canonical English source is linked at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What a firmware black box is
&lt;/h2&gt;

&lt;p&gt;A firmware black box is a small diagnostic subsystem inside the firmware. Its job is to preserve enough information to support post-mortem analysis after a reset, watchdog event, HardFault, panic or unexpected reboot.&lt;/p&gt;

&lt;p&gt;It does not need to record everything. It needs to record the data that helps answer the first diagnostic questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why did the device reset?&lt;/li&gt;
&lt;li&gt;how long had it been running?&lt;/li&gt;
&lt;li&gt;which firmware build was installed?&lt;/li&gt;
&lt;li&gt;what state was the application in?&lt;/li&gt;
&lt;li&gt;which task was active?&lt;/li&gt;
&lt;li&gt;did the watchdog fire?&lt;/li&gt;
&lt;li&gt;did memory, stack or heap margins collapse?&lt;/li&gt;
&lt;li&gt;did the network, modem, BLE, Wi-Fi or OTA flow fail just before the reboot?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that data, every field reset deletes most of the evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why sporadic resets are expensive
&lt;/h2&gt;

&lt;p&gt;Rare embedded bugs are often more expensive than obvious failures.&lt;/p&gt;

&lt;p&gt;A crash that happens every time in the same function can usually be analyzed with a debugger, logs and a repeatable test. A reset that appears once every ten days on a customer device is different.&lt;/p&gt;

&lt;p&gt;The cause may depend on a combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;temperature&lt;/li&gt;
&lt;li&gt;unstable power&lt;/li&gt;
&lt;li&gt;brown-out&lt;/li&gt;
&lt;li&gt;cable length&lt;/li&gt;
&lt;li&gt;enclosure heating&lt;/li&gt;
&lt;li&gt;network drops&lt;/li&gt;
&lt;li&gt;modem state&lt;/li&gt;
&lt;li&gt;memory fragmentation&lt;/li&gt;
&lt;li&gt;stack exhaustion&lt;/li&gt;
&lt;li&gt;long uptime&lt;/li&gt;
&lt;li&gt;race conditions&lt;/li&gt;
&lt;li&gt;a peripheral that stops responding&lt;/li&gt;
&lt;li&gt;an OTA edge case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the lab, the product may look clean. In the field, the environment changes. The customer report often becomes: "it rebooted", "it stopped communicating", or "we had to power-cycle it".&lt;/p&gt;

&lt;p&gt;That is not enough for firmware diagnosis.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to capture
&lt;/h2&gt;

&lt;p&gt;A good first version does not need to be large. Start with a compact structure that survives the next boot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reset reason&lt;/li&gt;
&lt;li&gt;uptime before reset&lt;/li&gt;
&lt;li&gt;firmware version and build ID&lt;/li&gt;
&lt;li&gt;hardware variant&lt;/li&gt;
&lt;li&gt;application state&lt;/li&gt;
&lt;li&gt;last meaningful error&lt;/li&gt;
&lt;li&gt;watchdog counters&lt;/li&gt;
&lt;li&gt;recent application events&lt;/li&gt;
&lt;li&gt;active RTOS task&lt;/li&gt;
&lt;li&gt;stack high-water marks&lt;/li&gt;
&lt;li&gt;minimum heap&lt;/li&gt;
&lt;li&gt;OTA state&lt;/li&gt;
&lt;li&gt;network state&lt;/li&gt;
&lt;li&gt;fault registers or core dump when available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For FreeRTOS systems, values such as &lt;code&gt;uxTaskGetStackHighWaterMark&lt;/code&gt; can be extremely useful when stack margins are suspected.&lt;/p&gt;

&lt;p&gt;For Cortex-M systems, fault status registers, stack pointer information and the program counter can turn a blind HardFault into a useful post-mortem report.&lt;/p&gt;

&lt;p&gt;For ESP32 products, ESP-IDF already provides useful mechanisms such as panic handling and core dump. The best design often combines those built-in tools with application-level event history and upload after reboot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watchdog is not enough
&lt;/h2&gt;

&lt;p&gt;The watchdog is essential. It can recover service when firmware stops responding.&lt;/p&gt;

&lt;p&gt;But if the watchdog resets the system and nothing is stored, the device is operational again while the root cause has disappeared.&lt;/p&gt;

&lt;p&gt;A good watchdog restarts the device.&lt;/p&gt;

&lt;p&gt;A good firmware black box explains why the restart was necessary.&lt;/p&gt;

&lt;p&gt;Useful questions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which task failed to report health?&lt;/li&gt;
&lt;li&gt;was the device reconnecting to the cloud?&lt;/li&gt;
&lt;li&gt;was the modem stuck?&lt;/li&gt;
&lt;li&gt;was heap decreasing over time?&lt;/li&gt;
&lt;li&gt;was an OTA update in progress?&lt;/li&gt;
&lt;li&gt;were there repeated DNS, TLS, MQTT or BLE errors?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the difference between recovery and diagnosis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logging and diagnostics are different
&lt;/h2&gt;

&lt;p&gt;Many firmware projects have logs. That does not mean they are diagnosable.&lt;/p&gt;

&lt;p&gt;UART logs are useful during development, but they often disappear in production. If nobody had a terminal connected when the customer device reset, those logs are gone.&lt;/p&gt;

&lt;p&gt;Diagnostics should be designed for field conditions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no debugger attached&lt;/li&gt;
&lt;li&gt;no serial cable connected&lt;/li&gt;
&lt;li&gt;no engineer present at the crash&lt;/li&gt;
&lt;li&gt;limited memory&lt;/li&gt;
&lt;li&gt;possible power loss&lt;/li&gt;
&lt;li&gt;possible network failure&lt;/li&gt;
&lt;li&gt;support team needs a readable report&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A compact persistent ring buffer with the latest important events may be more valuable than thousands of UART lines that nobody will ever see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Storage options
&lt;/h2&gt;

&lt;p&gt;The right storage depends on the product:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retention RAM for fast data across software resets&lt;/li&gt;
&lt;li&gt;internal flash for small critical reports&lt;/li&gt;
&lt;li&gt;NVS or a dedicated partition on ESP32&lt;/li&gt;
&lt;li&gt;EEPROM or FRAM for frequent diagnostic counters&lt;/li&gt;
&lt;li&gt;local filesystem on embedded Linux gateways&lt;/li&gt;
&lt;li&gt;cloud upload after reboot for connected devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not make the cloud the only source of truth. The network may be part of the problem.&lt;/p&gt;

&lt;p&gt;Also be careful with flash wear, power loss during writes, atomic updates and sensitive data. Diagnostic reports should not contain passwords, private keys, tokens or unnecessary personal data.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical checklist
&lt;/h2&gt;

&lt;p&gt;Before shipping a connected embedded product, ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Is reset reason collected at boot?&lt;/li&gt;
&lt;li&gt;[ ] Are watchdog, brown-out, software reset and manual reset distinguished?&lt;/li&gt;
&lt;li&gt;[ ] Is firmware version tied to a build ID or commit?&lt;/li&gt;
&lt;li&gt;[ ] Is hardware variant recorded?&lt;/li&gt;
&lt;li&gt;[ ] Is there a useful HardFault or panic strategy?&lt;/li&gt;
&lt;li&gt;[ ] Are RTOS task health and stack margins observable?&lt;/li&gt;
&lt;li&gt;[ ] Is minimum heap recorded?&lt;/li&gt;
&lt;li&gt;[ ] Is there a persistent event ring buffer?&lt;/li&gt;
&lt;li&gt;[ ] Are network and OTA events included?&lt;/li&gt;
&lt;li&gt;[ ] Can support export a report without JTAG?&lt;/li&gt;
&lt;li&gt;[ ] Are sensitive data and credentials excluded?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Typical field scenario
&lt;/h2&gt;

&lt;p&gt;Imagine an STM32 or ESP32 controller. It passes lab tests, talks to sensors, sends data to the cloud and supports OTA. The watchdog is enabled, so the team feels safe.&lt;/p&gt;

&lt;p&gt;After release, some customers report random reboots.&lt;/p&gt;

&lt;p&gt;Without a black box, the team guesses: maybe the modem, maybe a task stack, maybe power, maybe memory, maybe I2C, maybe Wi-Fi.&lt;/p&gt;

&lt;p&gt;With a black box, the next episode can produce a report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;watchdog reset&lt;/li&gt;
&lt;li&gt;uptime: 91 hours&lt;/li&gt;
&lt;li&gt;application state: MQTT reconnect&lt;/li&gt;
&lt;li&gt;network task stack almost exhausted&lt;/li&gt;
&lt;li&gt;several DNS timeouts in the recent event buffer&lt;/li&gt;
&lt;li&gt;firmware build ID identified&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not the final fix, but it is a direction. In embedded debugging, a direction can save days or weeks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;A firmware black box is not an extra feature for perfectionists. It is part of building maintainable embedded products.&lt;/p&gt;

&lt;p&gt;A device in the field should not only recover. It should explain what happened.&lt;/p&gt;

&lt;p&gt;When diagnostics are designed with reset reason, watchdog analysis, fault context, RTOS metrics, persistent events, OTA state and safe export, sporadic resets stop being mysterious and become measurable.&lt;/p&gt;

&lt;p&gt;And a measurable problem is much closer to a fix.&lt;/p&gt;




&lt;p&gt;Canonical source: &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;Firmware Black Box: how to find out why an embedded device resets in the field&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you build embedded, IoT or firmware products and want a second pair of eyes on diagnostics, watchdog strategy, OTA behavior or field failures, Silicon LogiX can help turn hard-to-reproduce issues into measurable engineering work.&lt;/p&gt;

</description>
      <category>firmware</category>
      <category>embedded</category>
      <category>iot</category>
      <category>debugging</category>
    </item>
    <item>
      <title>Bluetooth Channel Sounding: precise BLE ranging for embedded IoT</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 09 Jun 2026 10:51:55 +0000</pubDate>
      <link>https://dev.to/pezzullo/bluetooth-channel-sounding-precise-ble-ranging-for-embedded-iot-3hg7</link>
      <guid>https://dev.to/pezzullo/bluetooth-channel-sounding-precise-ble-ranging-for-embedded-iot-3hg7</guid>
      <description>&lt;p&gt;Most BLE proximity features start with RSSI. That is fine when the product only needs a rough "near or far" signal.&lt;/p&gt;

&lt;p&gt;It becomes fragile when distance affects security, access control, asset tracking or industrial behavior.&lt;/p&gt;

&lt;p&gt;Bluetooth Channel Sounding changes that by adding a standardized ranging capability to Bluetooth LE. Instead of relying only on received signal strength, two compatible devices exchange radio measurements that can be used to estimate distance more reliably.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why RSSI is not enough
&lt;/h2&gt;

&lt;p&gt;RSSI is easy to read, but it is not a stable distance sensor.&lt;/p&gt;

&lt;p&gt;The value changes with antenna orientation, enclosure design, reflections, the user's body, walls, metallic objects, interference and multipath. Two devices at the same physical distance can report very different RSSI values.&lt;/p&gt;

&lt;p&gt;That is acceptable for simple beacons. It is not ideal for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digital keys and secure access&lt;/li&gt;
&lt;li&gt;Indoor asset tracking&lt;/li&gt;
&lt;li&gt;Smart proximity features&lt;/li&gt;
&lt;li&gt;Find-my devices&lt;/li&gt;
&lt;li&gt;Industrial maintenance workflows&lt;/li&gt;
&lt;li&gt;Distance-aware IoT products&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Channel Sounding adds
&lt;/h2&gt;

&lt;p&gt;Bluetooth Channel Sounding was introduced with Bluetooth Core 6.0 and refined further in Bluetooth Core 6.3.&lt;/p&gt;

&lt;p&gt;A procedure involves two roles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Initiator&lt;/strong&gt;: starts the measurement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reflector&lt;/strong&gt;: responds to the measurement sequence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The devices exchange signals across multiple Bluetooth LE channels. The system can then estimate distance using methods such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phase-Based Ranging&lt;/strong&gt;, based on phase changes across frequencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Round-Trip Timing&lt;/strong&gt;, based on signal travel time between devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The useful part is that this is not a proprietary trick layered on top of BLE. It is part of the Bluetooth specification, which matters for interoperability and long-term product design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it fits
&lt;/h2&gt;

&lt;p&gt;Channel Sounding is interesting when distance becomes part of the product logic.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A smart lock should know whether the authorized phone is really close to the door.&lt;/li&gt;
&lt;li&gt;An industrial cabinet may allow access only when the technician is physically present.&lt;/li&gt;
&lt;li&gt;A warehouse gateway may estimate how close a tag is to an anchor.&lt;/li&gt;
&lt;li&gt;A wearable or tracker can guide the user with more useful distance feedback.&lt;/li&gt;
&lt;li&gt;A machine can enable local configuration only when the operator is nearby.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is different from "I can hear a BLE device somewhere nearby". The product is now asking "how close is it, and can I trust that measurement enough to act on it?"&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture impact
&lt;/h2&gt;

&lt;p&gt;A Channel Sounding product is not just a firmware flag. The whole embedded architecture is involved.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What to verify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SoC&lt;/td&gt;
&lt;td&gt;Real Channel Sounding support, not only generic BLE support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bluetooth stack&lt;/td&gt;
&lt;td&gt;Initiator, Reflector, HCI and SDK support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RF design&lt;/td&gt;
&lt;td&gt;Antenna, layout, enclosure, ground plane and multipath behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Algorithm&lt;/td&gt;
&lt;td&gt;Filtering, calibration, outlier handling and acceptance thresholds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firmware&lt;/td&gt;
&lt;td&gt;States, timeouts, fallback behavior and diagnostics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Pairing, identity, secure boot, signed OTA and debug policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Validation&lt;/td&gt;
&lt;td&gt;Lab and field tests with motion, obstacles, angles and interference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is where many projects get surprised. Ranging performance is not only about the Bluetooth version printed on a datasheet. It depends on the radio, stack, antenna, enclosure, firmware and test process working together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Channel Sounding vs RSSI, AoA/AoD and UWB
&lt;/h2&gt;

&lt;p&gt;RSSI is still useful for simple presence and low-cost beacon behavior.&lt;/p&gt;

&lt;p&gt;AoA/AoD can be useful for localization systems that can afford antenna arrays and infrastructure.&lt;/p&gt;

&lt;p&gt;UWB remains excellent for high-precision ranging and advanced digital-key systems, but it adds hardware, power and integration cost.&lt;/p&gt;

&lt;p&gt;Bluetooth Channel Sounding sits in an interesting middle ground: more distance-aware than RSSI, inside the BLE ecosystem, and potentially simpler than adding a separate UWB path in products that already depend on Bluetooth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical checklist
&lt;/h2&gt;

&lt;p&gt;Before choosing Channel Sounding, I would check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Does the product really need distance, or is generic proximity enough?&lt;/li&gt;
&lt;li&gt;[ ] Have the RSSI failure modes been measured in the real environment?&lt;/li&gt;
&lt;li&gt;[ ] Is UWB, AoA/AoD or GNSS a better fit for the accuracy target?&lt;/li&gt;
&lt;li&gt;[ ] Does the selected SoC, controller, host stack and SDK actually support Channel Sounding?&lt;/li&gt;
&lt;li&gt;[ ] Is the antenna strategy compatible with the enclosure and installation conditions?&lt;/li&gt;
&lt;li&gt;[ ] How often will the product measure distance, and what is the battery impact?&lt;/li&gt;
&lt;li&gt;[ ] What happens when the measurement is uncertain?&lt;/li&gt;
&lt;li&gt;[ ] Are secure boot, signed OTA and debug-access policy already part of the architecture?&lt;/li&gt;
&lt;li&gt;[ ] Can field logs explain why the device trusted or rejected a distance measurement?&lt;/li&gt;
&lt;li&gt;[ ] Has the validation plan included multipath, movement, obstacles and edge cases?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;Bluetooth Channel Sounding is not simply "better RSSI".&lt;/p&gt;

&lt;p&gt;It gives embedded teams a standardized way to make Bluetooth LE devices more distance-aware. That can unlock better secure access, asset tracking, smart proximity and industrial workflows.&lt;/p&gt;

&lt;p&gt;But it has to be designed as a system feature: hardware, RF, stack, firmware, security, power budget and validation all matter.&lt;/p&gt;

&lt;p&gt;When those pieces are handled early, Channel Sounding can turn Bluetooth from a connectivity feature into a useful distance and trust signal for embedded IoT products.&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/bluetooth-channel-sounding-precise-and-secure-distance-measurement-for-embedded-iot" rel="noopener noreferrer"&gt;Bluetooth Channel Sounding: precise and secure distance measurement for embedded IoT&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Silicon LogiX helps teams design embedded, firmware and IoT architectures when prototypes need to become maintainable products.&lt;/p&gt;

</description>
      <category>bluetooth</category>
      <category>iot</category>
      <category>embedded</category>
      <category>security</category>
    </item>
    <item>
      <title>5G RedCap for embedded IoT: useful 5G without full 5G complexity</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Wed, 27 May 2026 10:23:19 +0000</pubDate>
      <link>https://dev.to/pezzullo/5g-redcap-for-embedded-iot-useful-5g-without-full-5g-complexity-2o4</link>
      <guid>https://dev.to/pezzullo/5g-redcap-for-embedded-iot-useful-5g-without-full-5g-complexity-2o4</guid>
      <description>&lt;p&gt;5G RedCap is becoming one of the more interesting connectivity options for embedded products that sit between classic cellular IoT and full 5G.&lt;/p&gt;

&lt;p&gt;It is not meant to replace NB-IoT or LTE-M in tiny low-power sensors. It is also not meant to replace full 5G NR in high-throughput routers or eMBB devices.&lt;/p&gt;

&lt;p&gt;The useful space is the middle: industrial gateways, connected cameras, mobile HMIs, richer asset trackers, smart grid equipment and edge devices that need more than LPWA but less than a full 5G modem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What RedCap actually changes
&lt;/h2&gt;

&lt;p&gt;RedCap means Reduced Capability. It was introduced in 3GPP Release 17 as a lighter 5G NR device category. The basic idea is to reduce device complexity by limiting capabilities such as maximum bandwidth, antenna configuration, carrier aggregation and processing requirements.&lt;/p&gt;

&lt;p&gt;That matters in embedded systems because the modem is never isolated. It affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BOM and module availability&lt;/li&gt;
&lt;li&gt;antenna design and enclosure constraints&lt;/li&gt;
&lt;li&gt;peak current and sleep strategy&lt;/li&gt;
&lt;li&gt;carrier certification&lt;/li&gt;
&lt;li&gt;Linux integration&lt;/li&gt;
&lt;li&gt;OTA behavior&lt;/li&gt;
&lt;li&gt;diagnostics and field support&lt;/li&gt;
&lt;li&gt;product security lifecycle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, RedCap is not just a radio choice. It changes the system architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it fits
&lt;/h2&gt;

&lt;p&gt;RedCap can make sense when a device needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more bandwidth than NB-IoT or LTE-M&lt;/li&gt;
&lt;li&gt;better alignment with 5G Standalone roadmaps&lt;/li&gt;
&lt;li&gt;medium-size telemetry or diagnostic payloads&lt;/li&gt;
&lt;li&gt;OTA updates that are too heavy for very low-power links&lt;/li&gt;
&lt;li&gt;remote access, VPN or backend integration&lt;/li&gt;
&lt;li&gt;private 5G or industrial network support&lt;/li&gt;
&lt;li&gt;a longer product lifecycle than an LTE-only design may suggest&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is especially interesting for embedded Linux gateways, industrial routers, edge AI cameras, utility equipment and professional mobile devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it does not fit
&lt;/h2&gt;

&lt;p&gt;RedCap is not automatically the best answer.&lt;/p&gt;

&lt;p&gt;If a device sends a few bytes per day and must run for years on a small battery, NB-IoT or LTE-M may still be better.&lt;/p&gt;

&lt;p&gt;If the product needs continuous high-bitrate video, heavy uplink or CPE-class performance, full 5G NR may be the right tool.&lt;/p&gt;

&lt;p&gt;If the installation always has reliable local infrastructure, Wi-Fi or wired Ethernet may be simpler and cheaper.&lt;/p&gt;

&lt;p&gt;The point is to compare technologies against the product behavior, not against the marketing label.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embedded Linux integration checklist
&lt;/h2&gt;

&lt;p&gt;For a Linux gateway, treat the RedCap modem as a critical subsystem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;redcap_linux_integration&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;modem_interface&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;qmi_or_mbim_selected&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;modemmanager_profile_tested&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;networkmanager_policy_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;hardware_reset_gpio_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;connectivity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;lte_fallback_tested&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;roaming_policy_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;apn_profiles_versioned&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;vpn_or_private_apn_evaluated&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;operations&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;modem_firmware_update_process_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;logs_persisted_for_field_debug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;watchdog_recovery_flow_tested&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;remote_diagnostics_enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important details are usually boring and very practical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can the host reset the modem without a power cycle?&lt;/li&gt;
&lt;li&gt;Are QMI, MBIM or AT flows deterministic enough for recovery?&lt;/li&gt;
&lt;li&gt;Are network state transitions logged persistently?&lt;/li&gt;
&lt;li&gt;Is LTE fallback validated in the target countries?&lt;/li&gt;
&lt;li&gt;Can field support see RSSI, operator, APN, roaming and attach failures?&lt;/li&gt;
&lt;li&gt;Is modem firmware update part of the maintenance process?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security and OTA are part of the decision
&lt;/h2&gt;

&lt;p&gt;A RedCap device is often remotely reachable, updateable and connected to cloud services. That makes secure boot, signed OTA, credential handling and vulnerability management part of the connectivity decision.&lt;/p&gt;

&lt;p&gt;For new connected products in Europe, this also intersects with the Cyber Resilience Act lifecycle mindset: products need to be maintainable, updateable and designed with cybersecurity in mind from the beginning.&lt;/p&gt;

&lt;p&gt;At minimum, I would verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;signed firmware artifacts&lt;/li&gt;
&lt;li&gt;downgrade prevention&lt;/li&gt;
&lt;li&gt;rollback or recovery path&lt;/li&gt;
&lt;li&gt;device identity model&lt;/li&gt;
&lt;li&gt;TLS certificate lifecycle&lt;/li&gt;
&lt;li&gt;hardened credential storage&lt;/li&gt;
&lt;li&gt;debug access policy&lt;/li&gt;
&lt;li&gt;vulnerability handling process&lt;/li&gt;
&lt;li&gt;remote logs for update and modem failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The modem gives the product reach. The security architecture decides whether that reach is acceptable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Power and RF can make or break the project
&lt;/h2&gt;

&lt;p&gt;RedCap reduces complexity compared with full 5G, but it should not be confused with ultra-low-power LPWA.&lt;/p&gt;

&lt;p&gt;Measure on the real target:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;attach peak current&lt;/li&gt;
&lt;li&gt;idle current&lt;/li&gt;
&lt;li&gt;sleep behavior&lt;/li&gt;
&lt;li&gt;consumption during OTA&lt;/li&gt;
&lt;li&gt;behavior with weak signal&lt;/li&gt;
&lt;li&gt;reconnect and retry patterns&lt;/li&gt;
&lt;li&gt;thermal behavior in enclosure&lt;/li&gt;
&lt;li&gt;antenna performance in final mechanics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many cellular product failures do not come from the selected standard. They come from optimistic power assumptions, weak antenna integration or recovery flows that were never tested outside the lab.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical adoption roadmap
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flowchart TD
  A["Use-case analysis"] --&amp;gt; B["Compare NB-IoT, LTE-M, LTE Cat-1/4, RedCap and full 5G"]
  B --&amp;gt; C["Select module and target bands"]
  C --&amp;gt; D["PoC on real hardware"]
  D --&amp;gt; E["Measure power, attach, uplink, fallback and recovery"]
  E --&amp;gt; F["Integrate Linux, firmware, OTA and secure boot"]
  F --&amp;gt; G["Operator testing, certifications and field trial"]
  G --&amp;gt; H["Controlled rollout and lifecycle monitoring"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The best time to evaluate RedCap is before the PCB, enclosure, antenna, power tree and update strategy are frozen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;5G RedCap is not simply "slower 5G". It is a useful middle tier for connected embedded products that need more than LPWA, less than full 5G and a clearer path toward 5G-era networks.&lt;/p&gt;

&lt;p&gt;For the right product, it can improve longevity, remote maintenance and industrial connectivity. For the wrong product, it can add unnecessary module cost, certification effort and power complexity.&lt;/p&gt;

&lt;p&gt;So the question is not "should we use RedCap?". The better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What does our device need to transmit, how long must it live in the field, how will we update it, and what network roadmap do we need to survive?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Useful references:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.3gpp.org/news-events/partner-news/redcap-gsa-article01" rel="noopener noreferrer"&gt;3GPP / GSA overview of NR RedCap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gsma.com/solutions-and-impact/technologies/internet-of-things/gsma_resources/redcap-eredcap-for-iot/" rel="noopener noreferrer"&gt;GSMA: RedCap and eRedCap for IoT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://5g-acia.org/whitepapers/assessment-of-5g-reduced-capability-redcap-devices-for-industrial-iot/" rel="noopener noreferrer"&gt;5G-ACIA assessment of RedCap for Industrial IoT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/policies/cra-summary" rel="noopener noreferrer"&gt;European Commission summary of the Cyber Resilience Act&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/5g-redcap-for-embedded-iot-benefits-and-roadmap-for-connected-products" rel="noopener noreferrer"&gt;5G RedCap for embedded IoT: benefits and roadmap for connected products&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>iot</category>
      <category>embedded</category>
      <category>5g</category>
      <category>security</category>
    </item>
    <item>
      <title>Post-quantum cryptography for embedded and IoT: secure boot, TLS and OTA</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Sat, 23 May 2026 11:43:06 +0000</pubDate>
      <link>https://dev.to/pezzullo/post-quantum-cryptography-for-embedded-and-iot-secure-boot-tls-and-ota-34e4</link>
      <guid>https://dev.to/pezzullo/post-quantum-cryptography-for-embedded-and-iot-secure-boot-tls-and-ota-34e4</guid>
      <description>&lt;p&gt;Post-quantum cryptography is no longer just a research topic. It is starting to affect the way embedded teams design TLS, secure boot, OTA, firmware signing, device identity and long-term product maintenance.&lt;/p&gt;

&lt;p&gt;NIST has finalized the first post-quantum standards. OpenSSL 3.5 now includes ML-KEM, ML-DSA and SLH-DSA support. The European roadmap points toward a coordinated transition, and embedded vendors are already moving PQC into MCU and firmware workflows.&lt;/p&gt;

&lt;p&gt;For connected products that may stay in the field for 10, 15 or 20 years, this is not abstract security theater. It is architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why embedded teams should care
&lt;/h2&gt;

&lt;p&gt;Embedded products freeze cryptographic choices earlier than many teams expect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bootloader verification logic&lt;/li&gt;
&lt;li&gt;firmware image and manifest formats&lt;/li&gt;
&lt;li&gt;OTA package signatures&lt;/li&gt;
&lt;li&gt;device certificates&lt;/li&gt;
&lt;li&gt;production PKI&lt;/li&gt;
&lt;li&gt;secure elements and trust anchors&lt;/li&gt;
&lt;li&gt;TLS or VPN libraries in Linux gateways&lt;/li&gt;
&lt;li&gt;update and rollback policies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the device is deployed, changing those choices becomes expensive. Sometimes it becomes almost impossible without a carefully designed migration path.&lt;/p&gt;

&lt;p&gt;That is the real value of post-quantum planning: not replacing RSA and ECC everywhere overnight, but introducing crypto agility before the product becomes too rigid.&lt;/p&gt;

&lt;h2&gt;
  
  
  ML-KEM and ML-DSA in plain terms
&lt;/h2&gt;

&lt;p&gt;The two names embedded teams should recognize first are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ML-KEM&lt;/strong&gt;: a key encapsulation mechanism for establishing shared secrets, especially relevant to TLS and similar protocols.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ML-DSA&lt;/strong&gt;: a digital signature scheme, relevant to secure boot, firmware signing, package signing, certificates and device identity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Linux gateways, ML-KEM is often the first practical entry point because TLS stacks can be tested and upgraded more easily than immutable boot chains.&lt;/p&gt;

&lt;p&gt;For firmware and boot flows, ML-DSA is very relevant but needs more careful engineering. Signature sizes, verification time, image layout and manifest formats all matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where PQC enters an embedded architecture
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What changes&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;TLS and networking&lt;/td&gt;
&lt;td&gt;Hybrid groups, new key establishment, library updates&lt;/td&gt;
&lt;td&gt;Gateways and edge devices can start testing now&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secure boot&lt;/td&gt;
&lt;td&gt;Signature verification may need post-quantum readiness&lt;/td&gt;
&lt;td&gt;Boot chains are hard to change after deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OTA&lt;/td&gt;
&lt;td&gt;Manifests, package signing and rollback policies may need new formats&lt;/td&gt;
&lt;td&gt;Update reliability and security are part of the same trust chain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PKI&lt;/td&gt;
&lt;td&gt;Certificates, provisioning and trust anchors need migration planning&lt;/td&gt;
&lt;td&gt;Device identity is a long-term product dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory budget&lt;/td&gt;
&lt;td&gt;Stack, heap, flash and latency must be measured&lt;/td&gt;
&lt;td&gt;Papers and release notes are not a substitute for target testing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A practical adoption path
&lt;/h2&gt;

&lt;p&gt;Do not turn on PQC everywhere and hope for the best. A healthier path looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inventory every cryptographic dependency in the product.&lt;/li&gt;
&lt;li&gt;Map TLS, VPN, secure boot, OTA, package signing, certificates and PKI.&lt;/li&gt;
&lt;li&gt;Identify code paths that cannot be updated after manufacturing.&lt;/li&gt;
&lt;li&gt;Run a Linux gateway pilot with OpenSSL 3.5 or lab tools such as Open Quantum Safe.&lt;/li&gt;
&lt;li&gt;Measure ML-KEM and ML-DSA impact on real hardware.&lt;/li&gt;
&lt;li&gt;Review image formats, manifests, rollback and recovery paths.&lt;/li&gt;
&lt;li&gt;Define a policy for trust anchor rotation and crypto agility.&lt;/li&gt;
&lt;li&gt;Move only the justified parts into production.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example checklist
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;pqc_embedded_audit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;lifecycle&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;expected_field_life_checked&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;non_updatable_signature_verifier_identified&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;protocols&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;tls_or_vpn_usage_mapped&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;certificates_and_pki_inventory_done&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;firmware_chain&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;secure_boot_flow_reviewed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;ota_manifest_and_signature_format_reviewed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;rollback_and_recovery_paths_verified&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;implementation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;hybrid_transition_need_evaluated&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;stack_heap_flash_measured_on_real_target&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;latency_variance_measured&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;operations&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;trust_anchor_rotation_plan_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;crypto_agility_requirements_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;release_and_support_workflow_documented&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  When PQC makes sense
&lt;/h2&gt;

&lt;p&gt;PQC planning is most useful when the product is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;connected&lt;/li&gt;
&lt;li&gt;updateable&lt;/li&gt;
&lt;li&gt;deployed for a long time&lt;/li&gt;
&lt;li&gt;dependent on secure boot, OTA, certificates or secure networking&lt;/li&gt;
&lt;li&gt;expensive to access physically&lt;/li&gt;
&lt;li&gt;subject to compliance or long support windows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That makes Linux gateways, edge appliances, industrial IoT devices and remotely maintained firmware platforms natural candidates for early evaluation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to be careful
&lt;/h2&gt;

&lt;p&gt;PQC is not automatically the right move for every MCU or every firmware build.&lt;/p&gt;

&lt;p&gt;Very constrained devices may have strict limits around stack, heap, flash, latency or power. Hybrid approaches can help with migration, but they also add complexity and testing cost. The goal is not to put post-quantum algorithms everywhere. The goal is to know where they reduce real product risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;Post-quantum cryptography is becoming part of embedded product architecture. The smartest move today is not panic migration; it is inventory, measurement and crypto agility.&lt;/p&gt;

&lt;p&gt;Teams that understand their boot chain, OTA process, PKI and field lifecycle now will have a much easier transition later.&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/post-quantum-cryptography-for-embedded-and-iot-secure-boot-tls-and-ota" rel="noopener noreferrer"&gt;Post-quantum cryptography for embedded and IoT: secure boot, TLS and OTA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Silicon LogiX helps teams review embedded Linux, secure boot, firmware signing, OTA and security architecture for connected products.&lt;/p&gt;

</description>
      <category>iot</category>
      <category>embedded</category>
      <category>security</category>
      <category>cryptography</category>
    </item>
    <item>
      <title>eBPF on embedded Linux: diagnostics and runtime security for edge devices</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 18 May 2026 10:57:22 +0000</pubDate>
      <link>https://dev.to/pezzullo/ebpf-on-embedded-linux-diagnostics-and-runtime-security-for-edge-devices-he2</link>
      <guid>https://dev.to/pezzullo/ebpf-on-embedded-linux-diagnostics-and-runtime-security-for-edge-devices-he2</guid>
      <description>&lt;p&gt;eBPF is no longer only a cloud-native observability topic.&lt;/p&gt;

&lt;p&gt;For embedded Linux teams, it can become a practical way to inspect deployed gateways, routers and edge devices without rebuilding the whole firmware image every time a new diagnostic question appears.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the DEV.to edition of a Silicon LogiX technical article. The canonical English source is linked at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why eBPF matters for embedded Linux
&lt;/h2&gt;

&lt;p&gt;Embedded Linux products are often installed in places where debugging is expensive: factories, remote sites, customer networks, vehicles, appliances or industrial cabinets.&lt;/p&gt;

&lt;p&gt;When a problem appears only in the field, the usual workflow is painful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add logs&lt;/li&gt;
&lt;li&gt;rebuild the image&lt;/li&gt;
&lt;li&gt;deploy an update&lt;/li&gt;
&lt;li&gt;reproduce the issue&lt;/li&gt;
&lt;li&gt;hope the new logs are the right ones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;eBPF gives teams another option. In many cases, it can collect kernel-level signals at runtime with controlled overhead, without turning every diagnostic question into a new firmware release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful use cases
&lt;/h2&gt;

&lt;p&gt;For embedded products, eBPF is most useful when it solves a specific operational problem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;measuring syscall frequency and latency&lt;/li&gt;
&lt;li&gt;tracing I/O or filesystem behavior&lt;/li&gt;
&lt;li&gt;observing network traffic on gateways and routers&lt;/li&gt;
&lt;li&gt;collecting packet statistics with XDP&lt;/li&gt;
&lt;li&gt;monitoring sensitive runtime events&lt;/li&gt;
&lt;li&gt;profiling CPU or service bottlenecks&lt;/li&gt;
&lt;li&gt;supporting remote diagnostics on deployed Linux devices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does not replace good firmware architecture, logs, metrics or security design. It adds a deeper inspection layer when application-level visibility is not enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embedded constraints still matter
&lt;/h2&gt;

&lt;p&gt;A cloud server and an embedded gateway are very different environments.&lt;/p&gt;

&lt;p&gt;Before adding eBPF to a product, check the real target:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;kernel version and BPF support&lt;/li&gt;
&lt;li&gt;CPU architecture and JIT availability&lt;/li&gt;
&lt;li&gt;enabled hooks and kernel configuration&lt;/li&gt;
&lt;li&gt;memory and CPU overhead&lt;/li&gt;
&lt;li&gt;privileges required to load programs&lt;/li&gt;
&lt;li&gt;Yocto or Buildroot integration&lt;/li&gt;
&lt;li&gt;difference between development and production images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best embedded approach is often to build tools off-target and deploy only the loader, BPF objects and runtime pieces that the product actually needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture sketch
&lt;/h2&gt;

&lt;p&gt;A typical solution has two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a small eBPF program attached to a kernel event&lt;/li&gt;
&lt;li&gt;a user-space loader that configures the program and reads data from BPF maps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The eBPF side should stay focused: collect, filter or count events. The user-space side can export logs, metrics, local dashboard data or remote diagnostic reports.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;ebpf_embedded_strategy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;development_image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;tracing_tools_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;debug_symbols_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;kernel_config_visible&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;production_image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;minimal_loader_included&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;only_required_bpf_programs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;unprivileged_bpf_disabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;attack_surface_reduced&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;build_process&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;kernel_config_versioned&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;bpf_objects_built_reproducibly&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;target_architecture_validated&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;release_artifacts_tracked&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Evaluation checklist
&lt;/h2&gt;

&lt;p&gt;Before adopting eBPF in an embedded Linux product, run a focused audit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;ebpf_embedded_audit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;kernel&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;kernel_version_checked&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;bpf_support_enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;required_hooks_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;architecture_jit_support_verified&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;security&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;unprivileged_bpf_policy_reviewed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;capabilities_required_documented&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;production_access_restricted&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;attack_surface_evaluated&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;cpu_overhead_measured&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;memory_usage_measured&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;long_running_test_completed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;failure_behavior_verified&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;maintenance&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;bpf_program_versioned&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;rollback_plan_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;customer_support_workflow_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adoption plan
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start from one real problem: latency, networking, syscall monitoring, security audit or field diagnostics.&lt;/li&gt;
&lt;li&gt;Verify kernel support, architecture constraints and permissions.&lt;/li&gt;
&lt;li&gt;Build a small proof of concept and measure overhead on the real target.&lt;/li&gt;
&lt;li&gt;Integrate loader and BPF objects into the embedded build system.&lt;/li&gt;
&lt;li&gt;Separate development tooling from the production image.&lt;/li&gt;
&lt;li&gt;Define update, rollback, logging and support workflows.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;eBPF is powerful for embedded Linux when it becomes part of an engineered maintenance and observability strategy.&lt;/p&gt;

&lt;p&gt;It should not be added because it is fashionable. It should be added when it reduces diagnostic time, improves runtime visibility, strengthens network or security insight, and helps keep deployed Linux devices maintainable for years.&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/ebpf-on-embedded-linux-advanced-diagnostics-and-security-for-edge-devices" rel="noopener noreferrer"&gt;eBPF on embedded Linux: advanced diagnostics and security for edge devices&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you build embedded Linux, IoT gateways or edge devices and want a second pair of eyes on diagnostics, runtime security or Yocto integration, Silicon LogiX can help turn field problems into maintainable engineering workflows.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>embedded</category>
      <category>security</category>
      <category>ebpf</category>
    </item>
    <item>
      <title>ESP-IDF 6.0 migration: what ESP32 teams should test before production</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Tue, 12 May 2026 11:33:00 +0000</pubDate>
      <link>https://dev.to/pezzullo/esp-idf-60-migration-what-esp32-teams-should-test-before-production-559j</link>
      <guid>https://dev.to/pezzullo/esp-idf-60-migration-what-esp32-teams-should-test-before-production-559j</guid>
      <description>&lt;p&gt;ESP-IDF 6.0 is not a routine SDK bump for ESP32 products.&lt;/p&gt;

&lt;p&gt;If your firmware runs on devices already installed in the field, updated through OTA, connected through TLS, or used in industrial environments, the migration should be treated as an engineering project rather than a quick dependency update.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the DEV.to edition of a Silicon LogiX technical article. The canonical English source is linked at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why ESP-IDF 6.0 matters
&lt;/h2&gt;

&lt;p&gt;ESP-IDF 6.0 changes several areas that matter in production firmware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Picolibc replaces Newlib as the default C library&lt;/li&gt;
&lt;li&gt;Mbed TLS 4.x moves crypto work toward PSA Crypto APIs&lt;/li&gt;
&lt;li&gt;Deprecated legacy drivers are removed&lt;/li&gt;
&lt;li&gt;Build workflows and presets improve&lt;/li&gt;
&lt;li&gt;Bootloader OTA recovery exists on supported chips&lt;/li&gt;
&lt;li&gt;Some warnings can become build-blocking errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a prototype, this may look like a normal migration. For a product, it can affect RAM, flash footprint, task stack margins, TLS handshakes, OTA safety, provisioning and release repeatability.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check before migrating
&lt;/h2&gt;

&lt;p&gt;Start with five questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the current firmware build cleanly?&lt;/li&gt;
&lt;li&gt;Do custom components use legacy ESP-IDF APIs?&lt;/li&gt;
&lt;li&gt;Are OTA partitions, rollback and bootloader compatibility documented?&lt;/li&gt;
&lt;li&gt;Does the product use TLS, client certificates, secure boot or flash encryption?&lt;/li&gt;
&lt;li&gt;Can CI reproduce the exact production build?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the answer to any of these is unclear, migrate in stages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Picolibc checklist
&lt;/h2&gt;

&lt;p&gt;Picolibc can improve footprint, but do not stop at "it compiles".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;picolibc_migration_check&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;flash_size_before_after&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;ram_usage_before_after&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;heap_minimum_measured&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;task_stack_margin_checked&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;compatibility&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;third_party_libraries_reviewed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;stdio_usage_checked&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;printf_formatting_tested&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;cplusplus_components_tested&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;long_running_test_completed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;watchdog_events_checked&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;logging_behavior_verified&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  PSA Crypto and TLS
&lt;/h2&gt;

&lt;p&gt;If your product uses HTTPS, MQTT over TLS, client certificates, secure storage or legacy Mbed TLS APIs, test real connections after the migration.&lt;/p&gt;

&lt;p&gt;The subtle failures are often runtime failures: TLS handshakes that fail, certificates loaded differently, secure storage assumptions that no longer hold, or larger crypto footprint that pushes flash/RAM closer to limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  OTA and bootloader
&lt;/h2&gt;

&lt;p&gt;For field-deployed devices, OTA is the most sensitive part of the migration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;ota_readiness&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;partition_table&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;ota_slots_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;ota_data_partition_present&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;factory_partition_strategy_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;firmware_validation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image_signature_enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;rollback_enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;version_check_enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;bootloader&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;production_bootloader_version_recorded&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;compatibility_tested&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;recovery_strategy_defined&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

  &lt;span class="na"&gt;rollout&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;staged_update_supported&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;device_health_reported&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;remote_recovery_plan_available&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Migration plan
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Audit the current firmware: IDF version, drivers, custom components, partitions, OTA and security.&lt;/li&gt;
&lt;li&gt;Make the project build on ESP-IDF 6.0 and remove or isolate legacy APIs.&lt;/li&gt;
&lt;li&gt;Compare flash, RAM, heap minimum and task stack margins before/after.&lt;/li&gt;
&lt;li&gt;Test Wi-Fi, provisioning, TLS, MQTT/HTTPS, Web UI, watchdog behavior and long-running stability.&lt;/li&gt;
&lt;li&gt;Release through staged rollout, with rollback and telemetry.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;ESP-IDF 6.0 is a useful technical step forward, but a production firmware migration should be measurable, reversible and repeatable.&lt;/p&gt;

&lt;p&gt;The best outcome is not simply "the project builds". The best outcome is knowing that OTA, TLS, memory, drivers and release workflow still behave correctly after the upgrade.&lt;/p&gt;




&lt;p&gt;Canonical source: &lt;a href="https://www.siliconlogix.it/en/article/esp-idf-60-migration-how-to-upgrade-esp32-firmware-without-production-regressions" rel="noopener noreferrer"&gt;ESP-IDF 6.0 migration: how to upgrade ESP32 firmware without production regressions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you build embedded, IoT or firmware products and want a second pair of eyes on migration risk, OTA strategy or firmware architecture, Silicon LogiX can help turn prototypes into maintainable products.&lt;/p&gt;

</description>
      <category>esp32</category>
      <category>embedded</category>
      <category>iot</category>
      <category>firmware</category>
    </item>
    <item>
      <title>SLX AR Lens - WebAR for products, industry and culture: case study</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 11 May 2026 13:38:21 +0000</pubDate>
      <link>https://dev.to/pezzullo/slx-ar-lens-webar-for-products-industry-and-culture-case-study-1ep4</link>
      <guid>https://dev.to/pezzullo/slx-ar-lens-webar-for-products-industry-and-culture-case-study-1ep4</guid>
      <description>&lt;p&gt;SLX AR Lens brings marker-based augmented reality to the browser for products, industry, culture and retail experiences.&lt;/p&gt;

&lt;p&gt;This DEV.to version is a short engineering note extracted from the case study, with the complete English page linked at the end.&lt;/p&gt;

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

&lt;p&gt;WebAR, WebXR, Three.js, JavaScript, 3D visualization, Marker tracking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AR adoption is often blocked by native apps, proprietary SDKs and setup friction. WebAR lowers that barrier for product, retail, industrial and cultural use cases.&lt;/li&gt;
&lt;li&gt;A marker-based browser experience can be enough when the goal is to reveal 3D content quickly from a physical object or printed surface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep the 3D assets optimized for mobile GPUs: geometry size, texture weight and load order have a direct impact on the experience.&lt;/li&gt;
&lt;li&gt;Use the browser as the runtime, but still design the experience like a constrained real-time system.&lt;/li&gt;
&lt;li&gt;Separate tracking, scene setup and content configuration so different use cases can share the same technical base.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The hardest part of WebAR is not showing a model once. It is making tracking, loading and interaction reliable on ordinary smartphones.&lt;/li&gt;
&lt;li&gt;A good WebAR flow starts before the camera opens: marker design, fallback content and user guidance all matter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Read the full case study
&lt;/h2&gt;

&lt;p&gt;The English page on the Silicon LogiX website contains the full context, visuals and project details: &lt;a href="https://www.siliconlogix.it/en/solution/slx-ar-lens-webar-for-products-industry-and-culture" rel="noopener noreferrer"&gt;SLX AR Lens - WebAR for products, industry and culture&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I keep the DEV.to version intentionally shorter so the canonical page remains the source for the complete case study.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>javascript</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Interactive cultural routes with QR code and NFC: case study</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 11 May 2026 13:38:19 +0000</pubDate>
      <link>https://dev.to/pezzullo/interactive-cultural-routes-with-qr-code-and-nfc-case-study-l3m</link>
      <guid>https://dev.to/pezzullo/interactive-cultural-routes-with-qr-code-and-nfc-case-study-l3m</guid>
      <description>&lt;p&gt;Digital cultural routes for monuments, villages and heritage sites with QR codes, NFC, audio guides, maps and smartphone-ready multimedia content.&lt;/p&gt;

&lt;p&gt;This DEV.to version is a short engineering note extracted from the case study, with the complete English page linked at the end.&lt;/p&gt;

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

&lt;p&gt;QR Code, NFC, Mobile Web, Audio Guides, Interactive Maps, CMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cultural routes need a very low-friction user experience. Visitors should not install an app just to access a monument, village or exhibition stop.&lt;/li&gt;
&lt;li&gt;QR and NFC are simple entry points, but the quality of the experience depends on content structure, accessibility and maintainability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use mobile web pages as the delivery layer so content can be updated centrally and opened from any smartphone.&lt;/li&gt;
&lt;li&gt;Separate place metadata, media, audio guides and route navigation so cultural teams can evolve the content without touching code.&lt;/li&gt;
&lt;li&gt;Design for weak connectivity, readable layouts and fast loading before adding richer media.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The technology should disappear behind the visit. QR/NFC are only useful if the first page loads quickly and gives immediate value.&lt;/li&gt;
&lt;li&gt;A small CMS and a clear information model often matter more than flashy frontend effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Read the full case study
&lt;/h2&gt;

&lt;p&gt;The English page on the Silicon LogiX website contains the full context, visuals and project details: &lt;a href="https://www.siliconlogix.it/en/solution/interactive-cultural-routes-with-qr-and-nfc" rel="noopener noreferrer"&gt;Interactive cultural routes with QR code and NFC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I keep the DEV.to version intentionally shorter so the canonical page remains the source for the complete case study.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>mobile</category>
      <category>showdev</category>
      <category>ux</category>
    </item>
    <item>
      <title>Bare-metal audio ML classifier on microcontrollers: case study</title>
      <dc:creator>Marco</dc:creator>
      <pubDate>Mon, 11 May 2026 13:38:17 +0000</pubDate>
      <link>https://dev.to/pezzullo/bare-metal-audio-ml-classifier-on-microcontrollers-case-study-17m7</link>
      <guid>https://dev.to/pezzullo/bare-metal-audio-ml-classifier-on-microcontrollers-case-study-17m7</guid>
      <description>&lt;p&gt;A TinyML audio-classification workflow that trains in Python, exports to C and runs directly inside bare-metal firmware.&lt;/p&gt;

&lt;p&gt;This DEV.to version is a short engineering note extracted from the case study, with the complete English page linked at the end.&lt;/p&gt;

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

&lt;p&gt;Python, C99, scikit-learn, librosa, Random Forest, MFCC, ESP32, STM32.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Audio ML on microcontrollers is interesting when inference must happen locally, with low latency and no cloud dependency.&lt;/li&gt;
&lt;li&gt;For small classifiers, exporting a trained model into deterministic C can be more practical than embedding a large runtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep the training workflow and firmware integration connected: dataset, feature extraction, model export and C inference should be repeatable.&lt;/li&gt;
&lt;li&gt;Use a compact feature pipeline such as MFCCs only if the memory and timing budget still works on the target MCU.&lt;/li&gt;
&lt;li&gt;Avoid dynamic allocation in the inference path when the firmware has to remain predictable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TinyML is a system problem. Dataset quality, feature extraction and firmware constraints matter as much as model accuracy.&lt;/li&gt;
&lt;li&gt;Readable generated C is valuable because it can be reviewed, tested and rebuilt when the dataset changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Read the full case study
&lt;/h2&gt;

&lt;p&gt;The English page on the Silicon LogiX website contains the full context, visuals and project details: &lt;a href="https://www.siliconlogix.it/en/solution/bare-metal-audio-ml-classifier-on-microcontrollers" rel="noopener noreferrer"&gt;Bare-metal audio ML classifier on microcontrollers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I keep the DEV.to version intentionally shorter so the canonical page remains the source for the complete case study.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>iot</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
  </channel>
</rss>
