Part of a picture showing all kinds of different CAN devices in a car

CAN Peripheral For RP2040, Courtesy Of PIO

[Kevin O’Connor] writes to us about his project, can2040adding CAN support to the RP2040. The RP2040 doesn’t have a CAN peripheral, but [Kevin] wrote code for the RP2040’s PIO engine that can receive and send CAN packets. Now we can all benefit from his work by using this openly available CAN driver. This library is written in C, so it’s a good fit for the lower-level hackers among us, and in all likelihood, it wouldn’t be hard to make a MicroPython wrapper around it.

The CAN bus needs a peripheral for the messages to be handled properly, and people have been using external chips for this purpose until now. These chips, [Kevin] tells us, have lately been unavailable due to the chip shortage, making this project more valuable. The documentation is extensive and accessible, and [Kevin] details how to best use this driver. With such a tool in hand, you can now turn your Pico into a CAN tinkering toolkit, or wire up some CAN devices for use in your own projects!

[Kevin] says this code is already being used in Klipper, a framework powering 3D printers and other machines like them. As for your own purposes, you can absolutely use such a CAN tool to hack on your car – here’s a treasure trove of car hacking documentation, by the way! Thanks to the PIO engine, there seems to be no end to the RP2040’s versatility – you can even drive HDMI monitor with this PIO-based DVI code.

Continue reading “CAN Peripheral For RP2040, Courtesy Of PIO”

Badges Of 2022: BornHack

While the rest of the world’s hacker camps shut their doors through the pandemic there was one which managed through a combination of careful planning and strict observation of social distancing to keep going. The Danish hacker community gather every August for BornHack, a small and laid-back event in a forest on the isle of Fyn that has us coming back for more every year. They always have an interesting badge thanks to the designs of [Thomas Flummer], and this year looks to be no exception as they’ve dropped some details of the upcoming badge.

In short, it’s a beautifully designed hand-held games console with a colour screen, powered by the ubiquitous-in-the-chip-shortage RP2040 microcontroller. On board are the usual interfaces and a prototyping area plus CircuitPython for easy coding, and we expect it to sprout some addictive and playable gaming action. It’s the sort of PCB that we could imagine coming as a product from the likes of Pimoroni, but for now the only way to get your hands on one is to go to the event. We’ll being you a review when we have one. Meanwhile you can take a look at a previous year’s badge.

Raspberry Pi Pico W Adds Wireless

News just in from the folks at Raspberry Pi: the newest version of their Pico has WiFi and is called, obviously, the Pico W. We were going to get our hands on a sample unit and kick its tires, but it’s stuck in customs. Boo! So until it shows up, here’s what we can glean from the press releases and documentation.

The Pico is, of course, the Raspberry Pi microcontroller dev board based on their RP2040 microcontroller. This in turn has two Cortex M0+ cores and a good chunk of onboard RAM, which has made it a popular target for MicroPython. They had some extra real estate on the PCB, so they’ve added an Infineon CYW43439 WiFi chip, and voila: Pico W.

As of now, the WiFi is supported in both the C SDK and the pre-baked MicroPython image. It looks trivially easy to get it working, and it’s based on the time-tested lwIP stack, a classic in the embedded world. The CYW43439 is also Bluetooth capable, but there’s no firmware support for that yet, but we wouldn’t be surprised if it showed up soon.

The price? $6 for the whole shooting match. You can view this two ways: a small $2 premium over the old Pico, or a price increase of 50%. How you see things probably depends on your order quantity. Either way, it’s firmly in the ESP32 module price range, so you’ve got some comparison shopping to do if your project needs a microcontroller and WiFi. And in these days of silicon shortages, it’s nice to have a couple of options.

What Do You Get When A Raspberry Pi Pico Flashes A Nintendo 64

The joke was when the Nintendo 64 first hit the streets around a quarter century ago, that the 64 in the name referred not to the technology on board, but to the excessive cost of the cartridges. Whatever the truth in that, it’s something now completely laid to rest by [Konrad Beckmann] with his Nintendo 64 flash cart powered by a Raspberry Pi Pico (Nitter Link).

