EmbeddedRelated.com

Sensors Expo - Trip Report & My Best Video Yet!

Stephane BoucherStephane Boucher August 3, 20183 comments

Stephane Boucher turns a first-time Sensors Expo visit into a fun travelogue and a polished conference highlights video. He mixes candid trip anecdotes from Moncton to San Jose, electric-scooter discoveries, Santa Cruz detours, Airbnb tips, and on-the-floor expo footage. The post culminates in what he calls his best highlights reel yet, plus a follow-up video focused on embedded and IoT.


R1C1R2C2: The Two-Pole Passive RC Filter

Jason SachsJason Sachs July 28, 20181 comment

Jason Sachs walks through the math and simulation for the common two-pole passive RC filter, turning repetitive algebra into a compact reference you can reuse. He derives the closed-form transfer function, extracts the natural frequency and damping ratio, and explains why the topology cannot be underdamped without inductors or active stages. The post finishes with a state-space simulation recipe and practical component guidance.


Linear Feedback Shift Registers for the Uninitiated, Part XVII: Reverse-Engineering the CRC

Jason SachsJason Sachs July 7, 20181 comment

Jason Sachs shows how to pry CRC parameters out of a black-box oracle and reimplement the checksum yourself. By canceling the affine offsets, probing single-bit basis messages, and treating per-bit outputs as LFSR sequences, you can recover the generator polynomial, bit and byte order, and init/final XOR values. The post includes working Python code, a 4-message shortcut, and real-world tests such as zlib CRC32.


Making a connection 1

Ed NutterEd Nutter July 3, 20182 comments

Reliable electrical connections are the unsung foundation of any embedded system, yet connector selection and technique are often overlooked. This practical primer walks through common terminal styles, when to solder versus crimp, basic crimping steps and tool choices, plus simple checks and color-coding rules to help you make durable, serviceable wire connections without surprises.


Linear Feedback Shift Registers for the Uninitiated, Part XVI: Reed-Solomon Error Correction

Jason SachsJason Sachs June 19, 2018

Jason Sachs demystifies Reed-Solomon codes with hands-on examples and pragmatic tips for embedded engineers. The article shows why RS encoding is just polynomial division in GF(2^m), why decoding is mathematically heavier, and how to implement encoders in Python and in C-friendly form using LFSRs and table-driven methods. Read this for working code, generator-polynomial examples, and an embedded-minded view of RS practicalities.


Troubleshooting notes from days past, TTL, Linear

Ed NutterEd Nutter June 19, 20181 comment

Troubleshooting electronics is more about thinking than tools, yet details matter. This concise collection of technician notes condenses practical procedures and probe precautions, IC failure modes, digital logic diagnostics, and common power-supply traps. Drawn from classic guides by Frank R. Dungan and James Perozzo, it provides a methodical checklist to isolate faults faster and avoid costly mistakes when repairing embedded hardware.


Linear Feedback Shift Registers for the Uninitiated, Part XV: Error Detection and Correction

Jason SachsJason Sachs June 12, 2018

CRCs and Hamming codes look a lot less magical when you view them as redundancy with a purpose. Jason Sachs walks from parity bits and checksums into finite-field polynomial arithmetic, then shows how CRCs map cleanly onto LFSRs and how Hamming codes use syndromes to locate single-bit errors. It is a practical tour of error detection and correction, with enough worked examples to make the theory feel usable.


Tenderfoot: How to Write a Great Bug Report

Matthew EshlemanMatthew Eshleman May 31, 20184 comments

A well-written bug report can save hours of debugging and prevent last-minute scrambles before demos. This post uses a contrived embedded RF product example to show what good and bad reports look like, the essential fields to include, and how clear reproduction steps helped find a simple bitmask bug before a trade show. Finish with a short template you can adapt to your team.


Who else is going to Sensors Expo in San Jose? Looking for roommate(s)!

Stephane BoucherStephane Boucher May 29, 20186 comments

Stephane Boucher is heading to Sensors Expo in San Jose for the first time, and he is bringing cameras to capture demos and build a highlights video. He is also looking for roommates for a roomy Airbnb near the convention center, plus local tips for making the most of a free day in the Bay Area. If you are attending, there is also a registration discount code and a VIP pass giveaway in the mix.


Voltage - A Close Look

Ralph MorrisonRalph Morrison May 23, 201811 comments

The post examines what voltage actually indicates in fast circuits by revisiting a classic interview puzzle and transmission-line wave behavior. Using a voltmeter and a compass to infer electric and magnetic field directions, the author shows how the right-hand rule reveals energy-flow direction rather than a simple ‘voltage source’ location. Revisiting leading and reflected waves on an open transmission line, the post explains that reflected wave fronts convert magnetic field energy into electric field energy (doubling the voltage at the open) and that energy is exchanged between field forms rather than being lost or simply ‘reflected away.’ The author emphasizes that voltage can represent storage, flow, or dissipation depending on context, and that an oscilloscope remains the primary practical tool for observing these energy phenomena in high-speed design.


