Modern C++ in embedded development: strong types and user-defined literals
I started using Modern C++ in embedded projects two years ago. Even though C is a defacto standard language in embedded development, I see more and more people switching to C++. Embedded developers are often biased and still think you can’t use C++ without dynamic...
DDR Signals and FPGA
What is DDR signal/bus In electronics, many synchronous buses use clock line and one and multiple data lines for reliable data transfer. The clock line is dictating the timing and period when the data lines should be sampled on the receiving end while the data lines...
Modern C++ in embedded development: using C libraries
Language linkage C++ programs can use C code. The linkage between C++ and software modules written in other programming languages is called language linkage. extern string-literal {declaration} Standard guarantees only two language linkages: C++ and C. C++ is the...
Experience with the design of a high-speed interface
As a beginner in the design of electronic devices, one usually works on designs that are less complex. These are usually just simple, 1 or 2-layer boards. Not to say that these can’t be complex and used in real devices, but things do get a lot more complicated when...
PCB Design and Development Process
Today, the development process is unimaginable without the appropriate software tools. A few years ago, these tools were much more difficult to acquire. We will mainly focus on design considerations in the development of electronic devices, more precisely in the...
Modern C++ in embedded development: constexpr
What is constexpr? Cppreference defines constexpr specifier as follows: “The constexpr specifier declares that it is possible to evaluate the value of the function or variable at compile time. Such variables and functions can then be used where only compile-time...
In-house PCB manufacturing
Even as a kid, I’ve shown quite a bit of interest in the matters of technology, and above all, electronics. I’ve been blessed with the good fortune of having an engineer for a parent. My dad was an engineer experienced in the fields of electronic and control...
Modern C++ in embedded development
C - the only right tool for the job It is a common opinion amongst embedded developers that the only right tool for the job is C. Being an embedded developer you spend a lot of time reading device datasheets. Datasheets describe peripherals in terms of registers that...
Neoden4 PnP experience
Due to the increase in the demand for the production of larger quantities of electronic hardware we had to consider expanding our capacities to the realm of manufacturing. However, this demand was yet to become high enough to justify equipment for mass production. For...
Getting started with Zephyr OS using CMake
The goal of this tutorial is to lay out a basic folder structure of Zephyr OS application project, introduce you to a build system based on CMake and run your first "Hello world" using Zephyr OS. Why Zephyr? For the better part of my Embedded Developer career I've...

S