Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Store configuration in EEPROM and implement a sysx interface to edit it #71

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
71ac67b
set Version number in a constant
garubi Feb 6, 2020
6b5b4e9
adds 24LC64 eeprom
garubi Feb 15, 2020
f8a27ff
Activate eeprom and store the selected preset_id in it ( #5 )
garubi Feb 17, 2020
5d1df9a
remove the changePreset function and compact the code
garubi Feb 17, 2020
a2d1e24
Load current preset values from factory
garubi Feb 17, 2020
b7c8f6d
uses loaded preset's parameters values for controls
garubi Feb 17, 2020
f2b4f40
Add some notes on Factory Restore
garubi Feb 18, 2020
3784ac1
Intercept buttons on bot to enter the "reset factory" mode
garubi Feb 19, 2020
10a331e
marked Version with the branch name
garubi Mar 1, 2020
6e313f8
Copy fatory presets from ROM to EEPROM and load them from EEPROM on p…
garubi Mar 1, 2020
730c201
Merge the new eeprom management
garubi Mar 3, 2020
a603090
Merge branch '24C64-design' into sysex-config
garubi Mar 3, 2020
1887353
Update .gitgnore to ignore some KiCAD files
garubi Mar 5, 2020
1afa4f0
Implement a rought sysex config protocol
garubi Mar 5, 2020
dbd1566
Merge branch 'sysex-config' of https://github.com/garubi/MIDI-Drawbar…
garubi Mar 5, 2020
60e2793
try to update version
garubi Mar 5, 2020
8632717
Fix some errors: now it sends the sysex requested
garubi Mar 6, 2020
6e9f6b9
Implement replay to X_REQ_CTRL_PARAMS
garubi Mar 6, 2020
5b66e3e
Update the version number of the branch
garubi Mar 6, 2020
18d7997
Update the sys_ex implementation
garubi Mar 9, 2020
78a6de6
remove unused code
garubi Mar 11, 2020
58ef9ec
implement X_CMD_SAVE_PRESET
garubi Mar 11, 2020
9d01155
annotations
garubi Mar 13, 2020
2257ac7
typo
garubi Mar 13, 2020
8cfb5c7
Merge ver 1.3.6 into sysex-config
garubi Apr 22, 2020
c681b24
Fix wrong sendMidi after merge from master. updated working version
garubi Apr 22, 2020
47301a3
Draft SysEx implementation
garubi Apr 23, 2020
68d1702
remove unused SysEX command from inline documentation
garubi Apr 23, 2020
92d6216
Format the SysEx implementation's documentation
garubi Apr 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
*.hex
*.bak
*.csv
*.tsv
*.xml
fp-info-cache
59 changes: 57 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,62 @@
# MIDI Drawbars Commander

## Notes:
You should use a Normally Open pedal to switch from the Leslie's speed, otherwise the "switch impulse" is sent on pedal release instead of pedal push (see issue #24)
## Pedals:
### Expression pedal
Any "standard" expression pedal compatible with the Roland EV5 will do.

### Switch pedal (leslie speed)
You should use a Normally Open non latching (momentary) pedal to toggle the Leslie's speed, otherwise the "switch impulse" is sent on pedal release instead of pedal push (see issue #24)

## SysEX implementation
Since v. 2.0 the device has a full set of custom System Exclusive messages that you can use to can configure what kind of commands/codes every button and drawbar sends.

An editor is already available to configure the device. You can find it here: https://github.com/garubi/Web-editor-for-MIDI-Drawbars-Commander

**Format for the requests:**

`F0 X_MANID1 X_MANID2 X_PRODID X_REQ COOMAND vv F7`

**Format for the reply:**

`F0 X_MANID1 X_MANID2 X_PRODID X_REP OBJECT (Reply COdes) vv F7`

**Manufacturer ID and Product ID**

* `X_MANID1 = 0x37` // Manufacturer ID 1
* `X_MANID2 = 0x72` // Manufacturer ID 2
* `X_PRODID = 0x09` // Product ID

**Where ACTION is:**
* `X_REQ = 0x00` // Request
* `X_REP = 0x01` // Replay

**Where COMMAND is:**
* `X_FW_VER = 0x01`
// Firmware version. Replay vv is VERSION_MAJOR VERSION_MINOR VERSION_PATCH.
* `X_ACTIVE_PRESET = 0x02` // The active preset. Replay vv is (byte) Active preset id [0-3].
* `X_CTRL_INFO = 0x03` // Reply with info about the controls: 1) Number of presets slots (PRESETS_COUNT), 2) Buttons number (BTN_COUNT), 3) Drawbars number (DRWB_COUNT)
* `X_REQ_CTRL_PARAMS = 0x10` // Current settings for a control: PRESET_ID CTRL_ID. Reply vv is: PRESET_ID CTRL_ID UPP_Type UPP_Prm UPP_Min UPP_Max UPP_Ch UPP_behavior LOW_Type LOW_Prm LOW_Min LOW_Max LOW_Ch LOW_behavior ALT_Type ALT_Prm ALT_Min ALT_Max ALT_Ch ALT_behavior
* `X_SET_CTRL_PARAMS = 0x11` // Send the settings for a control (but doesn't save it): PRESET_ID CTRL_ID UPP_Type UPP_Prm UPP_Min UPP_Max UPP_Ch UPP_behavior LOW_Type LOW_Prm LOW_Min LOW_Max LOW_Ch LOW_behavior ALT_Type ALT_Prm ALT_Min ALT_Max ALT_Ch ALT_behavior. Reply vv is 0 if is all right, an Error code if something went wrog
* `X_SET_PARAM = 0x12` //Send a setting for a single parameter (but doesn't save it): PRESET_ID CTRL_ID PARAM_ID (0-18) param value;
* `X_CMD_SAVE_PRESET= 0x7F` // Save the Preset to the non volative memory: vv is PRESET_ID. Reply vv is 0 if all went ok, an error code if someting wen wrong

**REPLY CODES**
* `X_OK = 0x00`
* `X_ERROR = 0x7F` // Something went wrong. It will be followed by one of the following error codes

**ERROR CODES**
* `X_ERROR_UNKNOWN = 0x7F` //127
* `X_ERROR_PRESET = 0x10` //16
* `X_ERROR_CONTROL = 0x20` //32
* `X_ERROR_PARAM = 0x30` //48

## Factory restore
You can restore the presets factory defaults with the following procedure
- **turn off** the MIDI Drawbars Comamnder (i.e. detach from the USB cable)
- **press and hold the *ALT* button while turning on the Commander** (i.e. attach the USB cable). This will boot the Commander in *Reset mode*. The "*Leslie fast*" button's led will start blinking
- **while holding the *ALT* button, press the blinking "*Leslie fast*" button** to wipe the memory and reload the factory presets. The led will stop blink.
- **TODO: how to know when the restore finish?**
- Now **release the *ALT* button**: the Commander will exit from the *Reset mode* and it's ready to perform using the default parameters.

## Changelog:
- v. 1.3.6 Fix issue with the Vibrato selector (isssue #70)
Expand Down
Loading