circuitpython/ports/atmel-samd
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
..
asf4@84f56af132
asf4_conf Merge pull request #4716 from tyomitch/main 2021-05-08 08:47:29 -05:00
bindings/samd Tweak black_bindings 2022-09-30 11:18:13 -05:00
boards Add Bangle.js 2, JDI memory displays and ACeP epd 2023-02-15 15:03:40 -08:00
common-hal Add Bangle.js 2, JDI memory displays and ACeP epd 2023-02-15 15:03:40 -08:00
freetouch@b6859a349e
libs Use libgcc from Arch on SAMD21 (it's smaller.) 2022-08-04 16:33:41 -07:00
modules run code formatting script 2021-03-15 19:27:36 +05:30
peripherals@baca4c0843 Use memory fence when disabling cache to avoid -O2 problems 2022-12-29 19:49:40 -05:00
sd_mmc codeformat: Fix filename matching 2021-04-30 10:48:08 -05:00
supervisor samd21: port_disable_tick() should disable event channel 2022-11-15 21:52:12 -05:00
tools Remove busio.OneWire and bitbangio.OneWire 2022-05-24 12:26:33 -04:00
.gitattributes
audio_dma.c fix SAMD21 PDMIn DMA event use 2021-10-19 13:18:14 -04:00
audio_dma.h fix SAMD21 PDMIn DMA event use 2021-10-19 13:18:14 -04:00
background.c Add Bangle.js 2, JDI memory displays and ACeP epd 2023-02-15 15:03:40 -08:00
background.h
eic_handler.c working samd deep sleep timealarm and pinalarm (sketchy) 2021-09-29 11:44:15 -06:00
eic_handler.h reworked fake sleep. functional for pin and time 2021-10-09 11:44:10 -06:00
ld_defines.c modifications by pre-commit 2021-03-15 18:11:00 -05:00
Makefile SAM E54 Xplained devkit hardfaults at start with -O2 2022-11-29 13:05:39 -06:00
mpconfigport.h squeeze some specialized builds 2022-06-10 16:24:52 -04:00
mpconfigport.mk alphabetize 2022-12-09 14:12:43 -06:00
mphalport.c rework auto-reload delay logic 2022-03-11 14:03:04 -05:00
mphalport.h modifications by pre-commit 2021-03-15 18:11:00 -05:00
qstrdefsport.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
README.rst
reset.c
reset.h
samd_peripherals_config.h
shared_timers.c Reset timers separate from pwmio 2021-08-11 09:58:31 -07:00
shared_timers.h Reset timers separate from pwmio 2021-08-11 09:58:31 -07:00
timer_handler.c modifications by pre-commit 2021-03-15 18:11:00 -05:00
timer_handler.h Reset timers separate from pwmio 2021-08-11 09:58:31 -07:00

SAMD21 and SAMD51
==================

This port supports many development boards that utilize SAMD21 and SAMD51 chips. See
https://circuitpython.org/downloads for all supported boards.


Building
--------

For build instructions see this guide: https://learn.adafruit.com/building-circuitpython/


Debugging
---------

For debugging instructions see this guide: https://learn.adafruit.com/debugging-the-samd21-with-gdb


Port Specific modules
---------------------

.. toctree::
    ../../shared-bindings/samd/index