Simple Automated Log Processing

Steve BranamSteve Branam April 25, 2020

You don't need heavy tools to make sense of megabytes of embedded logs. This post shows a practical bash script that trims noisy serial and semihosting output, samples hourly heap-profile lines, and converts them into a CSV ready for graphing. It gives a simple, adaptable pattern you can reuse to spot memory leaks or triage recurring log signatures quickly.


Cutting Through the Confusion with ARM Cortex-M Interrupt Priorities

Miro SamekMiro Samek February 26, 2016

ARM Cortex-M interrupt priorities are famously confusing because numeric priority values are inverted relative to urgency and several different conventions coexist. This post cuts through the mess by explaining NVIC register bit placement, the CMSIS NVIC_SetPriority convention, preempt versus subpriority grouping, and when to use PRIMASK or BASEPRI. Read on for practical rules to avoid subtle priority bugs in real-time firmware.


3 Good News

Stephane BoucherStephane Boucher March 9, 20161 comment

Stephane Boucher reports three quick wins for the EmbeddedRelated community: two sponsors have seeded a $1,000 rewards pool, the site now serves all pages over HTTPS, and the new forums have their first active discussions. If you want a share of the sponsor-funded rewards, jump into the forums and check the Vendors Directory for opportunities. Stay tuned for more updates.


The volatile keyword

Colin WallsColin Walls April 1, 20245 comments

Although the C keyword volatile is very useful in embedded applications, care is needed to use it correctly and vigilance is required to ensure its correct implementation by compilers.


Supply Chain Games: What Have We Learned From the Great Semiconductor Shortage of 2021? (Part 1)

Jason SachsJason Sachs December 31, 20215 comments

Jason Sachs argues the 2021 semiconductor shortage was not a single surprise but a set of structural imbalances exposed by COVID-19. He connects long lead times, constrained 200mm fabs and mature-node economics to why automotive features like heated seats became scarce, and shows how bullwhip dynamics and inventory practices amplified the problem. This first part uses concrete anecdotes and simple games to make the supply-chain lessons tangible.


Simulating Your Embedded Project on Your Computer (Part 2)

Nathan JonesNathan Jones November 4, 20243 comments

Having a simulation of your embedded project is like having a superpower that improves the quality and pace of your development ten times over! To be useful, though, it can't take longer to develop the simulation than it takes to develop the application code and for many simulation techniques "the juice isn't worth the squeeze"! In the last article, I showed you how to use the terminal (i.e. printf/getchar) to easily make a completely functional simulation. In this article, we'll take simulation to the next level, either in terms of realism (by using virtual hardware) or in terms of user experience (by using a GUI to simulate our hardware, instead of using the terminal).


An Iterative Approach to USART HAL Design using ChatGPT

Jacob BeningoJacob Beningo June 19, 202311 comments

Discover how to leverage ChatGPT and an iterative process to design and generate a USART Hardware Abstraction Layer (HAL) for embedded systems, enhancing code reusability and scalability. Learn the step-by-step journey, improvements made, and the potential for generating HALs for other peripherals.


Linear Feedback Shift Registers for the Uninitiated, Part III: Multiplicative Inverse, and Blankinship's Algorithm

Jason SachsJason Sachs September 9, 2017

Jason Sachs walks through Blankinship's constant-space variant of the Extended Euclidean Algorithm and shows how to compute multiplicative inverses both modulo an integer and in GF(2)[x]. The article uses clear numeric and polynomial examples, Python snippets, and an LFSR finite-field example to show how the algorithm yields Bézout coefficients and inverses useful for discrete-log tricks and cryptographic contexts. Readers get a practical recipe for inverse computation.


Modulation Alternatives for the Software Engineer

Jason SachsJason Sachs November 8, 20111 comment

Jason starts with a hardware curiosity, the 7497 synchronous rate multiplier, and turns it into a practical lesson for firmware engineers. He contrasts conventional PWM with a simple accumulator-based method called "synthetic division," showing how it implements first-order delta-sigma behavior in software. The post explains when to pick PWM or delta-sigma and why the accumulator trick can give higher effective resolution at low update rates.


How to install Ubuntu 12.04 Precise, Xubuntu-desktop and Open JDK-7 on Beagleboard Rev. C2

Tayyar GUZELTayyar GUZEL July 25, 20124 comments

Want to run Java GUI apps on a BeagleBoard Rev C2? This hands-on post walks through installing Ubuntu 12.04, adding the Xubuntu desktop, and getting OpenJDK-7 running, including SD flashing, u-boot and network setup, display and audio tweaks, and a fix for XFCE login ownership problems. Follow the exact commands and small workarounds the author used to get a monitor, sound, and Java VM working on the board.