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…
  • jomoenginer
    jomoenginer over 5 years ago in reply to 14rhb

    14rhb  wrote:

     

    Your JSON script did however now give me the option to build with arm-gcc, which was missing previously.

    .

     

    It should have been building with the ARM GCC compiler already either command line or in VS Code. In VS Code there is a step to select the Active Kit from the bottom of the screen. Otherwise I suspsect the code will not run on the Pico. The c_cpp_properties.json is for the IntelliSense config which seems to help resolve locations of files.

     

    There are a couple of things to note with the IntelliSense config and the Pico code.  In the IntelliSense config for the 'includePath', from what I gather it will not do a recursive search, so I was not able to do something like "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/**".  Also, the way they laid out the pico-sdk and pico-examples code, the libraries are separated into their own folders so if VS Code can not find it, you need to search in either pico-sdk or pico-examples to see where it is located and add that particular path into the 'includePath'. This is why there are so many listed in the c_cpp_properties.json file example I posted.

      Also, IntelliSense seems to be using Linux based separators so with a Windows path such as:

    C:\Users\jomodev\Downloads\RPI_Pico2\pico-sdk\src\rp2_common\pico_printf\include

     

    You need to either add an escape character in front of the "\" or change this to a forward slash "/" as i did in the c_cpp_properties.json file:

    Ex:

    C:\\Users\\jomodev\\Downloads\\RPI_Pico2\\pico-sdk\\src\\rp2_common\\pico_printf\\include

     

    Or:

    C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/rp2_common/pico_printf/include

     

    This is a pain when doing a copy and paste of paths from a Windows folder.

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

    Thank you for all the points, I'll check the PATHS and maybe start the VSCode setup from scratch again, maybe I missed a small detail.

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

    Thank you for finding this jomoenginer - you are a genius. Most of the squiggle is now sorted, just a little piece at the start image. I need to spend a while better understanding the setup in VSCode as I think that would be useful anyway.

    image

    Your JSON script did however now give me the option to build with arm-gcc, which was missing previously.

     

    What I didn't realise however was that I had blindly followed the pico install for both commandline and VSCode undertaking the same steps - for now I could have stopped once the commandline process worked ; my home PC is quite slow and I think it struggles with much of the useful tools that MS have incorporated into VSCode such as Intellisense and I find I'm forever correcting the predicted code.

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

    I have seemed to resolved the issue where the Pico libs were not found (Red Squiggles) in the VS Code IDE.

     

    In the VS Code , type "Ctrl-Shift-P" which will open the IntelliSense Configurations section as well as create a c_cpp_properties.json file under .vscode.

     

    image

     

    This will create some Windows definitions in the c_cpp_properties.json file so I replaced them with the following:

    {

     

        "configurations": [

            {

                "name": "PICO-EXAMPLES",

                "includePath": [

                    "${workspaceFolder}/**",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/common/pico_base/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/common/pico_stdlib/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/rp2_common/pico_platform/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/rp2_common/pico_stdio/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/rp2040/hardware_regs/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/host/hardware_timer/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/host/hardware_gpio/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/host/hardware_uart/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/common/pico_time/include",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-sdk/src/boards/include/boards",

                    "C:/Users/jomodev/Downloads/RPI_Pico2/pico-examples/build/generated/pico_base"

                ],

                "defines": [],

                "compilerPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/bin/arm-none-eabi-gcc.exe",

                "cStandard": "gnu17",

                "cppStandard": "gnu++17",

                "intelliSenseMode": "gcc-arm"

            }

        ],

        "version": 4

    }

     

    I'm not 100% if all it is right, but the errors locating the things like "pico/stdlib.h" have been resolved.

     

    The one odd thing is the reference to "pico-examples/build/generated/pico_base" which does not get created until you build the project, so there will be errors until a build is performed.

     

    So far it seems to work.

     

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

    Thanks, you could be right, I'll give that part of the process another try. It could be that a git error got flagged and I missed it on screen. That said the command line nmake part does work, its just the VSCode side that has problems. Digging deeper the /pico/stdlib.h is not the problem but instead something called sys/defs.h which is right down in the weeds of x86/x64 operation. I think I may have installed something for the wrong processor perhaps. Anyway, thanks for all your help but please don't dwell on my issue as I'll likely start from scratch (once my internet is up and running correctly again).

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

     

     

    What did you do to see this error?  Are you referring to what is seen in the VS Code editor?

    If that is the case, it is due to the location of "pico/stdio.h" not being in the path.

     

    If you trying to run 'nmake' in the 'hello_world' folder as in Shabaz's post, then you may need to configure your CMakelists.txt to reference the changes. Probably not the best thing to do though.

     

    Did you set "PICO_SDK_PATH":"../../pico-sdk"?

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

    Hi Rod,

     

    Could this be a git clone gone wrong? You mentioned connectivity issues. I'm wondering if a file didn't get cloned. I don't know if that is possible with git or not. It seems a possibility to me, but I could be totally wrong : (

    For my test I had just downloaded the zip files from GitHub I know that's not normal.

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

    Note in case anyone else gets this issue: it is a dependancy of /pico/stdio.h called sys/cdefs.h that cannot be found e.g.

    cannot open source file "sys/cdefs.h" (dependency of "pico/stdlib.h")

    I'll post the solution if I can find one.

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

    That was not easy, getting the code to build on Windows : (

    Anyway I too eventually got it to work (perhaps not the best way), and took screenshots. Working with the Raspberry Pi Pico with Windows and C/C++

    My main issues were to do with 'nmake'. I still don't have that figured out completely, but made some manual changes to environment variables to get past that for now. The rest went ok-ish, but took a while to figure out, and my steps there are probably sub-optimal.

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

    For me, it ended up being a two step process using the tasks.json file.

     

    1. Type 'Alt-t' and select 'Run Task'.

        This should build the Makefile unless there is an issue.

     

    2. Type 'Alt-t' and select 'Run Build task'.

     

    If you had run CMake previously, remove the build directory and recreate it and try again.

     

     

    Personally I am not a fan of VS Code. I've really just used it as an editor with something like Unreal or ROS2 and did my building with other tools or just command line.

    • 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