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!
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.
For fancy or stylish designs, I prefer pocket watches which can be physically larger.
I also like full hunter (protective lid). Just like laptops, you can add a sensor to detect a closed lid – and turn off the display.
>since for some reason, the ESP32 still does not support USB
Hey! That’s a bit under the belt, like saying the 8086 still does not support more than 1MiB of address space. We at Espressif have had some kind of USB functionality in all our chips since, with the only exception being the designed-to-be-cheap-as-dirt ESP32S2.
Soft USB library only works as Host? Its use only GPIO
https://github.com/tobozo/ESP32-USB-Soft-Host
Not really a criticism, just I find it a little odd that there isn’t a full USB OTG support, since so many competing devices have that function. As I said, I don’t know the reason for this, but I’m sure you do.
I see no mention at all in the ESP32 datasheet of USB, so a reasonable engineer requiring USB would already be looking elsewhere.
I guess it helps if you look at the datasheet of a chip that DOES support USB?
https://www.espressif.com/sites/default/files/documentation/esp32-s2_datasheet_en.pdf
As Sprite_tm says, it’s like looking at the datasheet of the 8086 and compaining about missing SSE2. There are chips from Espressif that support USB, just like there are chips from Intel that support SSE2. Look in the right place, and you will find them.
It seems I am rather out of date with regards the later offerings from Espressif. I have much reading to do.
This reminds me of the skidl studio clock.
It’s a test case for scripting in KiCad
https://github.com/B73Labs/clock-skidl
It’s getting a bit old now, and KiCad is ever moving forward, so I don’t know if that project is still in a workable state for a current KiCad version.
@Dave Rowntree said: “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.”
I believe the TP4054/TP4056 LTC405X (Linear Technology Inc. USA now part of Analog Devices Inc. USA) copies are made by TPOWER SMIC which is mainland-China based, not Taiwanese.[1][2] One must be careful using these TP4054/TP4056 or LTC405X charge controllers [3][4] because there is no built-in battery protection. Therefore, batteries with their own built-in protection must be used or separate battery protection like the DW01 must be added.[5] See [6] for some analysis of various TP4056 based charger boards. The LCSC parts references below all have .pdf datasheet download links.
Charge controller chips with built-in battery protection are available if you search for them, but you can run into heat dissipation barriers, plus the all-in-one part becomes a single point of failure. It is quite common to see a TP4056 charge controller separate from a DW01 protection IC with it’s own but separate steering MOSFETs
It is so sad to still see zero stock available for almost all non China-made chips and no end in sight. Yet there are plenty of Chinese copy-cat parts available. It’s getting hard to believe this never ending chip shortage wasn’t manufactured on purpose – but by who and why?
* References:
1. TPOWER SMIC – About
http://www.tpower-ic.com/en/about.aspx?BaseInfoCateId=51&CateId=51
2. TPOWER @ LCSC
https://lcsc.com/brand-detail/11941.html
3. TP4054 @ LCSC
https://lcsc.com/search?q=TP4054
4. TP4056 @ LCSC
https://lcsc.com/search?q=TP4056
5. DW01B @ LCSC
https://lcsc.com/search?q=DW01B
6. Charger module with TP4056 controller
https://lygte-info.dk/review/Review%20Charger%20TP4056%20UK.html
Now based on my very cursory glance over the datasheets of both parts, I would have been incorrectly assuming battery protection would be in place, because why would you not? I will bear that in mind next time I’m needing that functionality. FWIW I do usually read every line of every datasheet, but sometimes time pressure makes that hard and assumptions need to be made. And you know where that leads…
CP2104 USB chip has issues with mac OS.
Just use a competent OS…
I am following this project since you started. Is it possible to show the actual video of working watch.