diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..aacfe9a --- /dev/null +++ b/readme.md @@ -0,0 +1,77 @@ +# XAir Nano + +A compact hardware controller for Behringer XAir digital mixers, featuring an LED bar display and rotary encoder for real-time control of mixer parameters and guitar amp effects. + + ![image](https://git.nielsgeens.be/projects/xair_nano/raw/branch/master/image.jpg) + +## Features + +- **WiFi Connectivity** - Wireless OSC communication with XAir mixers +- **LED Bar Display** - 10-LED visual feedback for levels and meters +- **Rotary Encoder** - Navigate menus and adjust parameters +- **Guitar Effects Control** - Direct control of amp simulator parameters: + - Preamp, Buzz, Punch, Crunch, Drive, Level + - Low/High EQ controls + - Insert and Cabinet switching +- **Dual Display Modes** - Switch between level adjustment and meter viewing +- **Real-time Metering** - Visual level meters with color-coded zones (green/yellow/red) + +## Hardware + +The controller is built around a SAMD21 microcontroller and includes: +- 10 individually addressable RGB LEDs (WS2811) +- Rotary encoder with push button +- 8 analog potentiometers for effects parameters +- 2 digital switches (Insert/Cabinet) +- Compact enclosure with clear top panel + +## Mixer Compatibility + +Designed for Behringer XAir series mixers: +- Controls Channel 1 gain, fader, and master levels +- Integrates with FX slot 1 (amp simulator) +- Real-time meter feedback from pre/post fader signals + +## User Interface + +### LED Indicators +- **Connecting**: Blue spinner animation +- **Connected**: Color-coded status LED indicates current mode: + - Red: Gain control + - Green: Fader control + - Blue: Master control + - Cyan/Magenta/Yellow: Level adjustment modes + +### Controls +- **Encoder Rotation**: + - In meter mode: Navigate between Gain/Fader/Master + - In level mode: Adjust selected parameter +- **Encoder Press**: Toggle between meter view and level adjustment +- **Knobs**: Continuously send amp effect parameters to mixer + +## Configuration + +Edit `network.h` to configure your setup: + +```cpp +#define WIFI_SSID "your_network_name" +#define WIFI_PASS "your_password" +#define XAIR_IP "192.168.0.4" // Your mixer's IP address +``` + +## Building + +This project uses FreeRTOS on SAMD21 and requires: +- Arduino IDE with SAMD21 board support +- FreeRTOS_SAMD21 library +- WiFi library for SAMD21 +- OSC library for Arduino +- NeoPixelBus library +- Versatile_RotaryEncoder library + +## Technical Details + +- **Real-time OSC Communication** - Bidirectional parameter control and metering +- **Multi-tasking Architecture** - FreeRTOS tasks handle input reading, network communication, and LED updates +- **Smooth Parameter Updates** - Low-pass filtering on analog inputs for stable control +- **Connection Management** - Automatic WiFi reconnection with visual feedback \ No newline at end of file