I am trying to make use of the direct duty cycle option of the Lumen light which bypasses the MCU (Tiny) and sends PWM directly to the LED driver (A62111) by soldering the jumper.
" * Direct duty cycle control (with solder jumper)" as mentioned on the github page.
However after soldering the jumper and trying to drive the PWM pin with an Arduino Pro Micro (3.3v) I have no light output. Attaching the scope to the output pin I can see the PWM pin is being pulled low, however when I connect the same PWM line directly to a 3.3v source (replicating 1000% duty cycle) the LED outputs light. My thoughts is something on the board (probably the Tiny) is pulling the 3.3v PWM signal low.
To test this I removed the Tiny from the board and the problem was resolved. I am wondering why this might be the case and if there is a solution where I don’t need to remove the Tiny?
Looking at the code I can see the Tiny pin that is connected to the PWM line is set as an output in the code, I am not sure if this engages a pull down resistor internally that might be doing this. Maybe programming the board to change it from an output would resolve the issue?
That said, if you’re needing to reprogram something anyway, it may be preferable to instead change the PWM input limits (to match the pulse-width range of your duty-cycle pulses), or just change the code on your Arduino to output pulses with durations between 1100-1900µs instead of using a full range duty cycle. Both those approaches avoid needing to solder the jumper, and keep the Lumen’s exponential output curve, along with its built in temperature monitoring and protection features.
That makes sense Elitot. Thanks for the explanation.
I might try reprogramming the Tiny45 pin as an INPUT, as I am looking to have high frequency control of the LED as I am experimenting with visual light communications.