Commit Graph

385 Commits

Author SHA1 Message Date
Scott Shawcroft
36dbaf4ccc
Add more checks for read-only Bitmaps
Fixes #7768
2023-03-22 10:14:42 -07:00
Dan Halbert
859a48723f
Merge pull request #7633 from tannewt/fix_imx_pwm
Fix `pwmio` on iMX RT.
2023-02-28 14:11:06 -05:00
Dan Halbert
f9831b3bbc
Merge pull request #7639 from adafruit/8.0.x
Merge 8.0.x up to main
2023-02-24 19:32:09 -05:00
Scott Shawcroft
b79661d631
Alphabetize, fix typo and remove incorrect comment 2023-02-23 14:34:54 -08:00
Scott Shawcroft
1acf65ee22
Fix pwmio on iMX RT.
It now handles deinit, never_reset and sharing tracking. PWM
now runs in the WAIT state as well during a time.sleep().

_reset_ok() was removed because it was called in one spot right
before deinit().

Some PWMOut were also switched to a bitmap for use instead of
reference count. That way init and deinit are idempotent.

Fixes #6589. Fixes #4841. Fixes #4541.
2023-02-22 11:22:39 -08:00
Dan Halbert
3f66a0be83
Merge pull request #7611 from gamblor21/colorconverter-mem-fix
ColorConverter output colorspace non-initialization fix
2023-02-19 20:34:30 -05:00
gamblor21
e78875a93b ColorConverter output colorspace fix 2023-02-18 15:35:56 -06:00
Scott Shawcroft
931c7c1c51
Add Bangle.js 2, JDI memory displays and ACeP epd
This 2-in-1 PR started with the goal of support the Bangle.js 2
smartwatch with *no USB*.
* Adds "secure" DFU build support with a committed private key.
* Adds 3-bit color support with one dummy bit for the JDI memory display
* Allows nrf boards to have a board_background_task() run in RUN_BACKGROUND_TASK.
  This is needed because the Bangle.js 2 uses the watchdog to reset.
* Renamed port_background_task() to port_background_tick() to indicate it
  runs on tick, not RUN_BACKGROUND_TASK.
* Marks serial connected when the display terminal is inited. This means
  that safe mode messages show up on the display.

ACep, 7-color epaper displays also pack 3 bits in 4. So, I added that
support as well.
* Adds 3-bit ACeP color support for 7-color e-paper displays. (Not
  watch related but similar due to color depth.)
* Allows a refresh sequence instead of a single int command. The 7" ACeP
  display requires a data byte for refresh.
* Adds optional delay after resetting the display. The ACeP displays
  need this. (Probably to load LUTs from flash.)
* Adds a cleaning phase for ACeP displays before the real refresh.

For both:
* Add dither support to Palette.
* Palette no longer converts colors when set. Instead, it caches
  converted colors at each index.
* ColorConverter now caches the last converted color. It should make
  conversions faster for repeated colors (not dithering.)
2023-02-15 15:03:40 -08:00
Neradoc
3c93594563 Deinit the reset pin when displayio.I2CDisplay raises an exception 2023-02-10 19:54:10 +01:00
Maciej Sokołowski
483f14b73f Allow lines with ends out of bitmap in bitmaptools_obj_draw_line 2023-01-19 21:37:25 +01:00
Dan Halbert
a3adcf0e1a clarify read-only mac address; reuse translate msgs 2023-01-02 10:13:20 -05:00
Jeff Epler
d808185744
Emphasize that ALIGN_BITS is a constant 2023-01-01 16:45:40 -06:00
Jeff Epler
d2361ae4f9
Avoid an undefined shift
(1 << 32), an operation on a signed 32-bit int, is undefined in C. The
operation on the unsigned int (1u<<32) is defined as zero, which is
the desired outcome (subtracting 1 yields the value with all bits set)

