Skip to the content
PCBKitNew board
2 layers43.2 × 27.9 mmMuino debugger, the printed circuit board in 3D

The simple pico can be used to program other devices. Raspberry pi made such an effort. However there is no board yet, that is open-source and can be used with OpenOCD as a general-purpose programmer

Size
43.2 × 27.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
25
Pads
70
Tracks, vias
142, 14
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
13 Nov 2021
Updated
20 Jul 2022

Overview

Muino debugger is an open-source printed circuit board by martijnvwezel, from the martijnvwezel/pico-probe-programmer repository on GitHub, published under the MIT licence. It is a 2-layer board of 43.2 × 27.9 mm with 18 parts on 25 nets, routed with 142 tracks and 14 vias.

Its parts include 5 capacitors, 4 resistors, 3 diodes, 3 connectors and 1 IC. It belongs with the interfaces and adapters boards and the RP2040 boards of this library.

README

README.md

pico-probe-programmer

The pico can be used to program other devices. Raspberry pi made such an effort. However there is no board yet, that is open-source and can be used with openocd as a general purpose programmer.

pcb of the pico probe programmer pcb of the pico probe programmer

Why Probe and not segger jlink?

Segger Jlink bugged me because I am using a Jlink at home, and it's not compatible anymore with the newest generation of Cortex chips. Another issue that I made, I don't make them that often, but if I do I want my debugger to be able to change the pinout, like an RX, TX swap. In one of the boards, I made somehow SWO and Rx got on the wrong pin, using the pico probe I could change the location of the pins and everything worked fine :).

bash
# Change the pins : pico-probe/src/picoprobe_config.h
# Build:
cd pico-probe
mkdir build/
cd build/
cmake ..
make -j
# Connect the picoprobe, pressing the boot button
# it shows a folder and place the file picoprobe.uf2 from the build folder
# Updated picoprobe
# for windows see docs/windows-install.md
pi nchange

Smalle note: the Tx 5 is not usable in this example. I didn't need it anyway.

A quick order ordering

Take a PCB maker like JLCPCB. Use the all the files from the pcb-readyto-order/, the Bom fils is not needed for that, but there is a list of the different type of components. The complete list needs to be updated soon. When I finally understand the BOM generation of Kicad. See tempory list below under Design choice chapter.

What software is needed?

The software found in the submodules. I also added the pico-sdk to it, for code compatibility.

bash
cd pico-probe-programmer/
git submodule update --init 

Then go to the folder pico-probe, run the commands:

bash
mkdir build/
cd build/
cmake ..

This will generate picoprobe.uf2. Or use the prebuild file: binaries/picoprobe.uf2. I prebuild this file, so I can quickly update it to a programmer if I need it again.

Design choice

I like to use the Pogo style adapter. For work and hobby projects it saves a head to solder, and the PCB looks more cleaner. Sometimes I need a 3V3 power pin or 5V power pin so I added an extra header for it. If you are not interested in the 3V3 or want to save componentens? The schema part 3V3 supply does not need to be added to the pcb. Actually, the PIM558 and the programmer header are madetory. For custom program headers I added the possiblity to add 5V to pin 5 of the programmer header to disable power to the board that needs to be programmed. For my own custom boards I use the 5V to directLy power purposes.

Schematic of the PCB

List of values, soon to be added to the schematics

  • C1: 1UF
  • C2: 100nF
  • C3: 10nF
  • C4: 4.7uF
  • C5: 100nF
  • R1: 10K
  • R2: 100
  • d1,2,3: BAT60JFILM
  • 2.54mm male headers 02x05
  • A1: PIM558 - Tiny 2040
  • U1: LD3985M33R

In the future I want to add some extra features like read voltage of target and detection of GND. Though making it a pull-up (internally in the 2040), and read the voltage on the pin. The voltage read is what Segger-Jlinks do to detect voltage issues on target board.

Layout

Layout of the PCB

Enclosure

The enclosure is quickly made in Freecad with my 3D printer. I need to calibrate the heatbed again so it looks less good using my 3D printer, but it was printed in ~10min, with my help pressing down the print to the bed.
The main goal of the print was to protect the pins under the PCB.
Enclosure of the PCB

Hardware licence

The hardware is licensed under CERN-OHL-S v2.

Parts

18
QtyValueFootprintReferences
5CCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C3, C4, C5
3DDiode_SMD:D_SOD-323_HandSolderingD1, D2, D3
2DNPResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R4
2RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
1Conn_01x02_MaleConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1LD3985M33R_SOT23Package_TO_SOT_SMD:SOT-23-5U1
1LOGOMuino_debugger:SuinoG1
1Power headerConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ2
1ProgrammerConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ1
1TINY2040TINY2040:TINY2040A1

Questions

How big is the Muino debugger PCB?

It measures 43.2 × 27.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Muino debugger use?

18 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 Muino debugger KiCad files?

From the martijnvwezel/pico-probe-programmer repository on GitHub, at the commit this page was made from: the board is pcb-kicad/Muino_debugger.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Muino debugger design in my own project?

Its repository publishes it under the MIT 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 layers27.9 × 16.5 mmPowerSSO-24 breakout, the printed circuit board in 3D

    PowerSSO-24 breakout

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    18 parts1.2k
  • 2 layers42.7 × 13.7 mmStm32-mini12864, the printed circuit board in 3D

    Stm32-mini12864

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    18 parts1.1kGPL-3.0
  • 2 layers41.2 × 46.6 mmThumb cluster left, the printed circuit board in 3D

    Thumb cluster left

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    18 parts993
  • 2 layers44 × 51.3 mm4272MAVcoder R4, the printed circuit board in 3D

    4272MAVcoder R4

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    18 parts915
  • 2 layers28.3 × 14.3 mmTap Photosensor PCB, the printed circuit board in 3D

    Tap Photosensor PCB

    VoronDesign/Voron-Tap

    Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:

    18 parts716GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 stepper driver, the printed circuit board in 3D

    L0 stepper driver

    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.

    18 parts546MIT
  • 2 layersMooltipass, the printed circuit board in 3D

    Mooltipass

    limpkin/mooltipass

    Github repository dedicated to the mooltipass project

    18 parts531
  • 2 layers42.5 × 28.8 mmC5VRX JACK DIY V2, the printed circuit board in 3D

    C5VRX JACK DIY V2

    Twotoz/C5VRX

    Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

    18 parts515GPL-3.0