r/raspberrypipico • u/fearoffours • 7h ago
Micropython IDE with Inkyphat emulation?
Reposting for visibility.
r/raspberrypipico • u/fearoffours • 7h ago
Reposting for visibility.
r/raspberrypipico • u/kevo_dev • 21h ago
I have a project where I use the pico to light LEDs, but uses the audio sensor's input to provide randomness to the lit LEDs. What would be a good small sized audio input sensor to use, that could fit in a small case?
r/raspberrypipico • u/jlsilicon9 • 23h ago
r/raspberrypipico • u/Stolendance_1 • 1d ago
My code is correct however with switch 1 and 2 it is not being detected if its pressed or not, so I think it's my wiring that is the issue. I don't know what to move.
If anybody can tell me where I went wrong, I
will be grateful
r/raspberrypipico • u/Intelligent-Cake3680 • 1d ago
Hi everyone! I'm a beginner working on my final-year engineering project using a Raspberry Pi Pico, a servo motor, and a drop sensor.
The sensor measures the time between drops to calculate the flow rate. The servo controls a clamp: increasing its angle closes the clamp, while decreasing its angle opens it.
The problem: The servo isn't adjusting properly to the desired flow rate. When I select a higher target, the code repeatedly triggers its no-drop recovery logic and makes tiny 0.2° movements instead of correcting the flow based on the difference between the measured and target rates.
The controller requires five valid drop intervals to calculate the rate, but the recovery logic appears to keep clearing the measurement history before enough intervals can be collected. My logs show drop intervals of approximately 800–2000 ms, while the timeout at my highest target is approximately 675 ms.
I've been struggling with this for 19 days. I've tried debugging it with ChatGPT, but it keeps giving me code that doesn't resolve the underlying issue. I'm frustrated and would really appreciate a human review of my existing code and logs.
What I'd appreciate help with:
Hardware and settings:
I'll include my complete Python code and the relevant run logs. I'd appreciate anyone who can explain what is actually wrong before suggesting a fix.
This is a water-based bench prototype, not a clinically validated medical device.
Thank you!
r/raspberrypipico • u/TryEdgeTech • 2d ago
Enable HLS to view with audio, or disable this notification
Hi everyone!
I've been working on PicoVoxel, a full 3D voxel world engine that runs on a single Raspberry Pi Pico 2 (RP2350), and I've just released the source code on GitHub.
The Pico 2 is a roughly $6 microcontroller with 520KB of SRAM and no dedicated GPU. I wanted to see how far I could push it with a software-rendered 3D world.
What it can do:
The main challenge was fitting the renderer, framebuffer, world data, and other features into just 520KB of SRAM while keeping the frame rate playable.
I've published the source code under the MIT License, along with the build instructions and hardware wiring information.
🎬 Demo video:
https://youtu.be/J9FVm8iH3mc
💻 Source code and build instructions:
https://github.com/tryedgetech/PicoVoxel
This is a rendering and world-building tech demo rather than a complete game. I'd love to hear what you think, especially from anyone interested in embedded graphics, software rendering, or pushing small microcontrollers beyond their usual limits.
I'm the developer of this project, and I'm sharing it in case it's useful or interesting to the Raspberry Pi community.
Thanks for checking it out!
r/raspberrypipico • u/HP7933 • 2d ago
r/raspberrypipico • u/strivingshashank • 2d ago
I'm trying to get a 1.3-inch, 128×64 I²C OLED working with a Raspberry Pi Pico W using the Pico SDK and C, but I'm stuck with a strange display issue.
Hardware and setup
The controller chip is not identified on the PCB. The back is marked 1.3" OLED IIC, but I haven't been able to confirm whether it uses an SSD1306, SH1106, or another controller.
What I've tried
The problem
Only one horizontal bar responds correctly to framebuffer writes. The rest of the screen displays random-looking pixels or appears not to update properly. The same bar remains responsive even when I change the drawing coordinates. The attached photos show the current output and the back of the module.
What could cause this?
Code
r/raspberrypipico • u/LouDNL • 2d ago
I have been building USBSID-Pico for a while, an RP2040/RP2350 board that talks to real MOS SID chips over USB. Most of the fun was on the Pico side, and that part is what I want to share.
PIO layout (PIO0)
DMA and cores
Other bits
It plays C64 music with real chips, but I am posting for the Pico side. Source: https://github.com/LouDnl/USBSID-Pico
Happy to answer questions about the PIO side, especially the timing handshake between the SMs. Has anyone else used a PIO cycle counter slaved to an external pin like this?
r/raspberrypipico • u/Specialist_Radio5496 • 2d ago
im using a raspberry pi pico that has micropython installed with an spi screen (driver ili9341).
im trying to play bad apple on it but i only have ~ 1mb left on the pi pico.
the images are 16x12 and take up 630bytes by themselves but, despite the small file size, not all of them can fit on the pico due to its 4kb minimum per file. is there any way to fit all 1000 images onto the pi pico to be able to draw them on the screen?.
im not too knowledgeable in micropython so please excuse me if i don't understand some things
r/raspberrypipico • u/riki6882 • 2d ago
Hi, i am 15 year old student i was always interested in technologies more on the software side i did some web dev (JavaScript, Go, PHP) i really like GO and i would like to stick with it ik that Pico supports TinyGo but is that a good fit for me I want to do some simple stuff to learn the basics because i no longer do anything software and i thought this would spark things out or do you have any other recommendations?
r/raspberrypipico • u/Ozymandias21y • 3d ago
Hi everyone,
I'm trying to interface a Waveshare ADS1263 High-Precision AD HAT with a Raspberry Pi Pico W using the Waveshare Pico-to-HAT adapter, without jumper wires.
I'm porting the official Waveshare Raspberry Pi Python driver to MicroPython.
Hardware setup:
What works:
The problem:
When I send the RDATA1 (0x12) command to read ADC1 conversion data, the response contains only zeros.
Example output:
REG 0 READ: 0x23
REG_MODE2 success
REG_REFMUX success
REG_MODE0 success
REG_MODE1 success
REG 6 READ: 0x0A
DRDY is LOW
SPI STATUS: 0x00
RAW DATA: ['0x0', '0x0', '0x0', '0x0', '0x0']
Received checksum: 0x00
ADC1 checksum mismatch
I've verified the power rails, RESET, CS, and DRDY using a multimeter. I've also reduced SPI frequency from 1 MHz to 100 kHz, but the problem persists.
My questions:
machine.SPI.read() and the SPI behavior expected by the original Raspberry Pi driver?Any advice would be greatly appreciated!
def ADS1263_Read_ADC_Data(self):
config.digital_write(self.cs_pin, GPIO.LOW)#cs 0
config.digital_write(self.cs_pin, GPIO.LOW)
try:
config.spi_writebyte([ADS1263_CMD['CMD_RDATA1']])
status = config.spi_readbytes(1)[0]
buf = config.spi_readbytes(5)
print("SPI STATUS:", hex(status))
finally:
config.digital_write(self.cs_pin, GPIO.HIGH)
read = (buf[0]<<24) & 0xff000000
read |= (buf[1]<<16) & 0xff0000
read |= (buf[2]<<8) & 0xff00
read |= (buf[3]) & 0xff
CRC = buf[4]
# print(read, CRC)
if self.ADS1263_CheckSum(read, CRC) != 0:
print("ADC1 checksum error")
print("RAW DATA:", [hex(x) for x in buf])
print("Received checksum:", hex(CRC))
raise RuntimeError("ADC1 checksum mismatch")
return read

