An 128x64 OLED display with a weird image on it, showing a mouse cursor, date and time in the bottom right corner, and a whole lot of presumably dithered dots

Making Your Own Technically-HDMI OLED Monitor

One day, [mitxela] got bored and decided to build his own HDMI monitor – the unconventional way. HDMI has a few high-speed differential pairs, but it also has an I2C interface used for detecting the monitor’s resolution and issuing commands like brightness control. In fact, I2C is the backbone for a lot of side channels like these – it’s also one of our preferred interfaces for connecting to cool sensors, and in this case, an OLED display!

[mitxela] describes his journey from start to end, with all the pitfalls and detours. Going through the pinout with a broken hence sacrificial HDMI cable in hand, he figured out how to probe the I2C lines with Linux command-line tools and used those to verify that the display was recognized on the HDMI-exposed I2C bus. Then, he turned to Python and wrote a short library for the display using the smbus bindings – and, after stumbling upon an FPS limitation caused by SMBus standard restrictions, rewrote his code to directly talk to the I2C device node, raising FPS from 2 to 5-10.

From there, question arose – what’s the best software route to take? He tried making a custom X modeline on the HDMI port the display was technically attached to, but that didn’t work out. In the end, he successfully employed the Linux capability called “virtual monitors”, and found out about an interesting peculiarity – there was no mouse cursor to be seen. Turns out, they’re typically hardware-accelerated and overlaid by our GPUs, but in [mitxela]’s case, the GPU was not involved, so he added cursor support to the picture forwarding code, too.

With partial refresh, the display could be redrawn even faster, but that’s where [mitxela] decided he’s reached a satisfactory conclusion to this journey. The write-up is a great read, and if videos are more your forte, he also made a video about it all – embedded below.

We first covered the ability to get I2C from display ports 14 years ago, and every now and then, this fun under-explored opportunity has been popping up in hackers’ projects. We’ve even seen ready-to-go breakouts for getting I2C out of VGA ports quickly. And if you go a bit further, with your I2C hacking skills, you can even strip HDCP!

We thank [sellicott] and [leo60228] for sharing this with us!

Continue reading “Making Your Own Technically-HDMI OLED Monitor”

ATtiny85 Snake Game Is A Circuit Sandwich

If there’s any looming, unwritten rule of learning a programming language, it states that one must break in the syntax by printing Hello, World! in some form or another. If any such rule exists for game programming on a new microcontroller, then it is certainly that thou shalt implement Snake.

This is [__cultsauce__]’s first foray away from Arduinoville, and although they did use one to program the ATtiny85, they learned a lot along the way.

It doesn’t take much to conjure Snake with an ’85 — mostly you need a screen to play it on (an OLED in this case), some buttons to direct the snake toward the food dot, a handful of passives, and a power source.

[__cultsauce__] started by programming the microcontroller and then tested everything on a breadboard, both of which are admirable actions. Then it was time to make this plywood and cork sandwich, which gives the point-to-point solder joints some breathing room and keeps them from getting crushed. Be sure to check it out in action after the break, and grab the files from GitHub if you want to charm your own ‘tiny Snake.

There’s a ton you can do with this miniature microcontroller, and that includes machine learning.

Continue reading “ATtiny85 Snake Game Is A Circuit Sandwich”

Backpack Board For OLEDs Boasts Fancy Features

Back when LCD character displays based on the HD44780 controller were the bee’s knees, a way to make them easier to work with came in the form of “backpack” PCBs, which provided an accessible serial interface and superior display handling at the same time. [Barbouri] has updated that idea with a backpack board that mounts to OLED displays using the US2066 display driver, and provides an I2C interface with powerful and convenient high-level functions that make the display simple to use.

On the software side, the backpack uses this I2cCharDisplay driver project which provides functions like cursor control, fading, display shifting, and of course writing characters or strings. While [Barbouri] designed the board specifically to accommodate Newhaven Slim Character OLED displays, it should in theory work with any US2066-based OLED character display. [Barbouri]’s design files for the Slim-OLED Display backpack board are available for download directly from the project page (link is near the bottom), or boards can be purchased directly from OSH Park.

OLED technology is nifty as heck; we’ve seen some neat tricks done by stacking transparent OLED displays, and even seen OLEDs made in the home lab.

A DIY CAD Mouse You Can Actually Build

When you spend a lot of time on the computer doing certain more specialised tasks (no, we’re not talking about browsing cat memes on twitter) you start to think that your basic trackpad or mouse is, let’s say, lacking a certain something. We think that something may be called ‘usability’ or maybe ease-of-use? Any which way, lots of heavy CAD users gush over their favourite mouse stand-ins, and one particularly interesting class of input devices is the Space Mouse, which is essentially patented up-to-the-hilt and available only from 3DConnexion. But what about open source alternatives you can build yourselves? Enter stage left, the Orbion created by [FaqT0tum.] This simple little build combines an analog joystick with a rotary knob, with a rear button and OLED display on the front completing the user interface.

