Finally, this month-long project has its first full success!
I designed a separate Sensor Board to house the MGC3130 and its supporting components. This helps to isolate any noise that may come from the Atmega32u4 section of the board and to make everything more compact. Since this has a different track layout and overall capacitance, I parameterized this new board and got very VERY promising results. Every electrode functioned exactly as it should and I was able to get gesture and position data within Aurea.
Next, I moved on to my Atmega32u4 programming. I connected one of my earlier controller boards(having nearly trashed it as it had numerous electrical issues) as a stand-in for the new controller board I have designed. After rebuilding the library I had originally created almost from scratch, I am now able to detect touches, AirWheel gestures, and all other gestures reported by the MGC3130. Success!
I fiddled with my library and came up with a quick little demo. Now may be a good time to mention - I spent Christmas Eve and Day working on this, so this was my little gift to myself. Now onto the Demo:
MIDI Space is set up to have multiple pages which have different control schemes. I'll also be working on a very user-friendly GUI and standalone program to control and interface with MIDI Space.
(Out of page 0, 1, and 2) Page 1 is the only page with any content or control logic on it currently, as I have a few more additions I would like to add to this device to really beef it up and make it as insanely powerful as I would like. Simple swipe gestures (left to right and vice-versa) can change pages. I also have the capability to assign up and down swipes to page changing, allowing for a 2D page layout, somewhat like a folder browsing system with groups of pages with different but related settings. One could have a folder for Launchpad-like sample activation and up and down swipes switch between groups of samples, while another folder would be for mod settings and volume control(as demonstrated below).
Next, AirWheel gestures are synced to volume control.
Finally, the X and Y position are synced to mod x and y values.
I bodged a few pins onto one of my existing controller boards to break out the I2C, TS, and MCLR pins I needed and was able to load up Aurea. In Aurea, I parameterized my board and got some (very noisy and not very useful) input from the MGC3130 and electrode board. Onward and upward!
I've finished the design and assembly process and now have two main control boards successfully assembled. The MGC3130 documentation is absolutely chaotic, so finding a single documentation sheet is nearly impossible. Lots of bouncing around between pdf's. Current issue is the MGC3130 has no firmware loaded on it and the only examples I can find are for a PIC32(obviously not the ATMEGA32u4 I have in my build). I'm slowly making my way through the documentation and example C files and recreating the firmware updater example.