element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Documents Raspberry Pi Pico
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: e14phil
  • Date Created: 13 Jan 2021 5:44 PM Date Created
  • Last Updated Last Updated: 27 Jan 2021 3:48 PM
  • Views 19420 views
  • Likes 20 likes
  • Comments 128 comments
Related
Recommended

Raspberry Pi Pico

image

Raspberry Pi Pico

 

Buy NowBuy Now
Buy Now from CPCBuy Now from CPC

 

We are very excited to introduce the all new Raspberry Pi Pico, a tiny, $4, MicroPython and C/C++ board with custom RP2040 silicon.

This is the first product from the Raspberry Pi Foundation built with their in house designed RP2040.

At $4 and available individually or even available on reels, this Raspberry Pi is the next step in home and industrial products.

Looking at the edge of the PCB you can see the Raspberry Pi Pico has been designed to be used with header pins or soldered directly onto your products PCB.

James Adams, Chief Operating Officer, Raspberry Pi Trading, said:

“This is the start of an exciting new era for Raspberry Pi. With Raspberry Pi Pico, and RP2040, we have been able to draw on insights drawn from a decade of using other vendors’ microcontrollers, and to create an innovative silicon platform for our customers. People have used Raspberry Pi to create a broader spread of projects and products than we could have imagined a decade ago; we’re sure the same will be true of Raspberry Pi Pico.”

image

Raspberry Pi Pico Specifications:

  • GPIO and Debug Pins
  • RP2040 Microcontroller
  • Two cores clocked at 133MHz
  • 256KB RAM
  • 2MB of On-board Flash Memory
  • Micro-USB B Port for Power, Data and Reprogramming of the Flash memory.

 

Raspberry Pi Pico Peripherals:

  • I2C x4
  • SPI x2
  • PWM x2
  • UART x2
  • Timer
  • RTC
  • ADC & TS

 

Raspberry Pi Pico Dimensions:

21mm (W) x 51.3mm (L) x 3.9mm (H)

 

Raspberry Pi Pico GPIO Pinout

image

 


The 40 pin 21x51 'DIP' style 1mm thick PCB with 0.1" through-hole pins also with edge castellations

  • Exposes 26 multi-function 3.3V General Purpose I/O (GPIO)
  • 23 GPIO are digital-only and 3 are ADC capable
  • Can be surface mounted as a module
  • 3-pin ARM Serial Wire Debug (SWD) port


First Product built on Raspberry Pi designed Silicon - Meet the RP2040

Raspberry Pi Pico is built around the brand-new Raspberry Pi RP2040 microcontroller, delivering a flexible, highly affordable development platform that can also be directly deployed into end products, reducing time-to-market. RP2040 offers high performance for integer workloads, a large on-chip memory, and a wide range of I/O options, making it a flexible solution for a wide range of microcontroller applications.
Professional design engineers who are already comfortable working with Raspberry Pi will easily adopt the Raspberry Pi Pico and appreciate its ease of use and affordability.

image

RP2040 Microcontroller.
RP2040 is a low-cost, high-performance microcontroller device with flexible digital interfaces. Key features:


• Dual Cortex M0+ processors, up to 133 MHz

• 264 kB of embedded SRAM in 6 banks

• 30 multifunction GPIO

• 6 dedicated IO for SPI Flash (supporting XIP)

• Dedicated hardware for commonly used peripherals

• Programmable IO for extended peripheral support

• 4 channel ADC with internal temperature sensor, 0.5 MSa/s, 12 bit conversion

• USB 1.1 Host/Device




Developer tools
Simple drag and drop programming via micro-USB. 3-pin Serial Wire Debug (SWD) for interactive debugging. Comprehensive C SDK, mature MicroPython port, and extensive examples and documentation.

image

Power
On-board power supply to generate 3.3V for RP2040 and external circuitry. Wide input voltage range, from 1.8V to 5.5V, giving designers the flexibility to select their preferred power source.


Raspberry Pi Pico Size and Layout:




