2 पॉइंट द्वारा GN⁺ 2024-06-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Raspberry Pi का RP2040 consumer electronics में लगाने के लिए एक microcontroller है; यह सस्ता है और बड़े पैमाने पर stock आसानी से मिल जाता है, जिससे शुरुआती development में choice का दबाव कम होता है
  • Raspberry Pi ने कई variants के बजाय एक ही part पर focus किया; इससे बारीक specification optimization कम हुई, लेकिन सवाल, examples, libraries और tools एक ही जगह इकट्ठा होने का फायदा मिला
  • लगभग 70 cents की कीमत mass production में component cost optimization के लिए नुकसानदेह हो सकती है, लेकिन Late Mate जैसे projects में development cost की बचत बड़ा फायदा हो सकती है
  • दो cores, 30 GPIO, USB, UART/SPI/I2C/PWM, ज्यादा internal RAM और built-in flash न होना—यह configuration काफी और flexible समझौते के करीब है
  • PIO, read-only bootloader, और जरूरत से ज्यादा firmware protection से बचने वाला design RP2040 को किसी खास use case के लिए practical part जैसा बनाता है

एक ही part strategy से बना ecosystem

  • RP2040 Raspberry Pi द्वारा बनाया गया microcontroller है; ज्यादा प्रसिद्ध Raspberry Pi boards के विपरीत, इसका use consumer electronics में embedded रूप से किया जाता है
  • Mouser पर दसियों हजार units तक तुरंत ship होने वाला stock उपलब्ध है, और कीमत लगभग 70 cents है
  • सामान्य microcontroller manufacturers मिलते-जुलते लेकिन थोड़ा-थोड़ा अलग products बड़ी संख्या में देते हैं
    • physical products की manufacturing cost होती है, इसलिए mass production में प्रति part 1 cent की बचत भी profit पर असर डालती है
    • इसलिए product के लिए ठीक-ठाक performance वाला microcontroller चुनने की right-sizing incentive बनती है
  • Raspberry Pi ने RP2040 में व्यावहारिक रूप से एक ही part पर focus किया
    • choices और fine-grained specification tuning की गुंजाइश घट जाती है
    • बदले में StackExchange questions, blog posts, experience, GitHub issues, libraries और tools उसी part पर जमा होते जाते हैं
  • Late Mate जैसे projects component cost की तुलना में development cost में ज्यादा बचत कर सकते हैं, इसलिए single-part strategy अच्छा trade-off हो सकती है
  • Rust support Embassy examples जैसा अच्छा है, और keyboard, drone, soccer robot firmware examples भी हैं

पर्याप्त hardware और PIO की flexibility

  • RP2040 का design “highest spec” के बजाय काफी और flexible configuration चुनने वाला general-purpose trade-off जैसा है
    • यह दो अच्छे cores देता है, और जरूरत पड़ने पर दूसरा core इस्तेमाल किया जा सकता है
    • GPIO 30 हैं, जो औसत स्तर है
    • onboard flash नहीं है, और बाहर से जोड़ना ज्यादा मुश्किल internal RAM पर budget ज्यादा लगाया गया है
    • ADC ठीक स्तर का है, और USB व UART/SPI/I2C/PWM जैसे common peripherals देता है
  • कम traditional features में PIO शामिल है
    • PIO का full form Programmable Input/Output है; यह दो छोटे auxiliary processors जैसा है, जो fast IO को exact timing के साथ चलाते हैं और CPU time नहीं लेते
    • इसका इस्तेमाल DShot ESC जैसे communication protocols implement करने में होता है
    • Pico-PIO-USB PIO पर पूरा USB stack implement करता है, जिससे RP2040 को दूसरा USB controller मिलता है
    • DMA के साथ इस्तेमाल करने पर display driver display और touch communication को CPU से पूरी तरह offload कर सकता है

brick state से बचाने वाला bootloader और security trade-off

  • RP2040 की संरचना ऐसी है कि इसे brick नहीं किया जा सकता
    • इसमें read-only bootloader शामिल है
    • इसे USB mass storage device के रूप में mount करके firmware को “storage device” में copy करने के तरीके से update किया जा सकता है
    • इसका अपना simple USB protocol picotool में इस्तेमाल होता है
  • dedicated attacker से firmware की रक्षा करना लगभग असंभव है, और ऐसा करने की कोशिश अपने-आप में complexity और developer experience की cost लाती है—इस आकलन के तहत यह जरूरत से ज्यादा security theatre नहीं करता
  • इन choices को इस तरह देखा जा सकता है कि RP2040 ने छोटे silicon parts की niche को ध्यान में रखते हुए practical balance बनाया है