The idea is pretty straightforward; you setup the firmware with the application you want to use it with, and it emits HID events to the connected PC, replacing the mouse or keyboard input. Since your machine will take input from multiple sources, it doesn’t replace your mouse, it augments it. It may not be very accurate for detailed PCB layout work, but for moving around in a 3D view, or dialling in a video edit, this could be a very useful addition to your workstation, so why not give it a try? The wiring is simple, the parts easily found and cheap, and it’s only a few printed parts! This scribe is already printing the plastics right now, if you listen carefully you might be able to make out the sound of the Lulzbot in background.

There are many other takes on this idea, with varying levels of complexity, like this incredible build from [Ahmsville] that sadly doesn’t make the PCBs available openly, and here’s one we covered earlier mashing the expensive 3DConnexion spacemouse into a keeb.

Continue reading “A DIY CAD Mouse You Can Actually Build”

Self balancing wheeled robot with auto-righting arms lofted high

A Self Righting Balancing Robot Configured The Easy Way

Norwegian electronics hacker [Hans Jørgen] aka [time expander] on YouTube, has a clear interest in robotics, and for his latest effort, decided that it was time to build a custom controller platform. Since [Hans] had a pile of Dynamixel servo motors lying around to test it with, a good first project for the platform was a simple self-balancing wheeled robot. (Video, embedded below)

We say ‘simple’ but that isn’t really the case, as there is a fair bit going on to get this to work. The first problem, is sensing, which was quickly solved with the excellent BMO055 IMU chip. Next, what to do when it falls over? Simply adding some servo-controlled arms, allowed the robot to flip itself back upright. Control is covered with a ESP32-WROOM-32D module from our friends at Espressif, which enables remote firmware uploading over the air (OTA update) as well as parameter tuning. In order to implement the latter, [Hans] chose to use bonjour/mDNS which is an implementation of zero-configuration networking. This gets the ESP32 onto the WiFi, but it isn’t immediately obvious how to connect to it, without a little digging around. To simply connection, [Hans] implemented a dynamic QR code via the connected OLED. This is just one of the those tiny 0.96″ displays that you see touted all over our corners of the internet.

Simply by scanning the QR code with any compatible device to hand brings up a simple configuration web page, allowing one to tweak the PID controller parameters, and get that balancing robot into check. Great stuff!

The PCB was designed in Eagle, firmware for the ESP32 is available, 3D models for the plastic are designed with fusion 360, and [Hans] is even currently working on some preliminary Alexa integration. What a fun project!

All the above, albeit an early cut (look out for bugs!) is available on the project GitHub for your viewing pleasure.

We’re no stranger to self-balancing 3D-printed bots, whilst you’re here, why not checkout A problematic Self-Balancing Sonic the Hedgehog? If wheeled bots aren’t your cup-of-tea, there’s a not-at-all freaky one-legged bouncing bot that may be of interest.

Continue reading “A Self Righting Balancing Robot Configured The Easy Way”

Prepare For Wildfire Season With An Air Quality Monitor

For some reason, wildfire seasons in Australia, North America, and other places around the world seem to happen more and more frequently and with greater and greater fervor. Living in these areas requires special precautions, even for those who live far away from the fires. If you’re not sure if the wildfires are impacting your area or not, one of the tools you can build on your own is an air quality meter like [Costas Vav] shows us in this latest build.

The air quality indicator is based around an Adafruit Feather RP2040 which is in turn based on the 32-bit Cortex M0+ dual core processor. This makes for a quite capable processor in a small package, and helps accomplish one of the design goals of a rapid startup time. Another design goal was to use off-the-shelf components so that anyone could easily build one for themselves, so while the Feather is easily obtained the PMS5003 PM2.5 air quality sensor needed to be as well. From there, all of the components are wrapped up in an easily-printed enclosure and given a small (and also readily-available) OLED screen.

[Costas Vav] has made all of the files needed to build one of these available, from the bill of materials to the software running on the Pi-compatible board to the case designs. It’s a valuable piece of technology to have around even if you don’t live in fire-prone areas. Not only can wildfire smoke travel across entire continents but simple household activities such as cooking (especially with natural gas or propane) can decimate indoor air quality. You can see that for yourself with an army of ESP32-based air quality sensors.

A Hackable Keyboard That Even Has Screens

There are a huge number of available keyboards out in the world these days, catering to all of the plainest and the most advanced desires. However, if you want something that’s just right, sometimes it pays to build your own. [Zach] did just that.

One of the key features of [Zach]’s build is that it diverges away from the Cherry MX switch form factor. The design uses low-profile switches instead, which help with keeping the keyboard low enough to avoid it causing wrist problems. The keyboard also uses IO expanders to hook up all the key switches, helping to reduce the incidence of ghost keys. The board can also be split in half, allowing it to be repurposed as a smaller macropad when desired.

It’s all wrapped up in a cool 3D printed case, and there are even three OLED displays on the right-hand side. They’re soldered to the PCB on special cutouts that allow the displays to flex and trigger tactile switches, acting as giant pressable buttons.

[Zach] does a great job explaining all the nifty engineering decisions he made to cram maximum functionality into the design. We’ve seen some other great DIY ergonomic designs too. Video after the break.

Continue reading “A Hackable Keyboard That Even Has Screens”