Skip to content

Repository files navigation

🛠️ Software OSCAR_P01A01

Welcome to the Software_OSCAR_P01A01 repository, which implements the complete software stack for the OSCAR_P01A01 effects pedal.
👉 https://github.com/DADDesign-Projects/OSCAR_P01A01

This project is part of the DADDesign-Projects ecosystem, built on the FORGE framework and supported by dedicated utilities such as the QSPI Flasher Client and the TrueType-to-Bitmap converter.

📚 Overview

By relying on the FORGE framework, the software handles all low-level hardware configuration and management required by the OSCAR pedal:
Clocks, GPIO, SDRAM, QSPI Flash, Audio CODEC, display, switches, encoder, USB, MIDI, and more.

The project is built using STM32CubeIDE from STMicroelectronics:
👉 https://www.st.com/en/development-tools/stm32cubeide.html

🚀 Getting Started

  1. Clone the repository
git clone --recurse-submodules https://github.com/DADDesign-Projects/Software_OSCAR_P01A01

Load the files from the Resource directory into the external flash drive. Use the QSPI Flasher utility: https://github.com/DADDesign-Projects/OSCAR_P01_FlasherLoader

  1. Open in STM32CubeIDE Start STM32CubeIDE
    Import → Existing Projects into Workspace → Select the cloned folder

  2. Build & Debug

  • Use an ST-LINK or compatible debug probe
  • Or flash via USB DFU: hold BOOT + RESET, release RESET then BOOT → pedal enters DFU mode

⚙️ Project Structure

Modifications applied to CubeMX-generated files are marked with the DAD comment.

Core/

Core application code, almost entirely generated by CubeMX.
Includes a redirection hook to HardwareAndCo after base hardware initialization.

DAD_FORGE/

the OSCAR software stack is built upon the DAD_FORGE framework (Framework for Open and Resourceful Guitar Effects):
👉 https://github.com/DADDesign-Projects/DAD_FORGE

FORGE provides all the abstraction layers, modules, and real‑time audio structures needed for embedded digital audio systems.

Documentation and tutorials for framfork FORGE available here: (https://daddesign-projects.github.io/OSCAR_Documentation/)

Drivers/

CubeMX‑generated hardware drivers.
➡️ No modifications done here.

OSCAR_BSP/

All hardware-specific configuration and FORGE module instantiation required for OSCAR_P01A01.

Middlewares/

ST USB middleware: DFU, MIDI, CDC, and USB Device stack handling.

USB_DEVICE/

USB Device-specific code, including a custom callback in usbd_cdc_if.c for USB data reception.

🛠️ CubeMX Configuration

  • Software_OSCAR_P01A01.ioc
    Main CubeMX file: clocks, peripherals, pins, middlewares, hardware configuration.
  • To adapt CubeMX output for a main.cpp C++ project:
  • c2cpp.bat → Renames main.cmain.cpp
  • cpp2c.bat → Renames main.cppmain.c

Linker Files

  • STM32H743IITX_FLASH.ld Memory layout when running from internal Flash (Release mode)

  • STM32H743IITX_RAM.ld Memory layout when running from RAM (Debug mode)

Ressources/

Project visual assets: bitmaps, fonts, images for the display. Ressources files must be written to the external QSPI Flash memory using the flasher utility: (https://github.com/DADDesign-Projects/OSCAR_P01_FlasherLoader)

📄 License

This project is licensed under the Apache 2.0 License (https://opensource.org/licenses/Apache-2.0).

🔗 Related Projects

📬 Contact

Feel free to contact me for any questions, feedback, improvement suggestions, or collaboration proposals related to the FORGE framework or the OSCAR hardware platform. I am always open to discussion and community contributions (daddesign.projects@gmail.com).

Enjoy developing for OSCAR_P01A01! 🚀

About

Software framework for the OSCAR_P01A01 platform. Developed with STM32CubeIDE, designed for creating guitar effect or clavier effect stompboxes

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages