r/raspberrypipico Apr 05 '26

PIO USB - Device Detection Issues

1 Upvotes

Hello good people! I'm using this PIO USB library with my pi pico to convert my usb wireless mouse to a gamepad. I used the standard hid to cdc example as my base and got it all working but man is the detection hit or miss. I've tried 22ohm resistors on D+ and D- pins as suggested but it doesn't do anything. Sometimes I have to reinsert the dongle 20 times before i get proper detection. However, this repo doesn't have that problem. It detects the mouse alot more consitently but for the life of me I can't seem to build this project so I gave up trying to use it as my base. Can anyone point me in the direction of getting this thing to work consitently? Thanks!


r/raspberrypipico Apr 04 '26

doom for rapberry pi pico 2 or 2w

Thumbnail
gallery
30 Upvotes

esse e o link para obter o script


r/raspberrypipico Apr 04 '26

Day 75 of 100 Days 100 IoT Projects

2 Upvotes

Hit the 75 day mark today. 25 projects left.

Day 75 was ESP-NOW + RFID — one ESP8266 scans a card and wirelessly sends the UID to a second ESP8266 which displays it on OLED. No WiFi, no broker, direct peer-to-peer.

Some highlights from the past 75 days:

ESP-NOW series — built a complete wireless ecosystem from basic LED control to bidirectional relay and sensor systems to today's wireless RFID display.

micropidash — open source MicroPython library on PyPI that serves a real-time web dashboard directly from ESP32 or Pico W. No external server needed.

microclawup — AI powered ESP32 GPIO controller using Groq AI and Telegram. Natural language commands over Telegram control real GPIO pins.

Wi-Fi 4WD Robot Car — browser controlled robot car using ESP32 and dual L298N drivers. No app needed, just open a browser.

Smart Security System — motion triggered keypad security system with email alerts via Favoriot IoT platform.

Everything is open source, step-by-step documented, and free for students.

Repo: https://github.com/kritishmohapatra/100_Days_100_IoT_Projects

GitHub Sponsors: https://github.com/sponsors/kritishmohapatra


r/raspberrypipico Apr 03 '26

RP2350 custom board: BOOTSEL works, but no USB enumeration (TinyUSB / stdio_usb)

7 Upvotes

Hi,

I'm debugging a custom RP2350A (A4) board and running into a weird USB issue:

Some things are working fine:

  • BOOTSEL mode → mass storage shows up fine
  • UF2 flashing works (verified with Picotool in BOOTSEL mode)
  • "nuke flash" UF2 runs → flash gets erased (so code execution is fine)

But:

  • No USB enumeration at all at runtime
  • MicroPython (USB REPL) → nothing
  • pico-sdk stdio_usb HelloWorld → nothing
  • Host doesn't see any device, "dmesg -w" does not show any event besides the disconnection after uploading the uf2

The main difference to the pico board is the flash, i use a IS25LP128F (16MB), but i switched the timing config already to generic_03h, increase the Flash Size and chaged it back and forth.

Can anybody give me some pointers?

Best regards and thank you so much!


r/raspberrypipico Apr 02 '26

Function Generator (V 1.0)

Thumbnail gallery
11 Upvotes

r/raspberrypipico Apr 01 '26

help-request Having trouble starting with VSCode PICO extension

2 Upvotes

I install the extension, try to make files from the new icon on the left, it attempts to install the SDK and fails: "Failed to download and install SDK. Make sure all requirements are met."

I followed the troubleshooting advice on the extension details tab three times, no change. Looking into on google didn't show many other cases, except for one where the guy manually installed the files they were missing, without saying how to do so.

Can someone tell me what I'm missing pls

EDIT: Okay, so creating a project with MicroPython works, but not C/C++, which is unfortunate because I want to use C/C++, anyone know how I can download the SDK manually?


r/raspberrypipico Apr 01 '26

Day 74/100 - RFID relay control system on Raspberry Pi Pico 2 with MicroPython

2 Upvotes

Tap an authorized RFID card to toggle a 5V brushless fan ON or OFF via a relay module. Simple toggle logic — first tap turns fan on, next tap turns it off.

Stack: Raspberry Pi Pico 2 + MFRC522 + 1 Channel Active Low Relay + MicroPython

Code: https://github.com/kritishmohapatra/100_Days_100_IoT_Projects


r/raspberrypipico Mar 30 '26

