Hey Guys,
I'm back at it... but this time, with a Teensy! I guess I was unsatisfied with the way I left the last project, so I've decided to give it another try, with a more robust approach.
I've gotten some PCB's printed by OSHpark for 7-pin midi I/O specifically for two-way communication with AC/DC power on the outer most pins, filtered onboard to 5VDC.
Next, I got the Teensy 3.0 from PJRC store ($20), and placed it on a basic breadboard.
Next I got an Adafruit RGB LCD display with 5-buttons. I chose this display because it comes with built in buttons, and uses I2C communication with a MCP23017 chip (which is a 16 GPIO I2C expander), for which Adafruit wrote some nice libraries.
I've used some of my old cold for sysex communication with axe, in conjunction with all the work that has been but into the wiki to make a basic controller that flips through presets, gets the preset number & name from the axe, and displays it on the lcd screen. It also has an initialization connection check (asks through midi for preset name, and while none is returned, assumes connection is broken). Also, the tuner works. So out of the 5 buttons: 1 is increment preset up, 1 is decrement preset down (only 1 bank at the moment, had issues with using more banks), 1 button to turn on turner (which turns off with any other button press), and 1 button to go to preset 0.
The code is alright, there are still some issues to work out like preset skipping, adding in all 3 bank support, and sometimes when presets skips, the teensy hangs (I assume its one of those while() loops I have in there). There is also a hang is communication is broken after its been established, so not perfect, but should be a good starting point for many people!
Anyway, to the fun part!
Teensy: https://www.pjrc.com/teensy/
Adafruit RGB LCD: RGB LCD Shield Kit w/ 16x2 Character Display - Only 2 pins used! [NEGATIVE DISPLAY] ID: 714 - $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits
CODE IS HERE:
https://github.com/Evz-N/Teensy-AFX2/tree/master
PS - one main reason for using Teensy: you can use Serial and Midi communication in parallel, so it makes it easier for debugging issues.
Anyway, If you have questions post here, I will try to keep everything updated, next steps would be to make the communication part more robust, and eventually move it into a separate library, so the main code would only scan hardware changes, and output communication, no need for having all the code in the main file.
Also, I think I will try to add a pedal input, I think thats my #2 objective!
Thanks!
Enjoy!
I'm back at it... but this time, with a Teensy! I guess I was unsatisfied with the way I left the last project, so I've decided to give it another try, with a more robust approach.
I've gotten some PCB's printed by OSHpark for 7-pin midi I/O specifically for two-way communication with AC/DC power on the outer most pins, filtered onboard to 5VDC.
Next, I got the Teensy 3.0 from PJRC store ($20), and placed it on a basic breadboard.
Next I got an Adafruit RGB LCD display with 5-buttons. I chose this display because it comes with built in buttons, and uses I2C communication with a MCP23017 chip (which is a 16 GPIO I2C expander), for which Adafruit wrote some nice libraries.
I've used some of my old cold for sysex communication with axe, in conjunction with all the work that has been but into the wiki to make a basic controller that flips through presets, gets the preset number & name from the axe, and displays it on the lcd screen. It also has an initialization connection check (asks through midi for preset name, and while none is returned, assumes connection is broken). Also, the tuner works. So out of the 5 buttons: 1 is increment preset up, 1 is decrement preset down (only 1 bank at the moment, had issues with using more banks), 1 button to turn on turner (which turns off with any other button press), and 1 button to go to preset 0.
The code is alright, there are still some issues to work out like preset skipping, adding in all 3 bank support, and sometimes when presets skips, the teensy hangs (I assume its one of those while() loops I have in there). There is also a hang is communication is broken after its been established, so not perfect, but should be a good starting point for many people!
Anyway, to the fun part!
Teensy: https://www.pjrc.com/teensy/
Adafruit RGB LCD: RGB LCD Shield Kit w/ 16x2 Character Display - Only 2 pins used! [NEGATIVE DISPLAY] ID: 714 - $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits
CODE IS HERE:
https://github.com/Evz-N/Teensy-AFX2/tree/master
PS - one main reason for using Teensy: you can use Serial and Midi communication in parallel, so it makes it easier for debugging issues.
Anyway, If you have questions post here, I will try to keep everything updated, next steps would be to make the communication part more robust, and eventually move it into a separate library, so the main code would only scan hardware changes, and output communication, no need for having all the code in the main file.
Also, I think I will try to add a pedal input, I think thats my #2 objective!
Thanks!
Enjoy!