Introduction: GurgleApps Word Clock V2 With Capacitive Touch, Ambient Light Sensor and Snow Background
The GurlgeApps Word Clock is a USB-powered open-source digital clock which shows the time as words in English. The letters in an 8x8 grid layout can be individually illuminated in any colour. This small desktop clock is a descendant of the multi-language Biegert & Funk QLOCKTWO clocks which use larger 10x11 grids. These clocks tell the time to the nearest five minutes.
This 3D printed clock is a kit based on the Raspberry Pi Pico 2 W. The clock connects to the Internet over Wi-Fi to retrieve the time using the Network Time Protocol (NTP). The software is written in MicroPython making it easy to modify.
This article describes the observed differences between the V1 and V2 clock kits and shows a revised GPIO selection for the RGB LED matrix display, capacitive touch pad and light sensor which is more suitable for the V2 kit. Two previous articles describe the assembly and additions in more detail for the very similar V1 kit:
- GurgleApps Word Clock Assembly With an Ambient Light Sensor
- Adding a Touch Button to GurgleApps Word Clock Using RP2040/RP2350 Programmable IO (PIO)
Four clocks are shown in this article, these were constructed with the additions from the other two articles to make some Christmas gifts.
The kit involves some very simple soldering.
Supplies
- GurgleApps Word Clock (V2 sold from late November 2025) : Etsy (select Full Kit, also sold as components if you wish to 3D print parts yourself or Fully Built)
- Soldering iron and solder.
- A small pair of pliers is useful to help snap-off the superfluous parts of the RGB LED matrix panel and front face plate.
- Optional: hot glue gun (to better hold the Pi Pico 2 W in place).
- A very small file or Dremel-like drill to make some minor modifications to plastic 3D printed parts.
- Ambient light sensing
- A small phototransistor around 3mm diameter, e.g. LTR-4206: Kitronik
- 10k resistor.
- Heatshrink and something to shrink it.
- Three wires, ideally red, black and something else.
- Quick set epoxy resin or hot glue to hold the phototransistor in place, optional depending on how snugly the hole in the case is.
- Capacitive touch button
- A short wire.
- Something metal to press which can be soldered to or attached to a wire. A female header socket pin works well, a small tubular crimp connector could work too.
- A resistor to reduce electromagnetic interference (EMI), something between 330 and 1k. (1k was used).
- Quick set epoxy resin or hot glue to hold the pin in place.
- A craft knife, very small files and 1mm-1.5mm drill bit can be useful if any of the 3D printed parts need cleaning up. The V2 kit appears to be printed more cleanly than the V1 kit - the four made for this article did not need any trimming.
Step 1: Differences Between GurgleApps Word Clock V1 and V2
Here's a summary of the differences between the V1 and V2 word clocks.
- A Pi Pico 2 W is now supplied with the kit.
- The Pico is now on the right side rather than the left side (looking at the front of the clock). This changes the position of the micro-USB connector and the orientation of the Pico. Internally there is more space around the Pico board.
- The two registration holes are no longer present on the face plate and back plate. These didn't appear essential on the V1 kit as the plastic frame does a good job of holding the RGB LED matrix in place. This leaves the four holes at the corners for the bolts which hold the case together.
- The back plate is deeper providing more room inside the case and making it less fiddly to route wires around. This also offers more potential to add extra components inside the case.
- The face plate and custom RGB LED matrix have additional scored edge parts (left over from the manufacturing process) which need to be snapped off.
- An allen key comes with the kit which helps to screw the bolts through the tight holes in the 3D printed case.
- Black bolts might be standard now.
Step 2: New GPIO Selection for V2
The new orientation of the Pi Pico 2 W inside the V2 word clock provides easier access to the pads as the power ones are at the top now. The Pico's analogue pads are also at the top which make them easier to access for additions like the light sensor.
The revised connectivity from the Pico is:
- RGB LED Matrix
- VBUS to +V (red)
- GND to GND (black)
- GP18 to DIN (yellow)
- Light sensor
- 3V3 to phototransistor collector (red)
- GP26_A0 to phototransistor emitter (white)
- AGND to 10k resistor (black)
- Capacitive touch button (pad/pin)
- GP28_A2 (green) to 1k resistor to green wire terminated by a header socket
The red wire going to VBUS from the RGB LED matrix is best soldered at a slight angle to make it easier to clear the edge of the case.
The wire colours remain the same as the previous articles. The choice of 5.0V for RGB LED matrix is maintained too.
In general, it's best to not use the precious analogue-capable GPIO for digital use if there's any possibility that these will be used in the future. In this case GP28 was used for the digitally-implemented capacitive touch (green wire) to provide more distance between this high frequency signal and the WS2812B signal (yellow wire).
The resistor is a new addition and is an (untested) attempt at taming the minor electromagnetic interference (EMI) from the capacitive touch feature.
A sample config.json file is shown below with the new pin numbers.
Step 3: Testing Uncased
The software was installed with the Pi Pico 2 W uncased to ensure it all worked before it was placed in the case. The following checks were performed.
- Observe the RGB LED matrix at software start-up for the red/green/blue test pattern to ensure RGB LED matrix is okay.
- Check the clock connects to Wi-Fi and displays the time - the serial console over USB can be informative if there are problems here.
- Check automatic brightness control by pointing a torch or desk lamp at the phototransistor.
- Tap the capacitive touch pad to ensure it works for short, long and very long presses.
- Check the web server on http://ipaddress/ (not https).
A wise precaution is to put some insulation under the uncased Pi Pico 2 W to prevent the pads from touching anything or shorting. A sticky note is a good choice as it won't fall out of place, a thick bundle of wrapping paper was used here as seen in the photographs.
The capacitive touch was tested and worked well with the new 1k resistor. A print statement was added to the code to inspect the values, the untouched value was around 21500 and a light touch caused this to drop to 19500. These values will change a little when the case is added.
Step 4: Affixing the Light Sensor and Touch Pin
The photograph above shows the phototransistor and header socket glued into the holes cut into the base plate. Solid core cables may need some bends to get the position correct. A generous amount of hot glue was used. This takes a long time to set firm (up to 2 minutes) - the components need to be held in position while it sets.
The centre position used here for the phototransistor clashes with one of the support tabs in the spacer frame which sits above it. About 1.5mm (1/16") was shaved off that tab to accommodate the bulge of the phototransistor's heatshrink-wrapped collar.
Step 5: Testing the Finished Kits
The video above shows the four word clocks running a new, festive snow background mode accompanied by the BBC Wales Staff Choir.
The previous tests were repeated before the video was shot to ensure the encasement had not upset anything. The Pico's BOOTSEL button was also checked to ensure the click could be felt using the button on the case's back plate. The clocks were left running overnight as a further test.
If you are gifting a word clock remember to clear the WIFI_SSID and WIFI_PASSWORD values in the config.json file.
Step 6: Going Further
Some ideas to explore:
- Software
- Add your own display mode or background mode.
- Retrieve a weather observation from a service on the Internet and make the clock snow when it's snowing outside.
- Investigate better approaches for handling time zones and daylight savings time. MicroPython does not have local time zone support, this is a challenging feature to provide locally on a microcontroller. A service on the Internet is one option to help with this.
- Investigate using Wi-Fi signal strength variation to see if it's viable to detect the presence of people - people are very good at absorbing the gigahertz frequencies that Wi-Fi uses.
- Check the reliability of the MicroPython neopixel library in generating a correct wire protocol transmission using
- default internal bitstream implementation,
- PIO using FIFO and
- PIO using DMA.
- Hardware
- Cautious addition of a loudspeaker.
- Add some downward facing LEDs to illuminate your desk.
- Add a PIR sensor to detect human presence to allowing dimming when no one is around.
Some GurgleApps Word Clock hardware and software modifications:
- Lori Pfahler: Pico W Episode 26: Word Clock Part 1 & Part 2 (YouTube) - a case variant to allow female headers on Pi Pico W to be externally accessible, this facilitates the use of a small breadboard on the back of the case. This might need to be adjusted for the V2 case.ma
- Simon Walters: New inline method of indicating minutes on @GurgleApps Word Clock (YouTube)
- More in Community Innovations section of GurgleApps Color WiFi Word Clock Kit.
Other products featured in this article (no affiliation):
Further reading:
- Instructables collection: GurgleApps Word Clock - various articles including Instructables: Testing an RGB LED Matrix With Different Supply Voltages - testing the custom RGB LED matrix from the Word Clock kit at 2.7V to 5.0V.
- Jeff Geerling Blog: Raspberry Pi Pico 2 - RP2350 adds more PIO, RISC-V cores - comparison of RP2350-based Pi Pico 2 with the original RP2040-based Pico.
- Infineon (Cypress): Reducing Radiated Emissions In Automotive Capsense Applications (Application Note AN72362)





