Skip to content

Commit bfd47a2

Browse files
author
Alasdair Allan
authored
Merge pull request raspberrypi#2566 from raspberrypi/picow
Pico W changes
2 parents b275962 + dce114f commit bfd47a2

17 files changed

+19892
-24
lines changed
4.44 MB
Loading
6.54 MB
Loading

documentation/asciidoc/microcontrollers/c_sdk/official_sdk.adoc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ You can find documentation around the C/{cpp} SDK at;
1010

1111
https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting started with Raspberry Pi Pico]:: C/{cpp} development with Raspberry Pi Pico and other RP2040-based microcontroller boards
1212

13+
https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf[Connecting to the Internet with Raspberry Pi Pico W]:: Getting Raspberry Pi Pico W online with C/{cpp} or MicroPython
14+
1315
https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf[Raspberry Pi Pico C/{cpp} SDK]:: Libraries and tools for C/{cpp} development on RP2040 microcontrollers
1416

1517
The API level Doxygen documentation for the Raspberry Pi Pico C/{cpp} SDK is also available https://rptl.io/pico-doxygen[as a micro-site].
18+
19+
[NOTE]
20+
====
21+
If you are building applications with the C/{cpp} SDK and targeting boards other than the Raspberry Pi Pico, you will need to pass `-DPICO_BOARD=boardname` to CMake. Here `boardname` is the name of your board, e.g. for the Adafruit Feather RP2040 you should pass `-DPICO_BOARD=adafruit_feather_rp2040`. See the https://github.com/raspberrypi/pico-sdk/tree/master/src/boards[`boards/` directory] in the Raspberry Pi Pico SDK, and the https://forums.raspberrypi.com/viewtopic.php?f=147&t=304393[forums], for more information.
22+
====
23+
24+
[NOTE]
25+
====
26+
If you are building applications with the C/{cpp} SDK for Raspberry Pi Pico W and, to connect to a network you will need to pass `-DPICO_BOARD=pico_w -DWIFI_SSID="Your Network" -DWIFI_PASSWORD="Your Password"` to CMake.
27+
====

documentation/asciidoc/microcontrollers/c_sdk/your_first_binary.adoc

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
The first program anyone writes when using a new microcontroller is to blink an LED on and off. The Raspberry Pi Pico comes with a single LED on-board (connected to GPIO pin 25).
66

7-
image:images/Blink-an-LED-640x360.gif[]
7+
image:images/Blink-an-LED-640x360-v2.gif[]
88

99
You can blink this on and off by,
1010

@@ -15,14 +15,13 @@ You can blink this on and off by,
1515

1616
You should see the on-board LED blinking.
1717

18-
* Download https://datasheets.raspberrypi.com/soft/blink.uf2[UF2 File]
19-
* See the code https://github.com/raspberrypi/pico-examples/blob/master/blink/blink.c[on Github]
18+
You can see the code https://github.com/raspberrypi/pico-examples/blob/master/blink/blink.c[on Github]
2019

2120
=== Say "Hello World"
2221

2322
The next program anyone writes is to say 'Hello World' over a USB serial connection.
2423

25-
image:images/Hello-World-640x360.gif[]
24+
image:images/Hello-World-640x360-v2.gif[]
2625

2726
. Download the https://datasheets.raspberrypi.com/soft/hello_world.uf2['Hello World' UF2].
2827
. Push and hold the BOOTSEL button and plug your Pico into the USB port of your Raspberry Pi or other computer.
@@ -36,7 +35,6 @@ sudo apt install minicom
3635
minicom -b 115200 -o -D /dev/ttyACM0
3736
------
3837

39-
You should see 'Hello, world!' printed to the Terminal
38+
You should see 'Hello, world!' printed to the Terminal.
4039

41-
* Download https://datasheets.raspberrypi.com/soft/hello_world.uf2[UF2 File]
42-
* See the code https://github.com/raspberrypi/pico-examples/blob/master/hello_world/usb/hello_usb.c[on Github]
40+
You can see the code https://github.com/raspberrypi/pico-examples/blob/master/hello_world/usb/hello_usb.c[on Github]

documentation/asciidoc/microcontrollers/microcontroller_docs.adoc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@ https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting st
1818

1919
NOTE: While it is not officially supported there is a https://github.com/ndabas/pico-setup-windows[Pico Setup for Windows] installation tool which automates installation of the C/{cpp} SDK on Windows 10.
2020

