Chip Mystery: The Case Of The Purloined Pin

Let’s face it — electronics are hard. Difficult concepts, tiny parts, inscrutable datasheets, and a hundred other factors make it easy to screw up in new and exciting ways. Sometimes the Magic Smoke is released, but more often things just don’t work even though they absolutely should, and no amount of banging your head on the bench seems to change things.

It’s at times like this that one questions their sanity, as [Gili Yankovitch] probably did when he discovered that not all CH32V003s are created equal. In an attempt to recreate the Linux-on-a-microcontroller project, [Gili] decided to go with the A4M6 variant of the dirt-cheap RISC-V microcontroller. This variant lives in a SOP16 package, which makes soldering a bit easier than either of the 20-pin versions, which come in either QFN or TSSOP packages.

Wisely checking the datasheet before proceeding, [Gili] was surprised and alarmed that the clock line for the SPI interface didn’t appear to be bonded out to a pin. Not believing his eyes, he turned to the ultimate source of truth and knowledge, where pretty much everyone came to the same conclusion: the vendor done screwed up.

Now, is this a bug, or is this a feature? Opinions will vary, of course. We assume that the company will claim it’s intentional to provide only two of the three pins needed to support a critical interface, while every end user who gets tripped up by this will certainly consider it a mistake. But forewarned is forearmed, as they say, and hats off to [Gili] for taking one for the team and letting the community know.

IKEA BEKANT sit/stand desk with a new controller attached

LYFT: Standing Up For Better IKEA BEKANT Control

The IKEA BEKANT sit/stand desk is kind of a lifesaver — even if you don’t personally go between sit and stand much, the adjustability makes sharing the desk a breeze. Sharing was the case in [Matthias]’ house during the pandemic, as he and his wife took turns using the desk. Switching between their two preferred heights quickly became annoying, so [Matthias] engineered LYFT, a replacement controller that stores up to four settings.

In addition, the new SAMD21-based controller allows them to raise and lower the desk without having to hold the button down. And finally, having a digital readout showing the position is just plain cool. As you’ll see in the manual (PDF), LYFT is as easy to set up and use as the average flat-packed product.

In order to make this work, [Matthias] had to figure out how the desk’s motors communicate out of the box, and he did so with the help of a BEKANT controller project by [Greg Cormier]. You won’t find LYFT at the blue and yellow, at least not yet; for now, you’ll have to shop Tindie or build it yourself.

HDMI DDC Keypad Controls Monitor From Rack

Sometime last year, [Jon Petter Skagmo] bought a Dell U3421WE monitor. It’s really quite cool, with a KVM switch and picture-by-picture support for two inputs at the same time. The only downside is that control is limited to a tiny joystick hiding behind the bezel. It’s such a pain to use that [Jon] doesn’t even use all of the features available.

[Jon] tried ddcutil, but ultimately it didn’t work out. Enter the rack-mounted custom controller keyboard, a solution which gives [Jon] single keypress control of adjusting the brightness up and down, toggling picture-by-picture mode, changing source, and more.

How does it work? It uses the display data channel (DDC), which is an I²C bus on the monitor’s HDMI connector. More specifically, it has a PIC18 microcontroller sending those commands via eight Cherry MX-style blues.

Check this out — [Jon] isn’t even wasting one of the four monitor inputs because this build uses an HDMI through port. The finished build looks exquisite and fits right into the rack with its CNC-routed aluminium front panel. Be sure to check it out in action after the break.

Ever wonder how given keyboard registers the key you’re pressing? Here’s a brief history of keyboard encoding.

Continue reading “HDMI DDC Keypad Controls Monitor From Rack”

ESP32 Provides Distraction-Free Writing Experience

Writing out a few thousand words is easy. Getting them in the proper order, now that’s another story entirely. Sometimes you’ll find yourself staring at a blank page, struggling to sieve coherent thoughts from the screaming maelstrom swirling around in your head, for far longer than you’d care to admit. Or so we’ve heard, anyway.

Unfortunately, there’s no cure for writer’s block. But many people find that limiting outside distractions helps to keep the mental gears turning, which is why [Un Kyu Lee] has been working on a series of specialized writing devices. The latest version of the Micro Journal, powered by the ESP32, goes a long way towards achieving his goals of an instant-on electronic notebook.

The writing experience on the Micro Journal is unencumbered by the normal distractions you’d have on a computer or mobile device, as the device literally can’t do anything but take user input and save it as a text file. We suppose you could achieve similar results with a pen and a piece of paper…but where’s the fun in that? These devices are more widely known as writerdecks, which is an extension of the popular cyberdeck concept of hyper-personalized computers.

This newest Micro Journal, which is the fourth iteration of the concept for anyone keeping score, packs a handwired 30% ortholinear keyboard, a 2.8″ ILI9341 240×320 LCD (with SD card slot), ESP32 dev board, and an 18650 battery with associated charging board into a minimalist 3D printed enclosure.

