Skip to content

Commit fd65b6f

Browse files
committed
Show how to change pinouts
1 parent f79860b commit fd65b6f

File tree

4 files changed

+45
-7
lines changed

4 files changed

+45
-7
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@
3030
*.exe
3131
*.out
3232
*.app
33+
34+
35+
pico-probe/build/*

README.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,37 @@
11
# pico-probe-programmer
22
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.
33

4-
<img src="./docs/PROGRAMMER.png" alt="pcb of the pico probe programmer" height="350" class="center"/>
4+
<img class=" transform: rotate(45deg);" src="./docs/PROGRAMMER.png" alt="pcb of the pico probe programmer" height="350" class="center"/>
55

66
<img src="./docs/Muino_debugger.png" alt="pcb of the pico probe programmer" height="350" class="center"/>
77

8+
9+
# Why Probe and not segger jlink?
10+
Segger jlink bugged me, because I am using a Jlink at home, but it is not compatible anymore with the newest generation of Cortex chips. Another issue that I had was **mistakes**, I dont make them that often, but if I do I want my debugger to be able to change the pinout, like a RX,TX swap. In one of the boards I made somehow SWO and Rx got on wrong pin, using the pico probe I could change the location of the pins and everything worked fine :).
11+
12+
```bash
13+
# Change the pins : pico-probe/src/picoprobe_config.h
14+
# Build:
15+
cd pico-probe
16+
mkdir build/
17+
cd build/
18+
cmake ..
19+
make -j
20+
# Connect the picoprobe, pressing the boot button
21+
# it shows a folder and place the file picoprobe.uf2 from the build folder
22+
# Updated picoprobe
23+
# for windows see docs/windows-install.md
24+
```
25+
26+
<img src="./docs/change_rxtx.png" alt="pi nchange" class="center"/>
27+
28+
> Smalle note: the Tx 5 is not usable in this example. I didn't need it anyway.
29+
830
# A quick order ordering
931
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.
1032

1133

34+
1235
# What software is needed?
1336
The software found in the submodules. I also added the pico-sdk to it, for code compatibility.
1437
``` bash
@@ -49,7 +72,6 @@ List of values, soon to be added to the schematics
4972
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.
5073

5174
# Layout
52-
5375
<img src="./docs/pcb_layout.png" alt="Layout of the PCB" class="center"/>
5476

5577

docs/change_rxtx.png

12.2 KB
Loading

docs/windows-install.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ Follow the tutorial [digikey-tutorial](https://www.digikey.nl/en/maker/projects/
1010
## Step 3
1111
Add the paths to the system, you should restart `git-bash` always fully, so all windows should be closed, or just reboot just to be sure. The following are the paths:
1212

13+
### add to the path
1314
<img src="./path_env.png" alt="windows env UGH" class="center"/>
1415
<img src="./path_env2.png" alt="windows env UGH" height="200" class="center"/>
1516

16-
* `OPENOCD_SCRIPTS` -> with value `c:\openocd\tcl`
17+
* `OPENOCD_SCRIPTS` -> with value `env
18+
`
1719
* `Path` -> add the following `C:\openocd\src`
20+
21+
### without changing the paths
1822
A without the env solution, you can use the `-s` option:
1923
``` bash
2024
openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s /c/openocd/tcl/
2125
```
2226

23-
Add the following files into the same directory (`src`) as the `openocd.exe`, where the location is:
24-
* `tcl/interface/picoprobe.cfg`
25-
* `tcl/target/rp2040.cfg`
27+
2628

2729
## Step 4
2830
Validate if everythings works fine
@@ -34,7 +36,18 @@ openocd -f interface/picoprobe.cfg -f target/rp2040.cfg
3436
The DAP init failed means that it didn't correctly connect with the device that you want to connect to. Check the cables or connections to the pins.
3537

3638
## Step 5
37-
Happy programming/debugging.
39+
Make your life easier to add a `picoprobe.bat` in the `src/` folder of the `openocd/src/picoprobe.bat`
40+
With the following information:
41+
``` shell
42+
openocd.exe -s ./tcl -f interface/picoprobe.cfg -f target/rp2040.cfg -f listen-all.cfg
43+
```
44+
Then you only have to type .picoprobe.bat in a terminal.
45+
46+
## LISTEN-ALL.CFG
47+
If you prefere to run it as an server you need the listen-all.cfg config. For the use PlatformIO tool this is needed.
48+
49+
50+
# Happy programming/debugging.
3851

3952

4053

0 commit comments

Comments
 (0)