1 टिप्पणियां

 
GN⁺ 2024-06-12
Hacker News की राय
  • RP2040 का असली हीरो PIO है, जो ESP32 जैसे प्रतिस्पर्धी chips के लिए मैच करना मुश्किल क्षमता देता है
    इसलिए console hacking में यह जगह-जगह इस्तेमाल हो रहा है। हालांकि battery-based uses में अच्छा होगा अगर V2 में deep sleep mode की power consumption और कम हो जाए

    • battery life जैसी चीज़ें अनुभव बढ़ने पर बेहतर होने की संभावना काफी है। मैंने silicon side के एक व्यक्ति से RP2040 पर बात की थी, और उन्होंने कहा कि यह पहली पीढ़ी के design की काफी typical characteristics हैं
      FPGA में verify की जा सकने वाली digital logic आम तौर पर ठीक रहती है, लेकिन analog elements को fine-tune करना कहीं ज्यादा मुश्किल होता है, इसलिए power consumption खराब, ADC कमजोर, और internal DAC या operational amplifier न होने जैसी बातें सामने आती हैं। Pico W का wireless chip भी ESP32 की तरह fully integrated नहीं बल्कि अलग off-the-shelf component है, इसकी वजह भी कुछ हद तक यही है
    • PIO में सबसे परेशान करने वाली बात यह है कि ये सिर्फ 2 हैं। हर एक में 4 sub-units तो हैं, लेकिन instruction space सिर्फ 32 instructions का है और external clock input भी नहीं है
      बहुत basic peripherals implement करने के लिए यह शानदार है, लेकिन कई बार मैंने थोड़ा ज्यादा complex कुछ बनाना शुरू किया और फिर एहसास हुआ कि यह बहुत slow है और space भी कम पड़ रही है। अगर इसे थोड़ा और मजबूत कर दिया जाए तो यह मामूली FPGA use cases को काफी आसानी से replace कर सकता है
    • मेरे लिए supply stability सबसे अहम है। एक IC, लंबी product life, हमेशा stock में उपलब्ध। 2021/2022 की अफरातफरी झेलने के बाद मैं कुछ cents बचाने के लिए फिर से ऐसी चीज़ sacrifice करने का सोच भी नहीं सकता
    • robotics में भी यही बात है। 8 PIO interrupt cost लगभग शून्य रखते हुए 4 quadrature encoders को पढ़ने और record करने के लिए काफी हैं, इसलिए Micropython जैसे slow environment में भी अच्छा प्रदर्शन करने वाला closed-loop controller बनाया जा सकता है
    • ESP32 और RP2040 की तुलना करना लगभग apples और oranges की तुलना जैसा है
      अगर बहुत I/O चाहिए तो आम तौर पर ESP32 नहीं देखा जाता। ESP32 की ताकत यह है कि यह सस्ता है और इसमें WiFi built-in है। RP2040 से तुलना करें तो दूसरे microcontroller options भी कई हैं जो बेहतर हो सकते हैं, लेकिन उनमें से ज्यादातर hobby market के लिए नहीं हैं
  • पिछले कुछ वर्षों से RVASec security conference के electronic badge[1] में RP2040 इस्तेमाल कर रहे हैं, और software लिखने का अनुभव काफी अच्छा रहा
    इस साल के badge का GitHub repository यहां है। Hardware के बिना भी कुछ हद तक छेड़छाड़ कर सकने वाला software-only badge simulator है, लेकिन infrared badge-to-badge communication पर निर्भर multiplayer feature शायद उतना मजेदार न लगे: https://github.com/HackRVA/badge2024

    [1] 2023 badge video: https://www.youtube.com/watch?v=KWZriUMNpLc
    [2] https://rvasec.com/

    • उत्सुकता है कि custom क्यों बनाया और NXP का product क्यों नहीं इस्तेमाल किया
  • “वही microcontroller है और सिर्फ दो bug-fix revisions हैं” कहना सही नहीं है
    असल में यह बिल्कुल वही microcontroller है, बस packaging options दो हैं। एक 500-unit 7-inch reel है और दूसरा 3400-unit 13-inch reel। Datasheet में “Ordering code” देखें: https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.p...

    • फिर भी bug-fix revisions कुछ बार हुए हैं। RP2040-B0 original है, -B1 में ROM code में कुछ improvements हुए, और -B2 में और ROM changes आए तथा शुरुआती version के silicon bugs भी fix किए गए
      अगर आप official SDK इस्तेमाल करते हैं तो कौन-सा version है, इसकी ज्यादा चिंता करने की जरूरत नहीं है। Standard high-level library runtime पर hardware revision detect करती है और जरूरी workarounds को on या off कर देती है
  • RP2040 ने custom controllers जैसे काफी niche market को लगभग अकेले फिर से जिंदा कर दिया
    open source gamepad firmware gp2040[1] की वजह से लोग Victrix या Razer जैसी कंपनियों के products से काफी सस्ते में अच्छी quality के fightsticks और leverless controllers खरीद सकते हैं। Open source होने के कारण controller hobby community भी हर तरह के projects और अनोखे controller ideas के लिए RP2040 PCB बना रही है

    [1] https://gp2040-ce.info

    • यह जानने की उत्सुकता है कि इसका कितना हिस्सा सीधे RP2040 के कारण माना जा सकता है। QMK0 जैसे projects DIY keyboards के लिए technically काफी मिलते-जुलते codebase बहुत पहले से इस्तेमाल करते आए हैं
      पहली नजर में GP2040 में ऐसा कुछ खास नहीं दिखता जो कोई और reasonably modern microcontroller न कर सके। यह साफ है कि RP2040 ने GP2040 के व्यापक adoption के लिए catalyst का काम किया, लेकिन Pro Micro से भी कुछ ऐसा ही संभव लगता

    • PhobGCC को भी छोड़ना नहीं चाहिए। मैं उसका lead developer हूं, और GameCube पर कम focused successor line में ProGCC V3, GC Ultimate, Phizard जैसी चीजें भी हैं

    • “अकेले” कहना Brook boards, जैसे Zero-Pi[1], और उनसे पहले मौजूद चीजों को कम आंकने जैसा लगता है। Historical तौर पर यह पूरी तरह सही बात नहीं लगती

      [1] https://www.brookaccessory.com/detail/53169470/

  • अगर आप electronics hobby करते हैं लेकिन खुद surface-mount board बनाना या design करना नहीं चाहते, तो सस्ते और आसानी से उपलब्ध RP2040 boards बहुत हैं
    Raspberry Pi Pico($5) इस्तेमाल करके देखा है, यह काफी I/O वाले अच्छे board पर आता है। थोड़ा और खर्च करें तो WiFi वाला W version भी है

    अगर थोड़ा कम I/O चले तो RP-2040 Zero order कर सकते हैं। AliExpress से मैंने 6 units करीब $12 में खरीदी थीं। I/O pins सिर्फ 23 हैं, लेकिन reset button, USB-C है और यह बहुत छोटा है(1.5cm x 2.5cm)

