Commit Graph

2163 Commits

Author SHA1 Message Date
Dan Halbert 96e2a72d71 run background tasks during multi-part DMA 2023-03-09 11:53:16 -05:00
Scott Shawcroft 35e82a5f5e
Merge pull request #7676 from microdev1/ci
CI: Enhancements & Refactoring
2023-03-08 10:36:05 -08:00
MicroDev b17364a447
conditionally build all languages 2023-03-04 15:08:54 +05:30
gamblor21 6987d3d752 Fix for long length writes 2023-03-02 21:55:21 -06: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
Neradoc f22f2a3662 enable bus device on hallowing M0 2023-02-27 18:44:08 +01: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 f832386cda
Merge remote-tracking branch 'adafruit/main' into banglejs2 2023-02-23 14:43:38 -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
Scott Shawcroft b67c0b7949
Merge pull request #7585 from bill88t/settings-toml-pystack
Settings.toml-configurable pystack
2023-02-22 10:13:31 -08:00
Bill Sideris 1d12014ec7
disable pixelmap 2023-02-22 13:31:15 +02:00
Scott Shawcroft de5f58a61d
Merge branch 'main' into banglejs2 2023-02-21 12:04:28 -08:00
Scott Shawcroft a8b34bd067
Merge pull request #7549 from gamblor21/gif_displayio_support
Animated GIF support
2023-02-21 11:39:29 -08:00
Bill Sideris 650c4c5d92
pystack+ rainbow- 2023-02-21 20:50:07 +02:00
Bill Sideris 5dba32ed07
Try to pass ci with rainbowio 2023-02-21 17:42:08 +02:00
Dan Halbert 6d51356324 Fix pad assignments on atmel-samd UART 2023-02-19 20:42:44 -05:00
Bill Sideris 8a4a408707
Disable settable-pystack too to make more space 2023-02-17 16:35:16 +02:00
Bill Sideris 388279d9c1
Disable rainbowio instead. 2023-02-17 15:24:27 +02:00
Bill Sideris 17e2598fa1
Revert "settable pystack = 0 for kicksat-sprite"
This reverts commit f05c730a01.
2023-02-17 15:23:01 +02:00
Bill Sideris f05c730a01
settable pystack = 0 for kicksat-sprite 2023-02-17 15:14:09 +02: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
Dan Halbert f79459cb70 Try -fweb -frename-registers to make more SAMD21 builds fit 2023-02-15 16:38:24 -05:00
Dan Halbert fe40181144 Turn back on for pewpew_m4, turn off terminalio for incomplete fonts in pewpew_m4 2023-02-15 14:45:15 -05:00
Dan Halbert 0f099cdb31 Turn off safemode.py for pewpew_m4 2023-02-13 22:52:39 -05:00
Dan Halbert c39a51527f Turn safemode.py off on non-external-flash SAMD21 builds 2023-02-13 21:48:03 -05:00
Mark fa435468fa
Merge branch 'main' into gif_displayio_support 2023-02-13 18:30:51 -06:00
Dan Halbert d8231f1588 Implement safemode.py 2023-02-13 18:26:38 -05:00
gamblor21 be67cb72ad Disable for pewpew_m4 for space 2023-02-13 17:04:54 -06:00
Dan Halbert 7522522a0a
Merge pull request #7501 from pypewpew/pewpewm4-cdc
pewpew m4: enable CDC back
2023-01-28 12:00:49 -05:00
Radomir Dopieralski 5b814a4561 pewpew m4: enable CDC back
CDC got disabled on this board by mistake
2023-01-28 17:20:22 +01:00
Dan Halbert cc92ce4820 Use memory fence when disabling cache to avoid -O2 problems 2022-12-29 19:49:40 -05:00
Jeff Epler 678a466d1a
alphabetize 2022-12-09 14:12:43 -06:00
Jeff Epler 3459fe322b
Withdraw the _environ module
This existed solely for testing, so expose it a different way during
the unix coverage build

