An ESP32 Delivers Perfect Slot Car Control

If your memory of slot cars as a childhood toy is of lightweight controllers with wire-wound rheostats inside, then you’re many years behind the state of the art when it comes to competitive slot car racing. In that world the full force of modern electronics has been brought to keeping the car on the road, and as an example here’s [Maker Fabio] with a cutting edge controller that has an ESP32 at its heart.

It’s obvious that a huge amount of attention has gone into both the physical design of the unit and its software, and the result speaks for itself. The trigger sits on a proper bearing, and the sensor is a Hall-effect device on the PCB. The firmware was written in the Arduino IDE, and through the trigger and a rotary encoder all of its options can be configured on a small OLED display. Individual settings can be configured for each car, and we’re treated to a full explanation of this in the video.

We are told that the files for both software and hardware will be released in due course, as this is still a work in progress for the moment. The video meanwhile provides ample demonstration, so we look forward to the release.

It’s a surprise to find relatively few projects from the slot car world on these pages, given the amount of potential there is in them for electronic improvement. Here’s one from a few years ago though.

Continue reading “An ESP32 Delivers Perfect Slot Car Control”

ESP32 Powers Custom Darkroom Timer

Developing your own film is an unabashedly analog process, which is one of the reasons people still gravitate towards it. After spending all day pushing buttons and looking at digital displays, spending some quiet time in the dark with pieces of paper and chemicals can be a way to decompress. But that doesn’t mean there isn’t room for a bit of modern digital convenience.

Specifically, [John Jones] wanted a timer that offered more features than his old school analog model, so he decided to build one himself. He took the long away around to make sure the end result would be a tool he could rely on, which meant getting a custom PCB made, 3D printing a case to fit in with his existing workspace, and designing a control panel that he could operate in the dark.

The PCB plays host to an ESP32 development board and an I/O expander that connects up to the array of LEDs, switches, and buttons on the front panel. The bottom-half of of the 3D printed enclosure is pretty simple, but the control panel is quite a piece of work.

Borrowing a trick from the flight sim community, [John] switched over to a clear filament after laying down the first few layers of the panel. This essentially created an integrated light diffuser, and with the addition of a few red LEDs, he had very slick backlit labels on his panel with relatively minimal effort.

We’ve covered custom darkroom tools in the past, from this relatively simple enlarger to an automated system that will develop the film for you.

Continue reading “ESP32 Powers Custom Darkroom Timer”

Raspberry Pi RP2350-E9 Erratum Redefined As Input Mode Leakage Current

Although initially defined as an issue with GPIO inputs when configured with the internal pull-downs enabled, erratum RP2350-E9 has recently been redefined in the datasheet (page 1341) as a case of increased leakage current. As it is now understood since we previously reported, the issue occurs when a GPIO (0 – 47) is configured as input, the input buffer is enabled, and the pad voltage is somewhere between logic LOW and HIGH. In that case leakage current can be as high as 120 µA with IOVDD = 3.3 V. This leakage current is too much for the internal pull-up to overcome, ergo the need for an external pull-down: 8.2 kΩ or less, per the erratum. Disabling the input buffer will stop the leakage current, but reading the input requires re-enabling the buffer.

GPIO Pad leakage for IOVDD=3.3 V (Credit: Raspberry Pi)
GPIO Pad leakage for IOVDD=3.3 V (Credit: Raspberry Pi)

The upshot of this issue is that for input applications, the internal pull-downs are useless, and since PIO applications cannot toggle pad controls, the input buffer toggling workaround is not an option. ADC usage requires one to clear the GPIO input enable. In general any circuit that relies on floating pins or an internal pull-down resistor will be affected.

Although this should mean that the affected A2 stepping of the RP2350 MCU can still be used for applications where this is not an issue, and external pull-downs can be used as a ‘fix’ at the cost of extra power usage, it makes what should have been a drop-in replacement a troubled chip at best. At this point there have still been no definite statements from Raspberry Pi regarding a new (B0) stepping, leaving RP MCU users with the choice between the less flashy RP2040 and the buggy RP2350 for the foreseeable future.

Header: Thomas Amberg, CC BY-SA 2.0.

