Become a leader in the IoT community!
Join our community of embedded and IoT practitioners to contribute experience, learn new skills and collaborate with other developers with complementary skillsets.
Join our community of embedded and IoT practitioners to contribute experience, learn new skills and collaborate with other developers with complementary skillsets.
How to build an intelligent vision system with SECO’s Intel processor-based COM-HPC-A-RPL COM-HPC module, the Yocto-based Clea operating system, and OpenCV. Contents Introduction Abandoned object detection is an important application […]
One of the very first tools that I want when I’m developing an embedded system is some kind of virtual device that I can test against without needing to bring a breadboard and piles of cables with me everywhere I sit down to develo[...]
Continuing from our last week’s post, today we will look at transmission lines.
This can be confusing to understand, as from the beginning we are used to treating circuits with currents and volts. Now we must unde[...]
Secure boot is a critical security feature for embedded devices. It ensures that only authorized firmware runs on a device, protecting against unauthorized modifications or attacks. In this post, I’ll explain how secure boot works [...]
A WebAssembly retro-display.
I’ve been taking a sabbatical for the past three months, and it’s been giving me a good bit of time to explore a technology that’s piqued my interest: WebAssembly! This article talks over my motivati[...]
The older generation sometimes calls it a PW board (printed wire board).
Today we’ll have a bird’s eye view of a PCB. How it is designed, manufactured, tested and how it integrates into a product.
PCBs are hiding in al[...]
I find it very fascinating visualizing my own PCB designs in 3D outside of the ECAD tools capabilities. It is a must to export your PCB design to MCAD tool for enclosure. I’ve used blender on and off over the years and tried some m[...]
I’ve been reading into compiler engineering quite a lot recently (hopefully more posts to come on that in the future) and it occurred to me that I didn’t actually understand how dynamic code could be executed. My entire mental mode[...]
Unit testing helps ensure the reliability of software, especially in embedded systems where failures can be costly. In this post, we’ll cover behavior-driven testing, understanding test size and scope, and how to prepare your syste[...]
This post will be the first in a multi-part series covering the development of local web apps with a focus towards the type of application you might need for a connected home IoT product. In this series, I’ll be walking through sta[...]
Just a quick one from some debugging I’ve done this morning. Some debugging that was rather obvious in retrospect, but nonetheless I couldn’t find any mentions of it in a quick search.
I’ve been trying to flash some examples from [...]
I’ve been itching to write some software for hardware lately and since I have recently acquired an air purifier it seemed like an opportune time to try to get a sensor publishing data that I can use as the basis for automatically c[...]
Welcome to part 3 of the series of carrier board design
I know we have not even started to talk about the carrier board design, we are first covering the fundamentals that will be essential to understand the thing we do in design. [...]
I’ve been following the Getting Started guide for Zephyr and got to the point of testing flashing the blinky sample onto the microcontroller. Unfortunately, the native west flash
did not just work. Looking at the output, the comman[...]
If you’ve developed a few Arduino projects, you’ve probably learned to use the Arduino library’s I2C driver Wire
or perhaps also it’s SPI driver SPI
. These two protocols are very commonly used in embedded systems for communication [...]
I’m starting learing about TinyML a.k.a “Machine Learning for Embedded Systems”, and I’m logging my journey. This post is about how to setup your toolchain, and deploy the “Hello World” on the ESP-EYE.
Btw, I used Linux Terminal t[...]
This is part 1 of 4 part series.
There is a shift in the industry where more and more software engineers are coming into the hardware side, primarily driven by the rise of IoT, existing products are getting connected t[...]
Running YOLOv5 on a microcontroller is no small task, given the model’s computational requirements (>20MB). In this post, I’ll share how I successfully ran a simplified YOLOv5 model on an ESP32 microcontroller and optimized it for [...]
Recently, I’ve been dabbling into FEM tools for doing EM simulations. These have been very helpful full in improving my understanding about PCB layout and has help a lot in getting the designs right the first time. The complex desi[...]
I’ve been working on a multi-threaded C++ app with threads. It’s pretty simple on paper: think of it like a mail service that gets letters (requests) and puts them in a queue. Then there’s a worker thread who picks up the letters a[...]
I’ve been on sabbatical for a little over a month now, but I’ve not been idle! When I decided that I was going to take some time off, I knew that I was going to want to take advantage of the time not just to relax, but also to pick[...]
I recently got back to using Blender. Before when I was using it, I stopped at the basics. This time, I’m getting little deeper with geometry nodes and shading and compositing. Blender is an absolute powerhouse. The reason I got ba[...]
The question is when is your design a high-speed design?
When the trace length is greater than ¼ of TEL, the design is high speed, and care must be taken to maintain signal integrity.
So, what is TEL?
It stands for Transition Elect[...]
When I first started using Altium, I found the OutJob file a bit confusing. After taking Robert Feranec’s course, I understood it better, but it still involved moving a lot of files a[...]
A couple years ago I was interested in implementing Conway’s Game of Life since it’s pretty simple and seemed like a fun little project to sharpen my skills in Rust. I had a pretty major problem though: I needed a way to actually[...]
Today we will talk about designing hardware in a systematic way. We will see what are the different approaches we can take and how we break down the product brief into PCB requirements. We will also check out some IRL product brief[...]