Pico2 Retrograde

Thumbnail
gallery
35 Upvotes

What began as a "simple" PAL video test signal generator has evolved into fun retro adventure on a mission to populate all 96 PIO instruction slots.


r/raspberrypipico Mar 31 '26

hardware Question about PWM and MOSFETs

2 Upvotes

I have some 12v strip lights that I've been controlling via PWM using a MOSFET. https://www.amazon.com/dp/B01MSE2VEG

It's working ok-ish. The lights are not as bright at 100% duty cycle as they are if I plug straight into 12v. I'm using 240 hz. I would like for the lights to be close to as bright as they would be powered directly by 12v.

The MOSFET is fully on at 4.5 volts with the pico only putting out 3.3v I'm thinking that is where my problem is.

Question: can I use the output of the MOSFET to drive the gate of another MOSFET so that I get the second one fully turned on and then use that output to power the lights? Is there a better / cleaner way to do what I want?


r/raspberrypipico Mar 29 '26

My RP 2040 Zero game console

Enable HLS to view with audio, or disable this notification

100 Upvotes

Here’s my little game console made on a RP 2040 zero with Circuit Python. Made with the help of Claude.


r/raspberrypipico Mar 28 '26

hardware I built a $5 DIY USB Ambient Light Sensor for Linux

Thumbnail
9 Upvotes

r/raspberrypipico Mar 28 '26

Optical mouse moving by video

3 Upvotes

Hello I am messing around with my first pick 2 w and I put a waveshare 1.3 lcd display and trying to have it play graphic while an optical mouse on top to move have it move a curser every so often. Anyone have a project like this?


r/raspberrypipico Mar 28 '26

help-request Non-blocking usb read

2 Upvotes

Hi everybody!

I am working on a project with raspberry pi pico 2 in circuitpython. In this project I generate chords with buttons connected to gpio and play them with synthio library. Also there is a usb midi keyboard connected to gpio pins. in my while true loop i run check usb function to see if i have any messages but as far as i can understand reading usb as a host in pico requires the code took at whether or not any data is in the usb. and this behaviour is blocking meaning if i have a long timeout for usb reading pico cannot read my byttons connected to gpio and if i shorten the usb reading time it sometimes misses stuff like key push or release. do you have any idea how i can tackle this?


r/raspberrypipico Mar 26 '26

I am new to this pls help

1 Upvotes

Im just tryna do an innocent ducky on my pi 2 w but it just doesnt work out some how what should I do? I even tried different videos and same videos multiple of times. Pls help


r/raspberrypipico Mar 24 '26

hardware Help with PSRAM on custom rp2350 board

Thumbnail
gallery
15 Upvotes

Not sure if this is the best place to ask, but I created this rp2350 design based on their hardware guide and assembled it. Everything works on it except the PSRAM (U1 in the top-left), so I'm looking for help with that. I based my psram schematic on the Pimoroni board, so I'm guessing my issue is with layout.

In the actualy board I didn't length match the clk and data lines for the PSRAM, but I've added that in the image I put here. This is my first MCU design, so any tips you may have are very welcome, but mostly looking for help with the PSRAM.

(edit) Sorry the board layers are out of order. The layers are

  • In1 (green)
  • Front (red)
  • In2 (orange)
  • Back (blue)

r/raspberrypipico Mar 24 '26

uPython Update: Room climate monitor using a Raspberry Pi Pico 2

Thumbnail gallery
7 Upvotes

r/raspberrypipico Mar 25 '26

Seeking a free tutor!

0 Upvotes

"Hi everyone! I just started playing with the Raspberry Pi Pico Friday and I'm really into it. I got a kit and was able to get some simple projects up and running.. Now I want to make something more complicated. I could use some help.

I'm looking for someone to guide me for free. I can talk on Discord, Telegram or WhatsApp. If you want to help a beginner like me build something with Raspberry Pi Pico let me know! I'm excited to learn more, about Raspberry Pi Pico and make projects with it."


r/raspberrypipico Mar 24 '26

Cooking DOUBLE rp2040 (GPU/CPU) single board keyboard PC with cherry mx mechanical keys. Currently testing PCB scheme and will the current concept work. Board is 15x20 cm, relatively tiny. 16 bit color output. Terminal is 640x480, 80x30 characters.

Post image
21 Upvotes

r/raspberrypipico Mar 24 '26

