I DID IT!!!! Ever since I graduated I avoided doing anything to fix the one FSR that was not working properly, and I finally fixed it! I unplugged everything, took out the PCB, soldered the resistor and a few connections, cut the FSR off of its original connections, and re-hooked it up to the additional LIS3DH A2 pin. And I did it all without damaging anything else!
I plugged the original FSR data wire (that is going into the mux) into ground, and for that I thought it was too risky to solder that close to the plastic GLOBE. So I had used a lot of electrical tape and a jumper. It is not elegant, but it works. Something interesting is that grounding that 16 pin also fixed the bleeding from the 13 pin going into the 15 pin.
It was also the first time that I got to use my new heat gun on the heat shrink. So much fun!
Now I need to o back to my patches and update them all to include this sensor!
For the upcoming competition a thought occurred to me: what if my partner has large hands? We have not been told who we will be paired with and when I made the gloves with the fabric paint, I made them to fit my hands. So I took what material I had left and made bigger ones that are adjustable with velcro. I have learnt that I never want to try sewing velcro again. It's impossible on my simple sewing machine and I broke three needles when I was trying to sew one strip by hand. I ended up taking them to my mother to sew on her special machine. I used Kevin's hands as a guide and made them slightly bigger. So I hope they are ok!
When my mom was helping she asked me a question. I can't remember what it was now, something about the stitches, and I told her "it didn't matter". She said "of course it matters, it's a competition". She was always very competitive when I was dancing. The next day it got to my head and I started perseverating over the one FSR that just never worked. I thought I had the resolve that I would not take apart the GLOBE to work on this FSR and I would wait until I make a new version entirely. There is a risk that I make something else much worse in the process of taking the GLOBE apart and putting it back together again to fix this one little inconvenience.
Well... I took it apart so there is no going back now.
For the life of me I still could not find a short in the circuitry that would cause those two FSRs to bleed into each other. So, I adapted the Arduino Sketch to include pin A2 on the LIS3DH, soldered a resistor to it and the other necessary connections, and tested this with one of my spare FSRs. This work around works so far. So now I just need to disconnect the actual FSR and re-connect it to this new circuitry. Then ground the loose connections from the old circuitry for this sensor. And of course pray that everything else works the way it should and nothing explodes. I guess I take more risks while under pressure with a deadline. It would be nice to have all 16 FSRs available though once it's done!
This is why learning to design and custom order a PCB is one of the first things I plan for the next GLOBE; to minimizing headaches from things shorting.
In the previous versions the colour data was sent directly from the TCS34725 colour sensor to the LEDs. This meant no matter what, as long as some sort of colour is pressed against the sensor, you will see it. However, in Max MSP, it is a bit more sensitive to the exact shade of colour and angle the colour is pressed against the sensor. Therefore, if lets say I am using a green sample, the LEDs will appear green right away, but it might not quite be the green that the Max Patch is programmed to trigger the "green" message. It would take slight adjustments for the performer to do to get it accurate. It is the equivalent of have a violin that no matter what played perfect pitch even if the fingers are technically out of tune, and everything else is following the out of tune fingers.
Long story short, we changed the Arduino sketch so that the RGB and brightness values are all sent from Max MSP to control the LEDs. This way everything is in sync and the LEDs truly reflect what the performer is both hearing and seeing. This makes it easier for the performer to use this feedback to adjust and correct their own movements in real time. This opens up more possibilities for the LEDs to be audio reactive as well. I included a screenshot example for how this is hooked up in Max MSP.
In previous versions the RGB values outputted from the TCS34725 colour sensor were also well over 500. In the past I never questioned it because it was copied from an example sketch and as long as I was receiving something I thought it was fine. As I have been working more deeply with colour lately, I realized that can't be right - typically RGB values are only between 0-255. Kevin and I went over the code and we found where the issue was. So now the values sent from the sensor to Max are correct. I had updated my colour detection Max patch to reflect this as well.
Playing with my latest piece patch I felt like there should be a larger difference in the sound quality of the different sections of the piece. So I added a chorus effect to the final mix, and use convolution to adjust how much of the chorus is present in each section.
I posted V3 of the Colour Detection bpatcher: https://github.com/CLKo1/colourdetect-maxmsp
I preparation for the competition's concert, my plan is to come up with a full patch for a piece well ahead of time. Then think of all the cool ways I can map each type of sensor to sound and make modules. This way if the musician whom I'm paired with has their own ideas for what it will sound like, I have more flexibility to program something fast. On the schedule we are supposed to collaborate in the morning and then the concert is the same day, which is a very tight deadline for a full piece with Max MSP that is also bomb proof! Or at least it is for me since my patches can get a bit complex. Usually I use two days at the very least to prepare a piece.
I basically finished preparing the "full piece" patch. I have the four main colours selecting the sections again. Sometimes I still don't quite trigger a section, but the LEDs show the proper colour. I think I will have to make it so the LEDs get their colour messages from Max as well instead of directly from the colour sensor. This way it is truly in sync with what Max is actually doing and provides more accurate visual feedback for the performer. I'll have to adjust the Arduino Sketch a little more, and possibly either the colour detection bpatcher, and/or the Arduino to Max bpatcher.
Then I just need to decide if I want to make a visuals patch to go along with this main piece patch. Also, it's still on my to-do list to go get more paint chips from Home Depot. I just have been avoiding it since COVID numbers are bad at the moment.
We updated both the Arduino Sketch and the Max MSP patch so that if the wireless connection fails, or if the battery dies, the brightness messages being sent from Max MSP can be received by the ESP via serial. This was the last thing that needed updating so that the GLOBE can be used entirely wirelessly, or plugged in, without having to re-upload a new Arduino sketch. It can also be easily modified if we want the RGB messages to be sent from Max as well.
I'm trying to figure out what I want to do for the sounds in my next piece. I have a rough idea of how I would like the piece to be played. For some reason I'm more stuck than usual on what I'd like it to sound like. I've been learning about the [ml.markov object], maybe I'll find some use for it. In the past I would work from an abstract idea. Maybe I should think of something like that and go from there. I don't know, so many maybes.
If you are looking for a summary for my Masters thesis, it is here.