nuttx/Documentation/platforms
Marco Casaroli 7e074b23c9 boards/arm/rp23xx: Add support for the Pimoroni Pico Plus 2 W.
The Pimoroni Pico Plus 2 W is a Pico form-factor board built around the
RP2350B, the 80-pin part with 48 GPIOs, carrying 16MB of flash, 8MB of PSRAM
and a Raspberry Pi RM2 module for 2.4GHz WiFi.  The RM2 houses an Infineon
CYW43439, wired to the same pins the Raspberry Pi Pico W uses: GPIO 23 for
power enable, 24 for the shared gSPI data and interrupt line, 25 for chip
select and 29 for the clock.

Three configurations are provided: nsh and usbnsh without the wireless chip,
and wifi, which brings up wlan0 in station mode with WAPI, a DHCP client and
ping.  The CYW43439 firmware and CLM blob are linked in from the pico-sdk at
build time, as on the Pico W; CONFIG_CYW43439_FIRMWARE_BIN_PATH selects the
file and the board documentation covers converting it out of the C header that
pico-sdk 2.x ships in place of the binary.  rp23xx_firmware.c is placed in the
common source directory so that a future board with the same chip can reuse
it, and unlike rp2040 the blob is staged for the CMake build as well.

Two board details are worth calling out:

  - The only LED is wired to GPIO 0 of the CYW43439 rather than to a pin of
    the RP2350, so driving it means an iovar request over the gSPI bus.  That
    works for CONFIG_USERLED but not for CONFIG_ARCH_LEDS, whose
    board_autoled_on() is called from interrupt handlers and from assertion
    handling, so a build selecting CONFIG_ARCH_LEDS is rejected with an
    explicit message.  The LED also only responds once wlan0 has been brought
    up, because that is when the chip's firmware is downloaded.

  - The BOOT button is also wired to GPIO 45, so it can be read as an ordinary
    user button once NuttX is running.  Its internal pull-up is enabled
    deliberately: erratum RP2350-E9 means a floating Bank 0 input on RP2350 A2
    leaks enough current to settle around 2.2V, which the internal pull-down
    cannot overcome.

Tested on the board with a Raspberry Pi Debug Probe: nsh and wifi boot on
UART0, wlan0 reports the MAC read from the chip, wapi scan lists access
points, and association to a WPA2 network followed by DHCP gives a working
route with ping succeeding to both a literal address and a resolved name.
The LED and the BOOT button were confirmed by hand.

Assisted-by: Claude Code:claude-opus-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-07-27 07:40:42 +02:00
..
arm boards/arm/rp23xx: Add support for the Pimoroni Pico Plus 2 W. 2026-07-27 07:40:42 +02:00
arm64 docs/raspberrypi-4b: Document baromonitor configuration 2026-07-20 21:00:46 -03:00
avr arch/avr/src/avrdx/avrdx_delay: add custom up_udelay function 2026-06-12 09:55:11 -04:00
ceva
hc docs/m9s12/demo9s12ne64: Migrate README.txt to RST 2026-02-12 10:43:53 +01:00
mips arch/mips/jz4780: Add USB host and display controller drivers 2026-07-24 12:17:35 +08:00
misco misco/lm32/boards/misoc: Migrate README.txt to RST 2025-05-08 03:04:04 +02:00
or1k docs/or1k: Migrate README.txt to RST format 2026-02-06 08:54:28 -03:00
renesas Documentation: PBKDF2 login docs, board Kconfig, and CI password 2026-07-21 20:19:14 +08:00
risc-v risc-v/gd32vw55x: fix ADC reopen and add gd32vw553k-start adc example 2026-07-26 13:24:12 +02:00
sim arch/sim: Add PTY mode for simulated UART 2026-07-25 15:03:56 +08:00
sparc
tricore arch/tricore: support tc4evb board. 2026-03-10 10:38:19 +01:00
x86 doc/qemu-i486: Add documentation about qemu-i486:vga_fb 2026-04-30 11:56:49 +08:00
x86_64 Documentation: add notes about TAP configuration for qemu 2025-12-18 11:39:54 -03:00
xtensa boards/stm32h7/linum-stm32h753bi: enable USB FS host, add lvglterm_kbda 2026-07-08 14:08:16 -04:00
z16
z80 style: Fix "the the" typo across the codebase. 2026-03-23 11:07:49 +01:00
index.rst docs: Fix duplicate toctree references causing build warnings 2026-06-03 15:02:22 +08:00