Is It Time To Retire The TP4056?

The TP4056 is the default charge-controller chip for any maker or hacker working with lithium batteries. And why not? You can get perfectly-functional knockoffs on handy breakout boards from the usual online sources for pennies. Betteridge’s Law aside, [Lefty Maker] thinks that it may well be time to move on from the TP4056 and spends his latest video telling us why, along with promoting an alternative.

His part of choice is another TI chip, the BQ25185. [Lefty] put together his own charge controller board to show off the capabilities of this chip — including variable under- and over-charge protection voltages. Much of his beef with the TP4056 has less to do with that chip than with the cheap charge modules it comes on: when he crows about the lack of mounting holes and proper USB-PD on the knock-off modules, it occurs to us he could have had those features on his board even if he’d used a TP4056.

On the other hand, the flexibility offered by the BQ25185 is great to future-proof projects in case the dominant battery chemistry changes, or you just change your mind about what sort of battery you want to use. Sure, you’d need to swap a few resistors to set new trigger voltages and charging current, but that beats starting from scratch.

[Lefty Maker] also points out some of the advantages to making your own boards rather than relying on cheap modules. Namely, you can make them however you want. From a longer USB port to indicator LEDs and a built-in battery compartment, this charging board is exactly what [Lefty Maker] wants. Given how cheap custom PCBs are these days, it’s not hard to justify rolling your own.

The same cannot be said of genuine TI silicon, however. While the BQ25185 has a few good features that [Lefty Maker] points out in the video, we’re not sure the added price is worth it. Sure, it’s only a couple bucks, but that’s more than a 300% increase!

We’ve seen other projects pushing alternative charge controllers, but for now the TP4056 reigns as the easy option.

Continue reading “Is It Time To Retire The TP4056?”

Exploring The TRS-80’s Color BASIC’s Random Number Function

Although these days we get to tap into many sources of entropy to give a pretty good illusion of randomness, home computers back in the 1980s weren’t so lucky. Despite this, their random number generators were good enough for games and such, as demonstrated by the [CoCo Town] YouTube channel.

The CoCo is the nickname for the TRS-80 Color Computer, which despite its name, shares absolutely nothing with the TRS-80. Its BASIC version is called Color BASIC, which like many others was based on Microsoft BASIC, so the video’s description should be valid for many other BASIC versions as well. In the video we’re first taken through a basic summary of what the floating point format is all about, before running through an example of the algorithm used by Color BASIC for its RND function, using a test program written in Color BASIC.

As described in the video, the used algorithm appears to be the linear congruential generator, which is a pseudo-random generator that requires minimal resources from the hardware it runs on. Of course, its main disadvantage is that it will fairly rapidly begin to repeat itself, especially with a limited number of output bits. This makes it a decent choice even today for something like simple game logic where you just want to get some variation without aiming for cryptographically secure levels of randomness.

Continue reading “Exploring The TRS-80’s Color BASIC’s Random Number Function”

Light Transport And Constructing Images From A Projector’s Point Of View

Imagine you have a projector pointing at a scene, which you’re photographing with a camera aimed from a different point. Using the techniques of modelling light transport, [okooptics] has shown us how you can capture an image from the projector’s point of view, instead of the camera—and even synthetically light the scene however you might like.

The test scene used for the explanation of the work.

The concept involves capturing data regarding how light is transported from the projector to the scene. This could be achieved by lighting one pixel of the projector at a time while capturing an image with the camera. However, even for a low-resolution projector, of say 256×256 pixels, this would require capturing 65536 individual images, and take a very long time. Instead, [okooptics] explains how the same task can be achieved by using binary coded images with the projector, which allow the same data to be captured using just seventeen exposures.

Once armed with this light transport data, it’s possible to do wild tricks. You can synthetically light the scene, as if the projector were displaying any novel lighting pattern of your choice. You can also construct a simulated photo taken from the projector’s perspective, and even do some rudimentary depth reconstruction. [okooptics] explains this tricky subject well, using visual demonstrations to indicate how it all works.

The work was inspired by the “Dual Photography” paper published at SIGGRAPH some time ago, a conference that continues to produce outrageously interesting work to this day.

Continue reading “Light Transport And Constructing Images From A Projector’s Point Of View”

Microsoft’s New Agentic Web Protocol Stumbles With Path Traversal Exploit

If the term ‘NLWeb’ first brought to mind an image of a Dutch internet service provider, you’re probably not alone. What it actually is – or tries to become – is Microsoft’s vision of a parallel internet protocol using which website owners and application developers can integrate whatever LLM-based chatbot they desire. Unfortunately for Microsoft, the NLWeb protocol just suffered its first major security flaw.

