{"product_id":"adafruit-qt-py-rp2040","title":"Adafruit QT Py RP2040","description":"\u003cp\u003eWhat a cutie pie! Or is it... a QT Py? This diminutive dev board comes with one of our new favorite chip, the RP2040.\u003c\/p\u003e\n\u003cp\u003eIt's been made famous in the new \u003ca href=\"\/en-eu\/products\/raspberry-pi-pico\" data-mce-href=\"\/en-eu\/products\/raspberry-pi-pico\" target=\"_blank\"\u003eRaspberry Pi Pico\u003c\/a\u003e and Adafruits \u003ca href=\"\/en-eu\/products\/adafruit-feather-rp2040\" data-mce-href=\"\/en-eu\/products\/adafruit-feather-rp2040\" target=\"_blank\"\u003eFeather RP2040\u003c\/a\u003e and \u003ca href=\"\/en-eu\/products\/adafruit-itsybitsy-rp2040\" data-mce-href=\"\/en-eu\/products\/adafruit-itsybitsy-rp2040\" target=\"_blank\"\u003eItsyBitsy RP2040\u003c\/a\u003e, but what if we wanted something really smol?\u003c\/p\u003e\n\u003cp\u003eA new chip means a new QT Py, and the Raspberry Pi RP2040 is no exception. When Adafruit saw this chip they thought \"this chip is going to be awesome when we give it the cuuutie QT Py Treatment\", and so they did! This QT Py features the RP2040, and all niceties you know and love about the original QT Py\u003c\/p\u003e\n\u003ch2\u003ePLUG-AND-PLAY STEMMA QT\u003c\/h2\u003e\n\u003cp\u003eThe star of the QT Py is \u003ca href=\"http:\/\/adafruit.com\/stemma\" data-mce-href=\"http:\/\/adafruit.com\/stemma\" target=\"_blank\"\u003eAdafruits favorite connector - the STEMMA QT\u003c\/a\u003e, a chainable I2C port that can be used with any of our \u003ca href=\"\/en-eu\/collections\/stemma-qt\" data-mce-href=\"\/en-eu\/collections\/stemma-qt\" target=\"_blank\"\u003eSTEMMA QT sensors and accessories\u003c\/a\u003e. Having this connector means you don't need to do any soldering to get started.\u003c\/p\u003e\n\u003cp\u003eWhat can you pop into the QT port? How about OLEDs! Inertial Measurement Units! Sensors a-plenty. All plug-and-play thanks to the innovative chainable design: \u003ca href=\"\/en-eu\/collections\/qwiic\" data-mce-href=\"\/en-eu\/collections\/qwiic\" target=\"_blank\"\u003eSparkFun Qwiic\u003c\/a\u003e-compatible \u003ca href=\"https:\/\/learn.adafruit.com\/introducing-adafruit-stemma-qt\" data-mce-href=\"https:\/\/learn.adafruit.com\/introducing-adafruit-stemma-qt\" target=\"_blank\"\u003eSTEMMA QT\u003c\/a\u003e connectors for the I2C bus so you don't even need to solder. Just plug in a compatible cable and attach it to your MCU of choice, and you’re ready to load up some software and measure some light.\u003c\/p\u003e\n\u003ch2\u003eSOFTWARE SUPPORT\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThere is great \u003ca href=\"https:\/\/github.com\/raspberrypi\/pico-sdk\" data-mce-href=\"https:\/\/github.com\/raspberrypi\/pico-sdk\"\u003eC\/C++ support\u003c\/a\u003e, \u003ca href=\"https:\/\/learn.adafruit.com\/rp2040-arduino-with-the-earlephilhower-core\" data-mce-href=\"https:\/\/learn.adafruit.com\/rp2040-arduino-with-the-earlephilhower-core\"\u003eunofficial (but really good) Arduino support,\u003c\/a\u003e an official \u003ca href=\"https:\/\/github.com\/micropython\/micropython\" data-mce-href=\"https:\/\/github.com\/micropython\/micropython\"\u003eMicroPython port\u003c\/a\u003e, and a \u003ca href=\"https:\/\/circuitpython.org\/downloads\" data-mce-href=\"https:\/\/circuitpython.org\/downloads\"\u003eCircuitPython port\u003c\/a\u003e!\u003c\/strong\u003e\u003cspan\u003e Adafruit \u003c\/span\u003e\u003ca href=\"https:\/\/learn.adafruit.com\/welcome-to-circuitpython\" data-mce-href=\"https:\/\/learn.adafruit.com\/welcome-to-circuitpython\"\u003erecommend CircuitPython\u003c\/a\u003e\u003cspan\u003e as it has most of their drivers, displays, sensors, and more, supported out of the box.\u003c\/span\u003e\u003c\/p\u003e\n\u003ch2\u003eQT PY RP2040 SPECIFICATIONS\u003c\/h2\u003e\n\u003cp\u003ePinout and shape is \u003ca href=\"\/en-eu\/products\/seeeduino-xiao\" data-mce-href=\"\/en-eu\/products\/seeeduino-xiao\" target=\"_blank\"\u003eSeeed Xiao\u003c\/a\u003e compatible, with castellated pads so you can solder it to a PCB with a cut out to allow the bottom components some breathing room. In addition to the QT connector, Adafruit also added an \u003cstrong\u003eRGB NeoPixel\u003c\/strong\u003e (with a controllable power pin to allow for ultra-low-power usage), \u003cstrong\u003eand both boot-mode and reset buttons\u003c\/strong\u003e (great for restarting your program or entering the bootloader). This QT Py comes with loose 0.1\" headers you can solder in for breadboard use\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. On this board there is 8MB, 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\u003cul\u003e\n\u003cli\u003eSame size, form-factor, and pin-out as the \u003ca href=\"\/en-eu\/products\/adafruit-qt-py-samd21-dev-board-with-stemma-qt\" data-mce-href=\"\/en-eu\/products\/adafruit-qt-py-samd21-dev-board-with-stemma-qt\" target=\"_blank\"\u003eSAMD-based QT Py\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eUSB Type C connector\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRP2040 32-bit Cortex M0+\u003c\/strong\u003e 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 chip for storing files and CircuitPython\/MicroPython code storage. No EEPROM\u003c\/li\u003e\n\u003cli\u003eNative USB supported by every OS - can be used as USB serial console, MIDI, Keyboard\/Mouse HID, even a little disk drive for storing Python scripts.\u003c\/li\u003e\n\u003cli\u003eCan be used with \u003cstrong\u003eMicroPython\u003c\/strong\u003e or \u003cstrong\u003eCircuitPython\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuilt-in RGB NeoPixel LED\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003e13 GPIO pins (11 breakout pads and two QT pads):\u003c\/strong\u003e\u003c\/li\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFour\u003c\/strong\u003e 12 bit ADCs (one more than Pico)\u003c\/li\u003e\n\u003cli\u003eTwo I2C ports (one on the QT connector, one on the breakout pads)\u003c\/li\u003e\n\u003cli\u003eSPI and UART peripherals, in standard QT Py locations,\u003c\/li\u003e\n\u003cli\u003ePWM outputs on every IO pin - for servos, LEDs, etc\u003c\/li\u003e\n\u003cli\u003eThere are 6 GPIO in consecutive order for PIO compatibility\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cli\u003e3.3V regulator with \u003ca href=\"https:\/\/www.diodes.com\/assets\/Datasheets\/AP2112.pdf\" data-mce-href=\"https:\/\/www.diodes.com\/assets\/Datasheets\/AP2112.pdf\" target=\"_blank\"\u003e600mA peak output\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e12 MHz crystal\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBoth Reset button and Bootloader select buttons\u003c\/strong\u003e for quick restarts (no unplugging-replugging to relaunch code)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eReally really small\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eABOUT THE RP2040\u003c\/h2\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 BOOT 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 - they use the technique on all their 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 the M4 (SAMD51), and two cores that are equivalent to the 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 custom hardware logic and data processing blocks that run on their own without taking up a CPU. For example, NeoPixels - often Adafruit bitbang the timing-specific protocol for these LEDs. For the RP2040, they instead use PIO object that reads in the data buffer and clocks out the right bitstream with perfect accuracy. \u003ca href=\"https:\/\/github.com\/raspberrypi\/pico-examples\/tree\/master\/pio\" data-mce-href=\"https:\/\/github.com\/raspberrypi\/pico-examples\/tree\/master\/pio\" target=\"_blank\"\u003eSame with I2S audio in or out, LED matrix displays, 8-bit or SPI based TFTs, even VGA!\u003c\/a\u003e 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\u003ch2\u003eTECHNICAL DETAILS\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eRevision History:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAs of June 13, 2023\u003cspan\u003e \u003c\/span\u003e\u003cspan\u003e- \u003c\/span\u003e\u003c\/strong\u003ethis version now comes with nicer tactile buttons. You may get the new QT Py RP2040 tactile buttons or the older version both are identical other than that.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAs of October 31, 2022\u003c\/strong\u003e - This sensor breakout may come with black or tan STEMMA QT connectors - they work the same!\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAs of July 5, 2022\u003c\/strong\u003e - This board may come with a different regulator than AP2112K due to parts shortages. The regulator can provide at least 500mA.\u003c\/li\u003e\n\u003c\/ul\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 \u003cstrong\u003e(not all GPIO are brought out on this board)\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003ePeripherals\u003c\/li\u003e\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\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cp\u003eProduct Dimensions: 21.8mm x 17.8mm x 5.8mm \/ 0.9\" x 0.7\" x 0.2\"\u003c\/p\u003e\n\u003cp\u003eProduct Weight: 2.2g \/ 0.1oz\u003c\/p\u003e\n\u003ch2\u003eLearn\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/learn.adafruit.com\/adafruit-qt-py-2040\"\u003ePrimary Guide: Adafruit QT Py RP2040\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":39341945487443,"sku":"ADA4900","price":10.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/products\/4900-12.jpg?v=1745607529","url":"https:\/\/shop.pimoroni.com\/en-eu\/products\/adafruit-qt-py-rp2040","provider":"Pimoroni Ltd","version":"1.0","type":"link"}