Close
0%
0%

FXcursion

An STM32-based guitar processor

aleAle
Similar projects worth following
FXcursion is an open source, open hardware versatile audio multi-tool designed for tabletop, floor, and backpack use. It provides recording, looping, effects processing, and mixing capabilities for up to 6 mono or 3 stereo inputs in a compact “guitar pedal” form factor.

We're Roman, Dima and Alex, and we're making FXcursion – a versatile, compact audio multi-tool in a guitar pedal form factor. This project was born from our love for electronic music and hardware design.

Originally, we had plans to make an electronic synthesizer, but it was a bit over our heads, so we decided to release something simpler first. This is a scaled-down version of our initial vision – an effects pedal with a simple user interface, basic audio input/output, and some processing in between.

FXcursion can perform basic tasks across various usage scenarios, and eliminate the need for separate mixer, FX pedal, looper, and recorder or USB-Audio interface, which together occupy a lot of space, require mains power or just need a lot of cables and connections if used at the same time. It still is interoperable with any other hardware components, so you can combine it with whatever hardware you have and use FXcursion for the rest of the tasks.

Ultimately though, we want FXcursion to be not just a single product, but a versatile hardware audio platform that can be freely utilized for learning and experimentation by both us and the wider community. In the meantime, we hope to make something you will love and that will help you discover better sounds and be a better musician overall. Follow us on our journey :-)

  • We have been sponsored by PCBWay!

    RATelectro11/29/2023 at 17:39 0 comments

    We didn't expect this, but our humble GitHub was discovered by PCBWay, and they kindly offered to sponsor several boards for our project. Since we already had some sketch of our pedal enclosure in 3D, we took all our previous schematics and developments with the stacking layout and, within a few weeks, designed new boards for this enclosure. It was a fast-paced effort, but it served as a good stress test for our team, inspiring us to pay more attention to our publications and the project as a whole.

    Read more »

  • October Update

    RATelectro11/20/2023 at 19:17 0 comments

    As Predtech4 shares, he finally managed to get the SD card to work on our prototype. As a result, almost all important parts of our first prototype have been tested: we now have a fully functional audio system, established interaction between UI and Audio microcontrollers, display output is functioning, and our GUI, created with TouchGFX, works seamlessly. From the shortcomings, RATelectro made a poorly performing power supply unit that overheats and needs to be revised. Additionally, we haven't yet finalized the battery scheme and charging.

    Read more »

  • September Update

    RATelectro11/20/2023 at 18:15 0 comments

    Lately, I've been working on the proto board of a cs42448 codec, which would allow us to have 6 audio inputs and 8 audio outputs. It's a very convenient and cool chip, but as I understand, it has been discontinued, although it can still be purchased in some places.

    I designed a board for our stacking prototype and wrote a basic code to configure it through I2C. I set up the SAI in TDM mode for STM32, but so far, I haven't been able to hear any sound.

    Here we go again, red wire and traceless SMD soldering

    I feel that it might be worth exploring other more popular solutions, even if they involve a more complex connection to STM32 (something like three SAI simultaneously (or 2 SAI + 2 I2S channels), but that would only give us 6 channels on output, and we would like 8 channels to have a separate stereo channel for headphones). As I mentioned earlier, most likely, for headphones, I'll use a simple stereo SPI DAC, possibly with a built-in amplifier.

  • Previous Stacking Prototype

    RATelectro11/20/2023 at 18:15 0 comments

    Given our past experiences creating various layouts and prototypes for audio devices, we've developed a keen awareness of our bug-prone areas in hardware (primarily my responsibility, hehe). Consequently, we've decided to adopt a segmented approach, creating a "sandwich" structure. This allows us to troubleshoot efficiently – in case of failure, we only need to redesign the specific board where the issue was identified.

    Moreover, this strategy optimizes vertical space utilization, a critical consideration for compact devices like our pedal. Making these boards segmented also accelerates development a bit, providing more routing space and reducing the required number of layers, accommodating a greater number of components.

    Initially, we divided our device into even more boards, assigning each board to a specific function. Stacked circular headers facilitated the connection of this array of boards:

    On this old prototype, we tested the functionality of most essential circuits that will be integrated into our later designs. We also placed it into some sort of case to carry it around.

    So now we are ready to sketch out the first design of a more pedal-like case, and more practical PCB layout that would fit into.

  • Technical details

    RATelectro11/20/2023 at 18:14 0 comments

    Hardware diagram
    Hardware diagram

    During our experiments, we found it more convenient to split our computing hardware into two parts. The first part, which we call UI, handles everything that interacts with the user – processing button presses, knob turns, LED indicators, and displaying information on the screen.

    Since this microcontroller (MCU) is connected to the display, we decided that it would run the entire pedal operating system – all menus, user interaction with audio parameters, the file manager with the SD card, and everything related to power on/off.

    The second MCU, which we refer to as AUDIO, focuses solely on audio processing and is connected to the UI via UART for command exchange and via SPI for audio data exchange (for example, to retrieve an audio sample from the file system on a memory card or vice versa, to write it there).

    Firstly, this approach significantly boosts performance, as audio and user interface processing are well-separated and differ greatly in speed. Secondly, even if we decide to radically change one part, the other can remain the same. For example, we could swap audio MCU with DSP, which would be transparent to UI MCU since we are leaving the UART+SPI protocol the same.

    For the MCU, we decided to go with what is most familiar to us and has maximum functionality, and what is available for purchase – for us, it's the STM32H743ZIT. It comes with a DRAM controller, a large amount of built-in FLASH memory to simplify development, and an FMC interface for connecting most displays. We also opted to use the same MCU model for both processors to simplify development.

    As for the audio frontend, we chose the popular WM8731 audio codec and connected two pieces to get 4 inputs and 4 outputs (or 2 stereo inputs and 2 stereo outputs). This codec is easy to work with, and we have already used it in previous projects, making it a safe and reliable option for us. However, to achieve 6 inputs and 6 outputs, plus a stereo headphone output, we will explore more suitable alternatives in the future. Or maybe we simply add the third WM8731 and some simple SPI / I2S stereo DAC for separate headphone output.

  • FXcursion - Portable Looping & Effects Pedal

    RATelectro10/31/2023 at 17:49 0 comments

    Hi Hackaday! We're Roman, Dima and Alex, and we're making FXcursion – a versatile, compact audio multi-tool in a guitar pedal form factor. This project was born from our love for electronic music and hardware design.

    Originally, we had plans to make an electronic synthesizer, but it was a bit over our heads, so we decided to release something simpler first. This is a scaled-down version of our initial vision – an effects pedal with a simple user interface, basic audio input/output, and some processing in between.

    FXcursion can perform basic tasks across various usage scenarios, and eliminate the need for separate mixer, FX pedal, looper, and recorder or USB-Audio interface, which together occupy a lot of space, require mains power or just need a lot of cables and connections if used at the same time. It still is interoperable with any other hardware components, so you can combine it with whatever hardware you have and use FXcursion for the rest of the tasks.

    Ultimately though, we want FXcursion to be not just a single product, but a versatile hardware audio platform that can be freely utilized for learning and experimentation by both us and the wider community. In the meantime, we hope to make something you will love and that will help you discover better sounds and be a better musician overall. Follow us on our journey :-)

View all 6 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates