2025-10-01 23:31:04 +02:00
2025-10-01 23:31:04 +02:00
2025-10-01 23:31:04 +02:00
2025-10-01 23:31:04 +02:00
2025-10-01 23:31:04 +02:00
2025-10-01 23:31:04 +02:00

tt-reader-flasher

This repository contains the hardware design and firmware for a DIY Taito Reader Upgrade Kit replacement based on a Raspberry Pi Pico.

The hardware/ directory contains the KiCad project files (schematic/board), and the firmware/ directory contains the software running on the Pico. The firmware sources ship WITHOUT the firmware blob that is to be flashed on the target for obvious reasons. In order to make the kits firmware include the targets firmware blob.

I am by no means an expert when it comes to hardware design, but this has been validated to work on readers multiple times and is much more cost effective than trying to find the one official upgrade kit that appears once a year and then overpaying for it. If you have any suggestions or want to contribute improvements feel free to open a Pull Request.

This repository is published with the CC-NC license, meaning you can use it freely with attribution in non-commercial settings. If you're interested in selling pre-built boards from this project please get in contact with me over Discord or leave an issue on this repository.

TODO: Add a BOM

Usage

Before plugging in the flasher to the readers Z connector, make sure that the power connector (P3) is NOT PLUGGED IN to the reader. PLUGGING IN THE FLASHER WHILE THE BOARD IS POWERED ON CAN PERMANENTLY DAMAGE THE FLASHER.

The JVS cable (J1), LED (C2), and reader module (C1) cables can stay plugged in but the operation appears more stable if those are unplugged in as well.

After a flasher is plugged in to the reader, plug its USB connector to a power source and press the BOOTSEL button to start the upgrade process. The LED should turn on and stay solid for the duration of the process which takes roughly 30 to 45 seconds.

After a successful upgrade the LED will start rapidly blinking (multiple times a second), the flasher can then be unplugged and the reader can be reconnected in its usual configuration.

In case any error occurs during the upgrade process, the LED will start blinking slowly (1 second on, 1 second off). In such a case the upgrade process can be restarted by unplugging and plugging again the flashers USB cable and pressing BOOTSEL again. To get more detailed information on what may have gotten wrong, the flasher writes out progress information over the USB cable as a serial device and can be attached to with a program like minicom on Linux or PuTTY on Windows.

Compiling

Since the code is shipped without the actual firmware blob, the firmware/src/firmware.h needs to be prepared in the following way (instructions assume a linux host with xxd and the whole toolchain for rp2040 development present):

Prepare your firmware blob, and note the base address it is supposed to be flashed to (should be 0xc000)

Run xxd -i firmware.bin > firmware/src/firmware.h (replace firmware.bin with whatever filename you have)

You should now have a file that looks something like this:

unsigned char ___firmware_bin[] = {
  // [...]
};
unsigned int ___firmware_bin_len = 1234;

The ___firmware_bin might differ if you used a different filename, but rename the variables such that ___firmware_bin becomes firmware and ___firmware_bin_len becomes firmware_len. Then at the end add the following line:

unsigned int base_addr = 0xc000; // Replace with another base address if you have a different one for some reason

At the end you should end up with a file like this:

unsigned char firmware[] = {
  // [...]
};
unsigned int firmware_len = 16384;
unsigned int base_addr = 0xc000;

Then, assuming you have the pico-sdk present somewhere on your disk, you can execute:

mkdir firmware/build
cd firmware/build
cmake -S..
make -j4

Then the resulting pico-flasher.uf2 can be flashed to the Pi Pico.

Description
DIY flasher for K92X0249 readers
Readme 413 KiB
Languages
C 94.9%
CMake 5.1%