Featured Articles

  • 10 Embedded Firmware Practices That Prevent Painful Bugs

    10 Embedded Firmware Practices That Prevent Painful Bugs

    Ten firmware habits that make bring-up easier, expose faults earlier, and keep common embedded failures from hiding in drivers, interrupts, buffers, or timing code.

  • Keeping Instrument GUIs Responsive with Qt

    Keeping Instrument GUIs Responsive with Qt

    How to structure Qt instrument GUIs so serial, USB, TCP, and SCPI hardware failures do not freeze widgets, hide stale data, or leave operators guessing.

  • Writing Drivers for I2C Chips in Embedded Systems

    Writing Drivers for I2C Chips in Embedded Systems

    How to build maintainable I2C chip drivers for sensors, ADCs, EEPROMs, GPIO expanders, and other peripheral devices without leaking bus details into application code.

  • Writing Drivers for SPI Chips in Embedded Systems

    Writing Drivers for SPI Chips in Embedded Systems

    A practical reference for embedded SPI drivers for ADCs, sensors, DACs, and other peripheral chips, covering datasheets, timing, testing, and bring-up.

Explore Embedded Systems Topics

Start with focused guides on embedded systems projects, embedded C and C++, electronics and PCB design, and programming guides. Popular paths include the SPI chip driver series, I2C chip driver series, embedded firmware best practices, and responsive Qt instrument GUI guide.

Latest Articles

  • Arduino InfluxDB Grafana

    Setting up InfluxDB and Grafana for storing and viewing Arduino measured sensor values

    Arduino and its related products are undoubtedly very popular among hobbyists and even professionals. One of the areas of interest with hobbyists and professionals is interfacing with many different sensors such as temperature, humidity, light, etc. The…

  • stm8s003f3 LED blinking board

    STM8 Tutorial 2 – Implementing a simple delay function

    STM8 Series of microcontrollers, the 8-bit series of STMicroelectronics, are cheap but powerful micros which provide a good value and performance to your simple projects. The problem is, these series are not geared toward hobby market. While…

  • STM8S003F3 Evaluation Board

    STM8 Tutorial 1 – How to read the datasheet

    STM8 Series of microcontrollers, the 8-bit series of STMicroelectronics, are cheap but powerful micros which provide a good value and performance to your simple projects. The problem is, these series are not geared toward hobby market. While…

  • nVIDIA CUDA Neural Network

    Compile and install Caffe with CUDA and cuDNN support on windows from source

    Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors. Yangqing Jia created the project during his PhD…

  • Technical illustration of a C++11 matrix class using contiguous vector storage instead of raw pointer allocation.

    Matrix Implementation and Operations in C++ – Part 1

    A safer C++11 matrix implementation using contiguous storage, RAII, templates, and basic operations such as addition, multiplication, transpose, and identity matrices.

  • NUMIX icon and themes for linux

    Pimping up your Ubuntu!

    Want great look and feel on your Ubuntu machine? then follow this guide! First of all, install NUMIX icons and themes $sudo add-apt-repository ppa:numix/ppa $sudo apt update $sudo apt install numix-gtk-theme numix-icon-theme-circle Then, to easily change the…

  • CMAKE icon

    Build and install CMAKE 3.7.2 on Ubuntu

    This guide should work for any recent version of CMAKE up to 3.8.X. First of all download the source from here: https://cmake.org/download/ More specificly for Ubuntu 14.04 or higher, 64 bit: https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz Download it to the following…

  • Installing FFMPEG from source on Ubuntu 14.0.4

    Replace paths with where you like, but make sure you change also in my guide! #go to opt folder, make directories, make directories if not exits $cd /opt/dev-tools-sources $mkdir ffmpeg $cd ffmpeg #make build and bin directories…