It’s almost Christmas again, so it’s time for the annual nerdhut.de Christmas letter and stats report. You may have noticed that I broke this tradition last year as I honestly didn’t want to look back at 2020. At that point, I and many others have hoped that the corona-virus pandemic would be over by 2021. Unfortunately, that was a bit too optimistic, as it turned out. Either way, let’s focus on the positive things and have a look back at the stats of 2020 and 2021!
Continue reading 2021: Christmas greetings from nerdhut.de
Arduino-based clock projects are a staple in the maker and DIY community, and I’ve built a few ones myself. Such projects typically incorporate a real-time clock (RTC) module that keeps track of the time. However, once the battery on the RTC module runs flat, it forgets the previously set time. Another option involves adding a few push buttons to allow users to set the time. The Arduino itself keeps track of the time as long as it’s plugged into a power supply, and it forgets the settings once you disconnect it from the power source. This short article discusses a third option that allows you to make your clock projects much more user-friendly by automatically setting and adjusting the time when necessary.
Continue reading How to get the current time from an NTP Server using an Arduino, ESP32, or ESP8266 [shorts #4]
As some of you might know, the Simpsons are among my favorite TV shows, and I’ve featured the show on this blog before. While I mostly prefer watching the older episodes, I sometimes check out the newer ones as well. So, in the spirit of Halloween, I decided to watch every single Simpsons Halloween special and give you a rundown of my favorite episodes.
Continue reading The best and worst Simpsons Halloween specials
Character LCDs are a fantastic and cost-effective option when your project calls for a user-friendly output method. Besides being cheap and easy to use, these displays often offer enough usable screen real-estate for displaying simple status messages and interactive menu screens. However, the standard 16-pin interface can be quite a hassle to work with, and all the wires quickly clutter up your previously simple Arduino project. While there are some I2C character LCDs out in the wild, these models are often more expensive and sometimes difficult to work with. Therefore, I decided to build a simple-to-use alternative that allows you to control pretty much any standard 14 and 16-pin LCD display with only four wires.
Continue reading A simple custom I2C character LCD interface for Arduino projects
The previous short article investigated a simple method for scaling images using standard C++. In that article, I mentioned that I was working on a way to shrink images for displaying them on the Mac Classic CRT. I also mentioned that, to display the images on the Mac’s CRT, I’d also need to employ a dithering algorithm to prevent losing too much detail. Therefore, this article takes a look at three simple and popular dithering algorithms implemented in C++.
Continue reading A look at various simple dithering algorithms in C++ [shorts #3]
Since 2016, I’ve always returned back to my Macintosh Classic CRT build, constantly trying to refine the project and make it easier to reproduce my results. In my latest attempt, I used a Raspberry Pi to communicate with the monitor. While that method worked like a charm for me, others have reported a few problems they’ve encountered and possible solutions. In my next attempt to finally get this project right, I decided to go down another path. Without going into too much detail here, the new method required me to implement a simple scaling and dithering algorithm in C++. This short article discusses my image scaling solution in C++.
Continue reading How to resize bitmap images using C++ [shorts #2]
A thread-monitor, often also referred to as a watchdog, is extremely helpful when building multi-threaded and reliable applications. In its simplest form, a watchdog should detect when one or more threads hang or crash, and it should restart the problematic threads if necessary. Depending on your use-case, you could implement this helper in a variety of ways, and you could add many more features such as a heartbeat function that allows each thread to report its progress to the monitor.
Continue reading Writing a Quick and Easy Thread-Monitor (Watchdog) in Python [shorts #1]