Skip to the content
PCBKitNew board
2 layers47 × 55.9 mmPico adapter, the printed circuit board in 3D

A Raspberry Pi Pico-based memory dumper for the M16C processor

Size
47 × 55.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
2
Nets
43
Pads
100
Tracks, vias
58, 4
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
25 Apr 2022
Updated
2 Oct 2025

Overview

Pico adapter is an open-source printed circuit board by beroset, from the beroset/pico-puller repository on GitHub, published under the BSD-3-Clause licence. It is a 2-layer board of 47 × 55.9 mm with 2 parts on 43 nets, routed with 58 tracks and 4 vias.

Its parts include 1 IC and 1 connector. It belongs with the interfaces and adapters boards and the RP2040 boards of this library.

README

README.md

pico-puller

A Raspberry Pi Pico-based project for reading and programming the flash memory of Renesas M16C/62A processors.

The M16C Processor

The Renesas M16C/62A processors are a 16-bit microcomputer family with 1M address space and multiple packaging and memory options. It is often used in embedded systems.

The Raspberry Pi Pico

The Raspberry Pi Pico is a small, inexpensive single-board microcontroller with dual ARM M0 cores and a number of other interesting features, including USB support.

This project

This project is intended to allow a programmer to connect the Raspberry Pi Pico to a circuit containing a Renesas M16C/62A processor and extract the flash memory contents whether the ROM code protect function has locked the firmware or not.

How to use it

Step 1: Physical connections

Full details on how to build the project and use it are in the manual.

The short version is this. First, make the following ten connections between the Pico and the circuit with the M16C processor. M16C pin numbers refer to square package/rectangular package.

Pico namePico pinHeader pinM16C pinM16C name
3V3(OUT)36114/16Vcc
GP2127232/34BUSY
GP1824331/33SCLK
GP1925430/32RXD
3V3(OUT)36544/46#CE
GND28639/41#EPM
GND28763/64Vss
GP2229810/12#RESET
3V3(OUT)3697/9CNVss
GP20261029/31TXD

Step 2: Configure CMake for build

There are only two required configuration items to define. The first is to define a PICO_MOUNT_LOCATION. This is the directory in which your Raspberry Pi Pico appears when first plugged in as an unprogrammed part. On a Fedora Linux distribution this is /run/media/username where username is whatever name you use to log in.

The second is PICO_SDK_PATH which should point to wherever you've installed and built the pico-sdk.

Optional but recommended are to build the documentation for this program (WITH_DOC) and whether to build a Release or Debug version. A sample command line for this, if you are in pico-puller subdirectory is this:

text
cmake -DPICO_SDK_PATH=~/tools/pico/pico-sdk -DPICO_MOUNT_LOCATION=/run/media/beroset -DWITH_DOC=ON -DCMAKE_BUILD_TYPE=Release -S . -B build

This will create and configure the build subdirectory.

Step 3: Build the software for the Pico

If the configuration described above has been done, building the software is very simple:

text
cmake --build build

Step 4: Install the software

Once the software is built, copy the pico-puller.uf2 program to the Pico. This can be done automatically using sudo cmake --build build -t install. That will also automatically install the pico-puller script on your machine.

Step 5: Use the software

If everything was installed, using the software is very simple. If you want to get a dump of the contents of the user flash, use this:

text
pico-puller dump

You can redirect this to a file for further analysis:

text
pico-puller dump > foo.hex

If you wish to covert that to a binary file, one simple way to do it is to use a combination of awk to remove all lines that don't start with a hex address and then feed the result to xxd.

text
awk '/^[0-9a-f]{8}:/' foo.hex |xxd -r -g -1 > foo.bin

Or if you only want the binary file, that can be done all in a single line:

text
pico-puller dump | awk '/^[0-9a-f]{8}:/'  |xxd -r -g -1 > foo.bin

Parts

2
QtyValueFootprintReferences
1Conn_02x05_Odd_EvenConnector_PinHeader_2.00mm:PinHeader_2x05_P2.00mm_Vertical_SMDJ1
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1

Questions

How big is the Pico adapter PCB?

It measures 47 × 55.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pico adapter use?

2 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Pico adapter KiCad files?

From the beroset/pico-puller repository on GitHub, at the commit this page was made from: the board is adapter_board/pico_adapter.kicad_pcb and its schematic adapter_board/pico_adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pico adapter design in my own project?

Its repository publishes it under the BSD-3-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers37 × 19 mmPassive rpi hub75-adapter, the printed circuit board in 3D

    Passive rpi hub75-adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    2 parts4.4kGPL-2.0
  • 2 layersDiode template, the printed circuit board in 3D

    Diode template

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    2 parts547GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 button, the printed circuit board in 3D

    L0 button

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    2 parts546MIT
  • 2 layers35.1 × 46.8 mmSDEX2M2 Breakout Board, the printed circuit board in 3D

    SDEX2M2 Breakout Board

    NVNTLabs/switch2-SDEX2M2

    Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

    2 parts542GPL-3.0
  • 2 layers59.3 × 36.6 mmExpansionBoardTemplate, the printed circuit board in 3D

    ExpansionBoardTemplate

    BlueSCSI/BlueSCSI-v2

    BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

    2 parts459GPL-3.0
  • 2 layersAlpha.9mm.wire, the printed circuit board in 3D

    Alpha.9mm.wire

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    2 parts410
  • 2 layers26.7 × 64 mmGpu power, the printed circuit board in 3D

    Gpu power

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    2 parts397Apache-2.0