The schematic is surprisingly simple, in that the Pico does everything required to both interface to the N64 and to an SD card to hold the software. The clever work is done by the RP2040 firmware, which can be found along with the hardware details in the “develop” branch of the project’s GitHub repository. And while the earliest version was a Raspberry Pi Pico with a host of jumper wires, the more polished version focuses on a custom PCB and bare RP2040 chip.

Perhaps the N64 hasn’t received the attention it should have over the years, overshadowed as it was by its competitors such as the original PlayStation, but it’s projects like this one which remind us that there’s still life in Nintendo’s ’90s flagship. Speaking of which, if you were on Team Sony back in the day but still want to put your Pi Pico to use, check out this DIY PlayStation Memory Card we covered recently.

A Simple RP2040-Based Audio DSP Board

If you’re one of those people who got into building electronics for the purpose of making music, then this Raspberry Pi RP2040-based audio DSP project by [DatanoiseTV] might be of interest. Provided is a FreeRTOS template application for creating Eurorack compatible synthesizers, effects processors, and similar DSP-based audio widgets.

The hardware platform has the usual Eurorack connectivity, including MIDI in, Control Voltages (CV) and the usual 5V-compatible triggers. An audio output is provided to send the audio out to the system mixer or any other analog modules. Additionally, connections are provided for a rotary encoder, a few push buttons, and an OLED display to allow construction of a rudimentary user interface on the module, if that is required.

The application template is generic enough, however the project is intended to be used with the Vult DSP transcompiler. Vult is a high-level programming language designed to enable easy creation of audio synthesizers and similar, producing C++ code as an output of the compilation process. This is then wrapped up with the RTOS goodies (although you don’t actually need them) to drop onto the RP2040 in the usual way, via the handy USB-C port. So, if you’re looking to get into DSP-based Eurorack modules for your homebrew synth rack, this might be a good place to start.

Just like the RP2040 isn’t the most obvious choice for a DSP application, neither is the ESP32 for that matter, but who cares? many modern micros are more than capable of audio DSP these days, with or without the dedicated functionality.

The RP2040 Doth A Motor Controller Make

When the Raspberry Pi people launched their RP2040 microcontroller, it seemed as though it might be destined as a niche product for those areas in which the Pi has traditionally been strong. But during the global semiconductor shortage, it has remained almost alone among microcontrollers in having plenty of fab capacity to keep the supplies rolling. That, and its very vanilla set of ARM peripherals alongside those programmable state machines have thus seen it find a home in many places it might not otherwise have seen. Take the dual RP2040 motor controller from [Twisted Fields] as an example, would it have been more likely to have sported an STM32 in previous years?

It’s been produced as part of the Acorn Precision Farming Robot platform, and it’s a fully open-source two-channel controller on a board the same size as a credit card. The schematic appears fairly conventional through a cursory glance at the PDF, but we know from experience that motor controllers are never as deceptively simple to get right as their circuit would lead the unwary engineer to believe. The heat dissipation, current, and transient handling all play a part in a successful design, and we expect this one to evolve to fix any issues it might still contain.

If you’d like to remind yourself about the Acorn farming robot, then take a look at our earlier coverage of the project.

Thanks [Mark] for the tip.

Odd Inputs And Peculiar Peripherals: A MacroPad With A Handy Layout Screen

The idea of a macro keypad is a great one, a set of keys programmable with frequent but complex tasks. But once programmed, how can the user keep track of which key does what? To save the world from grubby, hand-written sticky labels, here’s [Andreas Känner] with the Badger 2040 keypad — a macro pad with a display to show keymap info that’s fully programmable using CircuitPython.

At its heart is a Pimoroni Badger 2040 e-ink screen and RP2040 board which sits in a 3D-printed enclosure which in turn magnetically attaches to a 3D-printed keyboard enclosure. Inside is an I/O expander board, which is hand-wired to the switches. The firmware allows for easy configuration and even extension of the keypad itself, and presents itself to the host computer through USB. It’s even possible to have multiple different layouts on the same device.

Full details can be found in a comprehensive write-up on his website, and all the files are in a GitHub repository. If this doesn’t satisfy your need for customisable input goodness, then it’s not the first macro keypad we’ve shown you.