Greetings everyone! With the start of a new year I thought it would be a good time to recap what I have been up to and what I would like to accomplish in the coming year. I have been working on learning how to use the STM32F3 ARM microcontrollers from ST and it has been going really well. I have been learning to enable/control the peripherals of the chip by setting and clearing bits in the registers. I have been working on this for the past two weeks and made some great progress. I have learned how to setup and enable timers, UART, external interrupts, and the ADC. Breaking out of the Arduino ecosystem and learning this stuff on my own has been a goal for over a year now so it makes me happy that I have made such good progress.
All this learning about how to control the STM32F3 has sparked me to do one more version of the RN-9090. I have been migrating my previous RN-9090 code and re-doing all the very poor programming I had done in the past. The old RN-9090 code was a mix of global variables and global functions all in a single file and now I am properly organizing everything into classes with separate .h and .cpp files. I am about 50% of the way finished with migrating the code and then I will start doing some testing debugging.
So the plan right now is something like this:
- Finish migrating RN-9090 code to STM32F
- Integrate STM32F3 peripherals code with RN-9090 code
- Revise main circuit board
- Order new circuit board
- New prototype
And then from there, I swear this is going to be the last version of RN-9090. It will have 4 MIDI OUTs, at least 4 unique pages, poly-rhythm for each row, dedicated pots for the velocity of each row, encoders to change the note, velocity, swing, and sustain (each can be set on a global/per row/per note basis), and if there is enough space, 192-note polyphony.
Work is coming along nicely on the final version of the RN-9090. The migration to the STM32F3 which will be the new brain of the RN-9090 and other RN Instruments devices is almost complete and the update of the source code to proper code techniques (AKA no global variables and using proper data structures) is about 50% complete. Here is a video I made in the mean time. I am having a lot of fun with the existing prototype and every time I play it, I am reminded I need to
More updates to come soon. I’m trying to keep a steady 10 hours a week on this so hopefully this will be done sooner than later.
In the meantime, here is the RN-9090 in a little jam session: