Alasan Memilih RP2040
(dgroshev.com)- RP2040 dari Raspberry Pi adalah mikrokontroler untuk ditanamkan ke produk elektronik konsumen; harganya murah dan stok dalam jumlah besar mudah didapat, sehingga menurunkan beban memilih pada tahap awal pengembangan
- Raspberry Pi berfokus pada satu komponen alih-alih banyak varian, sehingga mengurangi optimasi spesifikasi yang sangat rinci, tetapi memberi efek semua pertanyaan, contoh, library, dan alat terkumpul di satu tempat
- Harga sekitar 70 sen mungkin kurang ideal untuk optimasi biaya komponen dalam produksi massal, tetapi pada proyek seperti Late Mate, penghematan biaya pengembangan bisa menjadi keuntungan yang lebih besar
- Konfigurasi dua inti, 30 GPIO, USB, UART/SPI/I2C/PWM, RAM internal yang lebih banyak, dan tanpa flash bawaan terasa seperti kompromi yang cukup dan fleksibel
- PIO serta bootloader hanya-baca, dan desain yang menghindari perlindungan firmware berlebihan membuat RP2040 tampak sebagai komponen praktis yang disesuaikan untuk kegunaan tertentu
Ekosistem yang Dibangun oleh Strategi Satu Komponen
- RP2040 adalah mikrokontroler buatan Raspberry Pi, dan berbeda dari board Raspberry Pi yang lebih dikenal luas, chip ini ditujukan untuk ditanamkan ke produk elektronik konsumen
- Di Mouser tersedia stok yang bisa langsung dikirim dalam jumlah puluhan ribu unit, dengan harga sekitar 70 sen
- Produsen mikrokontroler pada umumnya menawarkan banyak produk yang mirip tetapi sedikit berbeda
- Karena produk fisik memiliki biaya manufaktur, dalam produksi massal penghematan 1 sen per komponen pun bisa memengaruhi laba
- Karena itu muncul dorongan untuk memilih mikrokontroler dengan spesifikasi yang pas untuk produk
- Raspberry Pi pada dasarnya berfokus pada satu komponen dalam RP2040
- Pilihan dan ruang untuk penyesuaian spesifikasi yang sangat rinci menjadi berkurang
- Sebagai gantinya, pertanyaan StackExchange, tulisan blog, pengalaman, issue GitHub, library, dan alat menumpuk pada komponen yang sama
- Proyek seperti Late Mate bisa menghemat lebih banyak pada biaya pengembangan daripada biaya komponen, sehingga strategi satu komponen dapat menjadi kompromi yang baik
- Dukungan Rust juga bagus, seperti contoh Embassy, dan ada pula contoh firmware untuk keyboard, drone, dan robot sepak bola
Hardware yang Cukup dan Fleksibilitas PIO
- Desain RP2040 lebih dekat pada kompromi serbaguna yang memilih konfigurasi yang cukup dan fleksibel daripada “spesifikasi tertinggi”
- Menyediakan dua inti yang memadai, dan inti kedua bisa digunakan saat diperlukan
- GPIO berjumlah 30, pada tingkat yang tergolong rata-rata
- Tidak ada flash onboard, dan lebih banyak anggaran dipakai untuk RAM internal yang lebih sulit ditambahkan dari luar
- ADC berada pada tingkat yang layak, dan tersedia periferal umum seperti USB serta UART/SPI/I2C/PWM
- Salah satu fitur yang kurang tradisional adalah PIO
- PIO adalah singkatan dari Programmable Input/Output, dan mirip dua prosesor pendamping kecil yang dapat menjalankan IO cepat dengan timing presisi tanpa memakai waktu CPU
- Digunakan untuk mengimplementasikan protokol komunikasi seperti DShot ESC
- Pico-PIO-USB mengimplementasikan stack USB penuh di atas PIO sehingga memberi RP2040 pengendali USB kedua
- Jika digunakan bersama DMA, driver display dapat sepenuhnya meng-offload komunikasi display dan sentuh dari CPU
Bootloader yang Menghindari Kondisi Brick dan Kompromi Keamanan
- RP2040 memiliki struktur yang tidak bisa dibuat brick
- Menyertakan bootloader hanya-baca
- Dapat diperbarui dengan me-mount sebagai perangkat penyimpanan massal USB lalu menyalin firmware ke “perangkat penyimpanan” tersebut
- Protokol USB sederhananya sendiri digunakan dalam picotool
- Dengan penilaian bahwa melindungi firmware dari penyerang yang benar-benar fokus hampir mustahil, dan upaya itu sendiri menambah kompleksitas serta biaya pada pengalaman pengembang, chip ini tidak melakukan pertunjukan keamanan yang berlebihan
- Pilihan-pilihan ini dapat dilihat sebagai hasil penyeimbangan yang praktis, dengan mempertimbangkan ceruk tempat komponen silikon kecil seperti RP2040 berada
1 komentar
Pendapat Hacker News
Tokoh utama sebenarnya dari RP2040 adalah PIO, yang memberinya kemampuan yang sulit ditandingi chip pesaing seperti ESP32
Karena itu, chip ini dipakai di banyak tempat dalam dunia peretasan konsol. Namun untuk penggunaan berbasis baterai, akan bagus jika di V2 konsumsi daya pada mode deep sleep bisa lebih rendah
Logika digital yang bisa diverifikasi di FPGA umumnya baik-baik saja, tetapi elemen analog jauh lebih sulit disetel secara halus, sehingga muncul dalam bentuk konsumsi daya yang buruk, ADC yang lemah, serta ketiadaan DAC internal atau op-amp. Alasan chip nirkabel Pico W juga berupa komponen siap pakai terpisah, bukan integrasi penuh seperti ESP32, lebih kurang berada di area itu
Ini sangat bagus untuk mengimplementasikan periferal yang sangat dasar, tetapi sudah beberapa kali saya mulai membuat sesuatu yang sedikit lebih kompleks lalu menyadari bahwa itu terlalu lambat dan ruangnya juga tidak cukup. Kalau sedikit saja diperkuat, tampaknya bisa cukup mudah menggantikan penggunaan FPGA kecil-kecilan
Kalau butuh banyak I/O, biasanya orang tidak melirik ESP32. Kekuatan ESP32 adalah murah dan WiFi sudah tertanam. Dibandingkan RP2040 pun ada banyak pilihan mikrokontroler lain yang lebih unggul, tetapi sebagian besar bukan untuk pasar hobi
Selama beberapa tahun terakhir kami memakai RP2040 untuk badge elektronik[1] konferensi keamanan RVASec, dan pengalaman menulis perangkat lunaknya cukup baik
Repositori GitHub badge tahun ini ada di sini. Ada simulator badge khusus perangkat lunak yang bisa dicoba sampai tingkat tertentu tanpa perangkat keras, tetapi fitur multiplayer yang bergantung pada komunikasi inframerah antar-badge mungkin jadi kurang seru: https://github.com/HackRVA/badge2024
[1] Video badge 2023: https://www.youtube.com/watch?v=KWZriUMNpLc
[2] https://rvasec.com/
Pernyataan “mikrokontrolernya sama dan hanya ada dua revisi perbaikan bug” tidak akurat
Sebenarnya itu adalah mikrokontroler yang sepenuhnya sama, hanya opsi kemasannya yang ada dua. Yang satu reel 7 inci berisi 500 unit, dan yang lain reel 13 inci berisi 3400 unit. Lihat “Ordering code” di datasheet: https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.p...
Jika memakai SDK resmi, tidak banyak alasan untuk terlalu memedulikan versinya. Library tingkat tinggi standar mendeteksi revisi hardware saat runtime dan mengaktifkan atau menonaktifkan workaround yang diperlukan
RP2040 praktis sendirian menghidupkan kembali pasar yang cukup niche, yaitu controller kustom
Berkat gp2040[1], firmware gamepad open-source, orang bisa membeli fight stick dan controller leverless berkualitas lumayan dengan harga jauh lebih murah daripada produk perusahaan seperti Victrix atau Razer. Karena open-source, komunitas hobi controller juga membuat berbagai PCB RP2040 untuk segala macam proyek dan ide controller yang unik
[1] https://gp2040-ce.info
Saya penasaran seberapa banyak dari itu yang bisa secara langsung dikaitkan dengan RP2040. Proyek seperti QMK0 sudah lama memakai codebase yang secara teknis cukup mirip untuk keyboard DIY
Sekilas GP2040 tidak tampak memiliki hal yang tidak bisa dilakukan oleh mikrokontroler modern lain yang cukup layak. RP2040 jelas menjadi katalis bagi adopsi luas GP2040, tetapi rasanya hal serupa juga mungkin dilakukan dengan Pro Micro
PhobGCC juga tidak boleh dilupakan. Saya adalah lead developer-nya, dan ada juga lini penerus yang tidak terlalu khusus untuk GameCube seperti ProGCC V3, GC Ultimate, dan Phizard
Ungkapan “sendirian” sepertinya meremehkan hal-hal yang sudah ada sebelumnya, seperti board Brook, misalnya Zero-Pi[1]. Secara historis, rasanya itu tidak sepenuhnya tepat
[1] https://www.brookaccessory.com/detail/53169470/
Jika Anda hobi elektronika tetapi tidak ingin membuat atau merancang sendiri board surface-mount, ada sangat banyak board RP2040 yang murah dan mudah diakses
Saya sudah mencoba Raspberry Pi Pico($5), dan itu dipasang pada board yang bagus dengan banyak I/O. Dengan sedikit tambahan biaya, ada juga versi W yang memiliki WiFi
Jika tidak masalah I/O sedikit berkurang, Anda bisa memesan RP-2040 Zero. Saya membeli 6 unit di AliExpress dengan harga sekitar $12. Pin I/O-nya hanya 23, tetapi ada tombol reset, USB-C, dan ukurannya sangat kecil (1,5 cm x 2,5 cm)
Hal baik dari board-board seperti ini adalah alat pengembangan standar Raspberry Pi, Micropython, dan C++ berjalan dengan baik apa adanya, dan firmware bisa diunggah dengan mudah lewat USB
Saya juga ingin merekomendasikan pico ice. Sebagian besar label harga $30 itu karena UP5K yang terpasang, tetapi untuk proyek embedded yang membutuhkan operasi dalam skala submikrodetik, ini adalah opsi yang relatif murah yang bisa memakai alat open source
Saya sangat menyarankan mencari berbagai board pengembangan alternatif berbasis RP2040. Pi Pico resmi ternyata tidak terlalu bagus, dan hampir semua board alternatif lebih baik dalam satu atau lain hal
Tidak ada reset, form factor besar, hanya flash 2Mbit, dan masih micro USB pada 2024—ini agak keterlaluan. Hampir satu-satunya kelebihannya adalah mudah didapat
Saya suka board RP2040 yang kecil. Saya pernah membuat beberapa proyek kecil berbasis adafruit QT Py
Akan bagus kalau ada versi nirkabel. Memakai ESP32 QT memang ada, tetapi untuk RP2040 sepertinya tidak ada sejauh yang saya lihat
Kalau keterbatasan ruang tidak sangat ekstrem, saya kurang paham keunggulan 2040 Zero. Fiturnya lebih sedikit, tetapi harganya lebih mahal. Pico sendiri sudah cukup kecil
Meski begitu, Pico memang sangat bagus dalam kompatibilitas pin. Di sisi ESP, meski pin I/O terlihat banyak, karena ada pin yang terhubung ke flash internal atau bootloader, jumlahnya menyusut hingga sekadar cukup kalau beruntung. Saya juga heran kenapa pin seperti itu sengaja dikeluarkan. ESP32-CAM punya 10 pin data, tetapi yang benar-benar bisa dipakai secara umum hanya 4
Alasan saya pindah dari ESP32 ke RP2040 adalah karena ini perangkat yang lebih stabil dan terdokumentasi dengan baik
Saat ini satu-satunya kekhawatiran saya tentang RP2040 adalah bahwa ada banyak model ESP32 dengan SPIRAM, tetapi board RP2040 dengan SPIRAM tidak begitu mudah ditemukan. Jujur saja, lingkungan pengembangan C untuk RP2040 sangat bagus sehingga memori bisa dimanfaatkan dengan baik, tetapi untuk membuat proyek MicroPython besar, SPIRAM adalah aset yang sangat besar. Selain itu, semua aspek RP2040 luar biasa
Dario Nieuwenhuis, salah satu tokoh inti Embassy, memberikan presentasi ikhtisar yang bagus di RustNL: https://www.youtube.com/watch?v=H7NtzyP9q8E
JLC bisa merakit board RP2040 dengan biaya kurang dari $3 per unit untuk kuantitas 5 buah
Perbandingannya sendiri seperti membandingkan apel dengan persik. RP2040 hanyalah chip, sementara di sisi ESP32 ada banyak pilihan dengan berbagai periferal yang diinginkan terpasang
Bisa memilih WiFi/antena Bluetooth, kontroler baterai lithium-ion, Ethernet, konektor display atau kamera, dan sebagainya
Pilihan CPU juga beragam, dan ketika menjalankannya dengan coin cell, apakah daya dipakai untuk core kedua atau WiFi yang tidak perlu bisa membuat perbedaan
Pada varian C6, Espressif juga mengganti ISA lagi, dari 8266 ke ESP32 lalu ke ISA berbasis RISC-V
Pada akhirnya, ini seperti membandingkan SoC generasi pertama dengan lini SBC yang sudah berusia 10 tahun
Sepertinya Anda mencampuradukkan ESP32 devkit dengan ESP32 itu sendiri. Yang punya antena, kontroler baterai, atau konektor apa pun adalah devkit, atau setidaknya modul. ESP32 itu sendiri adalah IC kecil seperti RP2040
Misalnya sepertinya yang Anda bayangkan adalah devkit seperti ini: https://docs.espressif.com/projects/esp-idf/en/latest/esp32s...
Board ini sendiri juga berbasis modul seperti ESP32-S3-WROOM-1, dan modul itu menggabungkan IC ESP32-S3 dengan elemen kemudahan seperti antena atau konektor WiFi
Padanan di RP2040 adalah Raspberry Pi Pico, dan ini juga punya elemen kemudahan kecil seperti varian WiFi. Ada juga produk yang dikemas bersama periferal lain
Baik RP2040 maupun seri ESP32 bukan SBC, dan keduanya tidak punya garis keturunan SBC. Semua SBC Raspberry Pi berbasis Broadcom, sedangkan RP2040 adalah IC yang baru dikembangkan Raspberry Pi, dan setahu saya tidak ada IP yang dilisensikan dari Broadcom
Secara teknis benar, tetapi intinya lebih dekat ke penggunaan. RP2040 memang benar-benar unik, dan tiba-tiba menjadi pilihan bagus untuk banyak proyek, bukan hanya untuk hobi dan pendidikan, tetapi juga untuk perangkat embedded profesional
Dilihat dari kemampuannya dibanding harga, satu versi chip tunggal mencakup sangat banyak bidang. Bagi saya, hal seperti inilah arti kemajuan teknologi
Lebih aman menganggap kedua pihak sama-sama membicarakan chip itu sendiri. Keduanya bisa dihubungkan ke charger baterai, kamera, atau reaktor, tetapi periferal seperti itu sama sekali tidak relevan dengan perbandingan ini
Saya penasaran apakah ada alternatif non-Tiongkok yang sebanding dengan ESP dalam hal integrasi modul seperti WiFi. Biaya lebih tinggi tidak masalah
Perasaan saya terhadap RP2040 bercampur
Di satu sisi, ini chip yang bagus untuk developer hobi. Murah, mudah didapat, desain board-nya mudah, dan menyediakan cukup banyak hal yang dibutuhkan aplikasi rata-rata
Di sisi lain, dari sudut pandang profesional, jelas ada sedikit kekurangan. Periferalnya oke, tetapi begitu masuk ke detail, batasannya mudah terasa. Antarmuka XIP bagus, tetapi tidak mendukung penulisan sehingga tidak bisa menambahkan chip FRAM untuk memperluas memori. Antarmuka PIO luar biasa, tetapi saat mencoba mengimplementasikan antarmuka yang lebih kompleks, batas 2x32 instruksi terasa cukup besar. Di mana Timer/Counter? Tidak ada touch kapasitif? Analog hanya empat pin? Tidak ada input yang toleran 5V? Kenapa tidak ada input clock berkecepatan tinggi untuk modul PIO? Mengapa bootloader tidak bisa dijalankan dengan ring oscillator internal? Saya juga berharap ada USB-C PHY
Saya juga terkejut dengan buruknya performa ESD. Atmega atau STM32 biasanya tetap baik-baik saja meski sesekali terkena kejutan listrik statis, dan proteksi ESD pada port yang terekspos ke luar lebih merupakan hal yang bagus jika ada. Pada RP2040, jika tidak menambahkan proteksi eksternal pada semua pin, pada dasarnya Anda akan melihat beberapa di antaranya mati dalam penggunaan sehari-hari
Singkatnya, ini chip yang keren dan bagus untuk hobi, tetapi sepertinya bukan pilihan pertama saya di lingkungan profesional
Saya penasaran apa persisnya yang dimaksud dengan USB-C PHY. USB-C adalah konektor, dan di atasnya bisa menjalankan USB 1.1/2.0/3.0/3.1. Secara realistis, RP2040 bahkan tidak bisa memasok USB 2.0 PHY dengan baik
Bahkan pengembang hobi pada akhirnya akan mengerjakan proyek yang lebih kompleks, dan justru akan menabrak batasan seperti itu
Saya penasaran untuk jenis aplikasi apa FRAM paling berguna. Teknologinya sendiri terlihat sangat keren, tetapi harganya terlalu tinggi, jadi sulit memahami kapan harus memakainya alih-alih kombinasi SRAM atau PSRAM dengan NAND
Makro Synopsys DesignWare SSI di dalam RP2040 sepertinya sebenarnya bisa dipakai untuk PSRAM atau FRAM yang bisa dibaca/ditulis. Namun dokumentasi ringkas di datasheet RP2040 tampaknya tidak cukup untuk mengonfigurasinya begitu
Raspberry Pi awalnya dimulai sebagai organisasi nirlaba untuk pendidikan
RP2040 cukup keren, dan sejauh ini saya sudah memakainya di sekitar setengah lusin proyek
Namun pendekatan “satu untuk semua” tidak cocok bagi saya. Saya lebih suka memakai mikrokontroler terkecil yang bisa melakukan pekerjaan yang dibutuhkan
Alasan saya ingin memakai mikrokontroler selemah mungkin bukan karena uang, melainkan karena anggaran daya. Sebagian besar proyek saya berjalan dengan baterai, jadi memakai daya sesedikit mungkin adalah keuntungan besar
Meski begitu, rasanya untuk apa memakai mikrokontroler $1 kalau yang 20 sen bisa melakukan hal yang sama
Memakai kontroler yang kurang bertenaga demi masa pakai baterai yang lebih lama adalah alasan yang sangat baik. Lebih murah memang bagus secara teori, tetapi dalam praktiknya hampir tidak berarti untuk proyek sekali jalan. Saya bahkan tidak ingat kapan terakhir kali pembelian dengan selisih beberapa puluh sen terasa penting; itu bukan perbedaan yang terasa
Saya suka RP2040, tetapi ingin menjelaskan mengapa saya meninggalkannya pada proyek saat ini
Pertama, kontroversi terkait PlatformIO terasa sangat buruk bagi saya. Saya ingin berpihak pada pengembang yang dirugikan oleh kekacauan alat
Kedua, ESP32-S3 kelas atas tersedia dalam bentuk modul, dan praktis bisa dipasang di PCB hanya dengan menambahkan beberapa kapasitor decoupling. RP2040 mengharuskan sekitar selusin komponen, termasuk kristal, ditempatkan dengan hati-hati. Modul tidak hanya sangat mengurangi kompleksitas implementasi, tetapi juga, melalui standardisasi, mengurangi kemungkinan tiap insinyur membuat kesalahan bodoh dalam penempatan komponen
Ketiga, ESP32-S3 punya 14 pin GPIO yang bisa dikonfigurasi sebagai sentuh kapasitif, sedangkan RP2040 tidak. Sebagian besar proyek yang memakai RP2040 bersama sentuh kapasitif bergantung pada MPR121, tetapi IC ini sudah discontinued, sehingga kemungkinan akan memicu banyak redesain mendesak dalam beberapa bulan ke depan
Suatu hari nanti RP2040 kemungkinan besar juga akan merilis versi yang lebih kuat atau lebih lemah, serta versi berbentuk modul. Mereka mungkin tidak akan sampai seperti STM atau PIC, tetapi lini produk ESP32 juga tidak terlihat seaneh itu setelah terbiasa
Espressif tampaknya juga berada dalam situasi yang sama dengan Pi terkait PlatformIO[1]. Dari luar, terlihat PlatformIO mencoba meminta biaya tahunan yang sangat besar dari RPi dan Espressif, dan itu tampaknya terjadi setelah dukungan awal ditambahkan dan sebagian komunitas mulai mengadopsinya
Situasinya aneh, tetapi PlatformIO terlihat seperti membangun posisi dominan dengan mendukung banyak platform dan menerima kontribusi komunitas, lalu belakangan mencoba mengekstrak nilai langsung dari para produsen. Mereka juga memblokir PR komunitas yang menambahkan revisi board baru atau memperbaiki bug. Terkait hal ini: [2]
[1] https://github.com/platformio/platform-espressif32/issues/12...
[2] https://github.com/platformio/platform-raspberrypi/pull/36
Agar adil, RP2040 memang dirancang supaya komponen-komponen seperti itu sangat mudah ditempatkan. Pada dasarnya hanya ada satu tata letak yang masuk akal, dan semua pin yang diinginkan mudah diakses
Ditambah dokumentasinya yang bagus, ini hampir seperti desain drop-in multi-komponen yang begitu dimasukkan sekali, tidak perlu dipikirkan lagi. Awalnya terlihat agak menakutkan, tetapi implementasi nyatanya benar-benar menyenangkan
Saya sudah memakai RP2040 sejak peluncurannya dan belum pernah memakai PlatformIO, jadi saya penasaran bagaimana Anda memakainya dan apa yang begitu buruk darinya
Mengembangkan secara lokal dengan cmake dan pico sdk atau micropython terlihat sangat mudah, jadi saya tidak begitu paham mengapa PlatformIO dicampurkan ke sana
Saya tidak terlalu merasa menjadikannya modul akan menciptakan nilai yang berarti. Semua orang menginginkan form factor yang sedikit berbeda, dan desain rangkaian pendukungnya begitu mudah sehingga modul sulit menghasilkan pencapaian yang jelas
Sentuh lebih dekat ke fitur tunggal yang niche, dan justru lebih baik tidak dimasukkan. Untuk fungsi itu memang sebaiknya memakai IC lain, dan fakta bahwa orang malas lalu tetap menempel pada komponen yang discontinued bukanlah masalah RPi. Atau bisa saja diimplementasikan lewat software
Untuk bagian ini saya setuju dengan tulisan asli, dan menurut saya yayasan tersebut benar-benar mendefinisikan produknya dengan baik
Saya sudah memasukkan chip seperti Atmel, STM, TI, Ambiq, dan Nordic ke dalam desain selama puluhan tahun, dan bukannya tidak ada cara untuk menyelesaikan masalah semacam itu. Bahkan intern yang duduk 2 yard dari saya sedang bergulat menempatkan komponen yang tepat di sekitar STM sebagai desain PCB pertamanya. Bagi siapa pun yang pernah sedikit saja melakukan pekerjaan seperti ini, itu bukan masalah sulit
Bagaimanapun, selusin komponen itu adalah rangkaian osilator/kristal, reset holdup, catu daya 3,3V, dan sangat banyak kapasitor decoupling. Tuning antena memang bisa sulit, tetapi kalau bisa memakai antena chip, itu juga tidak terlalu sulit
Semuanya begitu standar sampai ketika saya melihat skematik adafruit RP2040 Feather, saya justru terkejut karena banyak bagiannya tampak hampir langsung diambil dari Feather yang sudah ada. Perbedaan antara RP2040 Feather dan nRF52840 Feather adalah mikrokontrolernya sendiri, total 5 komponen rangkaian timing untuk RP2040, dan rangkaian antena untuk board Nordic
Modul memang sangat praktis untuk dijual ke pasar hobi, tetapi jika ingin menjual produk nyata, tetap harus melalui proses sertifikasi RF. Biayanya bisa lebih rendah, tetapi Anda harus menilai sendiri apakah biaya awal yang lebih tinggi dari penggunaan modul terimbangi oleh biaya sertifikasi yang lebih rendah. Meski begitu, pada akhirnya yang dihemat hanyalah tahap tuning antena, dan biasanya ini ditangani sebagai variasi BOM, bukan perubahan routing besar
Seperti halnya ada puluhan jenis chip STM dan PIC, TI juga berada dalam situasi yang sama. Pelanggan ingin membayar hanya untuk hal yang mereka perlukan, dan para produsen punya kapasitas produksi untuk menopang permintaan itu. Jika perbedaannya penting, itu bukan hal yang merepotkan. Ini sangat mirip dengan mengeluh bahwa Home Depot menjual terlalu banyak jenis kayu.