Welcome to the hexaTuneApp project! This guide will help you set up your development environment, build the project components, and get started with contributing or using hexaTuneApp.
Before you begin, ensure you have the following installed:
- Git: For version control
- Node.js and pnpm: For managing development tools
- Rust: For firmware development (install via rustup)
- KiCad: For PCB design (optional, for hardware development)
- FreeCAD: For mechanical design (optional, for enclosure design)
- picotool: For flashing firmware to Raspberry Pi Pico
-
Clone the repository:
git clone https://github.com/hTuneSys/hexaTuneApp.git cd hexaTuneApp -
Install dependencies:
pnpm install
-
Set up pre-commit hooks:
pnpm prepare
The firmware is written in Rust for the RP2040 microcontroller.
-
Navigate to firmware directory:
cd firmware -
Install Rust targets (if not already installed):
rustup target add thumbv6m-none-eabi
-
Connect your hexaTuneApp device via USB and put it in BOOTSEL mode (hold BOOTSEL button while plugging in).
-
Flash and test the firmware:
cargo run
This will build the firmware and flash it to the connected device.
-
Monitor output (optional): Use a tool like
minicomor the embedded debugger to view serial output.
PCB designs are created with KiCad.
-
Open KiCad and load the project:
- Navigate to
hardware/hexaTuneApp-v1/ - Open
hexaTuneApp-v1.kicad_pro
- Navigate to
-
View schematics:
- Open
hexaTuneApp-v1.kicad_sch
- Open
-
View PCB layout:
- Open
hexaTuneApp-v1.kicad_pcb
- Open
-
Generate fabrication files:
- Use KiCad's Plot and Drill tools to export Gerber files
- Fabrication outputs are pre-generated in
fabrication_output/
Enclosure designs are created with FreeCAD.
-
Open FreeCAD and load the design files:
mechanic/Bottom.FCStd- Bottom casemechanic/PcbBoard.FCStd- PCB mounting
-
Export for manufacturing:
- Use FreeCAD's export tools for STL (3D printing) or DXF (laser cutting)
-
Firmware: After flashing, the device should blink its status LED and be detectable as a USB MIDI device.
-
AT Commands: Use a MIDI tool to send SysEx messages with AT commands (see ARCHITECTURE for details).
-
Hardware: Verify PCB connections and component placement.
For more detailed information, explore the documentation files:
- ARCHITECTURE - System design and AT command protocol
- DEVELOPMENT_GUIDE - Detailed development setup
- PROJECT_STRUCTURE - Repository organization
- CONTRIBUTING - How to contribute
- FAQ - Common questions
- Check ARCHITECTURE to understand system design
- Review CONTRIBUTING to contribute effectively
You're now ready to explore and build with hexaTuneApp. Happy hacking!