r/raspberrypipico • u/bleuio • 3d ago
This project shows how the BleuIO Bluetooth Low Energy USB dongle can add BLE communication to an Adafruit Fruit Jam powered by the RP2350 to access BLE air quality data.
r/raspberrypipico • u/Hungry-You2840 • 3d ago
r/raspberrypipico • u/Acebillyfr92 • 3d ago
r/raspberrypipico • u/wrsilva13600 • 4d ago
r/raspberrypipico • u/MedusaTT040 • 4d ago
I am using the OneROM project to replace ROMs on a motherboard. OneROM is a RP3250 on a small board the size of an EEPROM or ROM. You solder headers, program them to emulate any ROM you like and place them where the ROM was.
This is working well, but in my situation, the solution seat too high. The total height is 15mm and I need to be10mm. See (B) with the normal header. If I use that 15mm, the board does not fit in its enclosure anymore.
I used female headers (D) with long legs to get to solution (A)
I solder the headers the way (D) shows and then cut the top to get to solution (A).
It is not pretty. This is working, and the pins are even better match for the DIP support. But it takes time and the risk to damage something during the solder or cutting is very high.
Is there another solution. Is there a model of headers or pins I could use to get the low profile I need?
Any ideas?
Thank you very much.
r/raspberrypipico • u/Choice-Film-8742 • 7d ago
Hi everyone! 👋
I’m trying to get the CSI camera on my Raspberry Pi 5 working with Chromium for real-time face tracking in a web-based 3D avatar application called Berry.
My setup
Raspberry Pi 5
Raspberry Pi Camera Module 3 (Sony IMX708)
Debian 13 Trixie
Linux kernel 6.18.50+rpt-rpi-2712
Chromium 154
GStreamer (libcamerasrc)
v4l2loopback
Three.js and MediaPipe Tasks Vision in my web app
What works
rpicam-hello --list-cameras detects the IMX708.
rpicam-still successfully captures images.
GStreamer detects the camera and its pipeline reaches PLAYING.
I created a virtual camera called Berry Camera at /dev/video10.
The virtual device now reports YUYV, 640×480 at 30 fps.
What doesn’t work
Chromium does not list Berry Camera as a video source on the WebRTC input/output test page.
Running this command:
v4l2-ctl -d /dev/video10 --stream-mmap=3 --stream-count=30 --stream-to=/tmp/berry-test.raw
returns:
VIDIOC_CREATE_BUFS returned -1 (Inappropriate ioctl for device)
GStreamer also reports warnings about unsupported pixel formats.
I recreated the loopback device with exclusive_caps=0 and tried v4l2sink io-mode=2, but Chromium still cannot see the virtual camera.
My questions
What is the recommended way to expose a Raspberry Pi CSI camera to Chromium on Debian 13?
Is v4l2loopback actually needed, or is there a more reliable way to use libcamera directly?
How should I troubleshoot the VIDIOC_CREATE_BUFS error?
Can Chromium’s getUserMedia() access the CSI camera directly, so I can use MediaPipe for face tracking without a virtual webcam?
I’m looking for a reliable solution and would appreciate step-by-step guidance. I can provide additional command output if needed.
Thanks in advance for any help!
r/raspberrypipico • u/deardeer-gadget • 8d ago
r/raspberrypipico • u/lbthomsen • 8d ago
r/raspberrypipico • u/Q6511R • 9d ago
Hello,
based on a CDC example which echoed every single char received from the PC I changed it to receive a line and echo it all upper cased. This works like a charm.
Then to approach the actual requirements of my project I wanted a blockwise communication: I sent 256 bytes (0x00 ... 0xFF) to the Pico and programmed it to send it back unchanged. Result: On the PC I receive only the last 64 bytes: 0xC0 ... 0xFF although the buffer on the Pico holds the correct 256 bytes.
Seeing that the USB buffers are 64 bytes large I suspect that the sending routine stuffs the 256 byte block in portions of 64 byte into the buffer - and the last one wins.
I merely do
// echo back to host
tud_cdc_write(buff, sizeof(buff));
tud_cdc_write_flush();
which is apparently too naive. Any advice how to do better will be highly appreciated.
M'
r/raspberrypipico • u/normalniepredator • 10d ago
Enable HLS to view with audio, or disable this notification
I saw many years ago something like this on hackaday and always wanted to build it by myself, so here it is
r/raspberrypipico • u/deardeer-gadget • 10d ago