Yes, you could use a sort of PWM - your issue is that under the hood the micro:bit is 'scanning' the display - in 3 parts at 200Hz - so if you're not careful when you try your PWM you could end up with some parts looking brighter than others if the timer used for changing what is shown and the one used for doing the PWM go in and out of phase.
The easiest thing would be to try calling show() in a setInterval and alternating between two different values (maybe try doing it at 50Hz at first, and fiddle with the interval). Pixels that are 1 in both values will be brighter than those that are 1 in only one of them.
Otherwise it'd require some firmware mods and I wonder how you'd expose the functionality. Perhaps a second argument to show() that was another bitmap? It doesn't seem very user-friendly though.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Thanks!
Yes, you could use a sort of PWM - your issue is that under the hood the micro:bit is 'scanning' the display - in 3 parts at 200Hz - so if you're not careful when you try your PWM you could end up with some parts looking brighter than others if the timer used for changing what is shown and the one used for doing the PWM go in and out of phase.
The easiest thing would be to try calling
show()
in a setInterval and alternating between two different values (maybe try doing it at 50Hz at first, and fiddle with the interval). Pixels that are 1 in both values will be brighter than those that are 1 in only one of them.Otherwise it'd require some firmware mods and I wonder how you'd expose the functionality. Perhaps a second argument to
show()
that was another bitmap? It doesn't seem very user-friendly though.