Commit graph

447 commits

Author SHA1 Message Date
Daniel Drown
61e44f2f31 add support for 24 bit color depth 2024-12-09 16:22:15 -06:00
Scott Shawcroft
e9f8ed41dc Switch to IDF 5.2 I2C API
Make busio.I2C use finalizers for reset instead of bulk reset. This
makes it easier to track and free the memory that the IDF allocates
internally for its "handle".
2024-09-19 14:47:45 -04:00
19e5cf3d8f Avoid crashing when display components are deinitialized
Now, try_lock (SPI & I2C) & begin_transaction (display bus core) will check
that the related objects are still valid first; if they are not,
the lock/begin transaction will fail by returning false, rather than
"other things" such as raising a Python exception where it is not
permitted, accessing invalid memory, etc.

Closes #8278 and Closes #9426
2024-08-28 09:44:02 -05:00
Scott Shawcroft
d9fcaa00ae
Merge pull request #9488 from wyrdsec/main
Driver for Pervasive Display's Aurora based E-ink display
2024-08-12 09:41:27 -07:00
wyrdsec
e416ac0570 pre-commit fixes 2024-08-08 20:37:49 -04:00
Scott Shawcroft
5376443f58
Add support for RP2350 to CircuitPython
This adds support for the next RP2 microcontroller, the RP2350.

Thanks to Raspberry Pi folks for early access and to @arturo182,
@oberchoo and @SalamCytron for helping with CircuitPython.
2024-08-08 09:54:51 -07:00
wyrdsec
6208124bd1
Merge branch 'adafruit:main' into main 2024-08-07 18:01:23 -04:00
Radomir Dopieralski
2c7b11b1af displayio.Bitmap is now byte-aligned for depth < 8
The traditional layout of pixels in bitmaps of depth less than eight
is with the order of values in a byte reversed, but with bytes in
the same order as the pixels on the line.

Before now, displayio.Bitmap did reverse the values, but did it on a
word (four bytes) basis, not byte, which resulted in groups of four
bytes being in the order opposite to the screen order.

This patch fixes this, by making processing of pixels in bitmaps of
depth less than 8 bits based on bytes, not words. Since the internal
details are changing, any code that accessed bitmaps through the
memoryview buffer, or that created bitmaps directly from raw data,
and that used depth of less than 8 bits will be affected.

Therefore, the gen_display_resources.py script also had to be modified
to account for the changes.
2024-08-05 23:14:55 +02:00
wyrdsec
1214b699ca Pervasive Displays Aurora E-paper driver 2024-06-05 20:00:45 -04:00
Dan Halbert
3f4d9310ff CircuitPython files: replace STATIC with static 2024-05-20 11:02:17 -04:00
Dan Halbert
950b5d09d2 guard2once -s ... 2024-05-19 20:40:44 -04:00
Dan Halbert
747b7619ea update headers of most CircuitPython-only files 2024-05-17 14:56:28 -04:00
Scott Shawcroft
02a488649f
Merge pull request #8923 from jepler/groups-in-rom
displayio: add, check "readonly" flag for groups
2024-02-16 09:49:14 -08:00
3b445f167b Rename check_rom to check_readonly 2024-02-15 22:17:00 -06:00
d7dd571326 Rename the "in_rom" flag to "readonly" 2024-02-15 22:17:00 -06:00
75ec56844c displayio: add, check "in rom" flag for groups
closes: #8873
2024-02-14 19:39:00 -06:00
58f28b82f5 Include header only when needed 2024-02-13 17:00:52 -06:00
f7c4a220d0 Fix build bugs exposed by posix port 2024-02-13 17:00:52 -06:00
Dan Halbert
7cc816c709 merge from 8.2.x 2023-12-22 15:32:35 -05:00
Dan Halbert
b272b88cd1 Reject RLE-compressed BMP files 2023-12-20 11:25:09 -05:00
Scott Shawcroft
8137e2d6d2
Switch all ports to auto-growing split heap
This simplifies allocating outside of the VM because the VM doesn't
take up all remaining memory by default.

On ESP we delegate to the IDF for allocations. For all other ports,
we use TLSF to manage an outer "port" heap. The IDF uses TLSF
internally and we use their fork for the other ports.

This also removes the dynamic C stack sizing. It wasn't often used
and is not possible with a fixed outer heap.

Fixes #8512. Fixes #7334.
2023-11-01 15:24:16 -07:00
774f6ac6ab
Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
Scott Shawcroft
e1df598199
Split displayio hardware support from core
These are moved:
* Display -> busdisplay.BusDisplay
* FourWire -> fourwire.FourWire
* EPaperDisplay -> epaperdisplay.EPaperDisplay
* I2CDisplay -> i2cdisplaybus.I2CDisplayBus

`paralleldisplay` is now `paralleldisplaybus` (and registered as
`paralleldisplay` too).

Bus related helpers are split out of display_core into bus_core.
It is in still displayio since it is a dependency of both
busdisplay and epaperdisplay.

Fixes #7667
2023-10-24 15:43:34 -07:00
Scott Shawcroft
923a5b28ca
Add NO_FPS_LIMIT instead of magic numbers 2023-10-05 14:56:11 -07:00
Scott Shawcroft
8183d8ef50
Remove displayio.*.show()
Use `displayio.*.root_group =`.
2023-10-02 14:28:59 -07:00
409d1a83b6
displayio: fix releasing dot clock framebuffres in release_displays
this caused problems particularly when the framebuffer was not associated
with a display.
2023-09-25 09:45:35 -05:00
ed9cacf41d
Add DotClockFramebuffer 2023-08-30 10:30:15 -05:00
Dan Halbert
d582407b06 pre-commit fixes 2023-08-14 00:59:22 -04:00
Dan Halbert
2171e67c1b merge latest adafruit/main 2023-08-13 19:43:54 -04:00
Dan Halbert
fe0e2f13bc wip; fix qstr processing 2023-08-10 20:06:32 -04:00
Dan Halbert
0d2c3c3f08 wip: continuing compilation fixes; mp_obj_alloc everywhere 2023-08-07 20:45:57 -04:00
elpekenin
a51be16d9e Fix typo, oopsie 2023-07-29 15:10:09 +02:00
elpekenin
c4e915c3b2 Improve error message 2023-07-29 14:39:44 +02:00
foamyguy
96d3e662b3 refactor bitmap.blit into bitmaptools 2023-07-02 14:35:40 -05:00
foamyguy
abf15125ff adding skip_self_index argument to bitmap.blit() 2023-07-01 11:50:24 -05:00
foamyguy
4bf4d148c1 always set rendered_hidden false when hidden changes 2023-06-16 18:05:39 -05:00
foamyguy
074c13488b revert whitespace change. handle hidden by parent 2023-06-16 16:57:37 -05:00
foamyguy
3222cdf847 revert indention change 2023-06-16 16:50:01 -05:00
foamyguy
0e3cdea51e remove prints 2023-06-16 16:47:24 -05:00
foamyguy
340506be58 revert unrelated epd change 2023-06-16 16:43:10 -05:00
foamyguy
18faeb86c7 more debug prints 2023-06-09 14:53:11 -05:00
foamyguy
ec21dc6975 added debug prints 2023-06-08 12:01:39 -05:00
foamyguy
4712a9d301 remove old conditions 2023-05-31 21:00:02 -05:00
foamyguy
f8948c2718 format 2023-05-31 20:58:04 -05:00
foamyguy
4ad54b2853 debugging prints. add rendered_hidden field to tilegrid 2023-05-31 20:57:17 -05:00
foamyguy
06057a63e6 don't consider refresh areas for hidden groups or tilegrids 2023-05-30 19:25:08 -05:00
Scott Shawcroft
75046b3a58
Save space with consolidated errors 2023-04-25 13:26:48 -07:00
Scott Shawcroft
eab202aa53
Fix SH110x 2023-04-25 10:36:34 -07:00
Scott Shawcroft
87fc5eff26
Re-enable partial updates when available 2023-04-24 16:24:33 -07:00
Scott Shawcroft
b16037859c
Fix native epd boards 2023-04-21 14:36:35 -07:00