{"id":5323,"date":"2026-08-30T15:10:40","date_gmt":"2026-08-30T06:10:40","guid":{"rendered":"https:\/\/donguri3.net\/server-tech\/rp2350-16mb-arduino-ide-setup-lchika-2\/"},"modified":"2026-08-30T15:10:41","modified_gmt":"2026-08-30T06:10:41","slug":"rp2350-16mb-arduino-ide-setup-lchika","status":"publish","type":"post","link":"https:\/\/donguri3.net\/en\/diy-repair\/electronics-microcontroller\/rp2350-16mb-arduino-ide-setup-lchika\/","title":{"rendered":"[RP2350] Blinking an LED in Arduino IDE with the Pico 2-compatible &#8220;16MB Ultimate Edition&#8221;"},"content":{"rendered":"<p>While window shopping on AliExpress, a development board with a built-in USB Type-A male connector suddenly caught my eye.<\/p>\n<p><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/IMG_2815_fix2.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2602\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/IMG_2815_fix2.jpg\" alt=\"RP2350 Development Board Module For Raspberry PI Dual Core 16MB\" width=\"549\" height=\"412\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/IMG_2815_fix2.jpg 549w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/IMG_2815_fix2-300x225.jpg 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/IMG_2815_fix2-530x398.jpg 530w\" sizes=\"(max-width: 549px) 100vw, 549px\" \/><\/a><\/p>\n<p>Taking a closer look, the onboard chip is the talked-about RP2350. I&#8217;ve played with the Raspberry Pi Pico (RP2040) many times before, but its successor, the RP2350, is entirely new to me. Featuring a &#8220;latest-generation chip&#8221; combined with a &#8220;cable-free direct-plug style,&#8221; these two elements drew me in, and before I knew it, I had added it to my cart and checked out. A pure impulse buy.<\/p>\n<p>What arrived was a board with a typical no-frills Chinese product name: &#8220;Development Board Module For Raspberry PI Dual Core 16MB.&#8221; You also can&#8217;t overlook the fact that it packs a massive 16MB flash memory\u2014four times the capacity of the official Pico 2.<\/p>\n<p>Since I now have it on hand, I want to try out various things using this unique board. Let&#8217;s start by tackling the alpha and omega of electronics prototyping: blinking an LED.<\/p>\n<h2>Getting the Board Ready for Use<\/h2>\n<p>While this board looks sleek and smart like a USB flash drive, it comes with neither manuals nor support. The goal this time is to set up an environment where this &#8220;mystery RP2350 board&#8221; is recognized by the Arduino IDE and can be programmed freely.<\/p>\n<p>Specifically, we will clear the following three quantitative goals:<\/p>\n<ol>\n<li>Environment Setup: Make the Arduino IDE recognize the RP2350 and configure it to fully utilize the 16MB storage space.<\/li>\n<li>Flashing: Plug it directly into a USB port cable-free and transfer the program.<\/li>\n<li>LED Blinking: Control and blink the onboard LED (details unknown).<\/li>\n<\/ol>\n<h2>Installing the Unofficial Core (Earle Philhower Version)<\/h2>\n<p>The standard board definitions in the Arduino IDE may not yet fully support the RP2350 or might have restricted features. Therefore, we will install a feature-rich community core definition.<\/p>\n<p>Preferences: Open &#8220;File&#8221; &gt; &#8220;Preferences&#8221; from the Arduino IDE menu.<\/p>\n<p>Adding the URL: Paste the following URL into the &#8220;Additional boards manager URLs&#8221; field.<\/p>\n<blockquote>\n<p>https:\/\/github.com\/earlephilhower\/arduino-pico\/releases\/download\/global\/package_rp2040_index.json<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/07e87ab84dd27e7459e2b2d91d6fa2e0.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2605\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/07e87ab84dd27e7459e2b2d91d6fa2e0.png\" alt=\"Additional boards manager URLs\" width=\"564\" height=\"213\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/07e87ab84dd27e7459e2b2d91d6fa2e0.png 564w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/07e87ab84dd27e7459e2b2d91d6fa2e0-300x113.png 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/07e87ab84dd27e7459e2b2d91d6fa2e0-530x200.png 530w\" sizes=\"(max-width: 564px) 100vw, 564px\" \/><\/a><\/p>\n<p>Installation: Open the &#8220;Boards Manager&#8221; on the left side and type `pico` into the search bar. Install &#8220;Raspberry Pi Pico\/RP2040 by Earle F. Philhower, III&#8221; from the search results. *Note: Make sure the version is 4.0.0 or higher (older versions will not display the RP2350).<\/p>\n<p><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2608\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9.png\" alt=\"Raspberry Pi Pico\/RP2040 by Earle F. Philhower, III\" width=\"786\" height=\"706\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9.png 786w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9-300x269.png 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9-768x690.png 768w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9-530x476.png 530w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9-565x507.png 565w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9-710x638.png 710w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/5adf92ade7818b9c3100f314578ca8f9-725x651.png 725w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/a><\/p>\n<h2>Select &#8220;Generic&#8221; for Board Settings<\/h2>\n<p>This is the most crucial point for utilizing the full 16MB. If you select &#8220;Raspberry Pi Pico 2,&#8221; you will only be able to use 4MB.<\/p>\n<ul>\n<li>Board: Select `Generic RP2350`.<\/li>\n<li>Flash Size: Choose an option added to the menu, such as `16MB (Sketch: 16MB \/ FS: 0MB)`.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7.png\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-2607\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-910x1024.png\" alt=\"Generic RP2350\" width=\"910\" height=\"1024\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-910x1024.png 910w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-267x300.png 267w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-768x864.png 768w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-471x530.png 471w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-502x565.png 502w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-631x710.png 631w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7-644x725.png 644w, https:\/\/donguri3.net\/wp-content\/uploads\/2026\/01\/1b2bbd60d7635ad95ad5fe4d34fcb0f7.png 1280w\" sizes=\"(max-width: 910px) 100vw, 910px\" \/><\/a><\/p>\n<p>With this, compilation preparation is complete.<\/p>\n<h2>The &#8220;Not Recognized&#8221; PC Connection Issue and Its Solution<\/h2>\n<p>Full of enthusiasm, I plugged it into my PC&#8217;s USB port, but the PC didn&#8217;t respond at all. It didn&#8217;t show up in the Device Manager, nor did it appear in the Arduino IDE port list. I panicked, thinking, &#8220;Could it be a dead on arrival (DOA) unit?&#8221; However, in my environment, taking the following steps made it successfully recognized.<\/p>\n<h3>Manual Flashing for the &#8220;First Time Only&#8221;<\/h3>\n<p>In my case, the issue was resolved by following these steps:<\/p>\n<ol>\n<li>Connect via BOOT Button: Plug it into the USB port while holding down the &#8220;BOOT&#8221; button on the board. A folder (drive) named &#8220;RP2350&#8221; will open.<\/li>\n<li>Drop the File: &#8220;Export compiled binary&#8221; in the Arduino IDE, and drop the generated `.uf2` file into that folder.<\/li>\n<li>Automatic Recognition Thereafter: Once you successfully flash it using this method once, it will be recognized simply by plugging it in as &#8220;COM14 (Raspberry Pi Pico 2W)&#8221; without needing to press the BOOT button from then on.<\/li>\n<\/ol>\n<h3>Presumed Cause<\/h3>\n<p>It is likely that right after purchase (or in a state with no program flashed), the functionality required to communicate with a PC is not running, which is why it wasn&#8217;t recognized as a COM port. Flashing a program manually enabled the USB communication function inside the program, allowing the PC to recognize it.<\/p>\n<h2>Implementing LED Blinking: The LED is a &#8220;NeoPixel&#8221; on &#8220;GP22&#8221;<\/h2>\n<p>The number &#8220;22&#8221; was printed in small text near the LED on the board. Furthermore, based on the component&#8217;s shape, it turned out to be a &#8220;NeoPixel (WS2812B)&#8221; rather than a standard LED. By installing the `Adafruit NeoPixel` library and specifying pin number 22, I successfully achieved a vibrant 3-color LED blink.<\/p>\n<p>Please install the library to use the NeoPixel LED:<\/p>\n<p>Tools &gt; Manage Libraries &gt; Install Adafruit NeoPixel<\/p>\n<p>#include &amp;amp;lt;Adafruit_NeoPixel.h&amp;amp;gt;<\/p>\n<p>\/\/ &#8212; Configuration Area &#8212;<br \/>\n\/\/ Specify pin 22 as printed on the board<br \/>\nconst int RGB_LED_PIN = 22;<br \/>\nconst int NUM_PIXELS = 1;<\/p>\n<p>\/\/ Create NeoPixel object<br \/>\nAdafruit_NeoPixel pixels(NUM_PIXELS, RGB_LED_PIN, NEO_GRB + NEO_KHZ800);<\/p>\n<p>void setup() {<br \/>\n&amp;amp;nbsp; Serial.begin(115200);<\/p>\n<p>&amp;amp;nbsp; \/\/ Initialize LED<br \/>\n&amp;amp;nbsp; pixels.begin();<br \/>\n&amp;amp;nbsp; pixels.setBrightness(30); \/\/ Low brightness<\/p>\n<p>&amp;amp;nbsp; delay(1000);<br \/>\n&amp;amp;nbsp; Serial.println(&quot;\\n&#8212; GPIO 22 LED Test Start! &#8212;&quot;);<br \/>\n}<\/p>\n<p>void loop() {<br \/>\n&amp;amp;nbsp; \/\/ Red<br \/>\n&amp;amp;nbsp; Serial.println(&quot;Red&quot;);<br \/>\n&amp;amp;nbsp; pixels.setPixelColor(0, pixels.Color(255, 0, 0));<br \/>\n&amp;amp;nbsp; pixels.show();<br \/>\n&amp;amp;nbsp; delay(500);<\/p>\n<p>&amp;amp;nbsp; \/\/ Green<br \/>\n&amp;amp;nbsp; Serial.println(&quot;Green&quot;);<br \/>\n&amp;amp;nbsp; pixels.setPixelColor(0, pixels.Color(0, 255, 0));<br \/>\n&amp;amp;nbsp; pixels.show();<br \/>\n&amp;amp;nbsp; delay(500);<\/p>\n<p>&amp;amp;nbsp; \/\/ Blue<br \/>\n&amp;amp;nbsp; Serial.println(&quot;Blue&quot;);<br \/>\n&amp;amp;nbsp; pixels.setPixelColor(0, pixels.Color(0, 0, 255));<br \/>\n&amp;amp;nbsp; pixels.show();<br \/>\n&amp;amp;nbsp; delay(500);<\/p>\n<p>&amp;amp;nbsp; \/\/ White (All on)<br \/>\n&amp;amp;nbsp; Serial.println(&quot;White&quot;);<br \/>\n&amp;amp;nbsp; pixels.setPixelColor(0, pixels.Color(255, 255, 255));<br \/>\n&amp;amp;nbsp; pixels.show();<br \/>\n&amp;amp;nbsp; delay(1000);<\/p>\n<p>&amp;amp;nbsp; \/\/ Turn off<br \/>\n&amp;amp;nbsp; pixels.clear();<br \/>\n&amp;amp;nbsp; pixels.show();<br \/>\n&amp;amp;nbsp; delay(500);<br \/>\n}<\/p>\n<h2>Conclusion<\/h2>\n<p>At one point I doubted whether the direct-plug USB board was broken, but by performing the &#8220;initial ritual (flashing in BOOT mode),&#8221; I was able to successfully control it from the Arduino IDE.<\/p>\n<ul>\n<li>Lesson Learned: Don&#8217;t panic if a newly purchased RP2350 isn&#8217;t recognized. First, breathe life (a program) into it using the BOOT button.<\/li>\n<\/ul>\n<p>This vast open space of &#8220;16MB&#8221; and the power of the RP2350. The warm-up exercises are complete. Next time, I plan to add an SD card slot to this board and evolve it into a &#8220;data logger.&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>While window shopping on AliExpress, a development board with a built-in USB Type-A male connector suddenly ca [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":2602,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"en_US","_original_post":"https:\/\/donguri3.net\/?p=2600","footnotes":""},"categories":[1163],"tags":[434,51,52,266,1054,1053,381,106,270],"class_list":["post-5323","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronics-microcontroller","tag-aliexpress","tag-git","tag-https","tag-neopixel","tag-raspberry-pi-pico-2","tag-rp2350","tag-381","tag-106","tag-270","en-US"],"_links":{"self":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/comments?post=5323"}],"version-history":[{"count":1,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5323\/revisions"}],"predecessor-version":[{"id":5326,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5323\/revisions\/5326"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media\/2602"}],"wp:attachment":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media?parent=5323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/categories?post=5323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/tags?post=5323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}