r/raspberrypipico

Pico 2W can't enter BOOTSEL or run code for hours after attempting to upload new code

I recently bought a pico 2W, after running a few simple programs such as blink I wired up an ST7735 TFT LCD screen and wrote a program to write some things on the screen. (I'm using platformIO with arduino framework to code). Code is shown below:

#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>


#define TFT_SCK  10 //or SCL
#define TFT_MOSI 11 //or SDA
#define TFT_MISO 12 
#define TFT_CS   13
#define TFT_DC   17
#define TFT_RST  18


#define LED LED_BUILTIN


Adafruit_ST7735 display = Adafruit_ST7735(&SPI1, TFT_CS, TFT_DC, TFT_RST);


void setup() {
  // Initialize SPI bus
  pinMode(LED, OUTPUT);


  SPI1.setSCK(10);
  SPI1.setMOSI(11);
  SPI1.setMISO(12);
  SPI1.setCS(13);
  SPI1.begin();


  display.initR(INITR_BLACKTAB);
  display.setRotation(1);


  display.fillScreen(ST77XX_BLACK);
  display.setTextWrap(true);
  display.setTextSize(2);
  display.setTextColor(ST77XX_WHITE);
  display.setCursor(10, 10);
  display.println("Test");
}


void loop() {
  digitalWrite(LED,HIGH);
  display.setCursor(10, 30);
  display.setTextColor(ST77XX_YELLOW);
  display.print(String(millis()/1000));
  delay(1000);
  display.fillScreen(ST77XX_BLACK);
}#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>


#define TFT_SCK  10 //or SCL
#define TFT_MOSI 11 //or SDA
#define TFT_MISO 12 
#define TFT_CS   13
#define TFT_DC   17
#define TFT_RST  18


#define LED LED_BUILTIN


Adafruit_ST7735 display = Adafruit_ST7735(&SPI1, TFT_CS, TFT_DC, TFT_RST);


void setup() {
  // Initialize SPI bus
  pinMode(LED, OUTPUT);


  SPI1.setSCK(10);
  SPI1.setMOSI(11);
  SPI1.setMISO(12);
  SPI1.setCS(13);
  SPI1.begin();


  display.initR(INITR_BLACKTAB);
  display.setRotation(1);


  display.fillScreen(ST77XX_BLACK);
  display.setTextWrap(true);
  display.setTextSize(2);
  display.setTextColor(ST77XX_WHITE);
  display.setCursor(10, 10);
  display.println("Test");
}


void loop() {
  digitalWrite(LED,HIGH);
  display.setCursor(10, 30);
  display.setTextColor(ST77XX_YELLOW);
  display.print(String(millis()/1000));
  delay(1000);
  display.fillScreen(ST77XX_BLACK);
}

This did work, but the next time I tried to upload something, (uploaded via automatic reset rather than manually entering BOOTSEL mode) the program stopped working and the pico's LED also turned off. Only the internal regulator was still outputting 3.3V. After this it was also impossible to manually enter BOOTSEL and the pico wouldn't show up as a device on Windows so I thought it was gone for good.

After about 2 hours though I tried to put it into BOOTSEL again and it randomly worked. This only lasted about 10 seconds however and it returned to being seemingly dead after that.

Next morning I was able to put it into BOOTSEL again and this time I uploaded the flash nuke.uf2 file before it went unresponsive again which fixed the issue. At the time I hadn't realized yet that uploading the code caused this however so I uploaded the above code again and after trying to upload a different code I ended up bricking it again.

So anyways my question is, what causes this? Is there something wrong with the code that corrupts the flash when the pico is reset? And why is it only stuck for a few hours? That seems to imply that I have to wait for some internal capacitors to discharge or something before BOOTSEL mode is accesible. FYI trying to put the pico in BOOTSEL with different cables, on different computers and USB ports didn't work so it seems to be a hardware issue on the pico itself.

reddit.com
u/GrParrot — 1 day ago
▲ 7 r/raspberrypipico+3 crossposts

RP Pico Streamline Board - RP2354 - RP Pico #1

STM32World going rogue!

Trying out the new Streamline MCU RP2354 board. A dive into what is Raspberry Pico RP2350, WHY am I making this video (on a channel named STM32World) and finally - how easy it is to use.

#GettingStarted #Tutorial #Streamline #RP2350 #STM32World

youtube.com
u/lbthomsen — 1 day ago

So I built a Scheduling System

I'm pretty sure that I'm not the first and only person to stumble into a problem where I wanna handle several Tasks at seperate intervals, and eventually I found myself clogging up while Loops and everything just became a huge stupid disaster, so I built Pyrite, which - at least to me - seems like a pretty good solution for a problem that me and probably some other people have. And yes, Asyncio exists and is better maintained but if you really like Asyncio, you're either lying or a masochist, especially for small projects. Now Pyrite is - in my opinion - very approachable, as you can see in the Code Samples there.

Anyways yeah I guess I'm just asking for feedback, so https://github.com/ten-faced-carrot/pyrite everyone.

(Please don't be mean)

u/DS_Stift007 — 2 days ago
▲ 6 r/raspberrypipico+1 crossposts

🟢 Live Metrics on iPhone.

Monitoring my Raspberry Pi in real time with Open Pi 🍓📡

I can track CPU usage, RAM, temperature, disk space, uptime, and network activity live from one clean dashboard.

u/artsvit — 4 days ago
▲ 150 r/raspberrypipico+1 crossposts

What do you think?

I just finished two motor control setups for a friend.
First time using a TFT Display and Raspberry Pico. The junction boxes were 3D printed and are perfect for the job!

u/Chinatown3D — 7 days ago
▲ 16 r/raspberrypipico+3 crossposts

[BG] Dad trying to help my 11 year old son build his first his first pc so he can get into coding and gaming development [H] £100-150

I hope this kind of post is okay here.

My son is 11 years old and has become absolutely obsessed with PCs, coding, and game development.

He spends hours watching videos about building computers, learning how games are made, and talking about wanting to create his own someday. I’d really love to encourage that interest because he’s genuinely passionate about it.

The problem is that money is extremely tight for us at the moment, and I simply can’t afford to buy parts to help him build his first PC.

We’re based in the UK, and I wanted to ask if anyone in the community has any old or spare PC parts sitting around that they no longer need and would be willing to donate. Even older hardware would mean the world to him and would give him something to learn on and experiment with.

I’m more than happy to pay what I can and cover postage costs.

Even if nobody has spare parts, I’d really appreciate any advice on, cheap starter builds, beginner resources for coding/game development or anything else that could help him get started

Thank you for taking the time to read this.

reddit.com
u/silvagogo — 8 days ago
▲ 32 r/raspberrypipico+1 crossposts

daisy bell on rpi2040

i think i want to make a formant speech synthesis synth.... forst test got it to sing daisy bell with sam, well see where it goes from here

u/Electronic-Glass-581 — 7 days ago

I made some quick-change Pico sockets

I teach high school CAD classes, and we make soccer-playing robots. For controllers we use Picos and nRF24L01 wireless modules. This year we started tracking them with an overhead camera (camera module 2) and a Raspberry Pi 5 with OpenCV, and we send all the robot's coordinates and orientations to this board with those red, white, and yellow wires via UART.

The students can program their Pico to give their robot autonomous functions, like always stay between the ball and the goal, or go to the ball, or aim and shoot the ball. Whatever they want. Since there are four robot color combos (blue/pink, blue/green, yellow/pink, yellow/green) the students can put their Pico in the appropriate slot for their color assignment.

Anyway, it's been a ton of work and I'm really excited about my sockets. I wanted to use ZIF sockets, but they don't seem to be wide enough, so I took advantage of the edge castelations. I bent all those wires and 3D printed the bases. It turns out it's really hard to solder to spring steel. I should have bought those FlexiPins, but I didn't.

u/WendyArmbuster — 8 days ago

I built a Raspberry Pi Pico status display for monitoring devices at a glance

I’ve just open-sourced ViviPi, a compact Raspberry Pi Pico-based health display.

It is a tiny always-on status board for checking whether devices and services are reachable, degraded, or down without opening dashboards, SSH sessions, or logs.

I originally built it to monitor my Commodore 64 Ultimate / Ultimate 64 network listeners, but it is general enough for other small-device setups too.

Current support includes:

  • PING
  • IDENT
  • DMA (C64-specific)
  • TELNET
  • FTP
  • HTTP
  • Optional host-side checks

The host-side checks mean the sky is the limit. In my setup, I use them to monitor that a Pixel 4 Android device onto which I deploy is accessible from my main dev machine.

It runs on a Pico with a small display and is intended to feel more like a small monitoring appliance than another web dashboard.

GitHub: https://github.com/chrisgleissner/vivipi

Feedback from Pico users would be very welcome, especially around display support and useful probe types.

u/Substantial-Set4550 — 7 days ago

Help with PSRAM on custom rp2350a board

Hi everyone, I'm having issues with PSRAM on my new board. I'd really appreciate help with this since I'm at my wits end, and I need the extra PSRAM for my application (Digital Audio Player). Here's all the details:

Setup

What works

  • PSRAM device verification (KGD/EID read) passes — reports correct 8MB size
  • QMI register config reads back correct (timing, rfmt, rcmd, wfmt, wcmd all as expected)
  • Write via uncached alias (0x1500_0000) then read back via cached alias (0x1100_0000): full 8MB, passes every time
  • Writes via uncached alias work

What fails

  • Pretty much anything not mentioned above
  • Sequential write only via cached alias (0x1100_0000) appears to hang. I can see it running the write loop with gdb, but it never completes (or takes a really long time)
  • HEAP.init writing bookkeeping into PSRAM base: hard faults (PC=0x0, branch through null)
  • Failures are nondeterministic. Same build will sometimes hang, sometimes fault, sometimes get further before dying

Failures Seen

  • HardFault with PC=0x00000000, LR=0x00000012 (branch through null/garbage pointer)
  • HardFault with PC in valid flash, faulting code touching PSRAM (r2=0x11000000)
  • Sometimes pure indefinite hang, no fault. Could mean QMI stalled with CS1 asserted
  • Sometimes things will panic that don't panic on the pimoroni board
  • Just all the classic signs of memory corruption all over the place

Key characteristics

  • Read path through cache works completely. Write path through cache is what breaks
  • nondeterministic rather than a hard logic error
  • cooldown 0 made no difference
  • Pretty sure it's not a software difference since identical firmware works on Pimoroni Pico Plus 2 (only difference is pads are set to 3.3v on pimoroni)

Things already tried with no effect

  • 0x38 vs 0x02 write command
  • QSPI pads explicitly set to 1.8V, drive strength reduced to 4mA
  • CS pad (PIN_0) drive strength reduced to 4mA, slewfast off
  • cooldown 0 vs 1

Board notes / suspected differences vs working Pimoroni board

  • 10k pull-up on CS instead of Pimoroni's 100k
  • QSPI traces shorter than Pimoroni, 50 ohm impedance;,data line length mismatch: shortest is 7.3mm, longest is 13.7mm
  • Schematic otherwise matches reference

I'm really at my wits end with this! I get the feeling I messed up the layout somehow, but I can't really test it since I don't have access to an oscilloscope at the moment. Thanks for taking a look!

u/Zeekiosk — 8 days ago
▲ 7 r/raspberrypipico+1 crossposts

DsPico set up.

I bought a dsPico for my dsi, I downloaded everythinh successful, including an snes emulator. All I'm missing is Gbarunner3. For some reason it keeps saying the error, (can't open file!) can someone help me. It used to give me a completely white screen. After a crazy struggle I got it to say can't open file. I have a 128GB microsd card, which is a lot. I know. But it should work right?

u/pineapple_138 — 9 days ago
▲ 3 r/raspberrypipico+1 crossposts

RP2040 (Pi Pico) and SX1280 LoRa module

I have been trying to get this combination working for a few hours now and I either have extreme packet loss or it just simply doesn't work.

The LoRa module is a RFSolutions Lambda80. I have tried circuit python and Arduino with radiolib. I'm at a loss. I'm trying to send some telemetry data (at the moment it's all random numbers, but it's basically 3 accelerations, GPS coordinates and altitude, altitude from a barometer and also compass orientation. Ive tried vibe coding it with little success and I tried doing it by hand to absolutely 0 success.

Are there easier radio modules I can try that have a small form factor? Or is there something I should look into that I might be missing? I've triple checked the wiring is correct and since some really slow code does work but still has packet loss I don't think the wiring is the problem

reddit.com
u/CookiezFort — 9 days ago

ST7789/CST7789 display only showing backlight with Raspberry Pi Pico 2

​

I’m trying to connect a 1.3” 240x240 SPI TFT display labeled “CST7789” to a Raspberry Pi Pico 2 using MicroPython.

The display backlight turns on, but the screen itself never changes or displays anything.

What I’ve tested so far:

.Pico works correctly

.onboard LED test works

.SPI commands are being sent without errors

.reset and DC pins are toggling correctly

.I once saw a brief flicker on the display during testing

Current wiring:

SCL -> GP18

SDA -> GP19

RES -> GP20

DC -> GP21

VCC -> 3.3V

GND -> GND

BLK -> 3.3V

The module does NOT have a CS pin.

I’ve tried:

.swapping SCL/SDA

.lowering SPI baudrate massively

.multiple initialization sequences

.checking breadboard connections

Current test code:

from machine import Pin, SPI

import time

spi = SPI(

0,

baudrate=10000,

polarity=0,

phase=0,

sck=Pin(18),

mosi=Pin(19)

)

dc = Pin(21, Pin.OUT)

rst = Pin(20, Pin.OUT)

def cmd(c):

dc.value(0)

spi.write(bytearray([c]))

def data(d):

dc.value(1)

spi.write(bytearray([d]))

rst.value(1)

time.sleep_ms(100)

rst.value(0)

time.sleep_ms(100)

rst.value(1)

time.sleep_ms(200)

cmd(0x11)

time.sleep_ms(200)

cmd(0x29)

Does anyone know if:

this display needs a special init sequence,

different SPI mode,

or if the module itself might be defective?

u/beglua — 10 days ago
▲ 46 r/raspberrypipico+1 crossposts

Built a dynamic Braille cell with 6 SG90 servos + Arduino — UART-driven from a Raspberry Pi 5 running a full bilingual OCR + LLM pipeline

Long-time lurker, first time posting a project here.

Github : https://github.com/colonelblacc/Dynamic-Braille

**DynaBraille** is a reading desk for blind students. The embedded side is what I want to share — the Raspberry Pi handles all the AI, and the Arduino is purely a real-time servo driver receiving character packets over UART.

---

**The Braille Cell**

6 SG90 micro servos in a 2×3 grid inside a custom 3D-printed PLA housing. Each servo arm has a pin attached — rotating it raises or lowers the pin through the top plate to form a Braille dot. Any Grade-1 Braille character = a specific 6-bit servo configuration.

The Pi sends packets over serial UART at 9600 baud:

```

BRAILLE:100100\n

^^^^^^

dots 1–6 (1 = raised, 0 = lowered)

Dot layout:

1 4

2 5

3 6

```

The Arduino sketch parses the packet, maps each bit to a servo, and positions them. 400ms settle time between characters to let the servo arms fully actuate before the user touches the dots.

---

**Touch Sensor for Word Advance**

A capacitive touch sensor is mounted on the **side** of the housing. The student's fingers rest on the Braille dots; they tap the side sensor with their thumb to advance to the next word. The Arduino detects the tap and sends a `NEXT` signal back to the Pi over the same UART line. Hands never leave the device during reading.

---

**The Pi Side (brief)**

- Pi Camera 3 → perspective warp → CLAHE enhance

- PaddleOCR (English) with confidence fallback to Tesseract (Malayalam)

- Gemma 2B via Ollama for OCR cleanup — runs fully on-device

- pyttsx3 TTS + Vosk offline ASR

- Gemini 1.5 Flash optional (explain/summarize/describe diagrams)

Full offline mode: `python main.py --no-gemini`

Happy to discuss the servo timing, UART protocol design, or the touch sensor debounce logic.

u/Impressive-Bite-8213 — 12 days ago

Automating Nintendo Switch inputs using Pi Pico

Hey everyone, I’m hoping someone can help me with this project. Let me start by saying I have NEVER done any sort of programming or projects using Pico before. I am completely brand new to this so you might have to really spell it out for me to understand (sorry and thanks in advance)

My goal is to be able to preset some inputs to my Raspberry Pico Pi Pico 2 that just came in today. I’ve searched all over the internet on how to do this project, but can’t find any instructions for this. The closest thing I’ve found is turning the Pico into a controller, or using it as an adaptor so I can use controllers for different consoles on the Nintendo.

The closest thing I’ve found was some pretty spelled out instructions from Chat GPT, but I don’t really trust that I just feel like it won’t be correct.

But yea, my goal is to be able to preset certain inputs to the Pico (such as “Delay 23, press A, delay 34, press A), and then plug it into my Nintendo, and my Nintendo will read it as a controller and hit the frame-perfect inputs. That is basically how chat gpt tells me it has to be done, by loading the code onto the Pico and then transferring it to the Nintendo. If that’s the process, sounds great to me.

reddit.com
u/Regichungus — 13 days ago

Requesting Help with Audio Quality

Circuit here: https://freeimage.host/i/BDHfHzJ

This is my first audio project. I have an SD breakout reading 128kbps .mp3 files on I2S through a MAX98357 amplifier outputting to an 8Ω 3W speaker. Everything is working great, but the audio has a kind of raspy crackle/warble to it. On PC, the audio files are very clean. I've upped the clock speed on the pico to 133MHz wondering if perhaps things were just getting bogged down at 125 but that had no affect. What should I try to clean this up a bit?

Thank you

u/Annotat3r — 13 days ago

i have a question

so i have a raspberry pi pico 2/1/H/W pinout i am having many difficulties finding turtorials and starters on it where should i go to get started

reddit.com
u/nooblog_1234 — 12 days ago

Rasberry Pi Pico W freezes when activating wifi

I'm using C++ (PlatformIO/VS Code) with the Earle Philhower core. My header pins are soldered correctly with no bridges. The VSYS have 4.8V (USB).

Whenever the code reaches this line:

if (WiFi.softAP(ssid, password, _channel, _hidden, _maxConn))

the Pico W freezes completely.

The code is correct, so it must be either a hardware defect or a configuration issue I’m missing.

After the crash, the board becomes unresponsive. PlatformIO hangs on Forcing reset using 1200bps, and the only way to upload again is to manually put the board into BOOTSEL mode. I've already tried a "flash nuke," but it didn't resolve anything.

Is the board just defective? Has anyone else encountered this specific hang when initializing the wifi?

reddit.com
u/Ambitious-Orange1299 — 12 days ago

I've built some example projects using the SDK, but I want to write my own driver.

Does anyone know where I can learn how to start developing for the Pico W without using the SDK? I've looked over the data sheet for it and the RP2040, but still don't know where to start.

reddit.com
u/Dark_Greee — 14 days ago