About:

I optimize software for a living. This blog is to share some personal projects which others may find interesting.

Website:

Specializations:

Subscribe to RSS:
The article discusses the challenges of displaying text on low-memory microcontrollers and presents a solution using a modified bitmap font system called Group5. It explains the limitations of traditional TrueType fonts and the Ad...
C++ offers a more efficient and beginner-friendly approach to programming small LCDs on Linux compared to Python, as demonstrated through the author's personal experiences and library development.
The blog post discusses the challenges of using e-paper displays, particularly their complexity and lack of good documentation. It introduces a comprehensive library called bb_epaper, designed to control various SPI-connected e-pa...
The author explores the benefits of using gzip compression for web access on IoT devices, particularly the ESP32. The experiment shows that requesting compressed content can save a significant amount of energy, which is crucial fo...
The text discusses the history of displaying Unicode characters on 8-bit computers and the challenges of working with Unicode on microcontroller units (MCUs). The author presents a practical solution to display Unicode strings on ...
The text discusses using ESP32 as a remote web cam viewer, the process of finding unsecured IP video streams for testing, capturing and displaying JPEG frames, and optimizing the code for better performance.
The text is a lesson on code optimization, focusing on font rendering code within LVGL. The author walks through the thought process of analyzing and improving the code, emphasizing the importance of testing assumptions and minimi...
The text discusses the development of a simulator to boost embedded software productivity. The simulator allows developers to work on Arduino projects as native MacOS/iOS projects, using Apple tools to run/debug/profile code quick...
The article explains how DMA (direct memory access) works and how it can speed up projects. It discusses the benefits of using DMA, common pitfalls, and provides an example project. It also explains how to use DMA in Arduino and m...
The post is a tutorial on how to prepare graphics for eink projects. It explains the challenges of working with image file formats, the tools needed to modify existing graphics, and the process of converting grayscale images into ...
The text discusses the use of parallel eink displays in e-book readers and other devices, explaining how they work and the challenges involved in controlling them. It also mentions various projects and products related to parallel...

0Bufferless e-paper

2024-09-28

The article discusses the limitations and challenges of working with bufferless e-paper displays, focusing on the less expensive serial interface type with a built-in controller. It explains the memory layout of the e-paper and th...
The text discusses the author's ideas on tweaking CCITT Group4 image compression and compressing font data for use on microcontrollers. The author explains the history of CCITT Group 4, his interest in digital imaging, and his new...
The text discusses the maximum sample rate of an IMU and the limitations of the I2C interface. It also explores the challenges of getting data off the device and the use of the FIFO. The author shares their experiments and conclus...
The article discusses the challenges of using Cheap Yellow Displays (CYDs) due to variations in display types, GPIO connections, and MCUs. It highlights the frustrations of setting up and using these displays, and offers a solutio...

0The Last Mile

2024-04-14

The article discusses the problem with FOSS (free and open-source software) and the lack of proper incentives to maintain, finish, and optimize projects. It highlights issues such as lack of upstreamed improvements, intrinsic vs. ...
The post describes the ESP32-S3 SIMD instructions and provides a simple working example for Arduino and ESP-IDF projects. It includes the code and output on the serial terminal.
The text discusses the 8051 microcontroller, highlighting its limitations and the rise of the RISC-V architecture as a potential replacement. It also delves into the features and pricing of the CH32X series of RISC-V MCUs, compari...
The article discusses the release of the ESP32-S3 SoC by Espressif Systems, its capabilities, and the effort required to use its SIMD instructions. The author, an experienced programmer, shares their experience with the SIMD instr...
The text explains the 3-wire SPI mode and its advantages for small displays and color SPI displays. It discusses the reasons for supporting 3-wire SPI, the challenges of bit banging 3-wire SPI, and the potential for faster display...
Sharp Memory LCDs are a lower power way of managing large dot matrix LCDs. They were created to simplify utilizing these displays in products, but they come at a cost - power. The displays support 4 byte commands and have a multi-...
The author discusses the process of building a Pocket CO2 sensor project, focusing on the hardware aspects. They detail the equipment, component choices, soldering process, and testing. The project aims to create a low-cost CO2 se...

0The "CO2" Project

2022-10-21

The author discusses his interest in environmental sensing and air quality, particularly focusing on CO2 levels. He shares his experience with using CO2 sensors and the impact of CO2 levels on indoor air quality. The author also p...
The text discusses the challenges of using e-paper displays on resource-constrained MCUs. It explores the memory layout of e-paper displays and provides practical examples of drawing on e-paper displays using the display's interna...