Artful Bytes

A blog about building and programming hardware.

20230729 | I made a Robot 2D Simulator with C++
20230625 | How to Board Bring-up
20230613 | I2C driver in C
20230514 | ADC driver with DMA in C
20230418 | Motor Control with PWM in C
20230405 | NEC Protocol Driver (Infrared remote)
20230314 | Printf on a Microcontroller
20230226 | Write a UART driver (Polling and Interrupt)
20230218 | Microcontroller Interrupts
20230204 | How Microcontroller Memory Works
20230122 | My Ugly Test Functions
20230117 | Assert on a Microcontroller
20230103 | Handling multiple Hardware Versions
20221218 | How I program GPIOs in C
20221122 | Documentation and Clang format (+2 bugs)
20221009 | Simple CI/CD with Github Actions and Docker
20221002 | Static Analysis for C/C++ with cppcheck (+Makefile)
20220924 | How I version control with git
20220903 | The BEST Project Structure for C/C++/MCU
20220814 | How to Create a Software Architecture
20220720 | Microcontroller Programming without an IDE (Makefile + Toolchain)
20220706 | Install an IDE and Blink an LED (Code Composer Studio + MSP430)
20220630 | PCB Design Walkthrough Sumo Robot
20220624 | Picking the Parts for a Small Robot
20220617 | Embedded System Project Series
20220610 | Started a YouTube Channel about Embedded Systems
20220330 | Bootstrapping my development environment (Linux, i3, and vim) with a single command
20210925 | Build and Flash your Microcontroller Project from the Command-line with a Makefile
20210829 | Writing a driver for the tiny range sensor VL53L0X (0-200 cm)
20210828 | How to write a microcontroller driver for an I2C device? (MSP430 and VL6180X)
20210115 | Bots2D: Building a robot 2D simulator from scratch in C++