Raspberry Pi Zero Takes The Wheel In Miniature Fighting Robot

Looking to capitalize on his familiarity with the Raspberry Pi, [Sebastian Zen Tatum] decided to put the diminutive Pi Zero at the heart of his “antweight” fighting robot, $hmoney. While it sounds like there were a few bumps in the road early on, the tuxedoed bot took home awards from the recent Houston Mayhem 2021 competition, proving the year of Linux on the battle bot is truly upon us.

Compared to using traditional hobby-grade RC hardware, [Sebastian] says using the Pi represented a considerable cost savings. With Python and evdev, he was able to take input from a commercial Bluetooth game controller and translate it into commands for the GPIO-connected motor controllers. For younger competitors especially, this more familiar interface can be seen as an advantage over the classic RC transmitter.

A L298N board handles the two N20 gear motors that provide locomotion, while a Tarot TL300G ESC is responsible for spinning up the brushless motor attached to the “bow tie” spinner in the front. Add in a Turnigy 500mAh 3S battery pack, and you’ve got a compact and straightforward electronics package to nestle into the robot’s 3D printed chassis.

In a Reddit thread about $hmoney, [Sebastian] goes over some of the lessons his team has learned from competing with their one pound Linux bot. An overly ambitious armor design cost them big at an event in Oklahoma, but a tweaked chassis ended up making them much more competitive.

There was also a disappointing loss that the team believes was due to somebody in the audience attempting to pair their phone with the bot’s Pi Zero during the heat of battle, knocking out controls and leaving them dead in the water. Hopefully some improved software can patch that vulnerability before their next bout, especially since everyone that reads Hackaday now knows about it…

While battles between these small-scale bots might not have the same fire and fury of the televised matches, they’re an excellent way to get the next generation of hackers and engineers excited about building their own hardware. We wish [Sebastian] and $hmoney the best of luck, and look forward to hearing more of their war stories in the future.

VGA Library For The Raspberry Pi Pico

[Miroslav Nemecek] really pushes the limits of the Pico with his PicoVGA project, which packs a surprising number of features. His main goal with this library is to run retro games which can fit within the limited RAM and processing power of the Pico, but the demo video below shows a wide array of potential applications.

The library provides a whole slew of features, including frame buffering, sprites, overlays, and resolutions up to 1280×960 in either NTSC or PAL timings. A PWM-driven audio output channel is also included in the package. His library takes full advantage of the programmable I/O module functionality and uses the second core which is dedicated to video processing. However, with care, the second core can perform application tasks in certain circumstances. The VGA analog output signals are provided by resistor ladders, and pixel color is 8-bit R3G3B2 format. To be clear, [Miroslav] does cheat a little bit here in one regard — he overclocks the processor up to 270 MHz to meet the timing demands in some of the resolutions.

[Miroslav] has developed these tools using ARM-GCC on Windows, but he lacks the experience to make a Linux build. He welcomes help on that front from anyone familiar with Linux. And stay tuned — there may be more coming from [Miroslav] in the future. He notes that the PicoVGA library was created as part of a retro gaming computer project which is still under development. We look forward to hearing more about this when it gets released.

A couple of weeks ago we wrote about a monochrome VGA version of Pong for the Pico by [Nick Bild]. It’s exciting to see these projects which are exploring the limits of the Pico’s capabilities. Have you seen any boundary-pushing applications for the Pico? Let us know in the comments below. Thanks to [Pavel Krivanek] for sending this project to our tip line.

Continue reading “VGA Library For The Raspberry Pi Pico”

JTAG Hat Turns Raspberry Pi Into A Networked Debugger

Over the last year or so we’ve noticed a definite uptick in the number of folks using OpenOCD on the Raspberry Pi. It’s a cheap and convenient solution for poking around with various microcontrollers and embedded devices, but not always the most elegant. Looking to improve on the situation somewhat, [Matthew Mets] has been working on a purpose-built JTAG Hat to clean things up a bit.

Onboard level shifters allow you connect to JTAG and SWD interfaces from 1.8 to 5 V, and if you power the target device from the Pi itself, there’s even support for measuring the voltage and current. To connect up to your target, the open hardware board features a “legacy” pin header perfect for jumper wires, as well as a dedicated 10-pin Cortex Debug Connector. Whether you spin up your own or buy one assembled, it certainly looks like a tool worth having around if you often find yourself working with the appropriate chips.

