I'm starting to hack the box 1 code. My goal is to add a second page of options on the LCD screen, and have the encoders control those parameters as well. I want to change the NEXT/LAST buttons to cycle through the LCD screens, but keep the 3rd button as Fine/Coarse. Currently I've got the display pretty well sorted, but I don't know how to implemented the additional encoder functions.
I'm using cases to define what goes onto the LCD screen. I think that it is in these cases that I want to define/tie encoder function to the parameters displayed on screen. I'm not sure if I leave a pointer here and declare them in setup the way pan/tilt encoders are in the original sketch, or if I move all of the pin talk up to the display cases function? I think the pin assignments have to stay in the setup, so that means I probably need to write a new function that reassigns the encoders? Would I then plug that function into my switch cases?
I've written Zoom and Intensity encoders into all the functions, but haven't told the arduino where to look for that input. When I plug into my nomad I expect the pan/tilt functionality to work, as well as the display page scrolling(both do). I don't expect Zoom/Intens to work, but I'm still receiving ticks from them in the diagnostics tab. If they are not assigned encoders yet, what is sending those ticks? (admittedly, this is a smaller problem that I imagine will go away once I assign encoders, I'm just curious since this outcome was unexpected.)
Any tips would be appreciated, even if it's just pointing me to an example that deals with reassigning buttons or encoders mid sketch. I'm pretty good at reworking code to fit my needs, but still mostly a beginner.
Side note: I broke a pin off one of my buttons and only have 2 functioning at the moment, so in my current code there's only an option to page forward through LCD screens. The functionality works though, so adding a second button when I have another working one should be easy. Just wanted to mention it in case you stumble on an irregularity in my code.
You can't use the serial monitor and a connection to EOS at the same time.The problem comes up after limited number of parameters, this should tested step by stepby increasing the numbers of parameters…
Ok, Arduino Uno is no fun, I personaly use a Leonardo or Micro board beause the build in USB is much better and works with up to 16 parameters, but for extented experience the Teensy is the best solution…
Some boards can't properly spoof an uno. If they don't use existing "normal" windows usb drivers it won't matter what you tell the computer they are it won't connect properly. …
I stumbled on sstaub's multi-parameter box and tried uploading it through platformIO as recommended here(https://community.etcconnect.com/etclabs/f/lighthack/29787/would-it-be-possible-to-have-the-encoders-control-the-intensity-and-color-instead-of-pan-tilt). Now I have all the parameters, but only one of my encoders is working. I tried reloading the original box src to check if it was a hardware issue, but with that sketch the second encoder functioned correctly, so the issue is caused by the new code. In the comment chain sstaub mentions the UNO has a slow/low USB capability, I think this is probably the culprit since the code is reported to work on a teensy.
I'm not sure how to troubleshoot this. When I checked in the diagnostic tab for incoming OSC the second encoder wasn't registering anything. I then tried to open the serial monitor in PlatformIO, but that crashed the box. Is there a way to monitor the serial i/o while connected to Eos to see if the messages are being sent or not? What's my next step is sourcing the issue?
I made a new version which should work with up to 20 parameters on an UNO with the Arduino IDE without some modification. I have done some optimization to bring down the OSC traffic, thanks @Druuka4314.lighthack_box_2.zip