It’s almost hard to believe these days, what with modern game consoles packing terabytes of internal storage, but there was a time when the totality of your gaming career would be stored on an external memory card that held just a few megabytes of save data. Of course, before that you had to write down a sequence of random letters and numbers to pick up where you left off, but that’s a story for another day.
While the memory card concept might be quaint to the modern gamer, its modular nature does provide the hacker with some interesting avenues to explore. For example, take a look at the very impressive PicoMemcard project from [Daniele Giuliani]. Hardware wise, it doesn’t get much simpler than this. You just take the PCB from a cheap (or dead) PlayStation memory card, and solder seven jumpers to the edge connector contacts so you can plug them into the Pico. Then you’ve just got to upload the firmware to the Pico, and you’re done. Continue reading “Raspberry Pi Pico Replaces PlayStation Memory Card”→
It’s said that good things come in small packages, which is hard to deny when we look at all the nifty projects out there that were built into an Altoids tin. Now, if that’s already true for the regular sized box, we can be doubly excited for anything crammed into their Smalls variety ones, which is what [Kayden Kehe] decided to use as housing for his mintyPico, a tiny gaming console running homebrew versions of Snake, Breakout, Pong, and a few more.
As the “Pico” might have already given away, the project is built around a Raspberry Pi Pico board, and being intended as portable device, [Kayden] went with a version that also houses LiPo battery charging circuitry. A set of 3d-printed parts pack the board along with a matching battery and a button panel neatly into the tin itself, while a size-appropriate SSH1106 OLED goes into the lid. All design files along with the MicroPython code of the games can be found on the project’s GitHub page.
You may have felt this strange sense of familiarity when you read the project’s name, and indeed, the mintyPi gaming console was a major inspiration for [Kayden] here, as was the Pico Snake project. Considering this was his junior year high school project, this is certainly an impressive and nice mash-up of those two projects.
The PiPi Mherkin really, really can’t get much smaller. The diminutive keyboard design mounts directly to the Pi Pico responsible for driving it, has a similar footprint, and is only about 9 mm thick. It can’t get much smaller since it’s already about as small as the Pi Pico itself.
Running on the Pi Pico is the PRK firmware, a keyboard framework that makes the device appear as a USB peripheral, checking the “just works” box nicely. The buttons here look a little sunken, but the switches used are available in taller formats, so it’s just a matter of preference.
We have to admit the thing has a very clean look, but at such a small size we agree it is perhaps more of a compact macropad than an actual, functional keyboard. Still, it might find a place in the right project. Design files are online, if you’re interested.
If you like small, compact keyboards but would prefer normal-sized keys, check out the PiPi Mherkin’s big brother, the PiPi Gherkin which gets clever with dual-function tap/hold keys to provide full functionality from only 30 keys, with minimal hassle.
The build uses a Raspberry Pi Pico, which employs PWM to control the speed of the tape drive’s motor. This is achieved with the use of an NPN transistor driven by the PWM output of the Pico. This allows accurate control of motor speed, and thus pitch.
With that sorted out, the project was fleshed out with an OLED screen and a rotary encoder. These allow various patches or scripts to be run on the Pico, controlling the motor speed of the tape player in various ways. With a bit of work, [Issac] was also able to create a function that converted MIDI note values into PWM values that determine various motor speeds.
The natural thing to do next was to put in a tape with a looping sample at a set pitch, and then vary it in a sequence controlled by the Pico. The 8 steps of the sequence can be manually set with the rotary control, and in future, [Issac] even plans to add a real MIDI input, allowing the system to act as a monophonic synth.
If you prefer other routes to pitch shifting shenanigans, check out this project. Video after the break.
If you’re a radiation enthusiast, chances are you’ve got a Geiger counter lying around somewhere. While Geiger counters are useful to detect the amount of radiation present, and with a few tricks can also distinguish between the three types of radiation (alpha, beta and gamma), they are of limited use in identifying radioactive materials. For that you need a different instrument called a gamma-ray spectrometer.
Spectrometers are usually expensive and complex instruments aimed at radiation professionals. But it doesn’t have to be that way: physics enthusiast [NuclearPhoenix] has designed a hand-held gamma spectrometer that’s easy to assemble and should fit in a hobbyist budget. It outputs spectral plots that you can compare with reference data to identify specific elements.
The scintillator and sensor are wrapped in black tape to block out ambient light.
The heart of the device is a scintillation crystal such as thallium-doped sodium iodide which converts incoming gamma rays into visible light. The resulting flashes are detected by a silicon photomultiplier whose output is amplified and processed before being digitized by a Raspberry Pi Pico’s ADC. The Pico calculates the pulses’ spectrum and generates a plot that can be stored on its on-board flash or downloaded to a computer.
JTAG is a powerful interface for low-level debugging and introspection of all kinds of devices — CPUs, FPGAs, MCUs and a whole lot of complex purpose-built chips like RF front-ends. JTAG adapters can be quite obscure, or cost a pretty penny, which is why we’re glad to see that [Adam Taylor] from [ADIUVO] made a tutorial on using your Pi Pico board as a JTAG adapter. This relies on a project called XVC-Pico by [Dhiru Kholia], and doesn’t require anything other than a Pi Pico board itself — the XVC-Pico provides both a RP2040 firmware implementing the XVC (Xilinx Virtual Cable) specification and a daemon that connects to the Pico board and interfaces to tools like Vivado.
First part of the write-up is dedicated to compiling the Pico firmware using a Linux VM. There’s a pre-built .uf2 binary available in the GitHub repo, however, so you don’t have to do that. Then, he compiles and runs a daemon on the PC where the Pico is connected, connects to that daemon through Vivado, and shows successful single-stepping through code on a MYIR Z-turn board with a Xilinx XC7Z020. It’s worth remembering that, if your FPGA’s (or any other target’s) JTAG logic levels are 1.8V or 2.5V-based, you will need a level shifter between it and the Pi Pico, which is a board firmly in the 3.3V realm.
Robotic mowers are becoming a common sight in some places, enabled by the cost of motors and the needed control electronics being much lower, thanks to the pace of modern engineering. But, in many cases, they still appear to be really rather dumb, little more than a jacked up bump-and-go with a spinning blade. [Clemens Elflein] has taken a cheap, dumb mower and given it a brain transplant based around a Raspberry Pi 4 paired up with a Raspberry Pi Pico for the real time control side of things. [Clemens] is calling this OpenMower, with the motivation to create an open source robot mower controller with support for GPS navigation, using RTK for extra precision.
The donor robot was a YardForce Classic 500, and after inspection of the control PCB, it looks like many other robot mower models are likely to use the same controller and thus be compatible with the openmower platform. A custom mainboard houses the Pi 4 and Pico, an ArduSimple RTK GPS module (giving a reported navigational accuracy of 1 cm,) as well as three BLDC motor drivers for the wheels and rotor. Everything is based on modules, plugging into the mainboard, reducing the complexity of the project significantly. For a cheap mower platform, the Yardforce unit has a good build quality, with connectors everywhere, making OpenMower a plug and play solution. Even the user interface on top of the mower was usable, with a custom PCB below presenting some push buttons at the appropriate positions.
OpenMower mainboard
Motor control is courtesy of the xESC project, which provides FOC motor control for low cost, interfacing with the host controller via a serial link. This is worth looking into in its own right! On the software side of things, [Clemens] is using ROS, which implements the low level robot control, path planning (using code taken from Slic3r) as well a kinematics constraints for object avoidance. The video below, shows how simple the machine is to operate — just drive it around the perimeter of lawn with a handheld controller, and show it where obstacles such as trees are, and then set it going. The mower is even capable of mowing multiple lawns, making the journey between them automatically!