Register / Login  |  Desktop view  |  Jump to bottom of page

IoAbstraction & TaskManagerIO » Re:Using 10 or more rotary encoders

Author: davetcc
29/11/2022 08:57:40
 
(I have already fixed a good deal of wrongly assigned pin numbers and loose or badly soldered wires in this wire-monster.)


Certainly know that feeling. An amplifier I built is a bit the same and needs a major rework of the digital side.

BTW, when I tried to allocate 100 pin numbers (here as EXP_PIN_ALLOC constant) for each expander, the sketch freezed and I was unable to even upload a new, fixed sketch. I had to try about 20 times before I somehow managed to start the upload just between the reboot and the freezing of the sketch. So, there is probably some limit on the amount of pin numbers on the multiIo, which bricks the whole controller? With EXP_PIN_ALLOC set to 20 it works.


On Arduino (except the mbed based Arduino boards) the pin type is 8 bits. So the total range is 0..255

Following is "switches.changeEncoderPrecision(0, maximumEncoderValue, 0, false, 1);" for each encoder.
(BTW, this was a cause of serious issues for some time: without the last two values (which should be defaults) it is actually the shorter/non-overloaded version of the method that gets called insted of the longer one and it has a completely different meaning - setting the default encoder (no. 0) to the first value as maxValue! This ambiguity is indeed very confusing!)


I'm considering making a breaking change here on the new feature to make sure that nobody can use the wrong overload, I'll need to take a look at what can be done, it was an unintended consequence of a new feature.




Register / Login  |  Desktop view  |  Jump to top of page