Vortex Wireless 2 Teardown
I decided to open up my keytar for the purpose of cleaning, but also to see if I could figure out what kind of MCU it has with the idea of possibly writing my own firmware. I’ve got a few reasons for this, mostly to do with the pads. First, when switching between presets on the Vortex, the state of any CC toggle pads depends on the state they were on the previous preset, which is dumb. Worse, the LED state doesn’t update to reflect this, they just always display their OFF color. Each preset should have independent storage of its pad states, so you can flip between them to trigger different loops, effects, etc. This doesn’t seem like it would be hard to code and would just be a few extra bits of memory, so it seems annoying they (Alesis) wouldn’t write the code this way.
I would also like to be able to send MIDI messages to the Vortex to change its pad states, to reflect what’s going on with my DAW or sound module (i.e. SquishBox obv). This could be CC or SYSEX. Finally, like many MIDI controllers, the software for programming the Vortex has no Linux version. I could do what some have done for other MIDI controllers and try to decode the sysex by spying on the data when programming the Vortex from Windows using WireShark, but if I wrote my own firmware I wouldn’t need to.
I’m including pictures of the Vortex internals here. Hopefully others will find them useful, even though my budget Samsung phone’s camera is a bit blurry in spots. I did manage to locate the MCU, which turns out to be a fairly run-of-the-mill ARM STM32F103R8 – which web searching tells me you can find nice dev boards and tutorials for. There’s even an 8-pin port labeled “program” broken out on the Vortex PCB, so there might be some slight possibility of me figuring this out. I’d have to figure out how the _many_ peripherals work (wireless USB, accelerometer, various button boards) or reverse engineer the firmware (link provided for my future reference), but maybe someone smarter than me can save me the effort 🙂
Final thought: It’s great that we have lots of USB MIDI controllers available, some very affordably priced, but the software provided for programming them is usually pretty painful. They all seem to work by sending some cryptic sysex messages back and forth that the manufacturer generally won’t bother to share with you. I think the way to make them user friendly would be to design them as dual USB devices – MIDI device+mass storage device with a tiny partition containing an easy-to-parse text file with all the settings. You could still write a user-friendly interface for casual Windows/Mac users, but this would make it easier for power users to write their own interface or change the settings by hand. I could just build my own MIDI controller around a Raspberry Pi Pico that does this exactly. Or manufacturers could at least provide their silly sysex communications protocol in a PDF online somewhere.