This ESP32 Pico Wristwatch Has Plenty Of Potential

First hand-built prototype. Nurse! isopropyl alcohol, stat!

Prolific hacker [Sulfuroid] is a medical doctor by day, and an electronics hobbyist by night, and quite how he finds the time, we have no idea.

The project we want to highlight is an ESP32 based LED smart watch, which we’ll sure you’ll agree, looks pretty nicely developed so far, and [Sulfuroid] has bigger plans, as you may find, when you dig into the GitHub repo. This analog-style design uses four groups of 0603-sized LEDs, arranged circularly to indicate the passage of time, or anything else you fancy. Since there are four control buttons, a pancake vibration motor, as well as Wi-Fi and Bluetooth, the possibilities are endless.

In order to stand a hope of driving those 192 LEDs from a single ESP32-Pico-D4, it was necessary to use a multiplexed LED driver, courtesy of the Lumissil IS31FL3733 device, which can handle arrays up to 12 x 16 devices. This chip is one to remember, since it has some really nice features, such as global current control to reduce CPU overhead, automatic breathing loops for those fancy fade effects, and even includes a handy open/short detection function, so it can report back assembly problems, assisting in reworking your dodgy soldering!

Routing circular arrays is such a pain.

Power and interfacing are taken care of via USB-C, with a TP4054 single Li-Ion cell charger chip handling the battery. This is a Taiwanese clone of the popular LTC4054, but that chip may be a bit hard to get at the moment. There is the common-as-muck CP2104 USB chip dealing with the emulated serial port side of things, since for some reason, the ESP32 still does not support USB. The Pico-D4 does have RTC support, but [Sulfuroid] decided to use a DS3231M RTC chip instead. We noticed the touch functionality wasn’t broken out – that could be added easily in the next revision!

We’ve covered watches a lot, because who doesn’t want custom geek-wear! Here’s a slick one, a fun one with the brains on display, and finally one using charlieplexing to get the component count down.

 

Wordle Reverse-Engineering And Automated Solving

Simplified Absurdle decision tree for a single letter guess from a set of three possible options

We don’t know about you, but we have mixed feelings about online puzzle fads. On one hand, they are great tool to help keep one sharp, but they’re just everywhere. The latest social-media driven fad, Wordle, may be a little bit too prevalent for our liking, with social media timelines stuffed with updates about the thing. [Ed Locard] was getting a bit miffed with friends’ constant posts about ‘Today’s Wordle’, and was hoping they’d get back to posting pictures of their dogs instead, so did what any self-respecting hacker would do, and wrote a python script to automate solving Wordle puzzles, in a likely futile attempt to get them to stop posting.

Actually, [Ed] was more interested in building a solver for a related game, Absurdle, which is described as an adversarial variant of Wordle. This doesn’t actually select a single word, but uses your guesses so far to narrow down a large pool of possible words, keeping you guessing for longer. Which is pretty mean of it. Anyway, [Ed] came up with a tool called Pyrdle, (GitHub project) which is essentially a command version of Absurdle, that has the capability of also solving Wordle as a byproduct. It turns out the JS implementation of Wordle holds the entire possible wordlist, client-side, so the answer is already sitting in your browser. The real interest part of this project is the approach to automated problem solving of puzzles with a very large potential set of solutions. This makes for an interesting read, and infinitely more so than reading yet another Wordle post.

And one final note; if you’re not at all onboard with this, love Wordle, and can’t get enough, you might like to install [brackendawson]’s comically titled (command) notfoundle shell handler, for some puzzling feedback on your command-line slip-ups. Well, it amused us anyway.

Puzzle projects hit these pages once in a while. Here’s the annual Xmas GCHQ puzzle, If you’re more into physical puzzles, with an electronics focus (and can solder) check out the DEF CON 29 puzzle badge!

A Tuning Fork Clock, With Discrete Logic

