I've had some commenters point out the issue with the slow display updates in my recent Arduino Nano ESP32 video. It turns out, the software SPI of the Adafruit_ST7789 library was the culprit. Lo and behold, the solution is simple - using the hardware SPI constructor of the library. Apparently, this isn't well documented, so I wrote some code to serve as reference for myself and others who might run into the same snags. Trust me, the difference in speed is absolutely bonkers. Check out the video to see the magic in action.
Pondered the future of coding with a colleague of mine recently, as one does. Couldn't help feeling a tad underwhelmed by the programming tools like GitHub's Copilot X and ChatGPT. Sure, these AI-powered coding buddies are smart, helpful and do save time, but they more or less tinker around the edges - optimize the existing processes but don't fundamentally alter them. Software development still remains a tedious enterprise - a loop of problem-definition, code-generation, code-validation, and feedback. Not so different from what it was 30 years ago really. We're surrounded by subpar software everywhere - the bugs, the slowness, the...
As a developer frequently publishing code snippets on GitHub, I'm finding an increasing amount of my time being demanded for support and fixes. The reality is, I don't always have the time or resources to provide the help that each user deserves. 'Cloners beware' has become my motto as I try to remind others that using a public GitHub repo does not come with guarantees or warranties. Please remember, I'm a human with my own responsibilities and projects too.
In this article, I explore the different reactions that folks are having towards this tidal wave of AI in our lives, ranging from 'meh' dismissals to outright existential anxiety. I argue that AI is here to augment our capabilities, not replace us. While we might find AI occasionally stumbling, let's not overlook the amazing gift of efficiency and productivity it brings. Sure, we might be worried about the implications it has on our jobs, but isn't it also thrilling to have an AI companion working along with us 'cause if a computer can do my job better, maybe I should...
I've successfully used addressable WS2811 LED strings and an ESP-CAM board to create an adjustable lighting system. The best part is that the image processing code can be duplicated in JavaScript which allows you to use a plain dev board to drive the LEDs instead of needing a camera on your ESP32 board. If you want to replicate this project, you'll need your own ESP32 dev board and some addressable LEDs. After figuring out the location of each LED in 2D space, it's easy to map from each LED's x and y location onto a pattern you want to show...
I have received several inquiries about my heart rate app and decided to share details about it. The app uses your phone's camera to perceive the faint changes in the light coming off the flash as blood flows in and out of your finger. I have also provided the demo code and some sample code segments to explain specific functions of the app and the augmented reality blog post for modifications. After a detailed explanation of the code, I show graphical presentations of how the app tracks heartbeats. I end off with a preview image of the sample project and...
As I strove to learn OpenGLES 2.0 for new gaming projects on iPhone and Palm Pre, I faced certain challenges due to the introduction of a programmable graphics pipeline in OpenGLES 2.0. With this mechanism, we are responsible for writing the code to generate our graphics, which was overwhelming at first. To help others, I ported some of the NeHe tutorials over to OpenGLES2.0 on iPhone in an easily-digestible way. In this post, you will find a walkthrough of the first 4 tutorials, complete with codes, explanations and screenshots to make learning easier.
Just gave a enlightening talk on Box2D at the LiDG and have prepared a step-by-step walkthrough on creating a simple pinball game using the open sourced 2D physics engine! You'll learn the concepts of Body, Shape, Friction, etc. as well as how to build and run the Box2D engine for iPhone. By the end of the blog, you'll be equipped to create a basic working game in a couple of 100 lines of code! Don't forget to check out my slides and demos linked in the blog!