Sweeping Analog Clock Analysis

The subject of this analysis is the $2 Ikea Stomma wall clock. Unlike the Rusch wall clock that had been the object of my experimentation all along, this clock uses a sweeping clock mechanism, which means the second hand appears to move continuously instead of every second. This also means it is quieter and does not produce the familiar tick-tock sound. Note: Both clocks appear to have been discontinued at the time of writing. There is only one $2 clock on sale at their website now, which is the Tromma clock . I don't particularly like this clock, because the second hand is missing, which makes it difficult to tell if the clock is working at any instant. The hacking process of the Stomma clock is quite similar to that of the Rusch clock , so no suprises there.  Remove front plastic cover Remove hour, minute and second hands Remove clock mechanism Open up clock mechanism. As before, keep the spindle side up helps keep the gear formation in one piece. Solder 2 wires to the solder p

Planned Obsolescence

Came across this Reddit topic about planned obsolescence of consumer products. I am sure we are all acutely aware of how we are forced to upgrade our gadgets every few years, whether it is your phone, tablet or laptop. The batteries are intentionally made not replaceable, and the hardware are deliberately made not repairable. Even if you luck out on the hardware, the software moves so quickly that very soon, you will find that your old operating system no longer run the latest version of your favorite software. So you say, so what, I will just make do with the old version. But soon enough, the backend protocol will change so your old software is no longer able to connect. Time to upgrade.  But I found that in every day consumer products, stuff are deliberately made crappy so that you will have to upgrade once past the warranty period. Frequently it is not the entire product that is crappy, just a tiny part of it so once the weakest link fails, most people won't find it worth their

ESP-07 flashing issue on PlatformIO and solution

Recently, I decided to port the ESPClock project to PlatformIO , and kept encountering an intermittent error during flashing:  A fatal error occurred: Timed out waiting for packet header Took me a long time to research the issue and making no headway,  until I stumbled upon this rare gem . The file I needed to modify is:   C:\Users\<Username>\.platformio\packages\tool-esptoolpy\ I changed the values to:  DEFAULT_TIMEOUT = 100  START_FLASH_TIMEOUT = 40  CHIP_ERASE_TIMEOUT = 240  MD5_TIMEOUT_PER_MB = 8  ERASE_REGION_TIMEOUT_PER_MB = 60  DEFAULT_SERIAL_WRITE_TIMEOUT = 20 Originally, DEFAULT_TIMEOUT was set to 10. That made flashing the code reliable, but flashing the filesystem was still problematic. After increasing the value all the way to 100, I never encountered the error again.

Drivinator Direct Drive Mod for Ender 3

I recently tried printing and installing the Drivinator , which is a direct drive mod for the Creality Ender 3. It makes use of all existing parts, so there is nothing extra to purchase (the stepper motor wire needs to be lengthened, which is easy done by a little splicing; an even easier route is to purchase an extension cable online). It is also compatible with the FreeABL bed levelling mod. Besides FreeABL, this is easily the best mod I have installed for the Ender 3, well worth the 1 hour or so I spent on the job. This was the YouTube video which helped me install the mod: Where before the extruder would sometimes skip and grind under the Bowden tube setup, the extrusion after the upgrade is just smooth as butter. The extra weight on the print head also doesn't seem to affect print quality or speed. With the enhanced extrusion, I was now able to crank up the print speed. But at higher print speeds, I discovered sharp corners were showing signs of over extrusion, so I needed to

Windows 10: Remove execution permission from all files created in user "Downloads" folder

From Administrative command prompt: cd \Users\<User> icacls Downloads /deny <User>:(CI)(OI)(X) /t User will no longer be able to run any EXE in his "Downloads" folder. To revert: cd \Users\<User> icacls Downloads /remove <User> /t

Compiling Marlin 2.x for the Creality Ender 3 using PlatformIO

 I had previously modded my Ender 3 to use the FreeABL for auto bed-leveling. This requires compiling and uploading a custom version of Marlin firmware with  AUTO_BED_LEVELING_BILINEAR enabled. Since this takes quite a quite of extra storage, it requires  SLIM_LCD_MENUS to be enabled. This removes the function to configure E-steps from the control panel.  As mentioned in my previous post , setting the right E-steps value is one of the most important operation to perform when changing filament or print nozzle. As a result of enabling  SLIM_LCD_MENUS , I can only configure E-steps by hooking up the Ender 3 to my laptop and issuing raw G-codes. This was getting old pretty fast. So the other day, I started poking around to see if there is a way to fit both  AUTO_BED_LEVELING_BILINEAR  and  SLIM_LCD_MENUS  in the limited storage on the plain-vanilla Ender 3. After much research and tinkering, I am glad to report this is indeed possible. Here are 2 links I found most useful in helping me

PC Logger: AutoIt3 script for PC activity monitoring

Due to COVID-19, the kids had to do online learning for a couple of months. Unfortunately, they were constantly tempted to play games or watch YouTube during class time. Sometimes they became so immersed that they missed lessons, or forget to complete assigned tasks. I tried various solutions, such as parental control software, or lock down the router. None of them worked for me. There were just too many things to configure. Furthermore, some potential avenues for distraction (eg. YouTube) might sometimes be necessary for schoolwork (eg. YouTube being used for information or research by the teacher). The solution I eventually settled upon turned out to be quite simple. I hacked together an AutoIt script that logs details about the active window (title and executable) to a Google form periodically. By looking at the logs from time-to-time, it gives me a pretty good picture of what they have been doing on their computers, and have a chat with them when things get out-of-hand. Github repo