Larry the optimizer
@fast-code-r-us.bsky.social
I optimize code for a living. I'm also good with bits, bytes and pixels. I have been in this digital world since before the days of 8-bit home computers. See my FOSS projects on https://github.com/bitbank2
Finally got some copper heat sinks to test the Radxa Cubie A7z. It still runs too hot, but is relatively stable now. It's basically a RPI0 sized RPI5. It runs code 2-3x faster than an RPI4. Too small an area to dissipate that much heat. Need to find a way to lower the CPU clock speed.
October 2, 2025 at 6:49 PM
Finally got some copper heat sinks to test the Radxa Cubie A7z. It still runs too hot, but is relatively stable now. It's basically a RPI0 sized RPI5. It runs code 2-3x faster than an RPI4. Too small an area to dissipate that much heat. Need to find a way to lower the CPU clock speed.
A proud moment for power efficiency yesterday. I was able to get my nRF52840 ePaper badge to run well just using light sleep. It displays a clock on a 2.9" 296x128 EPD which updates every 10 seconds. With an average of 200uA current draw, it will run for several months on a coin cell.
September 21, 2025 at 10:41 AM
A proud moment for power efficiency yesterday. I was able to get my nRF52840 ePaper badge to run well just using light sleep. It displays a clock on a 2.9" 296x128 EPD which updates every 10 seconds. With an average of 200uA current draw, it will run for several months on a coin cell.
Bigger what - offering 2 different upgrades at the same time:
I think I'll wait on both/neither.
I think I'll wait on both/neither.
September 15, 2025 at 6:24 PM
Bigger what - offering 2 different upgrades at the same time:
I think I'll wait on both/neither.
I think I'll wait on both/neither.
I've had this idea for a while - support for 3 and 4-color EPD images (compressed as G5 in 2 bit planes). Still in development, but you can try it (bb_epaper, dev branch). The tool converts PNG to G5 with color matching. Result - 8:1 lossless compression and easy to use the results.
August 25, 2025 at 9:10 AM
I've had this idea for a while - support for 3 and 4-color EPD images (compressed as G5 in 2 bit planes). Still in development, but you can try it (bb_epaper, dev branch). The tool converts PNG to G5 with color matching. Result - 8:1 lossless compression and easy to use the results.
I created breakout boards to easily connect the inexpensive OLEDs and 'blue' ST7789 PCBs to Xiao, Nano & Feather. Inexpensive and easy to use. I also like the ESP32 boards with built in displays.
May 29, 2025 at 9:41 AM
I created breakout boards to easily connect the inexpensive OLEDs and 'blue' ST7789 PCBs to Xiao, Nano & Feather. Inexpensive and easy to use. I also like the ESP32 boards with built in displays.
I updated the blog post with example (Arduino) code to see the speed increase for yourself. Spoiler (see screenshot below from running it on an ESP32-S3)
April 3, 2025 at 3:12 PM
I updated the blog post with example (Arduino) code to see the speed increase for yourself. Spoiler (see screenshot below from running it on an ESP32-S3)
#Embedded and #Arduino developers - what if you could run/debug/profile your project from the comfort of your PC (Xcode on Mac in this case)?
youtu.be/j1ryXNiYefc
Most Arduino libraries should work unmodified. This is my AnimatedGIF demo (library+sketch unchanged) running on an iPhone.
youtu.be/j1ryXNiYefc
Most Arduino libraries should work unmodified. This is my AnimatedGIF demo (library+sketch unchanged) running on an iPhone.
March 9, 2025 at 3:46 PM
#Embedded and #Arduino developers - what if you could run/debug/profile your project from the comfort of your PC (Xcode on Mac in this case)?
youtu.be/j1ryXNiYefc
Most Arduino libraries should work unmodified. This is my AnimatedGIF demo (library+sketch unchanged) running on an iPhone.
youtu.be/j1ryXNiYefc
Most Arduino libraries should work unmodified. This is my AnimatedGIF demo (library+sketch unchanged) running on an iPhone.
Throwback Thursday - one of my more useful projects (family approved 😀). A low cost ESP32 weather / clock. Source code is here:
github.com/bitbank2/CYD...
It's been happily running in our kitchen for the last 8 months. The code supports multiple models of the "CYD".
github.com/bitbank2/CYD...
It's been happily running in our kitchen for the last 8 months. The code supports multiple models of the "CYD".
March 6, 2025 at 10:01 AM
Throwback Thursday - one of my more useful projects (family approved 😀). A low cost ESP32 weather / clock. Source code is here:
github.com/bitbank2/CYD...
It's been happily running in our kitchen for the last 8 months. The code supports multiple models of the "CYD".
github.com/bitbank2/CYD...
It's been happily running in our kitchen for the last 8 months. The code supports multiple models of the "CYD".
A new side project on my long list of side projects...Image Slinger. An iOS/MacOS tool to prepare and transmit images for eink displays. The screenshot is it running on my MacBook Air as a pseudo-iPad app. Image compression options will be added next.
March 5, 2025 at 10:16 AM
A new side project on my long list of side projects...Image Slinger. An iOS/MacOS tool to prepare and transmit images for eink displays. The screenshot is it running on my MacBook Air as a pseudo-iPad app. Image compression options will be added next.
I just added a new example to my bb_lvgl project. This one is in the class of "Cheap Yellow Displays" from Guition. The JC4827W543 is an ESP32-S3 PCB with a QSPI 480x272 LCD. To use a different CYD, just change the display type parameter in lcd.begin().
February 25, 2025 at 12:03 PM
I just added a new example to my bb_lvgl project. This one is in the class of "Cheap Yellow Displays" from Guition. The JC4827W543 is an ESP32-S3 PCB with a QSPI 480x272 LCD. To use a different CYD, just change the display type parameter in lcd.begin().
Here's the code to do it (I enhanced the demo a little):
github.com/bitbank2/bb_...
Soon will be joined by code for my eink libraries.
github.com/bitbank2/bb_...
Soon will be joined by code for my eink libraries.
February 24, 2025 at 4:44 PM
Here's the code to do it (I enhanced the demo a little):
github.com/bitbank2/bb_...
Soon will be joined by code for my eink libraries.
github.com/bitbank2/bb_...
Soon will be joined by code for my eink libraries.
The @pimoroni.com Tutfy2040 (native code, of course) can also use my bb_spi_lcd library to work with LVGL
February 23, 2025 at 1:38 PM
The @pimoroni.com Tutfy2040 (native code, of course) can also use my bb_spi_lcd library to work with LVGL
The premise for the software optimization book/course I'm creating. Does it resonate with you?
February 23, 2025 at 11:18 AM
The premise for the software optimization book/course I'm creating. Does it resonate with you?
"Zero cost" antialiasing of fonts now in FastEPD. A 2x sized version is drawn and 2x2 pixels are converted to a gray level (very efficiently, of course). Roboto_Black 40pt on top and 80pt with AA applied on the bottom. The complete 80pt bitmap font (G5 compressed) is only 9K of FLASH.
February 18, 2025 at 11:17 AM
"Zero cost" antialiasing of fonts now in FastEPD. A 2x sized version is drawn and 2x2 pixels are converted to a gray level (very efficiently, of course). Roboto_Black 40pt on top and 80pt with AA applied on the bottom. The complete 80pt bitmap font (G5 compressed) is only 9K of FLASH.
I'm adding functional+fuzz tests and new examples to my JPEGDEC library. Here is a DMA best practices Arduino sketch with a detailed explanation of the how's and why's of DMA:
github.com/bitbank2/JPE...
github.com/bitbank2/JPE...
February 7, 2025 at 1:15 PM
I'm adding functional+fuzz tests and new examples to my JPEGDEC library. Here is a DMA best practices Arduino sketch with a detailed explanation of the how's and why's of DMA:
github.com/bitbank2/JPE...
github.com/bitbank2/JPE...
I added a new Arduino example to my bb_rtc library which allows you to set all of the fields of the RTC using 2 buttons and an OLED display.
github.com/bitbank2/bb_...
github.com/bitbank2/bb_...
January 12, 2025 at 9:51 AM
I added a new Arduino example to my bb_rtc library which allows you to set all of the fields of the RTC using 2 buttons and an OLED display.
github.com/bitbank2/bb_...
github.com/bitbank2/bb_...
Another parallel eink product is now supported by my library - the Inkplate5 Gen 2 (1280x720).
January 1, 2025 at 1:11 PM
Another parallel eink product is now supported by my library - the Inkplate5 Gen 2 (1280x720).
The grayscale is looking nearly perfect too.
December 30, 2024 at 11:26 PM
The grayscale is looking nearly perfect too.
The latest parallel eink code is coming along well. Getting 16 good gray levels from black and white panels is challenging because you have to make them dance between black and white many times. The API I created makes it very easy to use (M5 PaperS3 pictured w/Arduino JPEG example)
December 29, 2024 at 6:15 PM
The latest parallel eink code is coming along well. Getting 16 good gray levels from black and white panels is challenging because you have to make them dance between black and white many times. The API I created makes it very easy to use (M5 PaperS3 pictured w/Arduino JPEG example)