Hey it's been a while, eh?
In the time since my last post I have continued to futz around with my whole setup. I have spent hours and hours trying to figure out just why the heck things were not working. I even went so far as to just use the arduino code that was provided by Cirque on their Github page (if I have not already mentioned it).
After even more fruitless hours of just random data scrolling across my serial terminal I posted on Cirque's community product forums (link to thread). Let me tell you, what a fantastic customer service experience (even when the customer was a complete knucklehead).
We went through all sorts of troubleshooting scenarios once they realized that my issue might be more than just a simple "make sure that you read the pinout correctly" sort of situation. There was some great exchange of information and someone from the company went so far as to bring in their own personal Adafruit ESP32 Huzzah and hook it up to their logic analyzer. They sent me some great pictures!
Now I do not have one of those fancy logic analyzers (Hackaday, wanna help me out?) , but I can tell you that my setup would not have showed that. After a few more hours of testing continues and checking connection, I finally, FINALLY found out what was wrong.
Try real hard and see if you can spot it:
I know its a crappy picture let me zoom in a little bit and see if you can spot it then:
Right there. That connection wasn't a connection at all!!! Protip: transacting data over SPI is really really difficult when you don't actually have your MOSI line connected to anything! Literally 2 seconds with the soldering iron and the problem that had been plaguing me for weeks was suddenly solved. Of course that was after I shelled out 20 bucks for another trackpad because I thought the first one was broken.
I have also promised you break our boards, and here they are!
I tried to keep the design nice and sleek and made is specifically to match the pinouts for the SPI and I2C pins on the Adafruit ESP32 Feather. I have also added two spaces for the pullup resistors required to use I2C. A handy little board if I do say so myself!
I had seen some advertisements for some super cheap and fast PCBs by JLCPCB but after uploading my design (not nearly as trivial as oshpark makes it), I realized that while it may only be 2 dollars for 10 pcbs, shipping was going to be 25 dollars! First of all, I did not need 10 of these things. three would suffice. Second of all, I was able to get "super speedy" service on my PCBs at Oshpark for the same price as it would take for JLCPCB to ship to my door. Not to mention that JLCPCB could have taken 1-2 weeks longer to do so. I think there is still a clear winner in the hacker community for quick and cheap circuit boards.
With all that being said I think that just about wraps it up for now. While I am no longer getting garbage data, it is still inconsistent. It seems like only a certain region of the trackpad is reporting reliable data while the other parts are intermittent at best. Perhaps I will post a video in the coming days to show you up I mean.
Some other projects are finally wrapping so hopefully this project page will be a bit more active!