Also turn off os.getenv support on samd21.
2022-12-08 15:33:10 -06:00
Dan Halbert 082b0d1aed
Merge pull request #7191 from jepler/fastpixelmap
Add a fast PixelMap-like class
2022-12-01 11:43:00 -05:00
Jeff Epler beb053a94d
more thoroughly disable UART when 2022-11-30 12:06:19 -06:00
Jeff Epler 4af95f1cb1
atmel-samd: Ensure sdioio.SDCard pins are released 2022-11-29 13:45:18 -06:00
Jeff Epler 8e83f36c36
SAM E54 Xplained devkit hardfaults at start with -O2
I don't know why, but other samd5x are using -Os too, see the block above.

Closes: #7277
2022-11-29 13:05:39 -06:00
Scott Shawcroft ad2d190507
Merge pull request #7247 from tannewt/picow_web_workflow
Enable* web workflow for Pico W
2022-11-28 14:19:42 -08:00
Dan Halbert 79f4344860 fix playing mono files on stereo output 2022-11-23 22:11:41 -05:00
Dan Halbert 6d022733b3
Merge pull request #7162 from rhooper/boards-list
add boards list to make error message
2022-11-21 23:18:37 -05:00
foamyguy 19f1119994 Merge branch 'main' into fastpixelmap
# Conflicts:
#	shared-module/adafruit_pixelbuf/PixelBuf.c
2022-11-21 20:25:58 -06:00
Scott Shawcroft c3a96a63c0
Enable* web workflow for Pico W
* Except for circuitpython.local which depends on MDNS and will be
done in a follow up PR.

Progress on #7214
2022-11-21 16:24:05 -08:00
MicroDev c3c1717813
refactor common port specific Makefile code 2022-11-18 23:00:28 +05:30
Dan Halbert b74893eb07 samd21: port_disable_tick() should disable event channel 2022-11-15 21:52:12 -05:00
Jeff Epler f5c637dc10
Add adafruit_pixelmap.PixelMap
.. a fast helper for animations. It is similar to and inspired by the
PixelMap helper in Adafruit LED Animation library, but with an extremely
fast 'paste' method for setting a series of pixels. This is a common
operation for many animations, and can give a substantial speed improvement.

It's named `adafruit_pixelmap` so that we can package a compatible version
in pure Python for systems that can't fit it in C in flash, or for
Blinka.

This is a proof of concept and can make a very fast comet animation:
```python
import time
import adafruit_pixelbuf
import adafruti_pixelmap
import board
import neopixel
from supervisor import ticks_ms
from adafruit_led_animation.animation.solid import Solid
from adafruit_led_animation import color

pixel_pin = board.GP0
pixel_num = 96

pixels = neopixel.NeoPixel(pixel_pin, pixel_num, brightness=1, auto_write=False, pixel_order="RGB")

evens = adafruit_pixelmap.PixelMap(pixels, tuple(range(0, pixel_num, 2)))
odd_indices = tuple((i, i+2) for i in range(1, pixel_num, 4))
print(odd_indices)
odds = adafruit_pixelbuf.PixelMap(pixels, odd_indices)
assert len(odds) == len(odd_indices)


comet_length = 16

comet1 = [color.calculate_intensity(color.GREEN, ((1+i) / comet_length) ** 2.4)
        for i in range(comet_length)]
comet2 = [color.calculate_intensity(color.PURPLE, ((1+i) / comet_length) ** 2.4)
        for i in range(comet_length)]

pos1 = 0
pos2 = 96//4

while True:
    evens.paste(comet1, pos1, wrap=True, reverse=False, others=0)
    pos1 = (pos1 + 1) % len(evens)

    odds.paste(comet2, pos2, wrap=True, reverse=True, others=0)
    pos2 = (pos2 - 1) % len(odds)
    pixels.show()

    m = ticks_ms()
    if m % 2000 > 1000:
        time.sleep(.02)
```
2022-11-11 07:54:33 -06:00
Rose Hooper 8933f93439 simplify and use columns for boardlist 2022-11-01 11:00:48 -04:00
Rose Hooper 36c4cc7d30 fix output layout of board list 2022-11-01 00:18:46 -04:00
Rose Hooper dec128f508 add boards list to make error message 2022-10-31 23:57:59 -04:00
Dan Halbert 952812cdea
Merge pull request #7154 from dhalbert/alarm-lifetime
Save wake alarm info in static storage, simplifying recording of alarm
2022-10-30 12:28:50 -04:00
Neradoc 0aa41fa92e change BOARD_USER_SAFE_MODE_ACTION into a separate sentence 2022-10-30 01:55:42 +02:00