Recreating A Popular Faux-Nixie Clock

There’s a good chance you’ve seen “Nixie clocks” on the Internet that replace the classic cold cathode tubes with similarly sized LCD panels. The hook is that the LCDs can show pictures and animations of Nixie tubes — or pretty much anything else for that matter — to recreate the look of the real thing, while being far cheaper and easier to produce. It’s a hack for sure, and that’s the way we like it.

[Trung Tran] liked the idea, but didn’t just want to buy a turn-key clock. So he’s decided to build his own version based on the ESP32-S3. The WiFi-enabled microcontroller syncs up to the latest time via NTP, then uses a PCF8563 real-time clock (RTC) module to keep from drifting too far off the mark. The six displays, which plug into the custom PCB backplane, can then show the appropriate digits for the time. Since they’re showing image files, you can use any sort of font or style you wish. Or you could show something else entirely — the demo video below shows off each panel running the Matrix “digital rain” effect.

Continue reading “Recreating A Popular Faux-Nixie Clock”

Microsoft Sculpt Keyboard Lives Again With RP2040

Hackaday readers are likely the kind of folks that have a favorite keyboard, so you can probably imagine how devastating it would be to find out that the board you’ve sworn by for years is going out of production. Even worse, the board has some internal gremlins that show up after a few years of use, so functional ones in the second-hand market are becoming increasingly rare. So what do you do?

This is the position [TechBeret] recently found himself in with his beloved Sculpt keyboard. When Microsoft decided to step back from the peripheral market last year, he started looking at alternatives. Finding none of them appealing, he decided instead to breathe new life into the ergonomic keyboard with the RP2040. Every aspect of the resurrection is covered in a phenomenally detailed write-up on his blog, making this a valuable case study in modernizing peripherals with the popular microcontroller.

Continue reading “Microsoft Sculpt Keyboard Lives Again With RP2040”

I2C For Hackers: Digging Deeper

Last time, I gave you an overview of what you get from I2C, basics like addressing, interface speeds, and a breakdown of pullups. Today, let’s continue looking into I2C capabilities and requirements – level shifting, transfer types, and quirks like combined transfers or clock stretching.

Level Shifting

Continue reading “I2C For Hackers: Digging Deeper”

The Worsening Raspberry Pi RP2350 E9 Erratum Situation

There’s currently a significant amount of confusion around the full extent of the GPIO hardware issue in the Raspberry Pi RP2350 microcontroller, with [Ian] over at [Dangerous Prototypes] of Bus Pirate fame mentioning that deliveries of the RP2350-based Bus Pirate 5XL and 6 have been put on hold while the issue is further being investigated. Recorded in the MCU’s datasheet as erratum RP2350-E9, it was originally reported as only being related to the use of internal pull-downs, but [Ian] has since demonstrated in the primary issue ticket on GitHub that the same soft latching behavior on GPIO pins occurs also without pull-downs enabled.

Ian from Dangerous Prototypes demonstrating the RP2350-E9 issue in a Bus Pirate prototype without pull-ups.
Ian from Dangerous Prototypes demonstrating the RP2350-E9 issue in a Bus Pirate prototype without pull-ups.

When we first reported on this hardware bug in the RP2350’s A2 (and likely preceding) stepping there was still a lot of confusion about what this issue meant, but so far we have seen the Bus Pirate delay and projects like [Agustín Gimenez Bernad]’s LogicAnalyzer have opted for taking the RP2350 port out back. There are also indications that the ADC and PIO peripherals are affected by this issue, with workarounds only partially able to circumvent the hardware issue.

In the case of the Bus Pirate a potential workaround is the addition of 4.7 kOhm external pull-downs, but at the cost of 0.7 mA continuous load on the GPIO when pulled high and part of that when pulled low. It’s an ugly hack, but at the very least it might save existing boards. It also shows how serious a bug this is.

Meanwhile there are lively discussions about the issue on the Raspberry Pi forums, both on the E9 erratum as well as the question of when there will be a new stepping. The official statement by Raspberry Pi is still that ‘they are investigating’. Presumably there will be a Bx stepping at some point, but for now it is clear that the RP2350’s A2 stepping is probably best avoided.