Smooth Animations, Slick Bar Graphs, But No Custom Characters On This 16×2 OLED

Sometimes, finding new ways to use old hardware requires awesome feats of reverse engineering, software sleight of hand, and a healthy dose of good fortune. Other times, though, it’s just as simple as reading the data sheet and paying attention to details.

Not that we’re knocking [upir]’s accomplishment with these tricked-out 16×2 OLED displays. Far from it, in fact — the smoothly animated bar graph displays alphanumerics look fantastic. What’s cool about this is that he accomplished all this without resorting to custom characters. We’ve seen him use this approach before; this time around, the hack involves carefully shopping for a 16×2 OLED display with the right driver chip — a US2066 chip. You’ll still need a few tricks to get things working, like extra pull-up resistors to get the I2C display talking to an Arduino, plus a little luck that you got a display with the right character ROM.

Once all that is taken care of, getting the display to do what you want is mainly a matter of coding. In the video below, [upir] does a great job of walking through the finer points, and the results look great. The bar graphs in particular look fantastic, with silky-smooth animations.

Continue reading “Smooth Animations, Slick Bar Graphs, But No Custom Characters On This 16×2 OLED”

Magic 8 Ball Provides Tech Support

ChatGPT might be making the news these days for being able to answer basically any question it’s asked, those of us who are a little older remember a much simpler technology that did about the same thing. The humble “Magic 8 Ball” could take nearly the same inputs, provided they were parsed in simple yes/no form, and provide marginal help similar to the AI tools of today. For a toy with no battery or screen, this was quite an accomplishment. But the small toy couldn’t give specific technical support help, so [kodi] made one that can.

The new 8 Ball foregoes the central fluid-filled chamber for an STM32 Blue Pill board with a few lithium batteries to power it. The original plastic shell was split in two with a hacksaw and fitted with a 3D printed ring which allows the two halves to be reconnected and separated again when it needs to charge. It uses a circular OLED to display the various messages of tech support, which are displayed when an accelerometer detects that the toy has been shaken.

Granted, most of the messages are about as helpful to solving a tech support issue as the original magic 8 Ball’s would have been, but we appreciate the ingenuity and carefree nature of a project like this. It also did an excellent job at operating in a low-power state as well, to avoid needing to charge it often. There have been a few other digital conversions of these analog fortune tellers as well, like this one which adds GIFs to each of the original answers.

DOOM Ported To A Single LEGO Brick

By now you’ve all seen the tiny LEGO brick with a working screen in it. The work of one [James “Ancient” Brown], it was truly a masterpiece of miniaturization and creativity. Since then, [James] hasn’t stopped innovating. Now, he’s demoing a playable version of DOOM running on a single plastic brick.

We’ve covered the construction of these astounding screen bricks before. Long story short, [James] designed a tiny PCB that hosts an RP2040 microcontroller which is then hooked up to a tiny OLED screen. The components are placed in a silicone mold, which is then filled with transparent resin to form the brick. The screen is then powered via contacts in the bottom, much like older-style LEGO motors.

Early experiments involved running various graphics to emulate a spaceship dashboard, but [James] has now gone much further. He’s implemented RP2040-doom to run the game. It uses tilt controls thanks to an accelerometer, combined with capacitive touch controls for shooting. The monochrome OLED is driven very fast with a special library of [James’] own creation to create three levels of grayscale to make the game actually visible and (just barely) playable.

It’s a hack, of course, and the controls are far from perfect. Nobody’s speed-running E1M1 on [James’s] LEGO brick, to be sure. Perchance. With that said, it’s still a glorious piece of work nonetheless. Just imagine, sitting with friends, and announcing you’re going to play some DOOM — only to pluck a piece of LEGO out of your pocket and start blasting away at demons.

Just because [James] doesn’t know when to quit, we’re going to lay down the gauntlet. Let’s get network play happening on these things, yeah?
Continue reading DOOM Ported To A Single LEGO Brick”

Pushing Crates In 8-bit Color

