« ‹2 3 4 5 6 7 »

Thermometer from spare parts

2024-01-25 13:48 electronics

I found some left-over parts and put together this low-power thermometer.

It is using a MSP430G2553 microcontroller, a Nokia 5110 LCD and a DS18B20 waterproof digital thermometer (-55 to +125 °C). There are two AA batteries inside, a switch to turn it on and off and a push button that toggles the display backlight.


Power consumption is very low - on average 1.3 milliwatts (0.43 mA @ 3 V). And with the backlight LEDs turned on it draws 3.72 mW (1.24 mA).

The firmware wakes up once per second to check the temperature. If it changed the display is updated. There is an internal log so that one can see the trend - if the temperature is rising or falling compared to one minute ago.

To make the display reliably initialise, I had to modify the file LCD_5110.cpp.

>   digitalWrite(_pinSerialClock, LOW);
<   delay(30);
<   delay(100); // as per 8.1 Initialisation
>   delay(50);
<   delay(10);

i.e. in the begin method, set the clock low before sending any commands (this is the important change), decrease the reset time from 100 to 50 ms and remove the 30 and 10 ms delays.

I used Energia to program the microcontroller, KiCad for the schematics and the case is modelled in OpenSCAD.


MiniDV import video via Firewire

2024-01-17 13:24 other

Just a note about importing video from old MiniDV cassettes to a recent laptop.

I managed to connect to a Sony DV camera (DCR-PC105E PAL) via my firewire RME sound card (Fireface400) and successfully import video material to my MacBook Pro (mid 2015, macOS Mojave).
For some reason a direct connection from the camera to the laptop (miniFirewire -> Firewire800 -> Thunderbolt) did not work. Maybe a broken cable - maybe having the RME in the chain does some kind of conversion. I am unsure, but anyhow with the sound card passthrough connection it works great.

iMovie (10.1.8) and QuickTime Player (10.5) can be used to capture the material. In QuickTime make sure to select "DV-VCR" for both camera and audio source.

Finally I used HandBrake to crop to 4:3 and export as H.264 mp4.

firewire import firewire types


2023-07-12 23:43 electronics

Another simple and minimal circuit built around the ESP-WROOM-32 DEV KIT module. This one is for taking in data from eight touch sensors and send that over WiFi (Open Sound Control) or serial to a laptop.

With the three pin headers the ESP32 can be configured to...

  1. not use WiFi at all,
  2. create a WiFi access point (SOFTAP),
  3. connect to an existing WiFi network.

Serial output via USB is always active.

The board is powered with a micro USB cable. Connected to a powerbank the whole thing is wireless.

handskar2 photo

Schematics, firmware and SuperCollider + MaxMSP example code attached.



2023-07-09 21:53 electronics

This board is built around the ESP-WROOM-32 DEV KIT module and has 20 pulse-width modulation outputs. These outputs can be controlled wirelessly via Open Sound Control (OSC) or using the serial port (micro USB cable). Examples of usage: dim high power LEDs, control the speed of DC motors, turn on and off solenoids. Supply voltage between 7V and 36V, duty-cycle resolution is 10-bits and the frequency adjustable from 1 Hz to about 70 kHz.

The last four outputs (16-19) are bit-banged. That means they have some jitter and will not be as stable in frequency as the other outputs (0-15). Also the bit-banged ones can not go above 1 kHz, but for most applications they will function good enough.

The MOSFETs are powerful and all connections on the backside are tinned extra thick, so they will be able to drive quite a few amps.

f0pwm photo top f0pwm photo bottom

Schematics, firmware and SuperCollider + MaxMSP example code attached.


RPi1 as a simple video player

2023-03-23 18:43 visuals

Just some notes while setting up a video looper on an old Raspberry Pi 1...

ssh root@  #edit IP, default password is dietpi
apt-get update
apt-get install openssh-client vlc
usermod -a -G audio,video dietpi
scp mymovie.mp4 dietpi@

Finally log in as user dietpi and set up VLC to autostart...

ssh dietpi@  #edit IP
crontab -l | { cat; echo "@reboot cvlc --loop --audio-desync=-100 mymovie.mp4"; } | crontab -
sudo reboot

This should loop a video file in fullscreen with sound output via HDMI. --audio-desync is optional and can be used to sync the audio to the video track (here audio is adjusted to be 100 milliseconds early). mymovie.mp4 is the file name of your movie.

Speaker Pot

2022-07-16 11:25 electronics

As part of the outdoor installation Pop-Up-Sound-Garden, I wanted to put a speaker inside a massiv concrete drain pipe.

