r/raspberrypipico • • 16h ago

help-request Can i fit 1000 images on raspberry pi pico?

1 Upvotes

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 • • 18h ago

Is Raspberry Pico 2 W good fit for begginers

11 Upvotes

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 • • 23h ago

[Troubleshooting] ADS1263 SPI communication issue with Pico W (MicroPython) — Register reads work, but ADC data returns all zeros

1 Upvotes

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:

  • Raspberry Pi Pico W
  • Waveshare ADS1263 High-Precision AD HAT
  • Waveshare Pico-to-HAT adapter
  • SPI1: SCK=GP10, MOSI=GP11, MISO=GP12
  • RESET=GP18, CS=GP22, DRDY=GP17
  • SPI mode: CPOL=0, CPHA=1
  • SPI frequency: 100 kHz

What works:

  • Power supply and RESET appear normal.
  • CS can be controlled between HIGH and LOW.
  • DRDY transitions from HIGH to LOW after starting ADC conversion.
  • Chip ID reads successfully.
  • Several configuration registers can be read back correctly.

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:

  1. Is there a difference between MicroPython's machine.SPI.read() and the SPI behavior expected by the original Raspberry Pi driver?
  2. Could the ADS1263 require a specific SPI transaction sequence, CS behavior, or dummy clocks that I'm missing

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 • • 36m ago

help-request 1.3" I²C OLED only displays a horizontal bar correctly; the rest shows random pixels (Pico W, C)

Thumbnail
gallery
• Upvotes

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

  • Raspberry Pi Pico W
  • 1.3-inch, 128×64 monochrome OLED
  • Four pins: GND, VCC, SCL, SDA
  • I²C address: 0x3C
  • I²C0, SDA @ GPIO 4 and SCL @ GPIO 5
  • SSD1306 driver library (this is a try, see ahead)

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

  • An I²C scanner detects the device at 0x3C.
  • Tried clearing the frame-buffer, drawing shapes, and sending the frame-buffer using ssd1306_show().
  • Tested a full-screen filled rectangle and page-by-page horizontal bands.
  • Confirmed that the framebuffer I²C write returns all 1025 bytes (one control byte plus 1024 bytes of pixel data).
  • Tested contrast commands. Changing the contrast affects the whole display.

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?

  • Is this symptom consistent with using an SSD1306 driver on an SH1106 or another controller?
  • Is there a reliable way to identify the controller from the module or its markings?
  • Could this instead indicate a defective OLED panel or controller?
  • Is there a specific test or command sequence I should try before replacing the module?

Code

https://github.com/strivingshashank/figuring-pico


r/raspberrypipico • • 23h ago

Running a BLE Air Quality Scanner on Adafruit Fruit Jam with BleuIO

Thumbnail bleuio.com
2 Upvotes

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.