What Was Learned in 2024: Top Articles and Videos You Shouldn’t Miss

On this page, we will share with the community our top picks of articles and videos from 2024 on embedded systems and electronics—must-reads and must-watch content you shouldn’t miss!

Top Videos

A lecture by one of the developers of KiCAD, where they discuss their experience using the program in a highly complex project. They talk about advanced features they used, such as Multi-channel design, which allows for creating modular blocks that can be copied and pasted at the schematic and PCB levels. They also discuss recent program features like Multi-drag and how to write advanced design rules using a special descriptive language.


This lecture is sufficient to clarify that the CPP language can provide abstraction in the code without any cost in terms of size or speed, but only if the language is used properly. The lecturer discussed many topics related to this.


The lecturer raises awareness in his talk about an often neglected aspect of the CPP language by many developers, which is the use of algorithms available in the standard library, such as swap, accumulate, partition, and others.


In this lecture, the presenter explains how to build generic code without the cost at the code level by using the compile-time-init-build library, developed and used by Intel.


In this lecture, the presenter discusses the reality of pager technology among hobbyists and the DAPNET (Decentralized Amateur Paging Network) and its applications, including MQTT over pager.


This video explains the use of programmable blocks in the QSPICE simulation software, released in 2023, which is the successor to LTSPICE. The video creator utilized this feature to simulate PWM signals using CPP code. The developer of QSPICE is the same as the developer of LTSPICE, but with numerous improvements added that were missing in the original program.

Top Article and Tutorials

Working with Strings in Embedded C++ – Niall Cooling

A detailed and important article on handling strings in C++.


NULL pointer protection with ARM Cortex-M MPU – Miro Samek 

How to prevent the issue of dereferencing a null pointer (zero address), which causes an execution exception, by using the ARM Cortex-M MPU memory protection unit.


The Lost Art of Structure Packing

A comprehensive article on Packed Structures, with an in-depth explanation of alignment and padding in structures.


A Tutorial on Portable Makefiles 

A clear and informative article on how to create Makefiles.


Are We Shooting Ourselves in the Foot with Stack Overflow? – Miro Samek

A simple but important article on how to suggest modifying the memory partition in the Linkerscript from above the Data section to the end of memory, so that in case of an overflow, it won’t corrupt any data in RAM.


A Modern C Development Environment

A tutorial on how to create a modern C development environment using VSCode and create a Docker image containing all the necessary tools, including Unit tests and a GitHub workflow.


Leveraging Your Toolchain to Improve Security – Embedded Artistry 

An article to educate developers about important flags in both GCC and Clang compilers that can be used to avoid common errors during software development, such as Overflow or the use of Uninitialized Variables, among others.


MCU Peripheral Forwarding | Interrupt

A lesson on how to write programs capable of reading ports from a microcontroller using Chip Peripheral Forwarding, written by the developer of the RemoteMCU library.


Exploring printf on Cortex-M | Interrupt 

A detailed explanation of the most commonly used debugging tool in embedded systems programming, print.


Power switching RP2040 for low standby current applications | Raspberry Pi

An application note on methods to put the controller in the lowest power consumption state or completely turn off the system with the ability to wake it up externally with a single press.


SPI point-to-point extender – LTC4332

This IC allows wired communication over an SPI bus for distances up to 1200 meters.


Single I2C/SMBus Address Translator – LTC4316 

When some devices or sensors are connected to the same I2C bus, and it’s not possible to modify the addresses of the connected sensors or devices, or in the case of adding multiple sensors of the same type and company with the same address and it’s not possible to add them on separate buses, the solution is to use a bus translator called an I2C translator. An example of this is the LTC4316 chip, which changes an address from one value to another. In this way, the controller uses a different address from the device connected to the translator, but in the end, the address that reaches the controller is the one that would have conflicted with another component on the I2C bus.


Top Books

Jacob Beningo – Embedded Software Design: A Practical Approach to Architecture, Processes, and Coding Techniques (2022)

A very important book filled with valuable advice and information by its author, consultant engineer Jacob Beningo. The first part of the book starts with the theoretical architecture and design of embedded code and the most common methods used in that, explaining the advantages and disadvantages of each method. This also includes code that operates in real-time systems (RTOS). The second part discusses automating embedded code production, testing, and integration, including Agile & DevOps practices, with a focus on hardware-in-loop testing. The third section covers how to write embedded code that is easy to modify and port when switching microcontrollers, with a detailed explanation of how to choose the most suitable microcontroller.


James W. Grenning – Test Driven Development for Embedded C-Pragmatic Bookshelf (2011)

The principle of TDD (Test Driven Development) is a development methodology in software engineering that helps build highly reliable code subject to unit tests at every part. This principle is based on test-driven code construction, not writing tests after the code is completed. The author presents this principle in the book but from the perspective of microcontrollers, practically answering questions about how to apply TDD in embedded systems. He demonstrates in his book the benefits of this approach in achieving consistent, modular code that can be reused even with different microcontrollers, as well as the advantage of writing reliable, testable code in every part.


Cal Newport – Deep Work: Rules for focused success in a distracted world-Grand Central (2016)

This book is non-technical, but its author, Dr. Cal Newport, an Australian computer science professor, had a significant impact on me in regaining the ability to focus and avoid distractions while working. The book discusses in-depth the essential guidelines, starting with dedicating time for deep, undistracted work for long periods, allowing yourself to immerse in tasks with focus, innovation, and problem-solving. It presents important principles such as setting daily tasks before starting work, planning for the next day, and prioritizing important tasks while postponing less critical activities, like meetings or responding to emails, to times of lower productivity. It’s difficult to summarize the book in a few lines, but I highly recommend it to any employee or freelancer.

Exit mobile version