Operations | Monitoring | ITSM | DevOps | Cloud


Diving into JTAG - Debugging (Part 2)

As noted in my previous article Diving into JTAG protocol. Part 1 — Overview, JTAG was initially developed for testing integrated circuits and printed circuit boards. However, its potential for debugging was realized over time, and now JTAG has become the standard protocol for microcontroller debugging. Many Firmware and Embedded engineers first encountered it in this particular context.

Best Practices for Monitoring Device Connectivity

With the number of wireless SoCs on the market, “Just add connectivity” is finally a reality! “Just” does a lot of lifting in that phrase. Connectivity, whether wired or wireless, adds numerous layers of complexity to your device. Treating your connectivity as a black box early in development is easy, but this strategy will implode when thousands of devices enter the field - trust me, I know. It’s not enough to test from end to end a few times in the office.

Practical Zephyr - Devicetree semantics (Part 4)

Having covered the Devicetree basics in the previous article, we now add semantics to our Devicetree using so-called bindings: For each supported type, we’ll create a corresponding binding and look at the generated output to understand how it can be used with Zephyr’s Devicetree API. Notice that we’ll only look at Zephyr’s basic Devicetree API and won’t analyze specific subsystems such as gpio in detail.

Debugging and Decoding MongoDB with OpenTelemetry

MongoDB’s flexibility and document-oriented nature have always stood out to me as its most compelling features, setting it apart from the strict schema constraints of traditional relational databases. This adaptability is a boon for application development, allowing for more dynamic data interactions that mirror real-world information complexities and freeing table schemas’ constraints.

Practical Zephyr - Devicetree basics (Part 3)

In the previous article, we configured software using the kernel configuration tool Kconfig, and we’ve silently assumed that there’s a UART interface on our board that is configurable and used for logging. In this third article of the “Practical Zephyr” series, we’ll see how we configure and use hardware. For this, Zephyr borrows another tool from the Linux kernel: Devicetree.

Practical Zephyr - Kconfig (Part 2)

In this second article of the “Practical Zephyr” series, we’ll explore the kernel configuration system Kconfig by looking at the printk logging option in Zephyr. We won’t explore the logging service as such in detail but instead use it as an excuse to dive deep into Kconfig. Finally, we’ll create our own little application-specific Kconfig configuration. Like Interrupt? Subscribe to get our latest posts straight to your inbox.

Building Nordic nRF-Connect SDK Projects with GitHub Actions

Recently we ran through a re-vamp of our CI builds targeting the Nordic nRF-Connect SDK, and I wanted to share some of the things we learned along the way! This article walks through setting up a GitHub Actions workflow for building nRF-Connect SDK projects. Like Interrupt? Subscribe to get our latest posts straight to your inbox.

Debugging 5 Common Networking Problems With Full Stack Logging

Infrastructure is a complex and difficult concept for developers. When an issue occurs, where do you even begin to look? I’ve spent years of my life playing the “What looks like one but not like the other” game, wrestling with confirmation bias and hunting through haystacks of logs to find a clue to my hosted applications. This takes away from time spent improving my applications—and it isn’t fun.