
arduino-pico v6.1.0
सभी RP2040 और RP2350 बोर्ड्स के लिए Raspberry Pi Pico Arduino core
Arduino-Pico
सभी RP2040 और RP2350 बोर्डों के लिए Raspberry Pi Pico Arduino कोर
यह Arduino का RP2040 (Raspberry Pi Pico प्रोसेसर) और RP2350 (Raspberry Pi Pico 2 प्रोसेसर) पर एक पोर्ट है। यह बेयर Raspberry Pi Pico SDK और एक कस्टम GCC 14.3/Newlib 4.5 टूलचेन का उपयोग करता है और ARM तथा RISC-V कोर को सपोर्ट करता है।
प्रलेखन
अधिक विस्तृत उपयोग जानकारी के लिए https://arduino-pico.readthedocs.io/en/latest/ तथा उदाहरण (examples) देखें।
योगदान देना
पुल रिक्वेस्ट सबमिट करने और इस कोर में लाइब्रेरी या स्केच पोर्ट करने के बारे में अधिक जानकारी के लिए योगदान मार्गदर्शिका पढ़ें।
समर्थित बोर्ड
- Raspberry Pi Pico
- Raspberry Pi Pico W
- Raspberry Pi Pico 2
- Raspberry Pi Pico 2W
- 0xCB Helios
- Adafruit Feather RP2040
- Adafruit Feather RP2040 SCORPIO
- Adafruit Floppsy RP2040
- Adafruit ItsyBitsy RP2040
- Adafruit KB2040
- Adafruit Macropad RP2040
- Adafruit Metro RP2040
- Adafruit Metro RP2350
- Adafruit QTPy RP2040
- Adafruit STEMMA Friend RP2040
- Adafruit Trinkey RP2040 QT
- Amken Bunny
- Amken Revelop
- Amken Revelop Plus
- Amken Revelop eS
- Architeuthis Flux Jumperless
- Architeuthis Flux Jumperless V5
- Arduino Nano RP2040 Connect
- ArtronShop RP2 Nano
- BIGTREETECH SKR-Pico
- Breadstick Raspberry
- BridgeTek IDM2040-7A
- BridgeTek IDM2040-43A
- Cytron IRIV IO Controller
- Cytron Maker Pi RP2040
- Cytron Maker Nano RP2040
- Cytron Maker Uno RP2040
- Cytron Motion 2350 Pro
- Datanoise PicoADK v1
- Datanoise PicoADK v2 (RP2350)
- Degz Suibo RP2040
- DeRuiLab FlyBoard2040 Core
- DFRobot Beetle RP2040
- ElectronicCats Hunter Cat NFC
- EVN Alpha
- ExtremeElectronics RC2040
- GeeekPi RP2040 Plus
- GroundStudio Marble Pico
- Invector Labs Challenger RP2040 WiFi
- Invector Labs Challenger RP2040 WiFi/BLE
- Invector Labs Challenger RP2040 WiFi6/BLE
- Invector Labs Challenger NB RP2040 WiFi
- Invector Labs Challenger RP2040 LTE
- Invector Labs Challenger RP2040 LoRa
- Invector Labs Challenger RP2040 SubGHz
- Invector Labs Challenger RP2040 SD/RTC
- Invector Labs Challenger RP2040 UWB
- Invector Labs Challenger+ RP2350 BConnect
- Invector Labs Challenger+ RP2350 WiFi/BLE
- Invector Labs Challenger+ RP2350 NB-IoT
- Invector Labs RPICO32
- Melopero Cookie RP2040
- Melopero Shake RP2040
- METE HOCA Akana R1
- Makerbase MKSTHR36
- Makerbase MKSTHR42
- MyMakers RP2040
- Neko Systems BL2040 Mini
- Newsan Archi
- nullbits Bit-C PRO
- Olimex Pico2XL
- Olimex Pico2XXL
- Olimex RP2040-Pico30
- PicoLume Transceiver
- Pimoroni PGA2040
- Pimoroni Pico Plus 2
- Pimoroni Pico Plus 2W
- Pimoroni Plasma2040
- Pimoroni Plasma2350
- Pimoroni Plasma2350W
- Pimoroni Servo2040
- Pimoroni Tiny2040
- Pimoroni Tiny2350
- Pintronix PinMax
- PCBCupid Glyph 2040
- PCBCupid Glyph Mini 2040
- RAKwireless RAK11300
- Redscorp RP2040-Eins
- Redscorp RP2040-ProMini
- Sea-Picro
- Seeed Indicator RP2040
- Seeed XIAO RP2040
- Seeed XIAO RP2040 Plus
- Seeed XIAO RP2350
- Silicognition RP2040-Shim
- Solder Party RP2040 Stamp
- Solder Party RP2350 Stamp
- Solder Party RP2350 Stamp XL
- Soldered Electronics NULA Ethernet W55RP20
- Soldered Electronics NULA RP2350
- SparkFun IoT RedBoard RP2350
- SparkFun MicroMod RP2040
- SparkFun ProMicro RP2040
- SparkFun ProMicro RP2350
- SparkFun Thing Plus RP2040
- SparkFun Thing Plus RP2350
- SparkFun XRP Controller
- uPesy RP2040 DevKit
- VCC-GND YD-RP2040
- Viyalab Mizu RP2040
- Waveshare RP2040 Zero
- Waveshare RP2040 One
- Waveshare RP2040 Plus
- Waveshare RP2040 LCD 0.96
- Waveshare RP2040 LCD 1.28
- Waveshare RP2040 LoRa
- Waveshare RP2040 Matrix
- Waveshare RP2040 PiZero
- Waveshare RP2350 Zero
- Waveshare RP2350 PiZero
- Waveshare RP2350 Plus
- Waveshare RP2350 Plus W
- Waveshare RP2350 LCD 0.96
- WIZnet W5100S-EVB-Pico
- WIZnet W5100S-EVB-Pico2
- WIZnet W5500-EVB-Pico
- WIZnet W5500-EVB-Pico2
- WIZnet W55RP20-EVB-Pico
- WIZnet W6300-EVB-Pico
- WIZnet W6300-EVB-Pico2
- WIZnet WizFi360-EVB-Pico
- Generic RP2040 (कॉन्फ़िगर करने योग्य फ्लैश, I/O पिन)
- Generic RP2350 (कॉन्फ़िगर करने योग्य फ्लैश, I/O पिन)
विशेषताएँ
- Adafruit TinyUSB Arduino (USB माउस, कीबोर्ड, फ्लैश ड्राइव, जेनेरिक HID, CDC सीरियल, MIDI, WebUSB, अन्य)
- PicoW पर ब्लूटूथ (क्लासिक और BLE) कीबोर्ड, माउस, जॉयस्टिक और वर्चुअल सीरियल के साथ
- ब्लूटूथ क्लासिक और BLE HID मास्टर मोड (BT कीबोर्ड, माउस या जॉयस्टिक से कनेक्ट करें)
- जेनेरिक Arduino USB सीरियल, कीबोर्ड, जॉयस्टिक और माउस इम्यूलेशन
- WiFi (Pico W, ESP32-आधारित ESPHost, Atmel WINC1500)
- ईथरनेट (वायर्ड WizNet W6300, WizNet W6100, WizNet W5500, WizNet W5100, ENC28J60)
- HTTP क्लाइंट और सर्वर (WebServer)
- SSL/TLS/HTTPS
- ओवर-द-एयर (OTA) अपग्रेड
- फाइलसिस्टम (LittleFS और SD/SDFS)
- मल्टीकोर सपोर्ट (setup1() और loop1())
- FreeRTOS SMP सपोर्ट
- मेनू से ओवरक्लॉकिंग और अंडरक्लॉकिंग
- digitalWrite/Read, shiftIn/Out, tone, analogWrite(PWM)/Read, तापमान
- DMA और बिल्ट-इन ADC का उपयोग करके एनालॉग स्टीरियो ऑडियो इनपुट
- PWM हार्डवेयर का उपयोग करके एनालॉग स्टीरियो ऑडियो आउटपुट
- PicoW पर ब्लूटूथ A2DP ऑडियो स्रोत (आउटपुट) और सिंक (इनपुट)
- डेटा लॉगर के लिए USB ड्राइव मोड (SingleFileDrive, FatFSUSB)
- पेरिफेरल्स: SPI मास्टर/स्लेव, Wire(I2C) मास्टर/स्लेव, डुअल UART, इम्यूलेटेड EEPROM, I2S ऑडियो इनपुट/आउटपुट, सर्वो
- USB सीरियल पर printf (यानी डीबग) आउटपुट
- PSRAM ग्लोबल्स और हीप का ट्रांसपेरेंट उपयोग (केवल RP2350)
- RP2350 के लिए ARM या RISC-V (Hazard3) सपोर्ट
- सेमीहोस्टेड सीरियल और फाइल सिस्टम एक्सेस
- GPROF प्रोफाइलिंग सपोर्ट
RP2040 PIO स्टेट मशीनों (SMs) का उपयोग जिटर-मुक्त उत्पन्न करने के लिए किया जाता है:
- सर्वो
- टोन
- I2S इनपुट
- I2S आउटपुट
- सॉफ्टवेयर UART (सीरियल पोर्ट)
- सॉफ्टवेयर SPI
Arduino Boards Manager के माध्यम से इंस्टॉल करना
Windows-विशिष्ट नोट्स
कृपया Arduino एप्लिकेशन के Windows Store संस्करण का उपयोग न करें क्योंकि इसमें कनेक्टेड Pico बोर्ड का पता लगाने में समस्याएँ हैं। https://arduino.cc से सीधे "Windows ZIP" या सादा "Windows" एक्ज़िक्यूटेबल (EXE) डाउनलोड करें और इसे सुझाए गए किसी भी डिवाइस ड्राइवर को इंस्टॉल करने दें। अन्यथा Pico बोर्ड का पता नहीं चल सकता है। साथ ही, यदि 2.0 बीटा Arduino आज़मा रहे हैं तो कृपया पहले से रिलीज़ 1.8 संस्करण इंस्टॉल करें ताकि आवश्यक डिवाइस ड्राइवर मौजूद रहें। (अधिक विवरण के लिए #20 देखें।)
Linux-विशिष्ट नोट्स
flatpak का उपयोग करके Arduino इंस्टॉल करना (जिसे अक्सर विभिन्न Linux वितरणों में "App Store" द्वारा उपयोग किया जाता है) का अर्थ है कि उसकी होस्ट तक सीमित पहुँच होगी। इससे अपलोड निम्नलिखित जैसे त्रुटि संदेशों के साथ विफल हो सकते हैं:
Scanning for RP2040 devices
...
No drive to deploy.
यदि आपको यह समस्या आती है, तो आपको या तो Arduino को किसी अन्य तरीके से इंस्टॉल करना होगा, या निम्नलिखित कमांड का उपयोग करके flatpak सैंडबॉक्सिंग सुविधा को ओवरराइड करना होगा, और फिर Arduino को पुनः आरंभ करना होगा।
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
इंस्टॉलेशन
Arduino IDE खोलें और File->Preferences पर जाएँ।
पॉप अप होने वाले डायलॉग में, "Additional Boards Manager URLs" फ़ील्ड में निम्नलिखित URL दर्ज करें:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

