Posts

Using an RP2040 to Load Programs from a SD Card into a ZX81 Microcomputer

Image
This was a fun project, putting together my old and new hobbies. Back in the 80s, cheap personal computers used K7 tape to store programs. I still got a few of these old computers, but tape is pretty rare these days and my K7 players are breaking apart. You can find a lot of ZX81 software in the internet, as files for emulators. How about using an RP2040 to generate the necessary audio signals from these files? The final assembly

I2C Pico USB Adapter: Part 4 - Usage

Image
In this last part, I will show a few ways to use the adapter under Linux and Windows. Accessing an I2C device with Python, under Windows

I2C Pico USB Adapter: Part 3 - I2C

Image
I expected implementing the I2C communication would be very easy. After all, the RP microcontrollers have hardware for this and the SDK has support for it. Alas, I did not take into account some limitations of the hardware and the way i2c-tiny-usb implements its commands.

I2C Pico USB Adapter: Part 2 - USB Communication

Image
The USB standard is complex. Even having studied it hard for my book on the RP2040, I admit I was sometimes confused. This particular application involves some functions of the tinyusb library that are not much discussed in the documentation. USB Control Transfers, Taken from Figure 8-37 of the USB 2.0 specifications

Halloween with MicroPython

Image
This is a quick Halloween project (if you have the parts, they are easy to find).  With a little imagination, you can adapt it to different components or behaviors. The software is written in MicroPython for a RP2040 (or RP2350), you can port it to other boards by replacing the PIO code for the HC-SR04 sensor with normal GPIO operations. A resin skull (bought in a trinket store) is transformed into a spooked object that lights up and makes strange noises, especially when someone nears it.

I2C Pico USB Adapter: Part 1 - Introduction

Image
In this series of posts I will describe my latest project: an I2C to USB adapter that can be constructed with an RP2040 or RP2350 board. The adapter using a XIAO RP2040 connected to a PCF8583 RTC+RAM

I found a crazy bug in the unofficial Arduino support for the RP2040 v 4.01!

This is a strange tale... I've been using  the excellent  Raspberry Pi Pico Arduino Core , managed by Earle F.  Philhower III, from its beginnings. It has been recently updated to support the new Pico2 and RP2350. As part of my preparations for testing the new Pico2 (received it yesterday), I was playing with some old microcontroller benchmarks. When I tried a Whetstone benchmark in the old Pico the program just stopped somewhere in the middle of the calculations, and here starts the tale. double X; // declared here so the multiplication is not removed by optimization void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); double T = millis(); X = -1.3 * T; digitalWrite(LED_BUILTIN, HIGH); } void loop() { delay(100); } This code forces the bug!