RP400 40-pin connector

Aug 11, 2024 Last reply: 1 year ago 6 Replies

I want to use an Raspberry Pi 400 (the keyboard thing) as the dev/debug system for an RP2040 based product.



formatting link
It has a 40-pin connector on the back. Various sources say that pins 1



3 and 5 are either GPIO ports 8 9 and 7 or maybe 2 3 and 4.

Sometimes the pins are labeled WPI and BCM. Wot's that?



formatting link
I can fix most mistakes there in software, just by reassigning port names. But two pins are critical, the SWDIO and SWCLK debug lines out to a Pi Pico or to the 2040 chip.



I suspect that on the Pi 400 pin 18 is GPIO5 = SWDIO and pin 22 is GPIO6 = SWCLK.



Is that right? Does that actually work?



I also note that some people also connect the UART tx/rx between the Pi400 and a Pico for debugging. Should I do that too? Does it help software development?



Thanks!


This connector?

formatting link

If that's just a connector then continuity check it to the above drawing of the connector on the Pi.

Yes.

The real question is whether pin 3 is GPIO8 or GPIO2, and which two pins are the SW debug.

On the Pi4, pin 3 is GPIO2. It seems like the pins are renamed on the Pi 400, where pin 3 is GPIO8. Why would they do that?

Be aware that WiringPi pin numbers are only useful if you want to use that library (or similar which use the same mapping). The real BCM pin numbers are likely more useful.

I normally go by: https://pinout.xyz/which gives all the optional features if you click on a pin. It also shows the differences between boards (eg pin 13 is different on Pi 1 rev 1).

It seems the 400 is identical to the 4, since it's the same SoC in a different case.

WiringPi pin numbers and Broadcom pin numbers probably.

Pin 3:

"GPIO 2 (I2C Data) Alt0 Alt1 Alt2 Alt3 Alt4 Alt5 I2C1 SDA SMI SA3 DPI VSYNC AVEOUT VSYNC AVEIN VSYNC

Physical/Board pin 3 GPIO/BCM pin 2 Wiring Pi pin 8 GPIO/BCM pin 0 on Rev 1 ( very early ) Pi

SDA (I2C1 Data) is one of the i2c pins on the Pi, learn more about i2c.

SDA includes a fixed, 1.8 kΩ pull-up to 3.3v, which means this pin is not suitable for use as a general purpose IO where no pull-up resistor is desired." https://pinout.xyz/pinout/pin3_gpio2/ Pis 0-4 (inc 400) don't have SWD debug, they have JTAG (pins 13, 15, 16,

18). I think you need something in config.txt to enable ARM-side JTAG.

(the Pi 5 does use SWD, on a separate header).

That's the WiringPi confusion.

(I think in the early Pi 1 days the pin numbering - like other parts of the hardware design - was quite confused, and WiringPi came up with their numbers to make sense of it. I think they're mostly just an additional headache now)

Theo

Is the schematics from the R Pi 400 not available? I have the orangepi 800. The schematics are such that I can trace the connector pins to the soc pins. The RK3399 is fully documented. Mapping the io I can do "das blinken light" on the 26 pin (rp1 compatible) connector, using ciforth (a Forth developed by me). Or light the upper case or numlock leds.

Yes, but the port pin nunbering is different from the Pi 4 and 5, so I was concerned about which pins to connect to a Pico (or a 2040 chip) for program loading and debugging.

This apparently works

formatting link
and one can actually count the pins on the connectors.

One of my guys is hacking some connections and verifying. We're laying out some PCBs for debugging and production test, and we need to get the pins right.

Ah, that's SWD *output*. None of the Pis have specific hardware to act as an SWD debugger, so it's just bitbanged GPIOs. For that it's just down to whatever pins your software has decided to use. You can presumably reconfigure it to use any GPIO pins.

(5 and Pico have dedicated SWD input connectors, but that's to allow *them* to be debugged)

Theo

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required