This problem was detected by clang scan-build static analysis
2023-01-01 16:45:35 -06:00
Radomir Dopieralski
6412d971fa displayio: Set in_group to false when removing a layer from a group
Otherwise the removed layer cannot be re-added.
2022-12-11 02:59:56 +01:00
foamyguy
57462092b5 return None instead of NULL for framebuffer and epaper 2022-12-01 17:34:43 -06:00
foamyguy
42f1d50acc remove extra function call. handle show(None) for framebuffer and epaper 2022-12-01 17:25:36 -06:00
foamyguy
1bbdc820c0 make show(None) show the terminal 2022-11-28 17:02:46 -06:00
foamyguy
553d48f887 return None for NULL 2022-11-28 09:03:03 -06:00
foamyguy
b8d6605cff code format, extra space 2022-11-27 17:26:46 -06:00
foamyguy
6844dc0cb7 code format, extra space 2022-11-27 14:20:15 -06:00
foamyguy
15a9e63fda remove is_null troubleshooting function. remove empty line 2022-11-27 14:08:38 -06:00
foamyguy
738b73d4b4 check for NULL in fill_area. moved start_terminal to reset_display. 2022-11-27 13:54:53 -06:00
foamyguy
2c479f4fce working on None behavior 2022-11-26 11:00:09 -06:00
foamyguy
fa4b480439 looking into how null show works 2022-11-21 20:21:39 -06:00
foamyguy
e3cae22297 allow set_root_group for EPaperDisplay instead of show() 2022-11-18 17:34:03 -06:00
foamyguy
403e3ef430 change to CIRCUITPYTHON_TERMINAL. change internal API to use set_root_group 2022-11-18 16:53:18 -06:00
gamblor21
863a8bce03 Fix with PWM for brightness slowing devices down 2022-09-11 20:34:53 -05:00
Pepijn de Vos
f69f517352
allow writing empty color frame 2022-09-06 19:32:15 +02:00
Dan Halbert
02cc6c2aee Merge remote-tracking branch 'adafruit/main' into remove-autobrightness 2022-08-10 08:35:53 -04:00
Dan Halbert
41bcd7b260 Remove support for auto-brightness 2022-08-09 22:40:21 -04:00
Jeff Epler
64b1d003df
Allow a Bitmap to be constructed from a buffer (in C anyway)
.. so that Camera.take() can return one without copying
2022-08-04 15:11:58 -05:00
Scott Shawcroft
6446010753
Wi-Fi autoconnect and title bar status
This adds support for CIRCUITPY_WIFI_SSID and CIRCUITPY_WIFI_PASSWORD
in `/.env`. When both are defined, CircuitPython will attempt to
connect to the network even when user code isn't running. If the
user code attempts to a network with the same SSID, it will return
immediately. Connecting to another SSID will disconnect from the
auto-connected network. If the user code initiates the connection,
then it will be shutdown after user code exits. (Should match <8
behavior.)

This PR also reworks the default displayio terminal. It now supports
a title bar TileGrid in addition to the (newly renamed) scroll area.
The default title bar is the top row of the display and is positioned
to the right of the Blinka logo when it is enabled. The scroll area
is now below the Blinka logo.

The Wi-Fi auto-connect code now uses the title bar to show its
state including the IP address when connected. It does this through
the "standard" OSC control sequence `ESC ] 0 ; <s> ESC \` where <s>
is the title bar string. This is commonly supported by terminals
so it should work over USB and UART as well.

Related to #6174
2022-06-09 14:55:54 -07:00
Scott Shawcroft
b90563d504
Merge pull request #6442 from FoamyGuy/tilegrid_contains
tilegrid.contains() function
2022-06-06 11:02:43 -07:00
foamyguy
c9c864a4f7 fix off by one right and bottom edges of tilegrid.contains() 2022-06-03 17:51:33 -05:00
foamyguy
6831dd8aaa return expression formatting 2022-06-03 17:04:53 -05:00
foamyguy
87f4cd6bca
return expression instead of if statement
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2022-06-03 16:21:50 -05:00
foamyguy
ffc451b338 argument for backlight_pwm_frequency and use it in pyportal titano build 2022-05-28 12:01:05 -05:00
foamyguy
db318726a2 tilegrid.contains() function 2022-05-27 18:05:44 -05:00
foamyguy
6b04b7efc8 display brightness pwm 500hz frequency 2022-05-21 12:09:23 -05:00
Dan Halbert
a01dec1df9 message consolidation and more use of validators 2022-05-19 15:38:37 -04:00
Scott Shawcroft
f975c97c63
Merge pull request #6363 from FoamyGuy/hidden_vectorio
Hidden vectorio
2022-05-18 09:00:13 -07:00
foamyguy
1c564764d6 use draw protocol impl in parent hidden too 2022-05-08 12:14:28 -05:00
foamyguy
b6a5f421a9 use draw protocol impl 2022-05-08 12:02:59 -05:00
foamyguy
330e01d8e0 handle groups inside of groups with vectorio hidden 2022-05-07 12:27:36 -05:00
foamyguy
c77dc3c828 code format 2022-05-07 11:59:26 -05:00
foamyguy
d1aab89a59 remove prints and extra whitespace 2022-05-07 11:57:27 -05:00
foamyguy
b03968aee5 hide vectorio objects if their containing group is hidden 2022-05-07 11:50:40 -05:00
foamyguy
c8a98d1a18 Merge branch 'adafruit_main' into hidden_vectorio 2022-05-07 10:25:34 -05:00
Jeff Epler
030d5fefa0
Ignore SH1107 quirk if not 1bpp 2022-05-03 09:23:36 -05:00
foamyguy
16b81c855d adding bitmap property to TileGrid 2022-04-09 11:26:36 -05:00