EmbeddedRelated.com
How to Deploy Local LLMs for Embedded Software Development: Hardware Selection and Trade-offs

How to Deploy Local LLMs for Embedded Software Development: Hardware Selection and Trade-offs

Mohammed Billoo

In this post, I map the LLM terminology covered in the previous post to real hardware decisions. I walk through memory sizing depending on different parameters, the core trade-off between discrete GPU VRAM and unified memory. Finally, I describe a workflow to help you identify which setup is right for your workflow.


My device crashed in the field. How do I figure out why?

My device crashed in the field. How do I figure out why?

Rakhshan Sayed

Embedded systems often crash in the field, leaving developers with nothing more than a disconnected device and zero visibility into the cause. When traditional debugging is impossible, coredumps provide the essential post-mortem data required to reconstruct the system’s final moments. Learn how to configure Zephyr RTOS and the Spotflow SDK to automatically capture, store, and analyze critical crash information—including stack traces, CPU registers, and variable states—remotely. Mastering this workflow allows you to diagnose and resolve elusive firmware faults long after a device has rebooted, transforming your remote debugging capabilities.


Can Spotflow Solve Remote Debugging for Embedded Systems?

Can Spotflow Solve Remote Debugging for Embedded Systems?

Rakhshan Sayed

Debugging complex embedded systems in the field requires more than just local logs and JTAG probes. To maintain visibility across a scaling fleet, engineers need robust cloud-based observability. This guide explores the integration of Spotflow with the Zephyr RTOS on an NXP FRDM-MCXN947 board. Learn how to configure your development workspace, navigate common Python versioning hurdles, and establish a secure MQTT connection. Follow along as we bridge the gap between local firmware execution and remote telemetry, setting the foundation for true fleet-wide monitoring and proactive system management.


C Is for Complacency: Friendship Is Not Transitive, but What About Module Dependencies?

C Is for Complacency: Friendship Is Not Transitive, but What About Module Dependencies?

Jason Sachs

In the C programming language, if module A depends on module B, and module B depends on module C, does this mean module A depends on module C? Well, it depends....


Ten Little Algorithms, Part 8: Miller-Rabin Primality Test (and Living with Uncertainty)

Ten Little Algorithms, Part 8: Miller-Rabin Primality Test (and Living with Uncertainty)

Jason Sachs

Part 8 of the Ten Little Algorithms series: A look at the Miller-Rabin primality test, along with Pollard's rho algorithm for factoring, and some perspectives on very low levels of uncertainty.


How to Deploy Local LLMs for Embedded Software Development: Terminology and Motivation

How to Deploy Local LLMs for Embedded Software Development: Terminology and Motivation

Mohammed Billoo

In this blog post series, I walk you through creating a fully local, offline AI pipeline. In this first post, I outline the motivation and relevant terminology that are important before we dive into hardware selection and implementation of the pipeline.


Your architecture was decided before you opened the schematic

Your architecture was decided before you opened the schematic

Emile Décosterd

Engineering teams often treat requirements as a simple feature checklist, but they actually hold the blueprint for your software architecture. By analyzing constraints collectively rather than in isolation, you can define critical architectural patterns—such as task scheduling and abstraction levels—long before the first schematic is drawn. This proactive approach eliminates wasted complexity, reduces development time, and allows software needs to inform hardware choices early in the cycle. Discover how to shift your design mindset to build lean, purposeful systems that align perfectly with business objectives from day one.


My Lowest-Friction Embedded Project Was Also the One That Shouldn't Have Worked

My Lowest-Friction Embedded Project Was Also the One That Shouldn't Have Worked

Ralph Hempel

Ralph Hempel recounts the LEGO Powered Up rework that, against every external constraint, turned into the lowest-friction embedded development environment of his career. The talk connects the specific tools and habits that made it work to five soft qualities that any struggling team can start building with small experiments, not big-bang process changes.


Beyond the Packet: Designing Reliable Serial Communication for Embedded Systems

Beyond the Packet: Designing Reliable Serial Communication for Embedded Systems

Prabo Semasinghe

Serial communication between microcontrollers sounds simple until the protocol quietly breaks your system. Prabo Semasinghe walks through the design steps for building a robust communication framework: packet structure, error detection, acknowledgment handling, state machine design, and the failure-mode testing that actually proves it works.


The Data Problem Slowing Down Semiconductor Adoption

The Data Problem Slowing Down Semiconductor Adoption

Michael Lazarenko

Silicon is shipping faster than ever. Devices are not. The 18 to 36 month gap between a chip becoming available and a product reaching the market is now almost entirely software integration, written by hand, rewritten for every operating system and every safety target. The fix isn't more engineers or better tools. It's better data, and a shared way to describe how chips actually behave.