[Willem Koopman aka Secretbatcave] was looking at a master clock he has in his collection which was quite a noisy device, but wanted to use the matching solenoid slave clock mechanism he had to hand. Willem is a fan of old-school ‘sector’ clocks, so proceeded to build his ideal time piece — Vibrmatic — exactly the way he wanted. Now, since most time keeping devices utilise a crystal oscillator — which is little more than a lump of vibrating quartz — why not scale it up a bit and use the same principle, except with a metal tuning fork? (some profanity, just to warn you!)

Shock-mounted tuning force oscillator

A crystal oscillator operates in a simple manner; you put some electrical energy in, it resonates at its natural frequency, you sense that resonance, and feed it back into it to keep it sustaining. With a tuning fork oscillator, the vibration forcing and the feedback are both done via induction, coils act as the bridge between the electronic and mechanical worlds.

By mounting the tuning fork onto a shock mounting, the 257 Hz drone was kept from leaking out into the case and disturbing the household. This fork was specified to be 256 Hz, but [Willem] reckons the drag of the electromagnets pushed it off frequency a bit. Which make sense, since its a mechanical system, that has extra forces acting upon it.

The sector face was CNC cut from aluminium, the graphics engraved, then polished up a bit. Finally after a spot of paint, it looks pretty smart. Some nice chunks of upcycled wood taken from some building work spoils formed the exposed enclosure. On the electronics side, after totally ignoring the frequency error, and then tripping over a bunch of problems such as harmonics in the oscillation, and an incorrectly set-up divider, a solution which seemed to work was found, but like always, there are quite a few more details to the story to be found in the build log.

We’ve seen a tuning fork clock recently, like this 440 Hz device by [Kris Slyka] that the project above references, and whilst we’re talking about tuning forks, here’s a project log showing the insides of those ubiquitous 32.768 kHz crystal units.

Hair Today Gone Tomorrow: Four Men Go To Fix A Wafer Prober

I’ve had a fairly varied early part of my career in the semiconductors business: a series of events caused me to jump disciplines a little bit, and after one such event, I landed in the test engineering department at Philips Semiconductors. I was tasked with a variety of oddball projects, supporting engineering work, fixing broken ATE equipment, and given a absolute ton of training: Good times!  Here’s a story that comes straight off the oddball pile.

We needed to assemble a crack team of experts and high-tail it to deepest darkest Wales, and sort out an urgent production problem. The brief was that the wafer probe yield was disastrous and the correlation wafer was not giving the correct results. Getting to the punch line is going to require some IC fabrication background, but if you like stories about silicon, or red-bearded test engineers, it’s worth it. Continue reading “Hair Today Gone Tomorrow: Four Men Go To Fix A Wafer Prober”

Is Your Flashlight A Lumen Liar? Build A DIY Integrating Sphere

A lamp used to be simple thing: just stick a filament in a glass bulb, pass a current through it and behold! Let there be light. A bigger lamp meant a larger filament, taking more power and a larger envelope. Now we’ve moved on a bit, and it’s all about LEDs. There really isn’t such a thing as ‘just an LED,’ these are semiconductor devices, made from relatively exotic materials (OK, not just plain old silicon anyway) and there is quite a lot of variety to choose from, and a bit of complexity in selecting them.

For [Torque Test Channel] the efficiency of conversion from electrical power to radiant power (or flux) is the headline figure of interest, which prompted them to buy a bunch of lamps to compare. To do the job justice that requires what’s known in the business as an integrating sphere (aka an Ulbricht sphere), but being a specialist device, it’s a bit pricey for the home gamer. So naturally, they decided to build the thing themselves.

Coating the inside of the foam sphere took several attempts.

Firstly they did the sensible thing, and shipped off their test units to a metrology lab with the ‘proper’ equipment, to get a baseline to calibrate against. Next they set about using some fairly common materials to construct their sphere. The basic idea is quite simple; it has a uniform diffuse internal surface, which ensures that all photons emitted by a source can be measured at the appropriate measurement port, regardless of the angle they are emitted from the source. This way, the total radiated power can be determined, or at least estimated, since there will be a degree of absorption.

Anyway, after a couple of false starts with coating the internal surface, they came to the conclusion that mixing barium sulphate into the paint, and then a bit of a rub-down with sandpaper, gave the required pure white, diffuse surface.

