Commit Graph

29350 Commits

Author SHA1 Message Date
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
Dan Halbert
1853f49139
Merge pull request #7166 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-11-07 22:48:46 -05:00
Hosted Weblate
3dd9416c3f
Merge remote-tracking branch 'origin/main' 2022-11-08 00:33:18 +01:00
Dan Halbert
6230dea3d4
Merge pull request #7160 from rhooper/document-rust-dependency
Add note about rust to BUILDING.md
2022-11-07 18:33:13 -05:00
Hosted Weblate
25fc58454c
Merge remote-tracking branch 'origin/main' 2022-11-08 00:32:10 +01:00
Dan Halbert
c9ad92d133
Merge pull request #7173 from jepler/async-socket
asyncio bugfixes, select bugfixes & selectable socket
2022-11-07 18:32:05 -05:00
Hosted Weblate
9f3d3ed9b0
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2022-11-08 00:29:35 +01:00
Hosted Weblate
e713f831ce
Merge remote-tracking branch 'origin/main' 2022-11-08 00:29:33 +01:00
Dan Halbert
1fb03b72c6
Merge pull request #7175 from jepler/simplify-messages-save-flash
Simplify argument checking to reduce translated strings
2022-11-07 18:29:18 -05:00
Jeff Epler
319d9b04f1
Fix type annotation mistake 2022-11-07 13:51:58 -06:00
Jeff Epler
9cdfba2e47
Simplify argument checking to reduce translated strings
Build size on proxlight trinkey m0 en_US:
Before:  2412 (en_US)  820 (ru)
After:   2544 (en_US)  984 (ru)
Savings: +132 (en_US) +164 (ru) bytes available flash
2022-11-07 12:37:11 -06:00
Jeff Epler
2c2c9153ec
uselect: Allow interrupting poll with ctrl-c 2022-11-05 12:05:19 -05:00
Jeff Epler
452ebe27ae
socketpool: make socket objects selectable
.. which will lead to them being usable in async contexts, pending
relevant changes in asyncio
2022-11-05 12:05:19 -05:00
Jeff Epler
9dc559bb90
uasyncio: fix definition of ticks again
supervisor_ticks_ms is ALREADY a small int, so passing it to
MP_OBJ_SMALL_INT again messes things up. I don't know why this passed
muster with the C type system, but oh well.
2022-11-05 12:05:18 -05:00
Hosted Weblate
c9a9e4993c
Merge remote-tracking branch 'origin/main' 2022-11-04 20:51:36 +01:00
Jeff Epler
ae2bbbb8e7
Merge pull request #7165 from piit79/frood_missing_pins
Add missing pin definitions for 42. Keebs Frood
2022-11-04 14:51:28 -05:00
Ettore Atalan
39bab07973
Translated using Weblate (German)
Currently translated at 99.8% (1001 of 1003 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/de/
2022-11-04 16:05:38 +01:00
Petr Sedlacek
f3ec46bbb5 Add missing pin definitions for 42. Keebs Frood 2022-11-04 15:33:16 +01:00
MicroDev
b6276265c1
Merge pull request #7164 from jepler/hold-python-3.10
Pin python version 3.10 for builds
2022-11-03 10:18:14 +05:30
MicroDev
1178dd90dd
Merge pull request #7159 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-11-03 10:14:42 +05:30
MicroDev
fe30c0ee9f
Merge pull request #7163 from jepler/removed-alternate-name
This compatibility name has been removed in 8.x
2022-11-03 10:12:30 +05:30
Jeff Epler
91da267a87
Pin python version 3.10 for builds
Python 3.11 started to roll out to github actions, and .. it doesn't work.
This MAY affect just the espressif build, but I'm pinning it back at 3.10
for all builds.

Typical failure, during "Run $IDF_PATH/tools/idf_tools.py --non-interactive install required"
shows a lot of failures building gevent:
```
...
Collecting gevent<2.0,>=1.2.2
  Downloading gevent-1.5.0.tar.gz (5.3 MB)
...
  Building wheel for gevent (pyproject.toml): finished with status 'error'
...
      src/gevent/_greenlet_primitives.c:216:12: fatal error: longintrepr.h: No such file or directory
        216 |   #include "longintrepr.h"
            |            ^~~~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
```

I notice that gevent is pinned at <2.0 while the current version is 22.10.2!
This is a dependency of gdbgui==0.13.2.0, which is installed by esp-idf
pinned at that version.
2022-11-02 19:23:52 -05:00
Jeff Epler
1f6cd7bfac
This compatibility name has been removed in 8.x 2022-11-02 17:39:34 -05:00
Hosted Weblate
505bfea897
Merge remote-tracking branch 'origin/main' 2022-11-02 20:47:56 +01:00
Jeff Epler
403a5b2681
Merge pull request #7126 from jepler/scorpio
add feather rp2040 scorpio
2022-11-02 14:47:40 -05:00
Wellington Terumi Uemura
52de6e8559
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1003 of 1003 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/
2022-11-02 10:33:26 +01:00
Rose Hooper
92803a5d58 Add note about rust to BUILDING.md 2022-10-31 20:46:18 -04:00
Jonny Bergdahl
5a2d1ef49f
Translated using Weblate (Swedish)
Currently translated at 100.0% (1003 of 1003 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/sv/
2022-10-31 14:02:34 +01: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
Dan Halbert
11a9f8d828
Merge pull request #7157 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-10-30 09:59:10 -04:00
Hosted Weblate
1d1cb1fe36
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2022-10-30 11:24:25 +01:00
Dan Halbert
28c9aff7c4
Merge pull request #7150 from Neradoc/cleanup-boot-button-message
Change boot button message to an independent sentence
2022-10-30 06:24:16 -04:00
Neradoc
8f82db5b22 define out the safe mode message if none 2022-10-30 03:55:59 +01:00
Dan Halbert
99081ead61
Merge pull request #7152 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-10-29 22:17:41 -04:00
Neradoc
0aa41fa92e change BOARD_USER_SAFE_MODE_ACTION into a separate sentence 2022-10-30 01:55:42 +02:00
Neradoc
934d2a7004 remove duplicate press boot button, it's already the default 2022-10-30 01:52:17 +02:00
Jonny Bergdahl
c6cfb031d0
Translated using Weblate (Swedish)
Currently translated at 100.0% (1005 of 1005 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/sv/
2022-10-30 00:00:38 +02:00
Wellington Terumi Uemura
3f2e8feb5c
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1005 of 1005 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/
2022-10-30 00:00:37 +02:00
Dan Halbert
ded134c346 store wake_alarm in a static object 2022-10-29 16:26:36 -04:00
Hosted Weblate
ec7df0d17c
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2022-10-29 20:16:41 +02:00
Hosted Weblate
62f1470a1c
Merge remote-tracking branch 'origin/main' 2022-10-29 20:16:39 +02:00
Jonny Bergdahl
16eb601caa
Translated using Weblate (Swedish)
Currently translated at 100.0% (1004 of 1004 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/sv/
2022-10-29 20:16:38 +02:00
Wellington Terumi Uemura
2893ab3557
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1004 of 1004 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/
2022-10-29 20:16:38 +02:00
Dan Halbert
6a38c42976
Merge pull request #7142 from CDarius/m5stack_atom_lite
M5stack atom lite
2022-10-29 14:16:30 -04:00
Dan Halbert
a064b52ad7
CIRCUITPY_ESP32_CAMERA, not CIRCUITPY_USB_CAMERA 2022-10-29 10:13:11 -04:00
Dan Halbert
b89074d0d6
Turn off CIRCUITPY_USB_CAMERA for m5stack_atom_lite 2022-10-29 09:27:55 -04:00
Dan Halbert
2ffd16a10c
Update mpconfigboard.mk 2022-10-29 09:27:09 -04:00
CDario
19fd9107a2 Merded with main branch 2022-10-29 07:46:54 +00:00
CDarius
7282bd9c9a
Removed boilerplate already handled by MP_WEAK definitions
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2022-10-29 09:34:45 +02:00
Dan Halbert
a0f389e28c
Merge pull request #7146 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-10-28 23:51:30 -04:00