21+
=== Raspberry Pi Pico W
22+
23+
https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf[Raspberry Pi Pico W Datasheet]:: An RP2040-based microcontroller board with wireless
24+
25+
https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf[Connecting to the Internet with Raspberry Pi Pico W]:: Getting Raspberry Pi Pico W online with C/{cpp} or MicroPython
26+
2127
=== Software Development
2228

2329
https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf[Raspberry Pi Pico C/{cpp} SDK]:: Libraries and tools for C/{cpp} development on RP2040 microcontrollers
2430

2531
https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf[Raspberry Pi Pico Python SDK]:: A MicroPython environment for RP2040 microcontrollers
2632

2733
The API level Doxygen documentation for the Raspberry Pi Pico C/{cpp} SDK is also available https://rptl.io/pico-doxygen[as a micro-site].
28-
29-
[NOTE]
30-
====
31-
If you are building applications with the C/{cpp} SDK and targeting boards other than the Raspberry Pi Pico, you will need to pass `-DPICO_BOARD=boardname` to CMake. Here `boardname` is the name of your board, e.g. for the Adafruit Feather RP2040 you should pass `-DPICO_BOARD=adafruit_feather_rp2040`. See the https://github.com/raspberrypi/pico-sdk/tree/master/src/boards[`boards/` directory] in the Raspberry Pi Pico SDK, and the https://forums.raspberrypi.com/viewtopic.php?f=147&t=304393[forums], for more information.
32-
====
Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
== Drag-and-Drop MicroPython
22

3-
You can program your Pico by connecting it to a computer via USB, then dragging and dropping a file onto it, so we’ve put together a https://micropython.org/download/rp2-pico/rp2-pico-latest.uf2[downloadable UF2] file to let you install MicroPython more easily.
3+
You can program your Pico by connecting it to a computer via USB, then dragging and dropping a file onto it so we’ve put together a downloadable UF2 file to let you install MicroPython more easily.
44

5-
image::images/MicroPython-640x360.gif[]
5+
image::images/MicroPython-640x360-v2.gif[]
66

7-
. Download the https://micropython.org/download/rp2-pico/rp2-pico-latest.uf2[MicroPython UF2] file.
7+
Download the correct MicroPython UF2 file for your board:
8+
9+
* https://micropython.org/download/rp2-pico/rp2-pico-latest.uf2[Raspberry Pi Pico]
10+
11+
* https://datasheets.raspberrypi.com/soft/micropython-firmware-pico-w-290622.uf2[Raspberry Pi Pico W] (with https://makeblock-micropython-api.readthedocs.io/en/latest/public_library/Third-party-libraries/urequests.html[urequests] and https://docs.micropython.org/en/latest/reference/packages.html[upip] preinstalled)
12+
13+
Then go ahead and:
814

915
. Push and hold the BOOTSEL button and plug your Pico into the USB port of your Raspberry Pi or other computer. Release the BOOTSEL button after your Pico is connected.
1016

1117
. It will mount as a Mass Storage Device called RPI-RP2.
1218

1319
. Drag and drop the MicroPython UF2 file onto the RPI-RP2 volume. Your Pico will reboot. You are now running MicroPython.
1420

15-
. You can access the REPL via USB Serial. Our MicroPython documentation contains step-by-step instructions for connecting to your Pico and programming it in MicroPython.
21+
. You can access the REPL via USB Serial.
22+
23+
The https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf[Raspberry Pi Pico Python SDK] book contains step-by-step instructions for connecting to your Pico and programming it in MicroPython using both the command line and the https://thonny.org/[Thonny] IDE.
4.32 MB
Loading
4.18 MB
Loading

documentation/asciidoc/microcontrollers/micropython/what-is-micropython.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ MicroPython is a full implementation of the Python 3 programming language that r
1010
You can find information on the MicroPython port to RP2040 at;
1111

1212
https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf[Raspberry Pi Pico Python SDK]:: A MicroPython environment for RP2040 microcontrollers
13+
https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf[Connecting to the Internet with Raspberry Pi Pico W]:: Getting Raspberry Pi Pico W online with C/{cpp} or MicroPython
1314
https://docs.micropython.org/en/latest/rp2/quickref.html[RP2 Quick Reference]:: The official documentation around the RP2040 port of MicroPython
1415
https://docs.micropython.org/en/latest/library/rp2.html[RP2 Library]:: The official documentation about the `rp2` module in MicroPython
1516

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
1-
== Technical Specification
1+
== The Family
2+
3+
image::images/three_picos.jpg[width="75%"]
4+
5+
The Raspberry Pi Pico family consists of Raspberry Pi Pico (left), Pico H (middle), and Pico W (right).
6+
7+
[[technical-specification]]
8+
== Raspberry Pi Pico and Pico H
29