image

  • raspberry pico
  • gpio
  • raspberry pi pico
  • farnell
  • pico
  • gpio pinout
  • new raspbery pi
  • dimensions
  • pi_pico
  • raspberry_pi
  • raspberry_pi_pico
  • raspberry pi
  • raspberrypi
  • rp2040
  • raspberry pi pico gpio
  • rpi
  • technical specification
  • specification
  • pinout
  • pi pico gpio
  • pi pico
  • cpc
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • Fred27
    Fred27 over 5 years ago +12
    Certainly an interesting device, and I'm sure it will become very popular. I must say that personally I'm not a fan of MicroPython - or any interpreted embedded languages. I feel that the real strength…
  • Workshopshed
    Workshopshed over 5 years ago +11
    Looks to be a powerful little board in a nice form factor. I love the fact it has sensible mounting holes even if that does make the silkscreen for those pins a little hard to read. I'd be interested to…
  • Fred27
    Fred27 over 5 years ago +10
    It looks like other companies (the usual suspects) are making boards based on the RP2040 too. https://www.cnx-software.com/2021/01/21/third-party-raspberry-pi-rp2040-boards-from-arduino-adafruit-sparkfun…
  • 14rhb
    14rhb over 5 years ago in reply to shabaz

    Nicely worked out. I must admit I'm quite confused in what is happening in the background of VSCode but will persevere with it. For simple code examples the command line and text editor are far easier for now.

     

    The use of nmake does work and I modified several of the examples in just that way......as you say, do it from the appropriate folder and not the top level pico-examples (otherwise you'll be sat watching it building everything again !)

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • BigG
    BigG over 5 years ago in reply to shabaz

    True, but there is part truth in this as NDA's are over used, in my opinion. If an NDA is not required then of course the marketing teams are employed to be helpful and tend to be good at their jobs.

     

    I believe their criticism was aimed at the scenario where one of the big guys releases a brand new chipset. In these cases the in-house tech departments tend to be overly protective of their "new idea" and then don't want to share any technical detail for fear of giving away detail they consider to be their "secret ingredient". Hence require all sorts of legal protection and lots of meetings to discuss, especially if such initiatives require "board approval" and this then delays the whole 3rd party development process,.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jomoenginer
    jomoenginer over 5 years ago in reply to shabaz

    In VS Code with the pico-examples config, if you edit the top level CMakeLists.txt file and comment out all the  "add_subdirectory" entries except the one for 'hello_world', when you run Build, it should only build and compile the hello_world example:

     

    Ex output:

    [main] Building folder: pico-examples

     

    [build] Starting build

    [proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --build c:/Users/jomodev/Downloads/RPI_Pico2/pico-examples/build --config Debug --target all --

    [build] Pico SDK is located at C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk

    [build] PICO platform is rp2040.

    [build] PICO compiler is

    [build] PICO_GCC_TRIPLE defaulted to arm-none-eabi

    [build] Using regular optimized debug build (set PICO_DEOPTIMIZED_DEBUG=1 to de-optimize)

    [build] PICO target board is pico.

    [build] Using board configuration from C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/boards/include/boards/pico.h

    [build] TinyUSB available at C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; adding USB support.

    [build] Compiling TinyUSB with CFG_TUSB_DEBUG=1

    [build] -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

    [build] ELF2UF2 will need to be built

    [build] -- Configuring done

    [build] -- Generating done

    [build] -- Build files have been written to: C:/Users/jomodev/Downloads/RPI_Pico2/pico-examples/build

    [build] [  2%] Built target bs2_default

    [build] [  2%] Built target bs2_default_bin

    [build] [  3%] Built target bs2_default_padded_checksummed_asm

    [build] [  4%] Performing build step for 'ELF2UF2Build'

    [build]

    [build] Microsoft (R) Program Maintenance Utility Version 14.28.29336.0

    [build] Copyright (C) Microsoft Corporation.  All rights reserved.

    [build]

    [build] [100%] Built target elf2uf2

    [build] [  5%] No install step for 'ELF2UF2Build'

    [build] [  5%] Completed 'ELF2UF2Build'

    [build] [  9%] Built target ELF2UF2Build

    [build] Scanning dependencies of target hello_usb

    [build] [ 10%] Building C object hello_world/usb/CMakeFiles/hello_usb.dir/hello_usb.c.obj

    [build] [ 11%] Linking CXX executable hello_usb.elf

    [build] [ 62%] Built target hello_usb

    [build] Scanning dependencies of target hello_serial

    [build] [ 63%] Building C object hello_world/serial/CMakeFiles/hello_serial.dir/hello_serial.c.obj

    [build] [ 63%] Linking CXX executable hello_serial.elf

    [build] [100%] Built target hello_serial

    [build] Build finished with exit code 0

     

     

    This way all the dependencies and such are brought in as expected.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 5 years ago in reply to jomoenginer

    I'd hoped that the newly created build folder would just be benign if it could still traverse into the pico-examples folder and then use the build folder that was there, but that didn't work out.

    Another semi-workaround (not having to type in a Developer Command Prompt) is to create the .vscode folder at the top level (i.e. C:\developer\pico in my case) and then put a task.json file in there, a bit like the one you showed earlier:

     

    {

    "version": "2.0.0",

    "tasks": [

          {

    "label": "Build hello_world",

    "type": "shell",

    "options": {

    "cwd": "${workspaceRoot}/pico-examples/build/hello_world"

            },

    "command": "nmake",

    "group": "test",

    "presentation": {

    "reveal": "always",

    "panel": "new"

            },

    "problemMatcher": []

          }

        ]

      }

     

    and then to do the build, press Alt-T and select Run Task and then select "Build hello_world". That seems to resolve everything without having to manually add the paths for intellisense, but trades that for the ugliness that clicking in the blue bar to perform the build won't work. So I don't like this semi-workaround. Anyway, I'll have to put this aside for now, until I get a Pi Pico (have not got around to ordering one yet, some other work has got in the way).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jomoenginer
    jomoenginer over 5 years ago in reply to shabaz

    I'm not sure if it is a good idea to open VS Code in the top level directory "and run the build there since that is where the 'build' folder will be created and typically the CMake command is "cmake .." to resolve where the code and CMakelists.txt file is located.

    If you were to do this, then you would need to open the 'pico-examples' folder in VS Code to prevent the top level directory from being contaminated with the build stuff.

     

    You might be able to mess with the 'example_auto_set_url.cmake' and the pico_sdk_import.cmake" as well as the top level CMakefiles.txt files to resolve out things. But, the way they structured the pico-examples repo, there are dependencies between the pico-sdk and pico-examples and vise-versa.  It might be easier to create a new project and just include what is needed.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jomoenginer
    jomoenginer over 5 years ago in reply to BigG

    I like the comments from the video:

    "There's no Todd's"

    "We're Tortured by these Terrible Chip Giants." "They're the worst"

     

    Considering the products Adafruit produces, I would image they have a lot of experience dealing with many of the larger chip makers. These "terrible chip giants", some who were the start-up chip makers of past, have a lot at stake and need to protect themselves, thus there are bound to be NDAs to sign. However, when I was at Intel, they had an effort to change their company attitude when it came to selling their processors which was more of a "We're the main company in the business so you do it the way we tell you or you go somewhere else". This was before ARM made a major push into the data center and AMD was still lagging.  Not quite so these days so they have to change. The only way these companies have stayed in business for so long is by changing with the market and protecting themselves. Otherwise, they just fade away.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 5 years ago in reply to jomoenginer

    Hi Jon and Rod,

     

    I was able to get the intellisense to automatically resolve the paths using the following method, but it introduced another issue : (

    As you mentioned, Visual Studio Code couldn't see the pico-sdk folder, so I closed the project, and instead opened the top-level folder (in my case C:\development\pico, which contains pico-sdk and pico-examples).

    Then, intellisense automatically figured things out. However, it means I cannot build using Visual Studio Code, because it doesn't know to traverse into the pico-examples folder to start the build.

    I tried modifying the build target in the blue bar to (say) pico-examples but that didn't work.

    Then I thought maybe it is looking for a CMakeLists.txt file in the top-level, and so I tried creating one, but I don't understand CMake very well so it failed on me. I tried this in the CMakeLists.txt file, and a few variations:

     

    cmake_minimum_required (VERSION 3.12)
    project(pico-examples)
    include(pico-examples/CMakeLists.txt)

     

    The workaround is just to keep a Developer Command Prompt open and type nmake in the appropriate folder (e.g. in pico-examples\build\hello_world) whenever the build is needed. Not great but maybe okish for now : (

    EDIT: Or maybe the tasks capability can help here somehow.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 5 years ago in reply to BigG

    It sounded like exaggeration though. Even large firms can be agile. It seemed like a cheap shot to accuse marketing teams in semiconductor firms of not helping them fast enough. In contrast, I needed some Silicon Labs help and they sent across a huge box of development boards that arrived within days.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • BigG
    BigG over 5 years ago in reply to Fred27

    What really surprised me was the long list of dev boards (as per your cnx-software link). I was not expecting that.

     

    So how did the open source community get their designs done so quickly etc.

     

    Well, I just happened to listen to this YouTube video from Adafruit.

     

    https://www.youtube.com/watch?v=jIUV9gYLYpk

     

    Circa. 7 mins into the video it reveals how it happened. Absolutely love the new way of doing things. It has to be a wake up call for the big guys...

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jomoenginer
    jomoenginer over 5 years ago in reply to 14rhb

    As far as still seeing the red squiggles after adding the c_cpp_properties.json file, run through a build process and see if the error goes away.  There is a strange dependency  in "pico/stdlib.h" for "config_autogen.h" which I could only find in "pico-examples/build/generated/pico_base". Since this is in the build folder, it does not get created until a build is performed. 

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube