Inline and simplify the pixel flip for a 13.2ms -> 3.8ms speedup at 128x128 on RP2350 stock.
Drop RGB565 mode.
Add the ability to stack some panels, eg: 2x128x64 in a 128x127 configuration.
For both APA102 and WS2812 the pins used on the same PIO must be in the same range.
The GPIO base offset applies to the whole PIO and not individual state machines.
This means that for APA102 both data and clock must be in the same pin range,
ie: either 16-48 inclusive or 0-31 inclusive.
Add preliminary support for multiple layered drawing surfaces.
Allows, for example, static content to be loaded into one layer and
remain unmodified while the above layer contains animations.
Particularly useful for drawing PNG or JPEG UI elements which are
then overdrawn with text or animated elements, without paying the
cost of loading/decoding every frame.
And remove set_datetime and get_datetime gracefully when it's not set.
This is a temporary work-around for RP2350 lacking an RTC and not
requiring the datetime_t type. These functions should be re-implemented
in terms of C standards.
The astatus value was being interpreted as FZ, F2 and F1 causing bizarre
readings and all other channels to be shifted one place.
Additionally the datasheet has been updated to re-order F5, F7 and F8 to
F7, F8, F5, so these channels have been re-ordered accordingly.
Note: This will turn sensor output from confusing abject nonsense into
what looks like pretty reasonable colour data and fixes#989.
Pico Display would have a pixel offset at 90 and 180 degree rotations.
Add a special case offset tweak for these, and demystify the rotate_180 variable.
Add a timeout to fix Inky 7.3" hanging on batteries.
Basically assumes the update has finished if it takes > 45s, and allows a subsequent attempt
rather than hanging indefinitely.
Raised, texted and fixed by w3stbam: https://github.com/pimoroni/pimoroni-pico/pull/900
Rewritten as mentioned in the PR.
MicroPython's DMA class uses shared IRQ handlers, which would be
clobbered by Hub75's use of an exclusive handler.
Additionally clean up some dead code (DMA_IRQ_1??), more epxlicitly
clean up the claimed PIOs and programs, and do not use a fixed
DMA channel. This seems to have fixed a bug whereupon Hub75 would
hardlock on the 5th soft reset.