Skip to main content
Version: ACS CC

CrateDigger

Dig. Chop. Loop. Repeat.

info

Author: Popa Nicolae
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-nicupopa

Description

CrateDigger is a portable sampler built around a Raspberry Pi Pico 2 and programmed using the Embassy framework in Rust. The device allows users to sample audio, playback predefined samples, and perform beat-making using a 16-step sequencer. It features a user interface with tactile buttons, a TFT screen with animations, and high-quality audio output via DAC and an integrated speaker. Ideal for music producers looking for a portable sampler/sequencer.

Motivation

I have always been passionate about music and beat-making equipment. When the opportunity to pick this project came up, I knew it was the perfect opportunity to blend the two things I'm passionate about. My goal is to create a compact, DIY sampler and sequencer that allows musicians and hobbyists to experiment with sounds, create beats, and take their creativity anywhere.
This project is not only a technical challenge but also a personal mission to create a fun tool that I might use in the future.

Architecture

Diagram

Raspberry Pi Pico 2

Role: Central microcontroller, manages audio processing, input/output control, and overall device logic.

Connections:
Display, Micro SD Card Module, DAC, Buttons, and Output components.


Display (ST7735R)

Interface: SPI
Connections:

  • SDA (Data Line) connected to Raspberry Pi Pico 2 SPI pins
  • SCL (Clock Line) connected to Raspberry Pi Pico 2 SPI pins

Role: Displays user interface, sequencing steps and device status.


Buttons

Interface: GPIO Connections:

  • Connected to GPIO pins for controls (playback, recording, navigation, sequencing)

Role: Allows user input for sampling, playback, sequence control, and settings.


Micro SD Card Module

Interface: SPI
Connections:

  • SCK (Serial Clock) connected to Pico SPI pin
  • MOSI (Master Out Slave In) connected to Pico SPI pin
  • MISO (Master In Slave Out) connected to Pico SPI pin
  • CS (Chip Select) connected to Pico GPIO pin

Role: Stores audio samples, sequences, presets, and configuration data.


DAC (MAX98357A)

Interface: I2S
Connections:

  • Connected via I2S interface pins on the Raspberry Pi Pico 2

Role: Converts digital audio signals to high-quality analog audio for speaker output.


Output (Speaker)

Role: Outputs audio signal from the DAC to provide sound playback.


Log

  • Week 5 - 11 May:
    WIP...
  • Week 12 - 18 May:
    WIP...
  • Week 19 - 25 May:
    WIP...

Hardware

  • Raspberry Pi Pico 2 (RP2350): Main microcontroller handling audio processing and system logic.
  • I2S DAC – MAX98357A: Converts digital audio signals to analog for high-quality speaker output.
  • ST7735R display: Colored screen for animations.
  • Speaker: Outputs audio playback.
  • Two potentiometers: For adjustable controls (volume/effects).
  • Buttons: Input for interraction with the device.

Schematics

Schematic

Bill of Materials

DeviceUsagePrice
2x Raspberry Pi Pico 2 WThe microcontroller80 RON
ST7735R DisplayOLED visual interface29 RON
MAX98357 I2S DACAudio output module24 RON
4 Ohm SpeakerSound playback40 RON
Consumables (buttons, potentiometers, wires, etc.)Various components50 RON

Software

LibraryDescriptionUsage
embassyAsynchronous embedded framework for RustCore framework for running async tasks on the Raspberry Pi Pico 2
embassy-rpEmbassy HAL for RP2040Hardware abstraction layer for the Raspberry Pi Pico 2
embedded-halHardware Abstraction Layer (HAL) traitsProvides unified interfaces for hardware drivers
embedded-graphics2D graphics libraryUsed for drawing to the ST7735R display
st7735-lcdRust driver for ST7735 displayControls the ST7735R display