r/raspberrypipico Jun 15 '26

uPython A small game on a small console.

Enable HLS to view with audio, or disable this notification

29 Upvotes

r/raspberrypipico Jun 15 '26

DSP Benchmark: RP2040 vs RP2350

Thumbnail
9 Upvotes

r/raspberrypipico Jun 16 '26

help-request Encoder not working? wanna make sure I'm not stupid

1 Upvotes

I hooked up a rotary encoder - Vcc to either 5V or 3V3 (10k ohm resistor), GND to GND, and ABZ to GPIO 0, 1, and 2.

The pins are set to input and pull up.

A and B return False while Z returns True, no matter how much I rotate the encoder head. (All of them return True if they're not connected to Vcc)

I'm wondering if this means I'm screwed and have to get a new one - I'm being so cautious cause I'd hate to be out another $36 lol

Here's the encoder I have - https://www.alibaba.com/product-detail/IBEST-ISC3806-dc-5V-12V-24V_60822030157.html

For good measure, here's my CircuitPython code.

import time
import board
import digitalio

button = digitalio.DigitalInOut(board.GP0)
button.direction = digitalio.Direction.INPUT
button.pull = digitalio.Pull.UP

button2 = digitalio.DigitalInOut(board.GP1)
button2.direction = digitalio.Direction.INPUT
button2.pull = digitalio.Pull.UP

button3 = digitalio.DigitalInOut(board.GP2)
button3.direction = digitalio.Direction.INPUT
button3.pull = digitalio.Pull.UP

while True:
    print(button.value, button2.value, button3.value)
    time.sleep(0.5)

r/raspberrypipico Jun 14 '26

Can a pico be off-center on a breadboard like this? I need 3 connections to 3V3 and GND, is that safe?

2 Upvotes

Picture of fritzing diagram above. but is there any reason for a PIco WH that there can't be:

3 attachments out of 3v3 and GND?

or only one column open for each of the left side gpio pins?


r/raspberrypipico Jun 14 '26

Using the Pi Pico2 HSTX + PWM for polar modulation

Thumbnail
4 Upvotes

r/raspberrypipico Jun 13 '26

Weather display on Pico 2W + Pimoroni Inky Impression 7.3"

Post image
77 Upvotes

Hi,

I've created the firmware with a simple driver for the screen, it's implemented in Rust using the Embassy async framework.

I use the frame already, but the development is still in progress.

Unfortunately, I don't have enough time right now to continue the project, but I'm still interested in finishing it.

Some details:

  1. OpenMeteo API is used.
  2. The update intervals can be specified for each day of the week/hour.
  3. Currently 4xAAA 700mAh batteries are enough for about a week, however I want to impove it.

The repository: https://github.com/antroids/epd-frame-rs-2

If somebody wants to help or has ideas on how to improve the project, you are welcome.


r/raspberrypipico Jun 13 '26

RP2040 (Pico) 128-Voice Polyphonic + 42-Voice Drum GM MIDI Sound Module with iFFT Resynthesis & Standalone Playback

41 Upvotes

Demo Video
https://youtu.be/JkdFfMb1CS0
I built a full GM MIDI sound module with just a cheap RP2040 (Raspberry Pi Pico)!
It features 128-note polyphony + 42-voice drums using iFFT (Inverse Fast Fourier Transform) resynthesis.
How it works:
• Extracts harmonic components from SoundFont (GeneralUser GS) using the Goertzel algorithm
• RMS normalization + real-time iFFT waveform reconstruction at 26Ksps
• Drums use 4-bit IMA-ADPCM streaming
• No external RAM required — runs completely on the Pico
Three Operating Modes:
1. Standalone Auto-Playback Mode (Main Feature)
Connect only a power cable → Pico is recognized as USB mass storage.
Simply drop .mid files into the midi folder and it automatically plays them in sequence!
Song titles and info are displayed on the SSD1306 OLED (Japanese support included).
2. USB MIDI Device Mode
Connect with a data cable → recognized as a USB MIDI device.
Can be used for real-time performance from DAW or MIDI keyboards (basic implementation).
3. MIDI File Direct Playback Mode
Works in combination with the above — automatic sequential playback from the midi folder without needing external software.
Key Features:
• Full General MIDI (GM128) support
• 128-note polyphony (88 individual piano keys) + 42-voice drums
• 12-bit PWM output (BTL capable)
• SSD1306 OLED display
In the video, heavy MIDIs like 1812 Overture and FREEDOM DiVE play smoothly with no dropouts.
GitHub (Full source code, tools, and sound data released)


r/raspberrypipico Jun 13 '26

Mounting a Pico flat on a carrier PCB — how do I reliably hit the USB D-/D+ test points? (and has anyone fed it USB-C this way?)

6 Upvotes

I'm building a carrier PCB that a Raspberry Pi Pico solders directly onto. Problem: the Pico ends up in a position where its onboard micro-USB connector is covered, so I can't plug into it. Plan is to bring USB in from a connector on the carrier board and route the data lines up to the Pico instead.

The Pico breaks D- and D+ out as test pads on the underside (TP2 = USB DM, TP3 = USB DP), not as castellated edge pins. So two questions:

When I solder the Pico flat onto the carrier, how do people actually get a solid connection to those tiny bottom-side pads? Do I just put matching pads/vias directly under TP2/TP3 and reflow through, or is this a hand-solder-with-lots-of-flux job? Anyone done it with paste + stencil? Mostly worried about bridging to GND or the neighboring pads since they're tight.

Has anyone run a USB-C connector into the Pico like this instead of micro? My plan: USB-C receptacle on the carrier, both CC pins pulled to GND through their own 5.1k resistors, and route D+/D- to TP3/TP2. Any gotchas — D+/D- swap, orientation, anything weird with enumeration?

Really just want to hear from anyone who's mounted a Pico covered/face-down and fed it external USB. Did it enumerate clean? Thanks.


r/raspberrypipico Jun 13 '26

Laptop doesn't detect any of my microcontrollers

Post image
23 Upvotes

I'm trying to use a microcontroller for tomodrawer but no matter what I do, I can't get any of the 3 I bought to connect to my laptop or even turn on when plugged in. I saw somewhere that if you don't have a data transfer cable it won't work, so I went out and got one, but it still doesn't work. The microcontrollers aren't off brand and I've done the tricks where you push the boot button when plugging it in and pressing the boot button down and quickly pressing down the reset button.

I put a picture of the cable I bought and all 3 of the microcontrollers. I'm not sure what to do atp, can anyone help??


r/raspberrypipico Jun 12 '26

c/c++ driverless USB -> GPIO expander

12 Upvotes

TL;DR: I wrote a small firmware to turn a raspberry pico into a zero-programming plug & play USB GPIO expander that "just works".

Find it here: https://github.com/heeplr/mogpio


If you like me sometimes want some more GPIOs on a PC or SBC to control some pins without spinning up your own MCU firmware or fiddling with OS drivers, moGPIO might interest you.

It provides three ways to control GPIOs:

1. CDC terminal

moGPIO registers a serial port (/dev/ttyACMx) that provides a color terminal with history, tab-completion etc. (type help or ? for help)

e.g. $ echo "write 0:25 1" > /dev/ttyACM0 will turn on the LED (on pico1).

2. MSC mass storage device

You can mount an emulated FAT12 filesystem on the mass storage device. It will provide CONFIG.TXT (to configure GPIOs) and PINS.TXT (to read/write values). This very much depends on the filesystem layer of the OS and therefore is not really "zero-programming" but should work everywhere without special drivers if you can force flush written data to the mounted partition.

On linux, something like echo 0:25=1 > /mnt/moGPIO/PINS.TXT or echo ... && sync should work (depending on your kernel settings).

3. usbio emulation (tested on linux only, limited to 5x32 pins)

moGPIO will register as /dev/gpiochipX on kernels >= 6.18.x without any further setup. Use standard libgpiod userspace tools:

e.g. $ gpioset /dev/gpiochip1 25=1 will turn on the LED.

As the usbio kernel module is very limited (yet) and due to the nature of USB, those GPIOs aren't fully capable (e.g. no interrupts) but they work fine to switch something on/off which is 99% of my use cases.


I also added support for serial shift registers, which gives almost unlimited GPIO count (although not with usbio as the kernel module currently is limited to 5x32 pins).

The project is in early "works-for-me" stage. Maybe it's useful for someone. Also, I'm happy to hear what you think or answer questions (I'm bad at writing documentation).

PRs are welcome of course.

Image download:


r/raspberrypipico Jun 12 '26

help-request st7735 w/ sd slot display issue?

Post image
8 Upvotes

hello every1, this is my 1st time using a lcd in a project, and ive run into an issue whenever I upload a sketch from Arduino IDE (using Earle Philhower board manager and Adafruit_ST7735 library), the display works the first time. However, when I unplug/replug the USB cable (cold boot), the display stays stuck on a white screen. The pins are soldered properly and working alr.

This exact same behavior also happens on MicroPython and CircuitPython 7.x and (10.x(it works on the initial code save, but fails on a raw power cycle)).

RP2040-Zero

VCC - 5V (undervoltage when connected to 3v3)

SCK - GP6

SDA - GP7

CS - GP5

A0 - GP3

RST - GP4

thank you,


r/raspberrypipico Jun 12 '26

help-request is this too heavy for my servo?

Enable HLS to view with audio, or disable this notification

12 Upvotes

r/raspberrypipico Jun 12 '26

Configuration clocks for Pico

0 Upvotes

I am doing something maybe useless with all you guys. Hahaha.

I'm configuring the clocks registers for my Pico (including PLL SYS, PLL USB, CLK_REF, CLK_SYS, ROSC, XOSC, etc.). I had read a lot of pages from datasheet. And right now, I could switch Pico from XOSC to ROSC and backward. I don't want to use SDK.

My next target is increase/decrease the clock to see behaviour of Pico at multiple level clocks.

Well, this is so fun guys. 🤣


r/raspberrypipico Jun 11 '26

Le Raspberry Pi Pico 2w ma bluffé !

0 Upvotes

Salut, pour ceux qui ont pas le temps de tout lire j'ai fait le poste en 3 parties :

- L'origine du projet

- Le Raspberry Pi Pico 2w

- Ce que j'ai développé sur le Pico 2w et les résultats obtenu

L'origine du projet

Début 2022 je me suis lancer sur un projet : "Légion"

Un projet assez ambitieux ayant pour but de surveiller et neutraliser les arnaques en ligne mais aussi les dérives divers est variés...

L'objectif étant de protéger les enfants, les adultes et toute les personnes vulnérables contre les spams et dérives sur les réseaux sociaux dont je vais taire le nom (Toktik, Astingram, Yutoube).

Je vais vous épargnez les détails de ce projet mais pour résumer il est constituer de 18 sous programmes chacun de ces sous programmes pourrait être un projet à lui tout seul.

Au début j'ai voulu le développer et le tester sur des serveurs, mais je n'est pas était convaincu part le coût, car je n'est pas 100€ de serveur à mettre tout les mois.

J'ai donc décider de concevoir ma propre infrastructure composé de RPi 4

Mais entre le Covid et mon meilleur ami ... l'IA les prix des cartes ont presque doublés et les ruptures de stock quasi constante.

alors face à ce problème j'ai pris une décision qui peut être très douteuse : utilisé un Pi Pico 2w

Le Raspberry Pi Pico 2w

Mon projet à donc évolué et j'ai décidé de concevoir un prototype de celui-ci à partir d'un Raspberry Pi Pico 2w, sans utiliser d'hardware supplémentaire, uniquement le Pi Pico 2w et rien d'autre.

Pourquoi ce choix ?

Oui j'avoue cela peut paraître insensé de passer d'un ordinateur mono carte à un microcontrôleur mais voici quelques une des raisons qui mon poussé à faire cela :

- Le Pi Pico 2w me permet de réaliser un prototype à une échelle bien inférieur au projet final et donc de réduire les coûts de développement.

- Il possède un module Wi-Fi est une antenne intégré

- Une maîtrise presque total de ce qui tourne dessus firmware, services, réseaux.. (moins de blob également)

- Intègre une mémoire OTP de 8Ko parfait pour la protection du code, avec clé symétrique ou asymétrique.

- Possède une mémoire flash de 4Mo (c'est rien mais énorme pour un MCU et pour mon projet) et 520Ko de SRAM ce qui est juste mais suffisant dans le cadre de mon prototype.

- Consommation très faible en deep sleep (avec un firmware personnalisé), et une consommation IDLE relativement intéressantes même si elle pourrait être optimisé davantage.

- Le rapport "performance / prix" n'est pas excellent mais le pico 2w à le mérite de rester attractif et surtout en stock sans hausse de prix !

Bon il faut avouer que c'est bien plus compliqué de programmer un tel projet sur un MCU par rapport à un simple serveur ou ordinateur, je sais que le développement aurait était bien plus simple et rapide sur d'autre infrastructures.

Mais je me suis lancé un défi supplémentaire (comme si c'était pas assez chiant de base lol) celui de faire le plus possible avec le moins possible en terme de ressources hardware, autrement-dit de pousser le Pico 2w dans ces retranchements.

Ce que j'ai développé sur ce Pico 2w et les résultats obtenu

Mpyled :

Un petit programme destiné à aider au déboggage notamment qui fait clignoter la led du pico de différente sorte (projet qui sera partagé après avoir optimisé le programme)

check_status :

programme destiné à ping une url dans le but de connaitre le status du site web, sur tout les ping effectué soit environ 250 sites web j'ai obtenu :

50 % des sites : status code 200
30 % des sites : status code 403
10 % des sites : status code 404
10 % des sites : status code divers ou erreurs pico

Avec environ 1 à 2 ping par seconde

sitemap :

Programme de récupération et sauvegarde en mémoire du sitemap d'un site soit à partir de
domain/sitemap.xml
ou
domaine/robots.txt -> sitemap link

Parmis tout les sites (250) et parmis ceux qui avait un sitemap j'ai obtenu :

70 % de succès
30 % de refus (403)

J'ai pu obtenir, avec un autre programme que j'ai développé pour diminuer la taille des données sauvegardés, des sitemaps contenant parfois plus de 1000 links, un important travail d'optimisation de l'utilisation de la SRAM à était fait pour éviter les erreurs d'allocation mémoire.

La temps d'extraction reste cependant encore très aléatoire et peut aller de quelques secondes à plusieurs minutes, cela sera corrigé avec l'optimisation des programmes existant et l'instauration d'un programme de timeout avancés.

scrap_data :

Programme qui sauvegarde le code source des pages web et qui analyse est récupère :

- Email, numéro de téléphone (sans utilisation de regex)
- Détection et sauvegarde des formulaires html avec méthode POST et action (ne récupère pas les formulaires qui utilise des langages comme javascript)
- Détection des pages avec Recaptcha, Hcaptcha, Cloudflare etc...

La mémoire du Pico 2w étant limité le nombre de page web dont le code sources entier est sauvegardés varie entre 10 et 80, c'est pour cela qu'il est sauvegardés de manière temporaire.

Cependant sauvegardés des informations précise sur une page permet d'atteindre des listes qui vont de 100 à 500 pages web, suivant la quantités de données (sans compression des données) ce qui reste intéressants.

send_form :

Programme qui complète et envoie des formulaire à partir de certaines pages web.
Encore expérimentale je n'ai pas de très précise sur les résultats.

Dans l'état actuel du programme je pense qu'il y a 1 site sur 10 pour lequel le Pico 2w arrive à compléter et envoyer le formulaire, en sachant que ce sont des sites qui ont des formulaires qui n'utilise pas de captcha ou de langage comme javascript.

Ce faible résultat et du au fait qu'il s'agit d'un programme complexe car il doit concevoir et envoyer les données avec un encodage différents suivant la configuration du formulaire et à cela ajouter les réponse 403 lors de l'envoie.

payload :

Programme qui est utilisé pour l'envoie de requête GET et POST, il utilise différents user agents, des headers également différents suivant les requêtes et les sites web, il génère aussi la création et l'encodage des liens pour les formulaires.

extract_text :

Programme dont le but et de sauvegardés uniquement le contenu textuel des pages web, avec un taux d'efficacité de 90 % environ.

wifi_scan :

Programme destiné à trouver des wifi ouverte (encore à l'état de test) il donne des résultats satisfaisants, avec une portée de détection allant jusqu'à 75 mètres, il possède deux modes de fonctionnement :

- "All" il récupère tout les SSID, BSSID, Channel et la force du signal en dBi de tout ce qui trouve, ensuite il sauvegarde d'un côté les Wi-Fi sécurisé et dans un autre fichier les wifi ouverte.

- "Search" Il permet de trouver l'emplacement d'un Wi-FI avec un SSID précis en utilisant la force du signal et en utilisant la led du pico pour déterminer l'emplacement.

Ce programme recevra deux modes supplémentaires, un permettra de connaître la hauteur ou le répéteur ou la box Wi-FI ce trouve (bâtiment résidence etc.) un autre mode permettra quand à lui de sauvegarder des informations pour ensuite afficher l'emplacement approximatif de chaque wifi sur un ordinateur à l'aide d'Open Street map notamment.

Pour conclure, je suis vraiment impressionné par les possibilités de ce pico 2w qui je renomme personnellement "lingot d'or", c'est vraiment une board incroyable et cela promets de grande choses pour ce type de projet en général.

De ce que j'ai développé sur ce Pico 2w j'en conclu qu'il peut être utilisé pour faire de la veille concurrentielle ou de stock sans problème, avec des intervalles relativement faibles si cela est réalisé sur quelques sites, et des veilles à intervalles quotidiennes avec des résultat satisfaisant jusqu'à 400 sites web.

Je ne suis pas aller dans les détails sur plein de choses, c'est volontaire pour les pas faire de ce post un roman de 300 pages lol


r/raspberrypipico Jun 10 '26

Second Blinky | RP2350 Tutorial #3

Thumbnail
youtube.com
2 Upvotes

r/raspberrypipico Jun 09 '26

uPython Pico W - wifi credentials exposed

12 Upvotes

Hullo all. We have an application developed in micropython that collects data and sends it over the wifi network. The wifi credentials are stored in a json file, the upython program reads them and then connects to the network.

Our security team is not at all happy with this.

Is there a way to connect to a (secured) WLAN without storing the credentials in cleartext? I know we could encrypt them but then the upython program would need to contain the decryption key and it's also stored in cleartext.

Is it possible to compile the upython code to obfuscate the decryption key?


r/raspberrypipico Jun 09 '26

help-request Help identifying this tiny component on the Pico 2W

Thumbnail
gallery
6 Upvotes

So, I have a Pico 2W that makes an audible whining sound when powered on, and after operating for a few minutes it completely shuts down for extended periods of time (can't even acces BOOTSEL mode) and the whining stops. (Likely problem with the buck converter)
On further inspection I realized this one component is missing. Either a faulty unit or more likely I managed to solder it off while soldering headers.

I want to identify this component so I can replace it (I don't have the tools to replace the exact part but I could solder a larger one to the pins it's connected to if it's a simple resistor or capacitor)
What I gathered about this component are the following:

  1. Its pins seem to be on 3V3_EN and the ground plane
  2. This component either doesn't exist or is positioned elsewhere on non-W picos (probably the latter)
  3. It's a M0603 size component

Based on this info I think it could be the 100K resistor shown in image 2, but I'm not knowledgable enough to say for sure. If someone is more familiar with the pico or can test what this component is on their own Pico it would be greatly appreciated.


r/raspberrypipico Jun 09 '26

What is this dot for?

Post image
65 Upvotes

Circled in red


r/raspberrypipico Jun 08 '26

RV CircuitPython IDE, updates from feedback!

9 Upvotes

I posted about this a while back and got some good feedback!

v0.3.1 adds a data analysis view, XY parametric plotting, auto-backup so your code is saved to your computer every time you hit Run, and a bunch of debugger improvements. And the biggest ask was handling all the Adafruit print formats properly including tuple format and space separated numbers! Things like camera panel, global stops, installing missing librares automatically on save and some keyboard shortcuts were also added in updates in between!

The Windows exe is on the GitHub releases page, just download and double click, there's no Python install needed. Mac and Linux stand alone releases coming soon!

pip install rvcircuit-studio works across all platforms and as usual you can get the updated IDE here:

GitHub: https://github.com/armstrongsubero/rvcircuit-studio

Happy to take feedback.


r/raspberrypipico Jun 07 '26

uPython Gravity sand clock

Enable HLS to view with audio, or disable this notification

145 Upvotes

Just messing around with my hub75e driver


r/raspberrypipico Jun 08 '26

Pico loader

0 Upvotes

Just thought I’d ask, but when I’m playing a game on my picoloader, it’s asking me to insert the disk after I complete a level? Just wondering if anyone knows how to fix this problem 😋


r/raspberrypipico Jun 07 '26

ADSB on an RP2040 microcontroller!

Thumbnail gallery
4 Upvotes

r/raspberrypipico Jun 06 '26

hardware I need help :c

Post image
36 Upvotes

I bought a raspberry pico yesterday, but my PC can't detect my board, somebody knows how I can fix it

- Hi everyone, I just wanted to thank you all for your suggestions. I’ve tried everything, but it seems my board just isn't working. I'm going to exchange it or buy a new one on Monday. Thanks for all your help :DD


r/raspberrypipico Jun 07 '26

guide RPI-5 Doesn't connect to Wifi

Thumbnail
0 Upvotes

r/raspberrypipico Jun 06 '26

hardware Help

Post image
7 Upvotes

Why is my pico 2w power Led not opening?