Unable to find any suitable firmware to run on the device, [Un Kyu Lee] has developed his own open source text editor to run on the WiFi-enabled microcontroller. While the distraction-free nature of the Micro Journal naturally means the text editor itself is pretty spartan in terms of features, it does  allow syncing files with Google Drive — making it exceptionally easy to access your distilled brilliance from the comfort of your primary computing device.

While the earlier versions of the Micro Journal were impressive in their own way, we really love the stripped down nature of this ESP32 version. It reminds us a bit of the keezyboost40 and the EdgeProMX, both of which were entered into the 2022 Cyberdeck Contest.

Continue reading “ESP32 Provides Distraction-Free Writing Experience”

3D Navigator For Blender

If you work with high-end CAD workstations, you may have encountered a SpaceMouse or similar devices. Sort of a mouse with an extra dimension, they aren’t cheap. So [meisterodin1981] decided to build a do-it-yourself version for use with Blender. You can check it out in the video below.

The device uses an MPU6050 accelerometer and a spring. It also has some buttons for special features. The device uses a Teensy 2, although any controller that can provide an HID device could probably do the job. Of course, a nice 3D printed case is part of the design. A printed pair of plates holds a 3D printer bed spring to provide the device’s Z-axis movement. The wires to the encoder are routed through the center of the spring, so neatness counts.

We’ve seen other 3D mice like the Orbion. Your other option is to pick up the old-fashioned serial port versions and convert them. Until you can do your designs in virtual reality, these mice are just the ticket.

Continue reading “3D Navigator For Blender”

SatCat5: UART, SPI And I2C Via Ethernet With FPGA-Based Design

Arty A7-based prototype of SatCat5 with custom switch I/O board. (Credit: The Aerospace Corporation)
Arty A7-based prototype of SatCat5 with custom switch I/O board. (Credit: The Aerospace Corporation)

To the average microcontroller, Ethernet networks are quite a step up from the basic I2C, SPI and UART interfaces, requiring either a built-in Ethernet MAC or SPI-based MAC, with tedious translation between Ethernet and those other interfaces. Yet what if this translation could be done automatically and transparently?  This is what the SatCat5 FPGA-based project by [The Aerospace Corporation] aims to provide: a gateway akin to an unmanaged Ethernet switch that also supports those non-Ethernet links. Recently they answered a range of questions about the project on Hacker News.

The project name comes from the primary target audience: smallsat and cubesat developers, which is an area where being able to route more traffic over a common Ethernet-based bus is a major boon. The provided Xilinx Artix-7-based reference design (pictured) gives a good idea of how it can be used: it combines an Arty A7 development board with a custom PCB containing an Ethernet switch IC (SJA1105), TJA1100 transceiver, two RJ45 jacks and four PMOD connectors, here connected to two UARTs for bidirectional communication between them. Ethernet frame encapsulation is provided using the standard Serial Line Internet Protocol (SLIP), with more details covered in the FAQ. At a minimum an FPGA like a Lattice iCE40 is required, with an MCU capable of using the provided C++ libraries, or a custom implementation.

Thanks to [STR-Alorman] for the tip.

Clever E-Ink Driver Does 32 Levels Of Grey, Avoids Update Flicker, And More

There’s a lot to like about E-Ink displays, and you might be about to like them even more with [antirez]’s MicroPython driver for the Badger 2040 (or any display based on the UC8151 / IL0373) because it brings all kinds of useful features to your next project.

E-Ink displays are great. They are high contrast, daylight-readable, and require zero power to maintain a displayed image. But a few things come with the territory: displays have slow refresh rates compared to other display types, expect flickering during screen changes, and the displays are monochrome. [Antirez]’s new driver not only provides a MicroPython interface but goes in some fantastic directions that challenge those usual drawbacks.

Probably the most striking is the ability to display greyscale images without relying on dithering, which means the results avoid the charmingly gritty look of old-school dithering. Dithering has its place, but it’s not always the best choice, so options are great.

Similarly, display flicker may be a small price to pay for some, but if the obvious flicker is too boorish and crude-looking one can use an anti-flicker refresh mode that greatly limits flickering at the cost of update speed. Over time some image ghosting will accumulate which necessitates an occasional whole-screen refresh, but the effect is overall much nicer when updating something like a clock face.

How is this all done? It turns out that the controller chips for these displays are highly configurable, and it’s possible to do much more than simply drive the display in known-good and completely approved modes. It’s also entirely possible to permanently damage one’s display by doing so. Part of what makes [antirez]’s work so appealing is that he has already done the work finding workable configurations.

His driver is designed using computed LUTs (look-up tables) that make using and exploring alternative refresh modes easy and efficient, invaluable for exploring the capabilities of a patented, poorly documented technology like E-Paper displays.

We’ve seen the Badger 2040 E-Ink display in a teapot timer and a custom macropad, and [antirez]’s uc8151_micropython project is a fantastic step forward. And don’t miss another of [antirez]’s clever microcontroller hacks: playing audio without a DAC.