Python Runs Through A Zombified 8-Bit AVR

As amazing as CircuitPython is, it hasn’t yet been ported to any 8-bit microcontrollers. [Chris Heo] was unsatisfied with his inability to use Python on his 8-bit ATmega4808 AVR, so he worked out a way to zombify it and bend it to his will using Python on his PC.

The trick to making this all work is the UPDI interface: a single-wire UART interface for programming and debugging Microchip’s newer 8-bit AVR microcontrollers. UPDI reaches deep into the microcontroller’s core, allowing you to stop and start execution of microcontroller code and access all of the onboard data and I/O. [Chris] realized this could be used to stop execution of any code running on the AVR and directly control the output pins using the pyupdi library. Since UPDI lets him modify the AVR’s I/O registers, he was also able to blink an LED and use the microcontrollers UART to send a message back to his PC without compiling a single line of code.

This may seem like an entirely unnecessary hack, but for devices too small or basic to have a JTAG interface for debugging this could be the best way to test and debug peripherals in an assembled circuit. We hope this catches on and would love to see how much of the chip can be controlled in this way. Maybe this will make it easy to experiment with the programmable logic that’s on some of the newer AVRs.

Modifying Lights For DIY Ambiance

The ESP32 and ESP8266 spread like wildfire a few years ago due to their small form factor, low price, and wireless capability. They didn’t just take over the DIY scene, though. Plenty of mass market products began to incorporate these tiny chips as well, which means that there are some interesting pre-made devices around that are ripe for modification. In this case, using an off-brand smart light bulb as a base for an semi-proprietary lighting setup.

The lighting in this build is a generic RGB light bulb with the ability to control its color over Wi-Fi. Since it has an ESP8266 chip in it, it can be made to work with Philips Hue lights with some minor modifications, allowing a much wider range of control than otherwise available. For this one, [Vadim] needed to pry open the bulb case to access the chip, then solder wires to it for reprogramming. It needed power during this step which meant plugging the resulting mess of wires back into a lamp socket, but after this step the new programming allows the bulb to be reprogrammed remotely.

After that step is complete, though, the generic bulb is ready for its inclusion into a Hue lighting system. In this case, [Vadim] is using diyHue, a Hue emulator that allows control of the bulbs without needing to use any cloud services, running on a BeagleBone. It’s a fairly comprehensive way of adding many different types and brands of bulbs to one system, and avoids any subscription models or the use of a cloud service, which is always something we can get behind.

Continue reading “Modifying Lights For DIY Ambiance”

Spherical Keyboard Build Leaves Hacker Well-Rounded

Often times we as hackers don’t know what we’re doing, and we sally forth and do it anyway. Here at Hackaday, we think that’s one of the best ways to go about a new project, and the absolute fastest way to learn a whole lot as you go. Just ask [Aaron Rasmussen] regarding this spherical, standing 5×6 dactyl manuform keyboard build, which you can see in a three-part short video series embedded after the break.

[Aaron] gets right down to it in the first video. He had to get creative right away, slicing up the dactyl manuform model to fit on a tiny print bed. However, there’s plenty of room inside the sphere for all that wiring and a pair of Elite-C microcontrollers running QMK. Be sure to turn on the sound to hear the accompanying voice-overs.

The second video answers our burning question: how exactly does one angle grind a slippery sphere without sacrificing sheen or shine? We love the solution, which involves swaddling the thing in duct tape and foam.

You may be wondering how [Aaron] is gonna use any kind of mouse while standing there at the pedestal keyboard. While there is space for a mouse to balance on top, this question is answered in the third video, where [Aaron] learns the truth behind the iconic ThinkPad nubbin and applies this knowledge to build a force-feedback joystick/trackpoint mouse. Awesome answer, [Aaron]!

Not ready to go full-tilt, sci-fi prop ergo? Dip your toe in the DIY waters with a handy macropad.

Continue reading “Spherical Keyboard Build Leaves Hacker Well-Rounded”

Raspberry Pi RP2040: Hands-On Experiences From An STM32 Perspective

The release of the Raspberry Pi Foundation’s Raspberry Pi Pico board with RP2040 microcontroller has made big waves these past months in the maker community. Many have demonstrated how especially the two Programmable I/O (PIO) state machine peripherals can be used to create DVI video generators and other digital peripherals.