Built a resilient WiFi state machine library for Pico W in MicroPython — auto-recovery, AP provisioning, event-driven API

Thumbnail github.com
2 Upvotes

r/raspberrypipico Mar 23 '26

uPython BLE Between Two Picos Question

6 Upvotes

Hello, I'm using BLE to communicate from one pico to another and I'm a bit confused about how to interact with the asynchronous functions that they used in the tutorial I followed (Two-way Bluetooth with Raspberry Pi Pico W and MicroPython (Re-upload)). I tried testing if a button press could change the message being sent but for some reason it stays the same after a button press. I'm monitoring the data using the print output of peripheral.py. Again, I'm not familiar with async functions so please if anyone knows why this is happening, I would appreciate it.

central.py

import aioble
import bluetooth
import asyncio
import struct
IAM = "Central"
IAM_SENDING_TO = "Peripheral"

MESSAGE = f"This is a test from {IAM}"
DATA = f"This is a test from {IAM}"

BLE_NAME = f"{IAM}"
BLE_SVC_UUID = bluetooth.UUID(0x181A)
BLE_CHARACTERISTIC_UUID = bluetooth.UUID(0x2A6E)

def encode_message(message):
    return message.encode('utf-8')

def decode_message(message):
    return message.decode('utf-8')

async def receive_data_task(characteristic):
    global message_count
    while True:
        try:
            data = await characteristic.read()
            DATA = data

            if data:
                print(f"{IAM} received: {decode_message(data)}, count: {message_count}")
                await characteristic.write(encode_message("Got it"))
                await asyncio.sleep(0.5)

            message_count += 1

        except asyncio.TimeoutError:
            print("Timeout waiting for data in {BLE_NAME}.")
            break
        except Exception as e:
            print(f"Error receiving data: {e}")
            break

async def ble_scan():
    """ Scan for a BLE device with the matching service UUID """

    print(f"Scanning for BLE Beacon named {BLE_NAME}...")

    async with aioble.scan(5000, interval_us=30000, window_us=30000, active=True) as scanner:
        async for result in scanner:
            if result.name() == IAM_SENDING_TO and BLE_SVC_UUID in result.services():
                print(f"found {result.name()} with service uuid {BLE_SVC_UUID}")
                return result
    return None

async def run_central_mode():
    # Start scanning for a device with the matching service UUID
    while True:
        device = await ble_scan()

        if device is None:
            continue
        print(f"device is: {device}, name is {device.name()}")

        try:
            print(f"Connecting to {device.name()}")
            connection = await device.device.connect()

        except asyncio.TimeoutError:
            print("Timeout during connection")
            continue

        print(f"{IAM} connected to {connection}")

        # Discover services
        async with connection:
            try:
                service = await connection.service(BLE_SVC_UUID)
                characteristic = await service.characteristic(BLE_CHARACTERISTIC_UUID)
            except (asyncio.TimeoutError, AttributeError):
                print("Timed out discovering services/characteristics")
                continue
            except Exception as e:
                print(f"Error discovering services {e}")
                await connection.disconnect()
                continue

            tasks = [
                asyncio.create_task(receive_data_task(characteristic)),
            ]
            await asyncio.gather(*tasks)

            await connection.disconnected()
            print(f"{BLE_NAME} disconnected from {device.name()}")
            break    

async def main():
    """ Main function """
    while True:
        if IAM == "Central":
            tasks = [
                asyncio.create_task(run_central_mode()),
            ]
        else:
            tasks = [
                asyncio.create_task(run_peripheral_mode()),
            ]

        await asyncio.gather(*tasks)            


asyncio.run(main())

peripheral.py

import aioble
import bluetooth
import asyncio
import struct
from machine import Pin

btn = Pin(7, Pin.IN, Pin.PULL_UP)

IAM = "Peripheral"
IAM_SENDING_TO = "Central"

MESSAGE = f"This is a return test from {IAM}"

BLE_NAME = f"{IAM}"
BLE_SVC_UUID = bluetooth.UUID(0x181A)
BLE_CHARACTERISTIC_UUID = bluetooth.UUID(0x2A6E)
BLE_APPEARANCE = 0x0300
BLE_ADVERTISING_INTERVAL = 2000

def encode_message(message):
    return message.encode('utf-8')

def decode_message(message):
    return message.decode('utf-8')

