Tag Archives: rp2040

Meet Depot, an RP2040-based multi-bus adaptor for Macs and Linux PCs

I’d like to introduce you to Depot, the new name for an expanded version of the Raspberry Pi RP2040-based adaptor I launched last year as cli2c. Why the name change? In addition to I²C, the firmware and the client-side code that interacts with it, now supports 1-Wire, and more buses will be supported soon.

Depot client and adaptor firmware in action
Depot client and adaptor firmware in action
Continue reading

Pico SDK 1.5.0 revamps IO over USB — and makes it work

The Raspberry Pi company released version 1.5.0 of the Pico SDK a week ago — right after I issued the latest version of my desktop computer-oriented I²C adaptor, which is based on the Pico’s RP2040 chip. If I’d have known about the SDK update, I would have held back — SDK 1.5.0 solves an irritating problem I’d faced with unexplained adaptor firmware hangs.

The RP2040 based I2C adaptor here running on a Pimoroni Tiny 2040 and with a matrix LED connected
Continue reading

Review: Picoprobe PCB Kit 1.0 👎🏻

I haven’t been using a Picoprobe for a while because I needed to rebuild mine and issues with the code’s dependencies and a lack of updates from the Raspberry Pi Foundation meant I haven’t been able to get it to work properly. But I did spot this doohickey: a PCB you can solder a Pico and a header. It’s a much neater way to assemble a Picoprobe than breadboard and jumper wires.

Streamline your Picoprobe setup into a single, slim board
Streamline your Picoprobe setup into a single, slim board
Continue reading

How to use the RP2040’s Flash in CircuitPython apps

Here’s a very useful technique if you’re working on a CircuitPython program that you need to store data on the host microcontroller’s Flash — and to continue to be able to mount and access the device from your computer. I’ve used it with a Raspberry Pi RP2040-based board, but it should work with other CircuitPython devices too.

A typical mounted CircuitPython device: files are accessible, but the app can’t access the Flash
A typical mounted CircuitPython device: files are accessible, but the app can’t access the Flash
Continue reading

How to copy files to a Pico on a Ventura Mac error free

macOS 13.0.0 Ventura introduced an irritating problem for all us Mac-based Raspberry Pi Pico programmers: Finder no longer allows you to copy .uf2 files to a mounted Pico. It’s not a forbidden operation, but it does trigger an error that prevents the copy from taking place. This is undoubtedly the ‘new normal’, so here are some ways to circumvent the error. I’ll save the best one until last.

The macOS Ventura copy-to-Pico-in-Finder error
The macOS Ventura copy-to-Pico-in-Finder error
Continue reading

Review: Kitronic Pico Pin Breakout 👍🏻

A short post, this, to recommend Kitronic’s Pico Pin Breakout: an add-on that makes it really easy to make sure you’re wiring up a Raspberry Pi Pico’s pins correctly. It looks like this:

The Kitronics Pico Pin Breakout makes all the Pico's pins highly visible
Continue reading

How to talk to I2C sensors, displays from a Mac

This post was originally going to be about building a tool to access I²C devices on a Mac, reaching them via USB and an Excamera Labs I2CMini adaptor board. But then I accidentally snapped the pins and board traces off my I2CMini, so I had to go back to the drawing board. Now it’s about accessing I²C devices on a Mac using a Raspberry Pi Pico, or any other RP2040-based board, as the adaptor.

An I2C matrix display showing my Mac's CPU utilisation graphically
I2C antics: a CPU utilisation readout using an RP2040-based board as an I2C bridge to a matrix LED
Continue reading

ARM Assembly on the Pi Pico: Mnemonics #1

Last time, I covered the basics of doing ARM assembly programming on the Raspberry Pi Pico’s RP2040 microcontroller. Now it’s time to get to grips with the dozens of instructions to which the RP2040’s Cortex-M0+ cores respond.

ARM assembly instructions for the Raspberry Pi Pico's RP2040 chip
Continue reading

Get Started with ARM Assembly on the Pi Pico

When I got my first microcomputer, I already knew Basic programming. My machine had a different Basic dialect from the one I’d learned at school, and there was a stack of graphics and sound functionality to get to grips with too, but it wasn’t long before I felt I’d mastered the high-level stuff and that it was time to move on to machine code. That’s how I’ve come to feel about the Raspberry Pi Pico’s RP2040 chip. The time’s right to learn ARM assembly programming on the Pico.

The Raspberry Pi RP2040 chip
Continue reading

Pico USB serial communications with CircuitPython

My Raspberry Pi Pico-based Motorola 6809 emulator uses the RP2040’s built-in serial-over-USB functionality to receive machine code sent from a host computer. The 6809 and its support code is written in C, but can you make use of the same process under Python? Yes, you can, and here’s an easy way to do it.

Computer to display via RP2040 serial comms
Continue reading