The results from their testing, using a lux meter inserted into one of the other ports, showed a pretty good correspondence between their measured lux figure and the lab-determined lumens figure. Since one lux is defined as one lumen per square meter, they seemed to get lucky and found a consistent ten-to-one ratio between their observed value and the lab. This factor will be simply due to the physical setup of their contraption, but an encouraging result so far anyway. And what about the bottom line? Did those test units deliver their promised lumen output? It would seem that they pretty much did.

When it rains, it pours. Just a few hours ago we saw another DIY approach to building an integrating sphere, this time using a small cannonball mold of all things. Before that we hadn’t actually seen too many light measurement projects, save this old one that used the chipKIT. Continue reading “Is Your Flashlight A Lumen Liar? Build A DIY Integrating Sphere”

The Q2, A PDP8-Like Discrete Transistor Computer

[Joe Wingbermuehle] has an interest in computers-of-old, and some past experience of building computers on perfboard from discrete transistors, so this next project, Q2, is a complete implementation of a PDP8-like microcomputer on a single PCB. Like the DEC PDP-8, this is a 12-bit machine, but instead of the diode-transistor logic of the DEC, the substantially smaller Q2 uses a simple NMOS approach. Also, the DEC has core memory, but the Q2 resorts to a pair of SRAM ICs, simply because who wants to make repetitive memory structures with discrete 2N7002 transistors anyway?

SMT components for easy machine placement

Like the PDP-8, this machine uses a bit-serial ALU, which allows the circuit to be much smaller than the more usual ALU structure, at the expense of needing a clock cycle per bit per operation, i.e. a single ALU operation will take 12 clock cycles. For this machine, the instruction cycle time is either 8 or 32 clocks anyway, and at a maximum speed of 80 kHz it’s not exactly fast (and significantly slower than a PDP-8) but it is very small. Small, and perfectly formed.

The machine is constructed from 1094 transistors, with logic in an NMOS configuration, using 10 K pullup resistors. This is not a fast way to build a circuit, but it is very compact. By looking at the logic fanout, [Joe] spotted areas with large fanouts, and reduced the pull-up resistors from 10 K to 1 K. This was done in order to keep the propagation delay within bounds for the cycle time without excessive power usage. Supply current was kept to below 500 mA, allowing the board to be powered from a USB connector. Smart!

Memory is courtesy of two battery-backed 6264 SRAMs, with the four 12-bit general purpose registers built from discrete transistors. An LCD screen on board is a nice touch, augmenting the ‘front panel’ switches used for program entry and user input. A 40-pin header was added, for programming via a Raspberry Pi in case the front panel programming switches are proving a bit tedious and error prone.

Discrete transistor D-type flip flop with indicator. Latest circuit switched to 2N7002 NMOS.

In terms of the project write-up, there is plenty to see, with a Verilog model available, a custom programming language [Joe] calls Q2L, complete with a compiler and assembler (written in Rust!) even an online Q2 simulator! Lots of cool demos, like snake. Game of Life and even Pong, add some really lovely touches. Great stuff!

We’ve featured many similar projects over the years; here’s a nice one, a really small 4-bit one, and a really big one.

 

CadQuery Comes Of Age

Now, we know what some of you are going to say — “Oh man, not another programmatic CAD tool, what’s wrong with OpenSCAD?” — and you may be right, but maybe hold on a bit and take a look at this one, because we think that it’s now pretty awesome! OpenSCAD is great, we use it all the time round these parts, but it is a bit, you know, weird in places. Then along comes CadQuery, and blows it out of the water ease-of-use and functionality wise. Now, we’ve seen a few mentions of CadQuery over the years, and finally it’s become a full-blown toolset in its own right, complete with a graphical frontend/editor, CQ-editor. No odd dependencies on FreeCAD to be seen! That said, installing FreeCAD is not a bad thing either.

The goal is to have the CadQuery script that produces this object be as close as possible to the English phrase a human would use.

Continue reading “CadQuery Comes Of Age”