The flaw is an absolute doozy, involving a basic path traversal vulnerability that allows an attacker to use appropriately formatted URLs to traverse the filesystem of the remote, LLM-hosting, system to extract keys and other sensitive information. Although Microsoft patched it already, no CVE was assigned, while raising the question of just how many more elementary bugs like this may be lurking in the protocol and associated software.

As for why a website or application owner might be interested in NLWeb, the marketing pitch appears to be as an alternative to integrating a local search function. This way any website or app can have their own ChatGPT-style search functionality that is theoretically restricted to just their website, instead of chatbot-loving customers going to the ChatGPT or equivalent site to ask their questions there.

Even aside from the the strong ‘solution in search of a problem’ vibe, it’s worrying that right from the outset it seems to introduce pretty serious security issues that suggest a lack of real testing, never mind a strong ignorance of the fact that a lack of user input sanitization is the primary cause for widely exploited CVEs. Unknown is whether GitHub Copilot was used to write the affected codebase.

Teardown Of A Persil Smartwash Smart Laundry Detergent Ball

How to make doing laundry more smart, depending on your perspective. (Credit: Zerobrain, YouTube)
How to make doing laundry more smart, depending on your perspective. (Credit: Zerobrain, YouTube)

Ever since the invention of washing machines, the process of doing laundry has become rather straightforward. Simply toss the dirty laundry into the machine, fill up the detergent, and let the preset program handle the rest. This of course has not prevented companies from coming up with ways to add more complexity to doing laundry, with Henkel’s Smartwash technology the latest example, as demonstrated by German YouTube channel [ZeroBrain] with a complete teardown.

Henkel is the owner of detergent brands like Persil and Somat, with the Smartwash ball supposedly offering ‘smart’ dosing of detergent for washing machines, with naturally a smartphone app with intrusive localization to personalize the laundry experience. Sadly the video is only in German, but the language of teardowns is universal.

Continue reading “Teardown Of A Persil Smartwash Smart Laundry Detergent Ball”

A Repeater For WWVB

For those living in the continental US who, for whatever reason, don’t have access to an NTP server or a GPS device, the next best way to make sure the correct time is known is with the WWVB radio signal. Transmitting out of Colorado, the 60-bit 1 Hz signal reaches all 48 states in the low-frequency band and is a great way to get a clock within a few hundred nanoseconds of the official time. But in high noise situations, particularly on the coasts or in populated areas these radio-based clocks might miss some of the updates. To keep that from happening [Mike] built a repeater for this radio signal.

The repeater works by offloading most of the radio components to an Arduino. The microcontroller listens to the WWVB signal and re-transmits it at a lower power to the immediate area, in this case no further than a few inches away or enough to synchronize a few wristwatches. But it has a much better antenna for listening to WWVB so this eliminates the (admittedly uncommon) problem of [Mike]’s watches not synchronizing at least once per day. WWVB broadcasts a PWM signal which is easy for an Arduino to duplicate, but this one needed help from a DRV8833 amplifier to generate a meaningfully strong radio signal.

Although there have been other similar projects oriented around the WWVB signal, [Mike]’s goal for this was to improve the range of these projects so it could sync more than a single timekeeping device at a time as well as using parts which are more readily available and which have a higher ease of use. We’d say he’s done a pretty good job here, and his build instructions cover almost everything even the most beginner breadboarders would need to know to duplicate it on their own.

2025 One Hertz Challenge: The Easy Way To Make A Nixie Tube Clock

Let’s say you want to build a Nixie clock. You could go out and find some tubes, source a good power supply design, start whipping up a PCB, and working on a custom enclosure. Or, you could skip all that, and just follow [Simon]’s example instead.

The trick to building a Nixie clock fast is quite simple — just get yourself a frequency counter that uses Nixie tubes for the display. [Simon] sourced a great example from American Machine and Foundry, also known as AMF, the company most commonly associated with America’s love of bowling.

The frequency counter does one thing, it counts the number of pulses in a second. Thus, if you squirt the right number of pulses to represent the time — say, 173118 pulses to represent 5:31 PM and 18 seconds — the frequency counter effectively becomes a clock. To achieve this, [Simon] just hooked an ESP32 up to the frequency counter and programmed it to get the current time from an NTP time server. It then spits out a certain number of pulses every second corresponding to the current time. The frequency counter displays the count… and there you have your Nixie clock!

It’s quick, dirty, and effective, and a sweet entry to our 2025 One Hertz Challenge. We’ve had some other great entries, too, like this nifty hexadecimal Unix clock, and even some non-horological projects, too!

Continue reading “2025 One Hertz Challenge: The Easy Way To Make A Nixie Tube Clock”