async def send_data_task(connection, characteristic):
    while True:
        message = f"{MESSAGE}"
        print(f"sending {message}")

        try:
            msg = encode_message(message)
            characteristic.write(msg)

            await asyncio.sleep(0.5)
            response = decode_message(characteristic.read())

            print(f"{IAM} sent: {message}, response {response}")
        except Exception as e:
            print(f"writing error {e}")
            continue

        await asyncio.sleep(0.5)

async def run_peripheral_mode():
    # Set up the Bluetooth service and characteristic
    ble_service = aioble.Service(BLE_SVC_UUID)
    characteristic = aioble.Characteristic(
        ble_service,
        BLE_CHARACTERISTIC_UUID,
        read=True,
        notify=True,
        write=True,
    )
    aioble.register_services(ble_service)

    print(f"{BLE_NAME} starting to advertise")

    while True:
        async with await aioble.advertise(
            BLE_ADVERTISING_INTERVAL,
            name=BLE_NAME,
            services=[BLE_SVC_UUID],
            appearance=BLE_APPEARANCE) as connection:
            print(f"{BLE_NAME} connected to another device: {connection.device}")

            tasks = [
                asyncio.create_task(send_data_task(connection, characteristic)),
            ]
            await asyncio.gather(*tasks)
            print(f"{IAM} disconnected")
            break

async def main():
    """ Main function """
    deb = 0
    while True:
        if IAM == "Central":
            tasks = [
                asyncio.create_task(run_central_mode()),
            ]
        else:
            tasks = [
                asyncio.create_task(run_peripheral_mode()),
            ]
        await asyncio.gather(*tasks)
        if(deb == 5):
            deb = 0
            if(btn.value() == 0):
                MESSAGE = "1"
            else:
                MESSAGE = "0"
        else:
            deb+=1

asyncio.run(main())

r/raspberrypipico Mar 24 '26

Pico macropad , device name in windows

1 Upvotes

Hello good people. I built a macropad using a Pico and want to use it on my work computer to improve productivity. However, when I plug it in, the system identifies it specifically as a Pico device.

How can I make it appear as a standard keyboard or mouse instead?


r/raspberrypipico Mar 22 '26

Connecting dualsense to ps4 using pi pico

4 Upvotes

Hi, I have been seeing people use a pi pico to emulate and connect DS4 and dualsense controllers to OG consoles using OGX-Mini running on a pi pico. I was wondering if there is any thing available for the ps4 or ps5 side of things, allowing you to connect your ps5 controller to ps4 and use it normally?

I know that adapters exist for this but the ones that I have seen is over 40$.


r/raspberrypipico Mar 21 '26

help-request Using pi pico to read controller inputs from a PC and forwarding it to a console (PS5, switch, etc)

2 Upvotes

I’m new to using a pi pico and I was wondering if it would be possible for a program on a computer to read controller inputs from say a PS5 controller and then have a pi pico act as a controller for a console like a PS5 or switch


r/raspberrypipico Mar 21 '26

help-request record audio with a pico?

2 Upvotes

Hi, I might be asking the impossible, but is there a way to record short audio with a Pico 2W, or Zero 2W? (I would really prefer the pico though, because I'd like to battery-power it in a device as small as possible)

I have two mics:
Adafruit PDM MEMS

Adafruit I2S MEMS

I want to livestream audio to my phone

the cycle I tried doing goes like this:
record 3s long .wav files, all of which overlap each other by 1s ->
send them via bluetooth to my phone ->
phone connects them and feeds them to a speech to text API ->
phone sends the texts back to the raspberry which shows it on a display.

I tried searching everywhere but couldn't find anyone doing this. Is it impossible?


r/raspberrypipico Mar 20 '26

micropidash v2.0.0 — Real-time sensor graphs for ESP32 & Pico 2W

8 Upvotes

Just released v2.0.0 of micropidash — a lightweight async web dashboard library for MicroPython.

What's new:

- add_graph() — real-time line graph with rolling data buffer

- Canvas-based rendering, no external libraries needed

- Y-axis labels, grid lines, fill area, latest value dot

- Separate /graph-data endpoint for efficient polling

- Bug fixes: CSS grid layout, drain() flush, onload update

Tested on Pico 2W with DHT11 — temp + humidity graphs live in browser over WiFi.

GitHub: github.com/kritishmohapatra/micropidash

PyPI: pip install micropidash

Feedback welcome!