310
Raspberry Pi Pico is a low-cost, high-performance microcontroller board with flexible digital interfaces. Key features include:
411

512
* xref:rp2040.adoc#welcome-to-rp2040[RP2040] microcontroller chip designed by Raspberry Pi in the United Kingdom
613
* Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz
714
* 264kB of SRAM, and 2MB of on-board Flash memory
8-
* Castellated module allows soldering direct to carrier boards
915
* USB 1.1 with device and host support
1016
* Low-power sleep and dormant modes
1117
* Drag-and-drop programming using mass storage over USB
@@ -16,16 +22,46 @@ Raspberry Pi Pico is a low-cost, high-performance microcontroller board with fle
1622
* Accelerated floating-point libraries on-chip
1723
* 8 × Programmable I/O (PIO) state machines for custom peripheral support
1824

19-
=== Pinout and Design Files
25+
The Raspberry Pi Pico comes as a castellated module allows soldering direct to carrier boards, while the Pico H comes with pre-soldered headers.
2026

21-
image::images/Pico-R3-SDK11-Pinout.svg[]
27+
NOTE: Both boards have a three pin Serial Wire Debug (SWD) header. However, the Pico H has this broken out into a small, keyed, https://datasheets.raspberrypi.com/debug/debug-pin-connector-specification.pdf[3-pin connector] while the Pico has three castellated through-hole pins adjacent to the edge of the board.
2228

23-
* Download the https://datasheets.raspberrypi.com/pico/Pico-R3-A4-Pinout.pdf[Pinout Diagram] (PDF)
29+
=== Pinout and Design Files
2430

25-
=== Design Files
31+
image::images/pico-pinout.svg[]
2632

33+
* Download the https://datasheets.raspberrypi.com/pico/Pico-R3-A4-Pinout.pdf[Pinout Diagram] (PDF)
2734
* Download https://datasheets.raspberrypi.com/pico/RPi-Pico-R3-PUBLIC-20200119.zip[Design Files] (Cadence Allegro)
2835
* Download https://datasheets.raspberrypi.com/pico/Pico-R3-step.zip[STEP File]
2936
* Download https://datasheets.raspberrypi.com/pico/Pico-R3-Fritzing.fzpz[Fritzing Part]
3037

3138
NOTE: More information on Fritzing is available on the https://fritzing.org/[fritzing.org] web site.
39+
40+
== Raspberry Pi Pico W
41+
42+
Raspberry Pi Pico W adds on-board single-band 2.4GHz wireless interfaces (802.11n) using the Infineon CYW4343 while retaining the Pico form factor. The on-board 2.4GHz wireless interface has the following features:
43+
44+
* Wireless (802.11n), Single-band (2.4 GHz)
45+
* WPA3
46+
* Soft Access Point supporting up to 4 clients
47+
48+
The antenna is an onboard antenna licensed from ABRACON (formerly ProAnt). The wireless interface is connected via
49+
SPI to the xref:rp2040.adoc#welcome-to-rp2040[RP2040] microcontroller.
50+
51+
Due to pin limitations, some of the wireless interface pins are shared. The CLK is shared with VSYS monitor, so only
52+
when there isn’t an SPI transaction in progress can VSYS be read via the ADC. The Infineon CYW43439 DIN/DOUT and
53+
IRQ all share one pin on the RP2040. Only when an SPI transaction isn’t in progress is it suitable to check for IRQs. The
54+
interface typically runs at 33MHz.
55+
56+
For best wireless performance, the antenna should be in free space. For instance, putting metal under or close by the
57+
antenna can reduce its performance both in terms of gain and bandwidth. Adding grounded metal to the sides of the
58+
antenna can improve the antenna’s bandwidth.
59+
60+
=== Pinout and Design Files
61+
62+
image::images/picow-pinout.svg[]
63+
64+
* Download the https://datasheets.raspberrypi.com/picow/PicoW-A4-Pinout.pdf[Pinout Diagram] (PDF)
65+
* Download https://datasheets.raspberrypi.com/picow/RPi-PicoW-PUBLIC-20220607.zip[Design Files] (Cadence Allegro)
66+
* Download https://datasheets.raspberrypi.com/picow/PicoW-step.zip[STEP File]
67+
* Download https://datasheets.raspberrypi.com/picow/PicoW-Fritzing.fzpz[Fritzing Part]

0 commit comments

Comments
 (0)