{"product_id":"adafruit-feather-rp2040-microcontroller-based-on-rp2040-chip","title":"Adafruit Feather RP2040","description":"\u003ch2\u003e\u003cstrong\u003eDescription:\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cp\u003eA new chip means a new Feather, and the Raspberry Pi RP2040 is no exception. When we saw this chip we thought \"this chip is going to be awesome when we give it the Feather Treatment\" and so we did! This Feather features the \u003cstrong\u003eRP2040\u003c\/strong\u003e, and all niceties you know and love about Feather\u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003eSpecifications:\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMeasures 2.0\" x 0.9\" x 0.28\" (50.8mm x 22.8mm x 7mm) without headers soldered in\u003c\/li\u003e\n\u003cli\u003eLight as a (large?) feather - 5 grams\u003c\/li\u003e\n\u003cli\u003eRP2040 32-bit Cortex M0+ dual core running at ~125 MHz @ 3.3V logic and power\u003c\/li\u003e\n\u003cli\u003e264 KB RAM\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e8 MB SPI FLASH\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003echip for storing files and CircuitPython\/MicroPython code storage. No EEPROM\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTons of GPIO! 21 x GPIO pins with following capabilities:\u003c\/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFour\u003cspan\u003e \u003c\/span\u003e\u003c\/strong\u003e12-bit ADCs (one more than Pico)\u003c\/li\u003e\n\u003cli\u003eTwo I2C, Two SPI, and two UART peripherals, we label one for the 'main' interface in standard Feather locations\u003c\/li\u003e\n\u003cli\u003e16 x PWM outputs - for servos, LEDs, etc\u003c\/li\u003e\n\u003cli\u003eThe 8 digital 'non-ADC\/non-peripheral' GPIO are consecutive for maximum PIO compatibility\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBuilt-in 200mA+ lipoly charger\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003ewith charging status indicator LED\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePin #13 red LED\u003cspan\u003e \u003c\/span\u003e\u003c\/strong\u003efor general purpose blinking\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRGB NeoPixel\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003efor full-color indication.\u003c\/li\u003e\n\u003cli\u003eOn-board\u003cspan\u003e \u003c\/span\u003e\u003cstrong\u003eSTEMMA QT connector\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003ethat lets you quickly connect any Qwiic, STEMMA QT or Grove I2C devices with no soldering!\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBoth Reset button and Bootloader select button for quick restarts\u003cspan\u003e \u003c\/span\u003e\u003c\/strong\u003e(no unplugging-replugging to relaunch code)\u003c\/li\u003e\n\u003cli\u003e3.3V Power\/enable pin\u003c\/li\u003e\n\u003cli\u003eOptional SWD debug port can be soldered in for debug access\u003c\/li\u003e\n\u003cli\u003e4 mounting holes\u003c\/li\u003e\n\u003cli\u003e12 MHz crystal for perfect timing.\u003c\/li\u003e\n\u003cli\u003e3.3V regulator with 500mA peak current output\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB Type C connector\u003cspan\u003e \u003c\/span\u003e\u003c\/strong\u003elets you access built-in ROM USB bootloader and serial port debugging\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAs of November 28, 2022\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003e– we've updated this Feather with a right-angle tactile button for the Bootloader switch, so that you can press it even when a 'wing is on the Feather. We have also connected the boot button to GPIO #4 so it can be used as a user-input button\u003c\/li\u003e\n\u003cli\u003eCode: 4884\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eInside the RP2040 is a 'permanent ROM' USB UF2 bootloader\u003c\/strong\u003e. What that means is when you want to program new firmware, you can hold down the BOOTSEL button while plugging it into USB (or pulling down the RUN\/Reset pin to ground) and it will appear as a USB disk drive you can drag the firmware onto. Folks who have been using Adafruit products will find this very familiar - we use the technique on all our native-USB boards. Just note you don't double-click reset instead hold down BOOTSEL during boot to enter the bootloader!\u003c\/p\u003e\n\u003cp\u003eThe RP2040 is a powerful chip, which has the clock speed of our M4 (SAMD51), and two cores that are equivalent to our M0 (SAMD21). Since it is an M0 chip, it does not have a floating point unit or DSP hardware support - so if you're doing something with heavy floating-point math, it will be done in software and thus not as fast as an M4. For many other computational tasks, you'll get close-to-M4 speeds!\u003c\/p\u003e\n\u003cp\u003eFor peripherals, there are two I2C controllers, two SPI controllers, and two UARTs that are multiplexed across the GPIO - check the pinout for what pins can be set to which. There are 16 PWM channels, each pin has a channel it can be set to (ditto on the pinout).\u003c\/p\u003e\n\u003cp\u003eYou'll note there's no I2S peripheral, or SDIO, or camera, what's up with that? Well instead of having specific hardware support for serial-data-like peripherals like these, the RP2040 comes with the PIO state machine system which is a unique and powerful way to create \u003cem\u003ecustom hardware logic and data processing blocks\u003c\/em\u003e that run on their own without taking up a CPU. For example, NeoPixels - often we bitbang the timing-specific protocol for these LEDs. For the RP2040, we instead use PIO object that reads in the data buffer and clocks out the right bitstream with perfect accuracy. Same with I2S audio in or out, LED matrix displays, 8-bit or SPI based TFTs, even VGA! In MicroPython and CircuitPython you can create PIO control commands to script the peripheral and load it in at runtime. There are 2 PIO peripherals with 4 state machines each.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThere is great \u003ca href=\"https:\/\/github.com\/raspberrypi\/pico-sdk\"\u003eC\/C++ support\u003c\/a\u003e,\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/learn.adafruit.com\/rp2040-arduino-with-the-earlephilhower-core\"\u003eunofficial (but really good) Arduino support,\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003ean official \u003ca href=\"https:\/\/github.com\/micropython\/micropython\"\u003eMicroPython port\u003c\/a\u003e, and a \u003ca href=\"https:\/\/circuitpython.org\/downloads\"\u003eCircuitPython port\u003c\/a\u003e!\u003c\/strong\u003e We of course \u003ca href=\"https:\/\/learn.adafruit.com\/welcome-to-circuitpython\"\u003erecommend CircuitPython because we think it's the easiest way to get started\u003c\/a\u003e and it has support with most of our drivers, displays, sensors, and more, supported out of the box so you can follow along with our CircuitPython projects and tutorials.\u003c\/p\u003e\n\u003cp\u003eWhile the RP2040 has lots of onboard RAM (264KB), it does not have built-in FLASH memory. Instead, that is provided by the external QSPI flash chip.\u003cspan\u003e \u003c\/span\u003e\u003cstrong\u003eOn this board there is 8 MB\u003c\/strong\u003e, which is shared between the program it's running and any file storage used by MicroPython or CircuitPython. When using C\/C++ you get the whole flash memory, if using Python you will have about 7 MB remaining for code, files, images, fonts, etc.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eRP2040 Chip features:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDual ARM Cortex-M0+ @ 133MHz\u003c\/li\u003e\n\u003cli\u003e264kB on-chip SRAM in six independent banks\u003c\/li\u003e\n\u003cli\u003eSupport for up to 16MB of off-chip Flash memory via dedicated QSPI bus\u003c\/li\u003e\n\u003cli\u003eDMA controller\u003c\/li\u003e\n\u003cli\u003eFully-connected AHB crossbar\u003c\/li\u003e\n\u003cli\u003eInterpolator and integer divider peripherals\u003c\/li\u003e\n\u003cli\u003eOn-chip programmable LDO to generate core voltage\u003c\/li\u003e\n\u003cli\u003e2 on-chip PLLs to generate USB and core clocks\u003c\/li\u003e\n\u003cli\u003e30 GPIO pins, 4 of which can be used as analog inputs\u003c\/li\u003e\n\u003cli\u003ePeripherals\n\u003cul\u003e\n\u003cli\u003e2 UARTs\u003c\/li\u003e\n\u003cli\u003e2 SPI controllers\u003c\/li\u003e\n\u003cli\u003e2 I2C controllers\u003c\/li\u003e\n\u003cli\u003e16 PWM channels\u003c\/li\u003e\n\u003cli\u003eUSB 1.1 controller and PHY, with host and device support\u003c\/li\u003e\n\u003cli\u003e8 PIO state machines\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003e\u003cstrong\u003ePacking List:\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1x RP2040 fully assembled and tested, with the UF2 USB bootloader\u003c\/li\u003e\n\u003cli\u003eheader pins\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":43696842932415,"sku":"MLE04219","price":990.0,"currency_code":"PHP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0531\/3419\/6927\/files\/MLE04219.jpg?v=1755841622","url":"https:\/\/makerlab.ph\/products\/adafruit-feather-rp2040-microcontroller-based-on-rp2040-chip","provider":"Makerlab PH","version":"1.0","type":"link"}