In addition to the design files for the hardware, [Matthew] has also provided some nice documentation on how to get the software side of things up and running. Starting with a blank SD card, it walks you through the initial setup of the Raspberry Pi all the way through the installation and configuration of a patched version of OpenOCD designed to support the JTAG Hat.

If you spend more time working with 8-bit AVR chips, don’t worry. Last year we covered a similar project to turn everyone’s favorite Linux SBC into an all-in-one microcontroller development powerhouse.

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”

Play Your Favorite Nokia Game On The Raspberry Pi Pico

In many people’s memories, Snake lived and breathed on Nokia handsets from the late 90s and early 2000s. However, the game has been around for much longer than that, and will continue to live on in the future. That’s at least in part thanks to people like [Hari Wiguna] keeping it alive by implementing it on new platforms.

[Hari] set about writing Snake in MicroPython for the Raspberry Pi Pico. The hardware side of things is simple enough – five buttons hooked up to the Pico, along with an 128×64 I2C OLED screen to display the game on. On the software side of things, [Hari] pushed the boat out, deciding that his version of Snake had to have the player character slither like the real thing. This took a little effort to get right, particularly when navigating corners in different directions. However, perseverance paid off and [Hari] got the job done.

Code is on GitHub for those that want to tinker at home. It’s a tidy piece of work, though not the weirdest place we’ve seen the game appear – we’ve actually seen it run within PCB routing software before thanks to some nifty scripting. Video after the break. Continue reading “Play Your Favorite Nokia Game On The Raspberry Pi Pico”

Soviet Super 8 Camera Hides Raspberry Pi Zero

A few years ago [Xabier Zubizarreta] got it into his head that he wanted to put a modern digital image sensor into a classic Super 8 camera, but he didn’t want to ruin a gorgeous piece of vintage hardware in the process. After a bit of research, he discovered an export version of the Avrora camera made for the 1980 Summer Olympic Games in Moscow that could be had for cheap. Figuring nobody would miss a camera built with the utilitarian aesthetics you’d expect of a Soviet-era piece of consumer tech, he set off to cram a Raspberry Pi into its film compartment.

On the Hackaday.io page for this project, [Xabier] explains a bit about the optical properties that make this project challenging. Specifically, the miniature sensor used by the official Raspberry Pi camera module is far smaller than the 8 mm film the camera was designed for. So when the sensor placed at the appropriate focal length for the original film, the image will be cropped considerably. As you can see in the video below, this gives the impression of everything being filmed with a fairly tight zoom.

To perform this modification, [Xabier] first had to liberate the sensor of the Pi Camera from the original optics, and then carefully install it in proper position on the Avrora. To make sure he had it aligned, he watched a live feed from the camera while the epoxy holding the sensor down was curing. This allowed him to make slight adjustments before everything was solidified. With the sensor in place, he only had to stuff the Pi Zero and battery pack into the film compartment, and wire the original camera trigger to the GPIO pins so he could read it in software.

Considering the incredible amount of effort some photographers have put in to adapt their vintage cameras to digital, it’s refreshing to see such a straightforward approach. The resulting video might not be up to modern standards, but with projects like this, that’s sort of the point.

Continue reading “Soviet Super 8 Camera Hides Raspberry Pi Zero”

3D Printer Control Board Packs A Raspberry Pi Compute Module 4

Traditionally, 3D printer control boards have used simplistic 8-bit microcontrollers to command the stepper drivers and ultimately move the machine where it needs to go. Newer boards have switched over to 32-bit microcontrollers, but they’re still relatively limited computationally. Because of this, a Raspberry Pi running OctoPrint is usually used to provide more complex features such as remote management and live video.

Looking to combine these different devices into a single all-in-one board, [pkElectronics] developed the Sigmoid S7P. With an STM32 microcontroller, TMC2209 stepper drivers, a Raspberry Pi Compute Module 4, and plenty of room for expansion, it promises to be a drop-in upgrade for essentially any 3D printer running on an open source firmware that could be ported over.

An earlier concept for the Sigmoid

According to [pkElectronics], the idea for the Sigmoid had been floating around for several years, but never got off the ground due to the difficulties in dealing with the SO-DIMM interface used by previous iterations of the Compute Module. But with the switch to smaller and denser connector for the CM4, the board finally started to take shape.

Whether you just used it as a convenient way to integrate OctoPrint into your printer, or want to get into something more advanced like Klipper, the Sigmoid S7P looks like a very exciting project. [pkElectronics] says they are considering producing the board commercially if there’s interest, so if you want one of these for your own custom 3D printer build, let them know.