Posts

Building a One-time Password Token

Image
One-time passwords are an alternative to the more common "permanent" passwords. The problem with a "normal" password is that it can be captured during communication, by fake login screens or by key-loggers.  Once a normal password is captured, it can be used until it is changed. To avoid this "repetition attack", one-time passwords work just once. For each login, a new password is used. This creates a new problem: how to set up these passwords? One solution is to have a "password book", but that is very clumsy. In this post, we will see how to build a device that generates one-time passwords, one at a time. The other side can use the same algorithm to check the passwords. We will use a Raspberry Pi Pico W board with a MicroPython application. WARNING: This is a demo only. The encrypting key will be in plain text in the code, open to any curious eyes. Do not use this with any real key!

Mini-Review: Solder Party's RP2350 boards

Image
Solder Party is a Swedish company that has some peculiar boards. For the RP2350 (and RP2040), they have stamp boards, which contain the microcontroller, and carrier boards, where the stamps are connected and provide power and input/output connectors. One detail that will bother many people is that the pin spacing on the stamp boards is 2 mm instead of the more traditional 0.1" (2.54 mm). SolderParty sells connectors with this spacing. Although some carriers have RP2040 in their names, all models work with RP2040 and RP2350 stamps. I purchased both stamp models with RP2350 and the three carrier models. Here are some comments on them. The RP2350 Stamp XL installed into the RP2xxx Stamp Carrier XL

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.