Hamming code magic explained

Hamming code magic explained

Intro to the topic The Hamming code was invented by Richard W. Hamming in the late 1940s. At the time, he was working at Bell Labs. He grew frustrated with early punched‑card computing workflows where a single flipped (or misread) bit could cancel an entire run, wasting hours of machine time and operator effort. The…

Devcontainers – our embedded workflow!

Devcontainers – our embedded workflow!

Intro to the problem Developers at GoodByte often work on multiple embedded projects simultaneously or in short succession – some projects last only one month, others two or three years. Because of this, a developer might switch between two projects in the same week or handle three projects in a quarter. Each project requires its…

Zephyr – Code checker

Zephyr – Code checker

Learn the importance and practical applications of the CodeChecker tool for static code analysis in C. The article describes how CodeChecker assists in identifying and fixing potential code defects, motivating developers to adhere to best practices and security standards. We’ll go by the hand through the installation, configuration and use of this tool in projects…

Wireshark – proprietary protocol

Wireshark – proprietary protocol

Protocol means “an official standard for handling given situations.” As embedded developers, when we hear the word “protocol,” we most often think of a communication protocol, or a set of rules by which devices communicate with each other. Communication protocols are ubiquitous, from the low-level ones within a PCB (I2C, SPI, UART) to network protocols…

Debug story

Debug story

You’re programming quietly, until suddenly the Window of Death pops up. You’ll probably look through recent code changes and find something suspicious. But if you still don’t know what might have caused our problem, we’ll be left with good old classic debugging. Let’s forebug, then, all the way to the source of our problem. Let’s…

How about Clangd instead of IntellliSense?

How about Clangd instead of IntellliSense?

I have long heard that Clangd is better than IntelliSense. But what does that actually mean better? It is, after all, just an opinion. I decided to check it out. In the following text, I describe how I swapped IntelliSense for Clangd and what the results were. ‍ While working on a project on nRF…

Zephyr – LED blinking

Zephyr – LED blinking

Every programming course traditionally starts with a “Hello World” program. These simple programs, displaying only a single line of text, help confirm that the programming environment is correctly set up. This assurance allows programmers to tackle more complex tasks without worrying about configuration issues. However, for embedded programmers, displaying a single line of text is…

Zephyr – application development

Zephyr – application development

The Zephyr Project, an RTOS hosted by the Linux Foundation, offers a broad spectrum of features and customizable modules, catering to various development needs. It supports the creation of custom drivers, which can be easily integrated into projects. Although Zephyr’s extensive options and documentation can appear daunting, there are three main approaches to kickstart application…

Embedded RTOS – tools and community support

Embedded RTOS – tools and community support

If you use an RTOS on a daily basis, it’s natural that it is your first option when undertaking a new project. However, if you’re just starting out or thinking about trying something new, it’s worth paying attention to the community support and tools available. We believe that it is these two aspects that are…

Embedded RTOS performance testing

Embedded RTOS performance testing

It’s time to compare RTOSes in battle. We will check how they perform in terms of performance. We’ll measure how they behave with elementary operations like context switching under no load, periodicity or return from interrupt. At the end, each of them will face an activity that requires busyness – a real application. After reviewing…