डायलॉग बंद करने के लिए OK दबाएँ।
IDE में Tools->Boards->Board Manager पर जाएँ
सर्च बॉक्स में "pico" टाइप करें और "Add" चुनें:

GIT के माध्यम से इंस्टॉल करना
Windows उपयोगकर्ता: Windows पर git के माध्यम से इंस्टॉल करने से पहले, कृपया
इस लिंक में दिए गए निर्देशों को पढ़ें और उनका पालन करें।
यदि Win32 लंबे पाथ सक्षम नहीं हैं, और git उन्हें उपयोग करने के लिए कॉन्फ़िगर नहीं किया गया है तो
सबमॉड्यूल को क्लोन करने का प्रयास करते समय त्रुटियाँ हो सकती हैं।
Linux या Mac पर GIT के माध्यम से इंस्टॉल करने के लिए (नवीनतम और सर्वश्रेष्ठ संस्करणों के लिए):
mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule update --init --recursive
cd tools
python3 ./get.py
Windows के लिए, आपके पास Python पहले से इंस्टॉल होना चाहिए और git clone को एक अलग पाथ में करें:
mkdir %USERPROFILE%\Documents\Arduino\hardware\pico
git clone https://github.com/earlephilhower/arduino-pico.git %USERPROFILE%\Documents\Arduino\hardware\pico\rp2040
cd %USERPROFILE%\Documents\Arduino\hardware\pico\rp2040
git submodule update --init --recursive
cd tools
python .\get.py
स्केच अपलोड करना
अपना पहला स्केच अपलोड करने के लिए, आपको Pico को अपने कंप्यूटर से कनेक्ट करते समय BOOTSEL बटन दबाए रखना होगा। फिर अपलोड बटन दबाएँ और स्केच ट्रांसफर होकर चलना शुरू हो जाना चाहिए।
पहले अपलोड के बाद, यह आवश्यक नहीं होना चाहिए क्योंकि arduino-pico कोर में ऑटो-रीसेट सपोर्ट है।
Arduino Tools->Port->Serial Port मेनू में दिखाई देने वाला उपयुक्त सीरियल पोर्ट एक बार चुनें (यह सेटिंग बनी रहेगी और कई अपलोड के लिए इसे
बदलने की आवश्यकता नहीं है)। यह चयन ऑटो-रीसेट टूल को रीसेट करने के लिए सही डिवाइस की पहचान करने में सक्षम बनाता है।
फिर अपलोड बटन दबाएँ और आपका स्केच अपलोड होकर चल जाना चाहिए।
कुछ मामलों में Pico में हार्ड हैंग हो सकता है और उसका USB पोर्ट ऑटो-रीसेट अनुरोध का जवाब नहीं देगा। यदि ऐसा होता है, तो ROM बूटलोडर में प्रवेश करने के लिए Pico को प्लग करते समय BOOTSEL बटन दबाए रखने की प्रारंभिक प्रक्रिया का पालन करें।
फाइलसिस्टम इमेज अपलोड करना
Pico के लिए ऑनबोर्ड फ्लैश फाइलसिस्टम, LittleFS, आपको अपने स्केच के उपयोग के लिए स्केच डायरेक्टरी से फाइलसिस्टम इमेज अपलोड करने की सुविधा देता है। आवश्यक प्लगइन यहाँ से डाउनलोड करें
इंस्टॉल करने के लिए, निम्नलिखित में दिए गए निर्देशों का पालन करें
विस्तृत उपयोग जानकारी के लिए, कृपया ESP8266 रेपो प्रलेखन देखें (SPIFFS से संबंधित नोट्स को अनदेखा करें), जो यहाँ उपलब्ध है
Picoprobe/Debugprobe के साथ स्केच अपलोड करना
यदि आपने Raspberry Pi Picoprobe बनाया है, तो आप अपने स्केच अपलोड और GDB के साथ डीबगिंग के लिए OpenOCD का उपयोग कर सकते हैं।
Windows के अंतर्गत एक स्थानीय एडमिन उपयोगकर्ता Picoprobe पोर्ट तक स्वचालित रूप से पहुँच प्राप्त कर सकता है, लेकिन Linux के अंतर्गत udev को डिवाइस के बारे में और सामान्य उपयोगकर्ताओं को एक्सेस देने के बारे में बताया जाना चाहिए।
Ubuntu (और अन्य OS जो udev का उपयोग करते हैं) पर Picoprobe तक यूज़र-स्तरीय एक्सेस सेट करने के लिए:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE="660", GROUP-"plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload
sudo udevadm trigger -w -s usb
पहली पंक्ति /dev में Picoprobe के USB वेंडर और प्रोडक्ट ID से मेल खाती हुई एक डिवाइस फ़ाइल बनाती है, और यह वैश्विक रीड+राइट अनुमतियाँ सक्षम करती है। दूसरी पंक्ति udev को इस नए नियम को लोड करने के लिए प्रेरित करती है। तीसरी पंक्ति कर्नेल से "डिवाइस चेंज" इवेंट उत्पन्न करने का अनुरोध करती है जो हमारे नए udev नियम को चलाएँगे।
यदि किसी कारण से डिवाइस फ़ाइल दिखाई नहीं देती है, तो USB कनेक्शन को मैन्युअल रूप से अनप्लग करें और फिर से प्लग करें और दोबारा जाँच करें। यदि डिवाइस फ़ाइल अनुपस्थित रहती है तो dmesg का आउटपुट उपयोगी डायग्नोस्टिक्स प्रकट कर सकता है।
एक बार Picoprobe अनुमतियाँ ठीक से सेट हो जाने पर, Tools मेनू में "Raspberry Pi Pico (Picoprobe)" बोर्ड चुनें और सामान्य रूप से अपलोड करें।
Picoprobe, OpenOCD और GDB के साथ डीबगिंग
इंस्टॉल किए गए टूल्स में OpenOCD का एक संस्करण (pqt-openocd डायरेक्टरी में) और GDB (pqt-gcc डायरेक्टरी में) शामिल हैं। इनका उपयोग Raspberry Pi Foundation के Pico Getting Started मैनुअल में प्रलेखित अनुसार एक इंटरैक्टिव विंडो में GDB चलाने के लिए किया जा सकता है। git इंस्टॉलेशन डायरेक्टरी से कमांड लाइन ./system/openocd/bin/openocd -f ./lib/rp2040/picoprobe_cmsis_dap.tcl या ./system/openocd/bin/openocd -f ./lib/rp2350/picoprobe_cmsis_dap.tcl का उपयोग करें।
लाइसेंसिंग और क्रेडिट्स
- Arduino IDE और ArduinoCore-API Arduino टीम द्वारा विकसित और अनुरक्षित हैं। IDE GPL के अंतर्गत लाइसेंस प्राप्त है।
- RP2040 GCC-आधारित टूलचेन GPL के अंतर्गत लाइसेंस प्राप्त है।
- Pico-SDK Raspberry Pi (Trading) Ltd द्वारा है और BSD 3-Clause लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
- Arduino-Pico कोर फ़ाइलें LGPL के अंतर्गत लाइसेंस प्राप्त हैं।
- LittleFS लाइब्रेरी ARM Limited द्वारा लिखी गई है और BSD 3-clause लाइसेंस के अंतर्गत जारी की गई है।
- UF2CONV.PY Microsoft Corporation द्वारा है और MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
- नेटवर्किंग और फाइलसिस्टम कोड ESP8266 Arduino Core से लिया गया है और LGPL के अंतर्गत लाइसेंस प्राप्त है।
- AP होस्ट मोड के लिए DHCP सर्वर Micropython Project से है, जो MIT लाइसेंस के अंतर्गत वितरित है।
- FreeRTOS Amazon.com, Inc. या इसके सहयोगियों का कॉपीराइट है, और MIT लाइसेंस के अंतर्गत वितरित है।
- lwIP (c) Swedish Institute of Computer Science है और BSD लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
- BearSSL लाइब्रेरी Thomas Pornin द्वारा लिखी गई है, और MIT लाइसेंस के अंतर्गत वितरित है।
- UZLib (c) 2003 Joergen Ibsen का कॉपीराइट है और zlib लाइसेंस के अंतर्गत वितरित है।
- LEAmDNS कई लेखकों का कॉपीराइट है और MIT लाइसेंस के अंतर्गत वितरित है।
- http-parser Joyent, Inc. और अन्य Node योगदानकर्ताओं का कॉपीराइट है।
- WebServer कोड ESP32 WebServer से संशोधित है और (c) 2015 Ivan Grokhotkov और अन्य का कॉपीराइट है।
- Xoshiro-cpp (c) 2020 Ryo Suzuki का कॉपीराइट है और MIT लाइसेंस के अंतर्गत वितरित है।
- FatFS लो-लेवल फाइलसिस्टम कोड Copyright (C) 2024, ChaN है, सर्वाधिकार सुरक्षित।
- Espressif फोर्क से PSRAM के लिए TLSF मेमोरी मैनेजर, Matthew Conte के मूल का, Matthew Conte का कॉपीराइट है और MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
- ESPHost लाइब्रेरी अपने अनुरक्षकों द्वारा LGPL लाइसेंस प्राप्त है।
-Earle F. Philhower, III
[email protected]