इन बोर्डों की अच्छी बात यह है कि standard Raspberry Pi development tools, Micropython, C++ वैसे ही बढ़िया चलते हैं, और USB से firmware आसानी से अपलोड किया जा सकता है

  • मैं pico ice की भी सिफारिश करना चाहूंगा। इसके $30 price tag का ज़्यादातर हिस्सा लगे हुए UP5K की वजह से है, लेकिन embedded projects जिन्हें sub-microsecond स्तर की operations चाहिए, उनके लिए यह open source tools इस्तेमाल कर सकने वाला अपेक्षाकृत सस्ता विकल्प है

  • RP2040-आधारित alternative development boards कई जगहों पर तलाशने की मैं जोरदार सिफारिश करता हूं। official Pi Pico हैरानी की बात है कि उतना अच्छा नहीं है, और लगभग हर alternative board किसी न किसी मायने में बेहतर है
    reset नहीं, बड़ा form factor, सिर्फ 2Mbit flash, और micro USB—2024 में यह थोड़ा अजीब लगता है। इसका लगभग इकलौता फायदा यह है कि यह व्यापक रूप से उपलब्ध है

  • छोटे RP2040 boards अच्छे लगते हैं। adafruit QT Py के आधार पर मैंने कुछ छोटे projects बनाए हैं
    काश इसका wireless version होता। ESP32 QT इस्तेमाल करें तो ऐसा मिलता है, लेकिन RP2040 में मेरी नजर में ऐसा नहीं दिखता

  • अगर space constraints बहुत ज्यादा कड़े नहीं हैं, तो 2040 Zero का फायदा मुझे साफ नहीं दिखता। features कम हैं लेकिन कीमत ज्यादा है। Pico भी पहले से काफी छोटा है
    फिर भी Pico की pin compatibility वाकई अच्छी है। ESP side में I/O pins बहुत लगते हैं, लेकिन internal flash या bootloader वगैरह से जुड़े pins की वजह से, अगर किस्मत अच्छी हो तो बस पर्याप्त भर बचते हैं। यह भी समझ नहीं आता कि ऐसे pins को बाहर expose क्यों करते हैं। ESP32-CAM में 10 data pins हैं, लेकिन आम तौर पर सच में इस्तेमाल हो सकने वाले सिर्फ 4 हैं

  • ESP32 से RP2040 पर जाने की वजह यह थी कि यह ज्यादा स्थिर और अच्छी तरह documented device था
    अभी RP2040 को लेकर मेरी इकलौती चिंता यह है कि SPIRAM वाले ESP32 models तो बहुत हैं, लेकिन SPIRAM वाले RP2040 boards ढूंढना इतना आसान नहीं है। सच कहूं तो RP2040 का C development environment इतना अच्छा है कि memory का अच्छा उपयोग किया जा सकता है, लेकिन बड़े MicroPython projects बनाने के लिए SPIRAM सच में बहुत बड़ी asset है। इसके अलावा RP2040 की हर बात शानदार है

    • लेख में Rust support वाला हिस्सा आखिर में काट दिया गया, लेकिन अगर आप Rust के लिए खुले हैं, तो embedded में asynchronous Rust वाकई इस्तेमाल करने में अच्छा है
      Embassy के प्रमुख लोगों में से एक Dario Nieuwenhuis ने RustNL में एक बेहतरीन overview talk दिया था: https://www.youtube.com/watch?v=H7NtzyP9q8E
    • मैं इससे बिल्कुल सहमत नहीं हूं। मैं पिछले कुछ महीनों से Espressif ecosystem के साथ काम कर रहा हूं, और मौजूदा microcontroller platforms में इसकी documentation सबसे अच्छी है
    • RP2040 में सिर्फ एक QSPI port है
      JLC, 5 units की quantity पर RP2040 boards को प्रति board $3 से कम में assemble कर देता है
    • जिज्ञासा है कि आपने esp-idf इस्तेमाल किया था या Arduino libraries
  • यह तुलना अपने आप में सेब और आड़ू की तुलना जैसी है। RP2040 बस एक chip है, जबकि ESP32 side में ऐसे बहुत सारे options हैं जिनमें मनचाहे peripherals लगे हुए मिलते हैं
    WiFi/Bluetooth antenna, lithium-ion battery controller, Ethernet, display या camera connector वगैरह में से चुन सकते हैं

    CPU options भी विविध हैं, और coin cell से चलाते समय अनावश्यक second core या WiFi पर power खर्च होना फर्क पैदा करता है

    C6 variant में Espressif ने ISA भी फिर से बदल दिया, यानी 8266 से ESP32 होते हुए RISC-V-based ISA तक आ गया

    अंततः यह first-generation SoC की तुलना 10 साल पुराने SBC line से करने जैसा है

    • लगता है आप ESP32 devkit और ESP32 itself को मिला रहे हैं। antenna, battery controller, या कोई भी connector लगा हुआ हो तो वह devkit है, या कम से कम module है। ESP32 खुद RP2040 की तरह एक छोटा IC है
      उदाहरण के लिए शायद आप ऐसे devkit के बारे में सोच रहे हैं: https://docs.espressif.com/projects/esp-idf/en/latest/esp32s...

      यह board भी ESP32-S3-WROOM-1 जैसे module पर आधारित है, और वह module ESP32-S3 IC के साथ WiFi antenna या connector जैसे convenience elements को bundle करता है

      RP2040 में इसका समकक्ष Raspberry Pi Pico है, और इसमें भी WiFi variant जैसे छोटे convenience elements हैं। दूसरे peripherals के साथ packaged products भी हैं

      न RP2040 और न ESP32 series SBC हैं, और दोनों में से किसी की भी SBC lineage नहीं है। Raspberry Pi SBCs सभी Broadcom-based थे, जबकि RP2040 Raspberry Pi द्वारा नया विकसित IC है, और जहां तक मुझे पता है इसमें Broadcom से licensed IP भी नहीं है

    • तकनीकी रूप से सही है, लेकिन असल बात use case के करीब है। RP2040 सचमुच एक अलग किस्म की चीज है, और hobby/education use के अलावा professional embedded devices में भी अचानक बहुत सारे projects के लिए बेहतरीन choice बन गया है
      कीमत के मुकाबले इसकी संभावनाएं देखें, तो एक single-chip version से ही यह सच में बहुत सारे क्षेत्रों को cover करता है। मेरे लिए तकनीकी प्रगति का मतलब यही है

    • सुरक्षित मानना यही है कि दोनों तरफ chip खुद की ही बात हो रही है। दोनों को battery charger, camera, reactor से जोड़ा जा सकता है, लेकिन ऐसे peripherals इस comparison से पूरी तरह असंबंधित हैं

    • जिज्ञासा है कि WiFi जैसे module integration के मामले में ESP से तुलना लायक कोई non-Chinese alternative है क्या। cost ज्यादा हो तो भी ठीक है

  • RP2040 को लेकर मेरे विचार मिले-जुले हैं
    एक तरफ, hobby developers के लिए यह शानदार chip है। सस्ता है, आसानी से मिल जाता है, board design आसान है, और average application के लिए जरूरी चीजें पर्याप्त देता है

    दूसरी तरफ, professional नजरिए से यह निश्चित रूप से थोड़ा कम पड़ता है। peripherals ठीक हैं, लेकिन detail में जाने पर constraints से जल्दी टकरा जाते हैं। XIP interface शानदार है, लेकिन write support नहीं करता, इसलिए FRAM chip जोड़कर memory expand नहीं कर सकते। PIO interface कमाल का है, लेकिन ज्यादा complex interface implement करने की कोशिश करें तो 2x32 instructions की limit काफी बड़ी हो जाती है। Timer/Counter कहां है? capacitive touch नहीं है? analog सिर्फ चार pins पर? 5V-tolerant inputs नहीं हैं? PIO module के लिए high-speed clock input क्यों नहीं है? internal ring oscillator से bootloader run क्यों नहीं किया जा सकता? USB-C PHY भी होता तो अच्छा था

    ESD performance खराब होना भी चौंकाने वाला था। Atmega या STM32 कभी-कभी static shock खा लें तो भी ठीक रहते हैं, और externally exposed ports पर ESD protection होना बस nice-to-have जैसा है। RP2040 में अगर हर pin पर external protection न जोड़ें, तो practically रोजमर्रा के इस्तेमाल में कुछ pins के dead होने को देखना पड़ता है