Moore’s law isn’t strictly holding anymore, but it is still true that most computing systems are at least trending towards lower cost over time, if not also slightly smaller size. This means wider access to less expensive hardware, even if that hardware is still an 8-bit microcontroller. While some move on to more powerful platforms as a result of this trend, there are others still fighting to push these platforms to the edge. [lcamtuf] has been working to this end, stretching a small AVR microcontroller to not only play a classic video game, but to display it on a color display. Continue reading “Pushing Crates In 8-bit Color”

More Detail On That Fantastic Lego OLED Brick

It’s always great when we get a chance to follow up on a previous project with more information, or further developments. So we’re happy that [“Ancient” James Brown] just dropped a new video showing the assembly of his Lego brick with a tiny OLED screen inside it. The readers are too, apparently — we got at least half a dozen tips on this one.

We’ve got to admit that this one’s a real treat, with a host of interesting skills on display. Our previous coverage on these bedazzled bricks was disappointingly thin on details, and now the original tweets even seem to have disappeared entirely. In case you didn’t catch the original post, [James] found a way to embed a microcontroller and a remarkably small OLED screen into a Lego-compatible brick — technically a “slope 45 2×2, #3039” — that does a great job of standing in for a tiny computer monitor.

Continue reading “More Detail On That Fantastic Lego OLED Brick”

"The Great Resistor" color code illumination project

The Great Resistor Embiggens The Smallest Value

With surface-mount components quickly becoming the norm, even for homebrew hardware, the resistor color-code can sometimes feel a bit old-hat. However, anybody who has ever tried to identify a random through-hole resistor from a pile of assorted values will know that it’s still a handy skill to have up your sleeve. With this in mind, [j] decided to super-size the color-code with “The Great Resistor”.

Resistor color code from Wikipedia with white background
How the resistor color-code bands work

At the heart of the project is an Arduino Nano clone and a potential divider that measures the resistance of the test resistor against a known fixed value. Using the 16-bit ADC, the range of measurable values is theoretically 0 Ω to 15 MΩ, but there are some remaining issues with electrical noise that currently limit the practical range to between 100 Ω and 2 MΩ.

[j] is measuring the supply voltage to help counteract the noise, but intends to move to an oversampling/averaging method to improve the results in the next iteration.

The measured value is shown on the OLED display at the front, and in resistor color-code on an enormous symbolic resistor lit by WS2812 RGB LEDs behind.

Inside view of the great resistor showing WS2812 LEDs and baffle plates
Inside The Great Resistor, the LEDs and baffle plates make the magic work

Precision aside, the project looks very impressive and we like the way the giant resistor has been constructed. It would look great at a science show or a demonstration. We’re sure that the noise issues can be ironed out, and we’d encourage any readers with experience in this area to offer [j] some tips in the comments below. There’s a video after the break of The Great Resistor being put through its paces!

If you want to know more about the history of the resistor color code bands, then we have you covered.  Alternatively, how about reading the color code directly with computer vision?

Continue reading “The Great Resistor Embiggens The Smallest Value”

Arduino hearing test device overview

DIY Arduino Hearing Test Device

Hearing loss is a common problem for many – especially those who may have attended too many loud concerts in their youth. [mircemk] had recently been for a hearing test, and noticed that the procedure was actually quite straightforward. Armed with this knowledge, he decided to build his own test system and document it for others to use.

audiogram showing the results of the arduino hearing test device
Resultant audiogram from the device showing each ear in a different color

By using an Arduino to produce tones of various stepped frequencies, and gradually increasing the volume until the test subject can detect the tone, it is possible to plot an audiogram of hearing threshold sensitivity.  Testing each ear individually allows a comparison between one side and the other.

[mircemk] has built a nice miniature cabinet that holds an 8×8 matrix of WS2812 addressable RGB LEDs.  A 128×64 pixel OLED display provides user instructions, and a rotary encoder with push-button serves as the user input.

Of course, this is not a calibrated professional piece of test equipment, and a lot will depend on the quality of the earpiece used.  However, as a way to check for gross hearing issues, and as an interesting experiment, it holds a lot of promise.

There is even an extension, including a Class D audio amplifier, that allows the use of bone-conduction earpieces to help narrow down the cause of hearing loss further.

There’s some more information on bone conduction here, and we’ve covered an intriguing optical stimulation cochlear implant, too.

Continue reading “DIY Arduino Hearing Test Device”