Hacking A Cheap Rechargeable Lamp With Non-Standard USB-C Connector

The "USB C" cable that comes with the Inaya Portable Rechargeable Lamp. (Credit: The Stock Pot, YouTube)
The “USB C” cable that comes with the Inaya Portable Rechargeable Lamp. (Credit: The Stock Pot, YouTube)

Recently [Dillan Stock] over at The Stock Pot YouTube channel bought a $17 ‘mushroom’ lamp from his local Kmart that listed ‘USB-C rechargeable’ as one of its features, the only problem being that although this is technically true, there’s a major asterisk. This Inaya-branded lamp namely comes with a USB-C cable with a rather prominent label attached to it that tells you that this lamp requires that specific cable. After trying with a regular USB-C cable, [Dillan] indeed confirmed that the lamp does not charge from a standard USB-C cable. So he did what any reasonable person would do: he bought a second unit and set about to hacking it.

[Dillan] also dug more into what’s so unusual about this cable and the connector inside the lamp. As it turns out, while GND & Vcc are connected as normal, the two data lines (D+, D-) are also connected to Vcc. Presumably on the lamp side this is the expected configuration, while using a regular USB-C cable causes issues. Vice versa, this cable’s configuration may actually be harmful to compliant USB-C devices, though [Dillan] did not try this.

With the second unit in hand, he then started hacking it, with the full plans and schematic available on his website.

The changes include a regular USB-C port for charging, an ESP32 board with integrated battery charger for the 18650 Li-ion cell of the lamp, and an N-channel MOSFET to switch the power to the lamp’s LED. With all of the raw power from the ESP32 available, the two lamps got integrated into the Home Assistant network which enables features such as turning the lamps on when the alarm goes off in the morning. All of this took about $7 in parts and a few hours of work.

Although we can commend [Dillan] on this creative hack rather than returning the item, it’s worrying that apparently there’s now a flood of ‘USB C-powered’ devices out there that come with non-compliant cables that are somehow worse than ‘power-only’ USB cables. It brings back fond memories of hunting down proprietary charging cables, which was the issue that USB power was supposed to fix.

Continue reading “Hacking A Cheap Rechargeable Lamp With Non-Standard USB-C Connector”

An ESP32 Pomodoro Timer

The Pomdoro technique of time management has moved on a little from the tomato-shaped kitchen timer which gave it a name, as [Rukenshia] shows us with this nifty ESP32 and e-paper design. It’s relatively simple in hardware terms, being a collection of off-the-shelf modules in a 3D printed case, but the software has a custom interface for the friend it was built for.

At its heart is a NodeMCU board and a Waveshare display module, with a rotary encoder and addressable LED as further interface components. A lot of attention has been paid to the different options for the interface, and to make the front end displayed on the screen as friendly and useful as possible. Power comes via USB-C, something that should be available in most working environments here in 2025.

We’ve tried a variant on this technique for a while now with varying success, maybe because a mobile phone doesn’t make for as good a timer as a dedicated piece of hardware such as this. Perhaps we should follow this example. If we did, the Hackaday timer couldn’t possibly use an ESP32.

Half The Reflow Oven You Expected

Toaster oven reflow projects are such a done deal that there should be nothing new in one here in 2025. Take a toaster oven, an Arduino, and a thermocouple, and bake those boards! But [Paul J R] has found a new take on an old project, and better still, he’s found the most diminutive of toaster ovens from the Australian version of Kmart. We love the project for the tiny oven alone.

The brains of the operation is an ESP32, in the form of either a TTGO TTDisplay board or an S3-Zero board on a custom carrier PCB, with a thermistor rather than a thermocouple for the temperature sensing, and a solid state relay to control mains power for the heater. All the resources are in a GitHub repository, but you may have to make do with a more conventionally-sized table top toaster oven if you’re not an Aussie.

If you’re interested, but want a better controller board, we’ve got you covered.

Metal Detector Built With Smartphone Interface

If you think of a metal detector, you’re probably thinking of a fairly simple device with a big coil and a piercing whine coming from a tinny speaker. [mircemk] has built a more modern adaptation. It’s a metal detector you can use with your smartphone instead.

