New Features

Post date: Aug 3, 2014 1:40:45 AM

I've added a few new features:

1. People that saw the prototype in action said that the LEDs were a bit bright. So, now there's a menu option to set the brightness

2. The Chord Library has been implemented. Major, minor, seventh, minor seventh, diminished, augmented and sixth chords (in first position only) are available.

The hardest part in implementing the Chord Library was figuring out how to set up the OLED display and how to translate that into LED positions. I'm using a "GCEA" notation to store a chord (e.g. "A" is "2100"). I calculate the LED position from there using a formula. I'm using a pair of indices to determine what note and quality the user selects.

Along the way I converted over to a different rotary encoder library. This one uses polling. Because of that, I ran into an issue with timing. What was happening is that the delays in the loop was causing the state machine to miss states (resulting in no output). I changed to code to wait for a result (either clockwise or counter-clockwise movement) before doing anything else. This sped up the loop to allow the decoder to operate properly.

I also have settled on using an external USB power pack (thanks Mary for giving me her spare!). I'm running everything off USB power. The power pack can easily clip onto a belt loop and has a nice short cable. This would allow the battery to be changed if required. Plus, it eliminates a major packaging headache inside the Uke. I'm also now don't really need the extra supplies (but I still may implement the boost once I get around to measuring supply droop, but for now it's not an issue). What this means is a lot less hardware, and a lot fewer mods to the Uke.

Next steps will include implementing the metronome, tuner/sensor, a whole lot of code cleanup and a minor hardware fix. New video coming when I can find my phone and make the recording ;)