Alongside this excitement, it raises the question of whether any of this will cause any major upheaval for those of us using STM32, SAM and other Cortex-M based MCUs. Would the RP2040 perhaps be a valid option for some of our projects? With the RP2040 being a dual Cortex-M0+ processor MCU, it seems only fair to put it toe to toe with the offerings from one of the current heavyweights in the 32-bit ARM MCU space: ST Microelectronics.

Did the Raspberry Pi Foundation pipsqueak manage to show ST’s engineers how it’s done, or should the former revisit some of their assumptions? And just how hard is it going to be to port low-level code from STM32 to RP2040? Continue reading “Raspberry Pi RP2040: Hands-On Experiences From An STM32 Perspective”

Reverse-Engineering An Unknown Microcontroller In E Ink Displays

For a monochrome display where refresh rate isn’t particularly important, there’s almost no better option than an E Ink display. They’re available in plenty of sizes and at various price points, but there’s almost no option cheaper than repurposing something mass-produced and widely available like an E Ink (sometime also called eInk or ePaper) price tag. At least, once all of the reverse engineering is complete.

[Dmitry Grinberg] has been making his way through a ton of different E Ink modules, unlocking their secrets as he goes. In this case he set about reverse engineering the unknown microcontroller on the small, cheap display show here. Initial research showed an obscure chip from the ZBS24x family, packaged with a SSD1623L2 E Ink controller. From there, he was able to solder to the communications wires and start talking to the device over ISP.

This endeavor is an impressive deep dive into the world of microcontrollers, from probing various registers to unlocking features one by one. It’s running an 8051 core so [Dmitry] gives a bit of background to help us all follow along, though it’s still a pretty impressive slog to fully take control of the system.

If you happen to have one of these price tags on hand it’s an invaluable resource to have to reprogram it, but it’s a great read in general as well. On the other hand, if you’re more interested in reverse-engineering various displays, take a look at this art installation which spans 50 years of working display technologies.

Automated Watering Machine Has What Plants Crave: Fertilizer

We’ve seen countless automated plant care systems over the years, but for some reason they almost never involve the secret sauce of gardening — fertilizer. But [xythobuz] knows what’s up. When they moved into their new flat by themselves, it was time to spread out and start growing some plants on the balcony. Before long, the garden was big enough to warrant an automated system for watering and fertilizing.

This clever DIY system is based around a 5L gravity-fed water tank with solenoid control and three [jugs] of liquid fertilizer that is added to the water via peristaltic pump. Don’t worry, the water tank has float switches, and [xythobuz] is there to switch it off manually every time so it doesn’t flood the flat.

On the UI side, an Arduino Nano clone is running the show, providing the LCD output and handling the keypad input. The machine itself is controlled with an ESP32 and a pair of four-channel relay boards that control the inlet valve, the four outlet valves, and the three peristaltic pumps that squirt out the fertilizer. The ESP also serves up a web interface that mimics the control panel and adds in the debug logs. These two boards communicate using I²C over DB-9, because that’s probably what [xythobuz] had lying around. Check out the demo video after the break, and then go check on your own plants. They miss you!

Don’t want to buy just any old peristaltic pumps? Maybe you could print your own.

Continue reading “Automated Watering Machine Has What Plants Crave: Fertilizer”

The ARMv9 ISA, And What It Can Do For You

The number of distinct ARM Instruction Set Architectures (ISA) versions has slowly increased, with Arm adding a new version every few years. The oldest ISA version in common use today is ARMv6, with the ARMv6 ISA (ARM11) found in the original Raspberry Pi SBC and Raspberry Pi Zero (BCM2835). The ARMv6 ISA was introduced in 2002, followed by ARMv7 in 2005 (start of Cortex-A series) and ARMv8 in 2011. The latter was notable for adding 64-bit support.

With ARMv7 being the first of the Cortex cores, and ARMv8 adding 64-bit support in the form of AArch64, what notable features does ARMv9 bring to the table? As announced earlier this year, ARMv9’s focus appears to be on adding a whole host of features that should improve vector processing (vector extensions, or SVE) as well as digital signal processing (DSP) and security, with its Confidential Compute Architecture (CCA).

In addition to this, ARMv9 also includes all of the features that were added with ARMv8.1, v8.2, v8.3 and so on. In essence, this makes an ARMv9-based processor theoretically capable of going toe-to-toe with the best that Intel and AMD have to offer.

Continue reading “The ARMv9 ISA, And What It Can Do For You”