I need the ability to control more than two lights independently for filming. Ideally 4, but 3 would be a big win. I use cockpit and have available channels and controls on the game controller.
My issue is the only two slotted light setup options in BlueOS and cockpit. Why not add more to the software, it seems a bit lazy not to already have this as an option. Is there a workaround, i.e use the gripper control or something similar. I’m not very familiar with coding so would need a step by step instruction. I would really appreciate any feedback on this. Thanks!
I’m unsure whether this was a serious question/critique, but I’ll respond to it to try to provide some more context around what goes into making a robotic vehicle like this work, in a sustainable way:
Embedded firmware often has quite significant resource constraints it needs to work within, and there are already various features that are not compiled by default in the autopilot firmware so it can fit within the storage capacity of the more constrained flight controller board options that ArduPilot firmware gets built for.
There is also technical debt in how ArduSub firmware currently expects to be controlled, and the infrastructure around it. Adding an extra lights output means adding more configuration parameters as well as several extra joystick button functions (which then need to be searched through / scrolled past by users looking for other things), and those in turn all need to be supported within interfacing software like BlueOS and Cockpit (which requires additional development, and creates more code to maintain).
Beyond that, our todo list of ideas grows much faster than our capacity to make them happen, as is typical of complex projects, and especially those aiming to be useful to a wide variety of users with different applications and concerns. While it may be free for you to access and use the firmware and software we provide, our development work is not free, so we need to prioritise the time we have available to features that are most important and valuable to users.
Yes, in this case there are workarounds available
Assuming you’re using the latest ArduSub firmware (4.5.6), you can configure up to 6 additional lights-like outputs using the new Actuator functions, which also have ACTUATORn_INC parameters to control the step size of the increment/decrement button functions (akin to the brighter/dimmer functions available for lights). Note that only 3 of those are exposed in Cockpit’s current stable version (v1.16) - the remaining 3 will be available in the next stable (v1.17).
Older firmware can instead use the hardcoded servo button functions to control pins 9/10/11, which still adds 3 outputs if you keep your lights function assignments to other output pins.
It said that when you assume you make an ass of u and me of which I’m clearly guilty here. I didn’t know the underlying issue was hardware limitations, more than any thing else. Lazy was probably also the wrong wording as I again assumed if you made two already perhaps the third and fourth wouldn’t be that much more work. Thanks for setting me straight.
I’m going to have a look and a fiddle a little with you suggestions to se if I can get all my lights working. From your suggestion you could configure lights 1 & 2 on different channels to 9-11 and then use 9 - 11 to configure actuator functions?
I’ll need some time to look at this but I hope it’s OK to ask again on this thread if I get stuck.
That’s mixing together the two independent situation - if you’re using the latest firmware then you can assign Actuator functions (via the Vehicle Setup / PWM Outputs page in BlueOS, or directly via SERVOn_FUNCTION parameters) to any of the output pins. That flexibility is why they were introduced.
As something of a side note, Cockpit <= v1.16 calls the relevant joystick button functions servo_n_*, while newer versions will call them actuator_n_* (and, as mentioned, allow controlling up to 6, instead of just 3).