speaker in a concrete pipe

I found an unused flower pot that happened to fit the speaker element I had at hand perfectly, and inside the pot there was enough room to add electronics. So this flower pot now runs on 12V and contains a Raspberry Pi Zero W with a USB sound card, a DC-DC converter, and a 3W amplifier. On the Rpi I installed piCore Linux and SuperCollider.

speaker in a pot

The music that SuperCollider is generating is based on tweet0406 with some added bass notes. It all sounds pretty good and loud for such a small mono speaker setup.

Finally, I attached a distance sensor so that the synthetic sounds only start playing when someone passes by or stands in front of the speaker.

f0dist - Wireless Distance sensor OSC

2022-07-04 21:26 electronics

Yet another simple wireless sensor circuit that sends Open Sound Control messages. Here the sensor is the VL53L1X time-of-flight laser module and the microcontroller an ESP8266-01 - all powered by two AA batteries.

There are settings for smoothing, update rate and thresholds which can be controlled by sending OSC messages to the ESP module. See the examples.

Under optimal conditions the sensor can measure accurately up to 4 meters, but in practice I found the maximal range to be more around 3 meters. Speed and precision is fantastic though. It reacts very fast and with millimeter resolution.

Attached below are examples for SuperCollider and MaxMSPJitter, schematics and the firmware (PlatformIO).

distance sensor distance sensor out in the wild

iMac G3 restoration - Tripple Boot

2021-12-20 14:01 other

This old Blueberry iMac G3 350 MHz was given to me for free many years ago and last winter I finally got around to fixing it up.

iMac G3 blueberry

Trippel booting

I set up the machine with three different operating systems...

and this computer I use for running various software from back in the days - mostly audio applications like SuperCollider 2.2.16, MaxMSP 4.0.9 with nato.0+55+3d, Mosaic 1.58 and Digital Performer 2.7.
The machine runs well and feels snappy despite it being so old. I optimised Mac OS X Tiger a bit by turning off Spotlight and Dock animations and I also installed ShadowKiller. In Mac OS 9 I removed some unnecessary extensions. OpenBSD is using the lightweight window manager dwm and in order to get the ATI Rage 128 graphics card working I configured Xorg as described in this forum post.


The internal 1/2 AA PRAM battery was dead and I replaced it with a CR2032 coin cell. The holder for the coin cell I soldered right on top of and across the old holder. It should be easy to remove and restore the original battery if ever needed.

iMac G3 battery holder


Some of the electrolytic capacitors inside looked suspicious and bulged so I replaced the seven SMD variants I found on the motherboard. The big through hole capacitors in the power supply section I left untouched. They seemed okay.


The old spinning hard disk was replaced with an SSD. To connect the SSD I bought an IDE to SATA adapter and used the existing 40-pin and power cables. I used velcro to fixate the SSD in place.

iMac G3 motherboard

Unfortunately, this type of IDE adaptor is a bottleneck and will make the SSD underperform. Xbench report that the SSD perform only marginally faster than the original HDD for sequential reading and writing. Random access read/write on the other hand perform 4.5x faster. Taken together, the SSD is not more than around twice as fast as the HDD. Still, it was worth the cost and hassle to swap out the old spinning hard drive. A big plus is that the machine now runs completely silent.

TYPE                SSD       HDD
sequential         44.86  /  39.71
random r/w        136.77  /  30.36
overall disk test  67.56  /  34.41

Freeze issue

I had a strange problem with the OS X system freezing at random times. I suspected the SSD adaptor and the power supply. By coincidence, I later noticed it would take longer until it froze if I only worked in the terminal. As soon as I touched the mouse, the system would lock up. So I tried replacing the optical tracking mouse (manufactured by sempre - model MOU-1T) with the original puck mouse, and then the system ran flawlessly. So the LED mouse caused the system to freeze!
This modern optical tracking mouse must be generating current spikes that the USB port can not handle.

Other things fixed

Things still broken

Conclusion iMac G3

Even though this is such an old and slow machine (22 years, 350 MHz), it is a lot of fun to use and play around with. It can also be of use as it runs some software that no longer exists and the CRT display gives out a warm nostalgic feeling.
A drawback is that it draws a lot of power. 75-85 Watts in use (mainly depending on screen brightness), 64 Watts in standby (sleep mode with CRT off) and 5.5 Watts when powered off! The change to SSD helped reduce power consumption a little bit (around 8 Watts), but overall it is still high compared to, for example, a Raspberry Pi.

Total cost of restoration: €32


« ‹2 3 4 5 6 7 »