संक्षेप में, यह एक शानदार चिप है और hobby use के लिए बेहतरीन है, लेकिन professional environment में शायद मेरी पहली पसंद नहीं होगी

  • मैं जानना चाहूँगा कि USB-C PHY से ठीक-ठीक क्या मतलब है। USB-C एक connector है, और उसके ऊपर USB 1.1/2.0/3.0/3.1 चलाया जा सकता है। व्यावहारिक रूप से RP2040 तो USB 2.0 PHY को भी ठीक से feed नहीं कर सकता

  • hobby developer भी आखिरकार ज़्यादा जटिल projects करने लगते हैं, और तब ठीक ऐसी ही सीमाओं से टकराते हैं

  • जानना चाहूँगा कि FRAM किस तरह की applications में सबसे उपयोगी रहा। technology खुद सचमुच शानदार लगती है, लेकिन कीमत इतनी ज़्यादा है कि SRAM या PSRAM और NAND के combo के बजाय इसे कब इस्तेमाल करना चाहिए, यह समझना मुश्किल है

  • RP2040 के अंदर का Synopsys DesignWare SSI macro असल में read/write-capable PSRAM या FRAM के लिए इस्तेमाल हो सकता है। बस RP2040 datasheet के संक्षिप्त docs से इसे ऐसे configure करने के लिए पर्याप्त जानकारी मिलती नहीं दिखती

  • Raspberry Pi की शुरुआत मूल रूप से education-focused nonprofit के तौर पर हुई थी

  • RP2040 काफ़ी शानदार है, और अब तक मैंने इसे लगभग आधा dozen projects में इस्तेमाल किया है
    लेकिन “एक ही चीज़ से सब हो जाएगा” वाला approach मेरे लिए सही नहीं है। मैं उस सबसे छोटे microcontroller को इस्तेमाल करना पसंद करता हूँ जो ज़रूरी काम कर सके

    मैं सबसे कमजोर संभव microcontroller इस्तेमाल करना इसलिए नहीं चाहता कि पैसे बचें, बल्कि power budget की वजह से। मेरे ज़्यादातर projects battery-powered होते हैं, इसलिए जितनी कम power इस्तेमाल हो सके, वह बड़ा फायदा है

    फिर भी, जब 20 cent वाला वही काम कर सकता है तो $1 वाला microcontroller क्यों इस्तेमाल करूँ?

    • कहीं ज़्यादा बड़े पैमाने की online documentation, example code, और सवालों के जवाब देने वाले अनुभवी hobby developers का pool 80 cent के फर्क से कहीं ज़्यादा कीमती है
      battery को ज़्यादा समय तक चलाने के लिए कम powerful controller इस्तेमाल करना पूरी तरह अच्छा कारण है। सस्ता होना theory में अच्छा है, लेकिन असल में one-off projects में इसका लगभग कोई मतलब नहीं। मुझे याद भी नहीं कि आख़िरी बार कब मैंने कुछ tens of cents के फर्क वाली खरीदारी को अंतिम निर्णायक चीज़ माना था, और यह महसूस होने वाला फर्क नहीं है
  • मुझे RP2040 पसंद है, लेकिन बताना चाहता हूँ कि current project में मैं इससे क्यों दूर गया
    पहला, PlatformIO से जुड़ा विवाद सच में बहुत खराब लगा। मैं tooling chaos से नुकसान झेल रहे developers के पक्ष में खड़ा होना चाहता हूँ

    दूसरा, top-end ESP32-S3 module form में आता है, और practically कुछ decoupling capacitors जोड़कर PCB पर लगाया जा सकता है। RP2040 में crystal समेत करीब dozen भर parts को सावधानी से place करना पड़ता है। modules सिर्फ implementation complexity को बहुत कम नहीं करते, बल्कि standardization के जरिए हर engineer द्वारा बेवकूफी भरी component placement mistakes करने की संभावना भी घटाते हैं

    तीसरा, ESP32-S3 में capacitive touch के तौर पर configure किए जा सकने वाले 14 GPIO pins हैं, लेकिन RP2040 में नहीं। RP2040 और capacitive touch साथ इस्तेमाल करने वाले ज़्यादातर projects MPR121 पर निर्भर हैं, और यह IC discontinued है, इसलिए अगले कुछ महीनों में इससे कई urgent redesigns होने की संभावना है

    कभी न कभी RP2040 के भी ज़्यादा powerful या कम powerful versions, और module-form versions आने की संभावना है। यह STM या PIC जैसी स्थिति तक नहीं जाएगा, लेकिन ESP32 family भी आदत पड़ने पर इतनी अजीब नहीं लगती

    • लगता है Espressif की भी PlatformIO को लेकर Pi जैसी ही स्थिति है[1]। बाहर से देखने पर ऐसा लगता है कि PlatformIO ने RPi और Espressif से बहुत बड़ा annual fee मांगने की कोशिश की, और शायद यह initial support जुड़ने और community के एक हिस्से द्वारा इसे अपनाना शुरू करने के बाद हुआ
      स्थिति अजीब है, लेकिन लगता है PlatformIO ने कई platforms को support करके और community contributions स्वीकार करके dominant position बनाई, फिर बाद में manufacturers से सीधे value extract करने की कोशिश की। इसने नए board revisions जोड़ने या bugs fix करने वाले community PRs भी रोक दिए। संबंधित जानकारी: [2]

      [1] https://github.com/platformio/platform-espressif32/issues/12...

      [2] https://github.com/platformio/platform-raspberrypi/pull/36

    • fairness में कहें तो, RP2040 को ऐसे design किया गया है कि उन components को place करना सच में बहुत आसान है। समझ में आने वाला layout practically एक ही है, और आपको सारे desired pins तक आसानी से access मिल जाता है
      बेहतरीन docs के साथ मिलाकर देखें तो यह multi-part drop-in design जैसा है, जिसे एक बार डाल देने के बाद फिर सोचने की जरूरत नहीं पड़ती। शुरुआत में यह थोड़ा डरावना लगा था, लेकिन actual implementation सच में enjoyable था

    • मैं launch के समय से RP2040 इस्तेमाल कर रहा हूँ और PlatformIO कभी इस्तेमाल नहीं किया, इसलिए जानना चाहता हूँ कि आपने इसे किस तरह इस्तेमाल किया और इसमें इतना खराब क्या था
      local तौर पर cmake और pico sdk या micropython से develop करना बहुत आसान लगता है, तो समझ नहीं आता कि उसमें PlatformIO क्यों मिलाया जाए

    • इसे module बनाने से कोई meaningful value पैदा होगी, ऐसा मुझे बहुत नहीं लगता। हर किसी को थोड़ा अलग form factor चाहिए, और peripheral circuit design इतना आसान है कि module से स्पष्ट सफलता मिलना मुश्किल है
      touch एक niche single feature जैसा है, और उसे न शामिल करना उल्टे बेहतर है। उस function के लिए अलग IC इस्तेमाल करना सही है, और लोगों का lazy होकर discontinued part से चिपके रहना RPi की समस्या नहीं है। या फिर इसे software में implement किया जा सकता है

      इस हिस्से में मैं original post से सहमत हूँ, और मानता हूँ कि foundation ने product definition सच में बहुत अच्छी की

    • Atmel, STM, TI, Ambiq, Nordic जैसी chips को दशकों तक designs में शामिल करता आया हूँ, और ऐसा नहीं था कि उन समस्याओं को हल करने का कोई तरीका नहीं था। मेरे पास 2 yards दूर बैठा intern भी अपने पहले PCB design में STM के आसपास सही parts place करने में जूझ रहा है। जिसने भी ऐसा काम थोड़ा सा किया है, उसके लिए यह मुश्किल समस्या नहीं है
      वैसे भी वे करीब dozen parts oscillator/crystal circuit, reset holdup, 3.3V power, और ढेर सारे decoupling capacitors ही हैं। antenna tuning निश्चित रूप से मुश्किल हो सकती है, लेकिन chip antenna इस्तेमाल कर सकें तो वह भी इतनी कठिन नहीं

      सब कुछ इतना standard है कि adafruit RP2040 Feather schematic देखते समय मैं उल्टे हैरान हुआ कि बहुत सा हिस्सा पुराने Feathers से लगभग वैसा ही लिया हुआ दिखता है। RP2040 Feather और nRF52840 Feather के बीच फर्क microcontroller खुद, RP2040 के लिए timing circuit के कुल 5 parts, और Nordic board के लिए antenna circuit भर है

      modules hobby market में बेचने के लिए बहुत convenient हैं, लेकिन actual product बेचने के लिए फिर भी RF certification process से गुजरना पड़ता है। cost कम हो सकती है, लेकिन module use की ज़्यादा upfront cost क्या कम certification cost से offset होती है, यह आपको खुद तय करना होगा। फिर भी आखिर में जो बचता है वह antenna tuning step भर है, और आम तौर पर यह बड़े wiring modification के बजाय BOM variation से handle होता है

STM और PIC chips की तरह TI के साथ भी यही स्थिति है—उनके भी दर्जनों variants हैं। ग्राहक सिर्फ़ उसी चीज़ के लिए पैसे देना चाहते हैं जिसकी उन्हें ज़रूरत है, और manufacturers के पास उस demand को सपोर्ट करने की production capacity है। अगर differences मायने रखते हैं, तो यह कोई भारी बोझ नहीं है। यह कुछ वैसा ही है जैसे शिकायत करना कि Home Depot बहुत ज़्यादा तरह की लकड़ी बेचता है।

capacitive touch ICs के मामले में भी Adafruit सिर्फ़ एक ही रखता है, लेकिन Mouser पर 199 ऐसे parts हैं जो discontinued नहीं हैं। functionality बनाए रखनी हो तो Adafruit को उनमें से बस एक चुनना होगा। सबसे सस्ता वाला TSOT package में है, इसलिए manufacturability भी काफ़ी अच्छी होगी। अगर मैं काम पर ऐसे designs और programming करके इतना थका हुआ न होता, तो आज रात घर जाकर एक बना कर देख सकता था। board design में करीब एक घंटा लगेगा, और I2C driver में शायद कुछ घंटे और लगेंगे।