The metal detector part of the project is fairly straightforward as far as these things go. It uses the pulse induction technique, where short pulses are fired through a coil to generate a magnetic field. Once the pulse ends, the coil is used to detect the decaying field as it spreads out. The field normally fades away in a set period of time. However, if there is metal in the vicinity, the time to decay changes, and by measuring this, it’s possible to detect the presence of metal.

In this build, an ESP32 is in charge of the show, generating the necessary pulses and detecting the resulting field. It’s paired with the usual support circuitry—an op-amp and a few transistors to drive the coil appropriately, and the usual smattering of passives. The ESP32 then picks up the signal from the coil and processes it, passing the results to a smartphone via Bluetooth.

The build is actually based on a design by [Neco Desarrollo], who presents more background and other variants for the curious. We’ve featured plenty of [mircemk]’s projects before, like this neat proximity sensor build. Continue reading “Metal Detector Built With Smartphone Interface”

Building A Handheld Pong Game

Pong was one of the first video games to really enter the public consciousness. While it hasn’t had the staying power of franchises like Zelda or Call of Duty, it nonetheless still resonates with gamers today. That includes [Arnov Sharma], who put together this neat handheld version using modern components.

An ESP32 development board serves as the brains of the operation. Capable of operating at many hundreds of megahertz, it has an excessive amount of power for an application as simple as this. Nonetheless, it’s cheap, and it gets the job done. It’s paired with an SSD1306 OLED screen of 124 x 32 resolution. That might not sound like much, but it’s plenty when you’re just drawing two paddles and a ball bouncing between them. Control is via a pair of SMD push buttons for a nice responsive feel.

What’s really neat, though, is the presentation. [Arnov] wrapped the electronics in a neat bean-shaped housing that vaguely apes game controllers of the 16-bit era. Indeed, [Arnov] explains that it was inspired by the Sega Genesis specifically. It looks great with the black PCBs integrated so nicely with the bright orange 3D printed components, and looks quite comfortable to use, too.

It might be a simple project, but it’s done rather well. Just by thinking about color choices and how to assemble the base components, [Arnov] was able to create an attractive and functional game that’s a lot more eye catching than some random boards thrown in an old project box. Indeed, we’ve featured stories on advanced FR4/PCB construction techniques before, too. Meanwhile, if you’re creating your own projects with similar techniques, don’t hesitate to let us know!

Three SPI Busses Are One Too Many On This Cheap Yellow Display

The Cheap Yellow Display may not be the fastest of ESP32 boards with its older model chip and 4 MB of memory, but its low price and useful array of on-board peripherals has made it something of a hit in our community. Getting the most out of the hardware still presents some pitfalls though, as [Mark Stevens] found out when using one for an environmental data logger. The problem was that display, touch sensor, and SD card had different SPI busses, of which the software would only recognise two. His solution involves a simple hardware mod, which may benefit many others doing similar work.

It’s simple enough, put the LCD and SD card on the same bus, retaining their individual chip select lines. There’s a track to be cut and a bit of wiring to be done, but nothing that should tax most readers too much. We’re pleased to see more work being done with this board, as it remains a promising platform, and any further advancements for it are a good thing. If you’re interested in giving it a go, then we’ve got some inspiration for you.

Simulating Embedded Development To Reduce Iteration Time

There’s something that kills coding speed—iteration time. If you can smash a function key and run your code, then watch it break, tweak, and smash it again—you’re working fast. But if you have to first compile your code, then plug your hardware in, burn it to the board, and so on… you’re wasting a lot of time. It’s that problem that inspired [Larry] to create an embedded system simulator to speed development time for simple projects.

The simulator is intended for emulating Arduino builds on iPhone and Mac hardware. For example, [Larry] shows off a demo on an old iPhone, which is simulating an ESP32 playing a GIF on a small LCD display. The build isn’t intended for timing-delicate stuff, nor anything involving advanced low-level peripherals or sleep routines and the like. For that, you’re better off with real hardware. But if you’re working on something like a user interface for a small embedded display, or just making minor tweaks to some code… you can understand why the the simulator might be a much faster way to work.

For now, [Larry] has kept the project closed source, as he’s found that it wouldn’t reasonably be possible for him to customize it for everyone’s unique hardware and use cases. Still, it’s a great example of how creating your own tools can ease your life as a developer. We’ve seen [Larry]’s great work around here before, like this speedy JPEG decoder library.
Continue reading “Simulating Embedded Development To Reduce Iteration Time”