Commit Graph

1170 Commits

Author SHA1 Message Date
Radomir Dopieralski
59ded1131f Take display offsets for PewPew M4 from the bootloader config
The PewPew M4 devices come with different displays, which require
different offsets. Since the information about offsets is saved in
the bootloader, we can take it from there.
2020-01-06 14:24:30 +01:00
Marius-450
3ad3d49959 changes only for monster m4sk 2020-01-04 12:32:49 -05:00
Dan Halbert
242d572470 wip 2020-01-03 10:24:07 -05:00
Jeff Epler
bd8650d35b samd/peripherals: take upstream update 2020-01-02 17:55:50 -06:00
Dan Halbert
32b82032a1
Merge pull request #2423 from pewpew-game/pewpew-m4-update
Update the PewPew M4 board and circuitpython-stage
2020-01-01 13:59:02 -05:00
Scott Shawcroft
0223589e6c
Fix default UART too 2019-12-30 11:34:51 -08:00
Scott Shawcroft
e1d026f815
Update pins.c 2019-12-30 11:33:04 -08:00
hathach
62c4028cde
sync with https://github.com/hathach/tinyusb/pull/246
should fix slow enumeration
2019-12-26 23:04:16 +07:00
Jeff Epler
5aa3e3eabb samd/peripherals: update 2019-12-24 09:36:19 -06:00
Radomir Dopieralski
b06057395b Update PewPew M4
PewPew M4 now has the pew.py added to its frozen libraries. Some
features needed to be disabled to make room for that.
2019-12-23 18:37:36 +01:00
Scott Shawcroft
f60b6481e0
Turn off gamepad on cpx crickit 2019-12-20 12:14:27 -08:00
Scott Shawcroft
b859e2b710
Remove re from CPX Displayio build to make space. 2019-12-20 11:43:56 -08:00
Jeff Epler
d31a387ace circuitplayground_express_displayio: reduce inlining to make .ko translation fit 2019-12-19 16:11:29 -06:00
ndgarage
16688180c6 add-ndbit6 2019-12-19 07:17:43 -07:00
Dan Halbert
81581b345c Increase CPX stack size slightly 2019-12-16 17:25:22 -05:00
KalbeAbbas
89ed64157d
Merge branch 'master' into master 2019-12-16 13:25:44 +05:00
KalbeAbbas
87dc9bee8b
Update mpconfigboard.mk 2019-12-16 12:25:51 +05:00
KalbeAbbas
6f6d6c01ab
Update mpconfigboard.mk 2019-12-16 12:18:16 +05:00
Dan Halbert
e11fabd5e0 moved nrf internal filesystem to just below bootloader 2019-12-12 14:57:23 -05:00
Dan Halbert
ae64a669dd address review comments 2019-12-11 15:43:06 -05:00
Dan Halbert
d9ca4c9a60 fix build failures 2019-12-10 22:39:44 -05:00
Dan Halbert
c6221c5956 Remove no-longer-used nrf and atmel-samd .ld files 2019-12-10 21:22:17 -05:00
Dan Halbert
68ae47907c merge from upstream 2019-12-10 21:04:46 -05:00
Dan Halbert
013c840862 working on all ports 2019-12-10 20:27:30 -05:00
Jeff Epler
a08d9e6d8e audiocore: Add MP3File using Adafruit_MP3 library 2019-12-10 14:03:06 -06:00
Jeff Epler
1905d0746d samd: neopixel: Fix neopixels after #2297
This adapts the "inline assembler" code from the UF2 bootloader, which
in turn is said to be adapted from the arduino neopixel library.

This requires the cache remain ON when using M0, and be turned OFF on M4
(determined by trial and error)

Testing performed on a Metro M4:
 * measured timings using o'scope and found all values within
   datasheet tolerance.
 * Drove a string of 96 neopixels without visible glitches
 * on-board neopixel worked

Testing performed on a Circuit Playground Express (M0):
 * Color wheel code works on built-in neopixels
 * Color wheel code works on 96 neopixel strip

As a bonus, this may have freed up a bit of flash on M0 targets. (2988 ->
3068 bytes free on Trinket M0)

Closes: #2297
2019-12-07 19:19:45 -06:00
Dan Halbert
d628d2a261 atmel-samd working 2019-12-06 15:18:20 -05:00
Dan Halbert
40434d6919 wip 2019-12-05 22:45:53 -05:00
Scott Shawcroft
fce81e6868
Merge pull request #2297 from jepler/tick-refactor
Call background tasks only once per ms
2019-12-02 16:45:51 -08:00
Jeff Epler
002f5c0f1c samd: trinket_m0: make board fit again 2019-12-02 08:25:48 -06:00
Jeff Epler
899202aca7
Merge branch 'master' into gcc9 2019-12-02 07:27:03 -06:00
Jeff Epler
95d9c49e43 Merge remote-tracking branch 'origin/master' into tick-refactor 2019-11-29 11:27:09 -06:00
Jeff Epler
d843156a5e samd: Consolidate small build optimization flags
.. inline-unit-growth was the same across all boards, and the highest
max-inline-insns-auto parameter was shared across 2 of 5 boards, so it's
worth a little work to follow the DRY principle
2019-11-29 10:51:16 -06:00
Dan Halbert
dd6dfeb30a Squeeze pyruler zh_Latn_pinyin 2019-11-27 14:47:35 -05:00
Dan Halbert
b32a9192df make UART.write be blocking on SAMD; add timeout property 2019-11-27 13:05:29 -05:00
Dan Halbert
e560b419f8
Merge pull request #2325 from sarfata/sarfata/add-shirtty-master
Add shIRtty board
2019-11-26 15:23:56 -05:00
Dan Halbert
97d90c6039
Merge pull request #2329 from theacodes/set-winterbloom-sol-usb-name
Set USB_INTERFACE_NAME for winterbloom_sol
2019-11-26 15:17:14 -05:00
Thea Flowers
e77046d49b
Set USB_INTERFACE_NAME for winterbloom_sol 2019-11-26 10:59:12 -08:00
Thomas Sarlandie
2647ea0754 fix: disable touchio to save some space 2019-11-26 19:26:18 +01:00
Scott Shawcroft
58ad38a88e
Remove DotStar from pIRkey M0 for now to free up space
Once we use PixelBuf, the library will be much smaller.
2019-11-26 09:31:44 -08:00
Jeff Epler
82f55dc046 atmel-samd: reduce inlining on constrained boards again
pewpew10, pirkey_m0, and uchip all fit now.  However, pirkey_m0
now has just 76 bytes flash available.
2019-11-26 08:50:55 -06:00
Jeff Epler
3ed6de7baf atmel-samd: reduce inlining on pyruler again
By tweaking the optimizer flags further, this build also fits
2019-11-26 08:50:55 -06:00
Jeff Epler
2e4a6b94e7 atmel-samd: get most constrained m0 builds to work again
By tweaking the optimizer flags, we can get back a few hundred bytes
and allow these builds to work with the gcc9 compiler.
2019-11-26 08:50:45 -06:00
Thomas Sarlandie
11dc572bce feature: our own PID - thanks @ladyada 2019-11-25 21:56:42 +01:00
Thomas Sarlandie
fc71ed9789 add shirtty board - hackaday supercon 2019 addon 2019-11-25 17:44:41 +01:00
Dan Halbert
1ccb7b4c5e cosmetic commit, mostly to re-run 2019-11-22 16:30:10 -05:00
Dan Halbert
13375d16f1 change mpconfigport.mk files so they can be overriden by mpconfigboard.mk 2019-11-22 15:44:51 -05:00
Jeff Epler
77b78d7fb9 Merge remote-tracking branch 'origin/master' into tick-refactor 2019-11-22 14:28:51 -06:00
Dan Halbert
e18d3e0f76 Merge branch 'master' into m4-network-ps2io 2019-11-22 15:02:52 -05:00
Dan Halbert
1a62a9cb17 remove network from kicksat_sprite 2019-11-22 14:02:44 -05:00
Dan Halbert
2e9aa38700 turn off network in pewpew_m4 2019-11-22 13:49:33 -05:00
Dan Halbert
1d411d2874 Merge remote-tracking branch 'adafruit/master' into testing-fixes 2019-11-22 11:55:34 -05:00
Dan Halbert
228a619af5 enable network, wiznet5k, and ps2io by default on M4 2019-11-22 10:59:27 -05:00
wallarug
fce7b89087 removed Robo HAT MM1 M0 board. 2019-11-20 21:34:24 +11:00
ndgarage
b3d7467719 add-ndbit6 2019-11-19 14:52:09 -07:00
Jeff Epler
40a47d41df samd: background: Allow monitoring time taken in background task
If you define MONITOR_BACKGROUND_TASK, then a physical output pin
(Metro M4 Express's "SCL" pin by default) will be set HIGH while in
the background task and LOW at other times
2019-11-18 11:01:24 -06:00
Jeff Epler
7f744a2369 Supervisor: move most of systick to the supervisor
This code is shared by most parts, except where not all the #ifdefs
inside the tick function were present in all ports.  This mostly would
have broken gamepad tick support on non-samd ports.

The "ms32" and "ms64" variants of the tick functions are introduced
because there is no 64-bit atomic read.  Disabling interrupts avoids
a low probability bug where milliseconds could be off by ~49.5 days
once every ~49.5 days (2^32 ms).

Avoiding disabling interrupts when only the low 32 bits are needed is a minor
optimization.

Testing performed: on metro m4 express, USB still works and
time.monotonic_ns() still counts up
2019-11-18 11:01:23 -06:00
Cedar Grove Maker Studios
e7df288a34
add USB interface description
... to "StringCarM0Ex"
2019-11-16 16:40:40 -08:00
Hierophect
81223c76bd revert error 2019-11-15 13:04:25 -05:00
Hierophect
2c6781f74d move neopixel_in_use flag to shared-bindings 2019-11-15 12:59:52 -05:00
Hierophect
de5691acf5 Add never_reset and reset to pin common hal, adjust files 2019-11-15 12:47:00 -05:00
KalbeAbbas
8134ceec83
Update pins.c 2019-11-14 23:16:55 +05:00
KalbeAbbas
799770926b
Update pins.c 2019-11-14 18:51:01 +05:00
KalbeAbbas
949f87fd25
Update pins.c 2019-11-14 18:50:26 +05:00
KalbeAbbas
3db7f2798f updated 2019-11-14 16:34:08 +05:00
☒ Bjarke Gotfredsen
d745c1023e
Support for XinaBox CC03 and CS11
CC03 is a ATSAMD21G18 Cortex-M0+ breakout in xChips format. CS11 is the same, but with a SD Card Interface. 
https://xinabox.cc/products/cc03
https://xinabox.cc/products/cs11
2019-11-12 12:48:31 +02:00
Thea Flowers
c7195c4bc5
Allow boards to enable the micropython.native decorator
Adds the `CIRCUITPY_ENABLE_MPY_NATIVE` for `mpconfigboard.mk` that enables
the `micropython.native` decorator.
2019-11-05 14:27:53 -08:00
Thea Flowers
73989dbcaf Add board configuration for Winterbloom Sol 2019-11-04 23:11:42 -08:00
Scott Shawcroft
cd3fcc87ab
Merge pull request #2252 from dhalbert/cpb-two-i2c
nrf: allocate two I2C on CPB
2019-11-03 13:15:36 -08:00
Dan Halbert
85a648224f Check for no pullups on I2C on nrf; give arduino nano 33 ble two I2C devices 2019-11-02 22:47:03 -04:00
brentru
2f04c5891f flip it around 2019-10-31 14:11:50 -04:00
brentru
ab3da3071c flip MADCTL BGR bit to reflect RGB colors 2019-10-31 10:11:47 -04:00
ladyada
d2b613134d we should use native rotation, and tweak madctl (not done yet) 2019-10-29 22:53:44 -04:00
ladyada
1e869d1334 switch to 8-bit mode - tested on hardware! 2019-10-29 21:14:45 -04:00
Dan Halbert
1505da784f wip 2019-10-28 18:15:02 -04:00
Dan Halbert
56ac41fabf
Merge pull request #2240 from theacodes/fix-2086
Track unadjusted PWM duty cycle to avoid accumulating conversion errors
2019-10-28 14:50:01 -04:00
Thea Flowers
4b742f88d9
Fix spelling 2019-10-25 10:50:27 -07:00
Thea Flowers
4fdf518251
Track unadjusted PWM duty cycle to avoid accumulating conversion errors
Fixes #2086

When the frequency of a `PWMOut` is change it re-sets the PWM's duty cycle as
well, since the registers have to be re-calculated based on the new frequency.
Unfortunately, `common_hal_pulseio_pwmout_get_duty_cycle`
will return a value very close to, but not exactly, the value passed to `common_hal_pulseio_pwmout_set_duty_cycle`. If the frequency is modified
without the calling code also re-setting the duty cycle then the duty cycle
will decay over time. This fixes that problem by tracking the unadjusted duty
cycle and re-setting the duty cycle to that value when the frequency is changed.
2019-10-23 14:34:14 -07:00
ProductDev
4cd5571203 Adds builds for sparkfun_qwiic_micro with and without flash 2019-10-23 15:05:46 -06:00
Dan Halbert
7b79ac3739 Parameterize linker script 2019-10-20 23:50:12 -04:00
Kamil Tomaszewski
96756b3945 Add functions to get top and limit stack 2019-10-18 11:04:45 +02:00
wallarug
8f2e5990db
Changed to follow standard that Pad 0 is always TX 2019-10-17 18:02:05 +11:00
Scott Shawcroft
63790f01f8
Merge pull request #2218 from CedarGroveStudios/master
Definitions for StringCar M0 Express and AT25SF161-SSHD-T 2MiB SPI flash chip
2019-10-15 09:46:39 -07:00
Cedar Grove Maker Studios
bd608e0807
remove placeholder 2019-10-14 11:56:53 -07:00
Cedar Grove Maker Studios
b04a218bbc
initial load of stringcar m0 express defs 2019-10-14 11:56:18 -07:00
Cedar Grove Maker Studios
44ebc4c95d
establish stringcar m0 express definitions 2019-10-14 11:55:22 -07:00
Dan Halbert
c1ab2486f9 return chip vcc value 2019-10-12 15:42:15 -04:00
Chris Osterwood
137a4f8a5d Added new flash SKU for production hardware 2019-10-07 14:50:39 -04:00
Kamil Tomaszewski
7aefcc449a Add an alternative way to number the USB endpoints
Two options available:
- relative numbering (USB_RELATIVE_EP_NUM = 1) - default
- absolute numbering (USB_RELATIVE_EP_NUM = 0) - new!
2019-10-07 12:31:42 +02:00
Scott Shawcroft
cdc116291b
Merge pull request #2177 from wallarug/walla/robohatmm1-production
Robo HAT MM1 - Fixes after testing
2019-09-26 10:44:55 -07:00
arturo182
21f8c3e40a serpente: Update PID and enable as many modules as we can fit 2019-09-26 17:22:18 +02:00
wallarug
3c99a23adb fix spi 2019-09-26 21:47:36 +10:00
wallarug
533a5bc7a3 fixed SPI on M4 2019-09-26 21:43:52 +10:00
wallarug
5cd10b3ba0 updated robohatmm1_m0 2019-09-26 20:02:09 +10:00
wallarug
39265fccf3 included a version number 2019-09-26 19:22:51 +10:00
wallarug
db9495b04b updated board name 2019-09-26 19:21:53 +10:00
wallarug
08b0f80879 updated board name 2019-09-26 19:21:24 +10:00
wallarug
b7e8a031d0 remove frozen busio library 2019-09-26 19:19:54 +10:00
wallarug
ff13b6f682 updated pins.c 2019-09-26 19:18:50 +10:00
wallarug
70860e1352 robohatmm1 removed uart and put in correct order 2019-09-22 19:47:44 +10:00
Melissa LeBlanc-Williams
9a74bf929b Added TFT pins to HalloWing M4 for code compatibility 2019-09-19 14:50:10 -07:00
Melissa LeBlanc-Williams
b7598f7058 Merge branch 'master' of https://github.com/adafruit/circuitpython 2019-09-19 14:20:28 -07:00
Scott Shawcroft
0fed65e7d2
Merge remote-tracking branch 'adafruit/master' into dac51 2019-09-19 12:21:54 -07:00
Melissa LeBlanc-Williams
341428b4da Added SPEAKER pin to HalloWing M4 for code compatibility 2019-09-19 11:23:37 -07:00
Melissa LeBlanc-Williams
8dfb2237d9 Added TOUCH pins to HalloWing M4 for code compatibility 2019-09-19 10:40:13 -07:00
Scott Shawcroft
fc90c942f5
Add custom CPX build for display support 2019-09-17 10:40:07 -07:00
jepler
dffedd7c86 samd: peripherals: update submodule reference 2019-09-16 21:48:31 -05:00
Scott Shawcroft
aa9b57fc81
Merge pull request #2154 from arturo182/master
Add support for Serpente boards
2019-09-16 09:20:17 -07:00
arturo182
e1679acaec
Set as small build regardless of language 2019-09-16 11:51:46 +02:00
jepler
61698eb5d8 AnalogOut / AudioOut: Copy settings from Arduino
Make changes in asf4_conf even though I think in these cases the
"peripherals" submodule is running the show.

Arduino clocks the DAC at 12MHz but uses the CCTRL setting for
clocking < 1.2MHz (100kSPS).

A fresh clock (6) is allocated for the new 12MHz clock.  This matches
the Arduino value, though not the GCLK index.

Modify other settings to more closely resemble Arduino.

In AudioOut, actually clock the waveform data from the timer we set up
for this purpose.

This gives good waveforms when setting AnalogOut full-scale in a loop,
but the rise/fall of waveforms that come from AudioOut are still erratic.
Weirdly, if AudioOut limits its range even slightly (e.g., to 1000..64000)
then the erratic

Note that this will require https://github.com/adafruit/samd-peripherals/pull/26
to be accepted for the submodule update here to work.
2019-09-15 11:30:49 -05:00
Kattni Rembor
c94310411b Update board def, enable touchio 2019-09-14 21:19:35 -04:00
arturo182
28bb901d1e Add support for Serpente boards 2019-09-14 16:06:28 +02:00
Dan Halbert
b8200d7295 fix atmel-samd filesystem_tick'ing; clear_temp_status() should check for status indicator in use 2019-09-09 23:17:52 -04:00
Scott Shawcroft
8066810abb
Merge pull request #2091 from jepler/samd-dma-tracking
Samd dma tracking
2019-09-05 11:27:59 -07:00
Scott Shawcroft
c5caacafdd
Merge pull request #2100 from pewpew-game/pewpew_m4
Add support for PewPew M4 board
2019-09-05 11:26:47 -07:00
Radomir Dopieralski
d50ed3b6e7 Add support for PewPew M4 board 2019-09-05 10:50:33 +02:00
Dan Halbert
f3af2a6fb7 Merge remote-tracking branch 'adafruit/master' into choose-usb-devices-xac 2019-09-04 21:56:13 -04:00
Dan Halbert
195de97c67 use only one endpoint pair for MSC except on SAMD21 2019-09-04 21:45:16 -04:00
Dan Halbert
fca440fb66
Merge pull request #2113 from tannewt/displayio_hidden
Add .hidden to TileGrid and Group
2019-09-04 15:48:00 -04:00
Scott Shawcroft
7951646b9a
Disable bitbangio on uGame10 2019-09-04 11:49:47 -07:00
sommersoft
c4d6f4f536 disable 'audiomixer' for all M0 boards 2019-09-01 17:39:20 -05:00
sommersoft
8120f5cdad Merge branch 'master' of https://github.com/adafruit/circuitpython into mixer_voice 2019-08-29 22:14:53 -05:00
Scott Shawcroft
9730d4aa1c
Merge remote-tracking branch 'adafruit/4.1.x' into hallowing_m4_5.x 2019-08-29 14:38:16 -07:00
Scott Shawcroft
0aa5507c4c
add additional pin aliases 2019-08-29 13:41:28 -07:00
Scott Shawcroft
84839de56f
Hallowing M4 2019-08-29 10:34:46 -07:00
jepler
30a9346373 samd: audio_dma: Track channel allocation
Previously, we depended on allocated channels to always be
"dma_channel_enabled".  However, (A) sometimes, many operations
would take place between find_free_audio_dma_channel and
audio_dma_enable_channel, and (B) some debugging I did led me to believe
that "dma_channel_enabled" would become false when the hardware ended
a scheduled DMA transaction, but while a CP object would still think it
owned the DMA channel.

((B) is not documented in the datasheet and I am not 100% convinced that
my debugging session was not simply missing where we were disabling the
channel, but in either case, it shows a need to directly track allocated
separately from enabled)

Therefore,
 * Add audio_dma_{allocate,free}_channel.
   * audio_dma_free_channel implies audio_dma_disable_channel
   * track via a new array audio_dma_allocated[]
 * clear all allocated flags on soft-reboot
 * Convert find_free_audio_dma_channel to audio_dma_allocate_channel
   * use audio_dma_allocated[] instead of dma_channel_enabled() to check
     availability
 * remove find_free_audio_dma_channel
 * For each one, find a matching audio_dma_disable_channel to convert
   to audio_dma_free_channel

Closes: #2058
2019-08-28 17:00:22 -05:00
jepler
0b00787b4d samd: AudioOut: ensure stopped before deinit
.. otherwise, a sequence like
    >>> a = audioio.AudioOut(board.A0)
    >>> a.play(sample, loop=True)
    >>> a.deinit()
would potentially leave related DMA channel(s) active.
2019-08-28 16:43:55 -05:00
Scott Shawcroft
0876d5c4ad
Disable bitbangio on Itsy M0
Also, switch CIRCUITPY_BITBANG_APA102 to makefile setting so it can alter included files
2019-08-27 15:21:47 -07:00
sommersoft
696117b048 disable audiomixer on boards it doesn't fit on 2019-08-25 14:53:34 -05:00
Scott Shawcroft
7324b70a7c
Rework based on Dan's review 2019-08-23 15:27:21 -07:00
Scott Shawcroft
b992ca80e7
Rejigger builds to fit under 50 minute limit 2019-08-22 20:29:58 -07:00
Scott Shawcroft
72e7ffa324
More cleanup 2019-08-22 16:16:09 -07:00
Scott Shawcroft
fd8050b369
Turn off features to make room for ePaper 2019-08-22 15:19:45 -07:00
Scott Shawcroft
9993a99906
Add initial Monster M4SK build 2019-08-22 14:24:32 -07:00
Scott Shawcroft
3a98de1236
Add reset() to display busses to detect whether it works 2019-08-22 14:23:33 -07:00
Scott Shawcroft
36a23e0fe3
Rework refresh API and factor common display stuff out
NOT TESTED! Just compiles

Fixes #1691
2019-08-22 14:23:27 -07:00
Scott Shawcroft
c247e7df9c
Begin refresh rework. 2019-08-22 14:08:33 -07:00
Scott Shawcroft
70680d5b22
EPaper displays work mostly. 2019-08-22 14:08:33 -07:00
Dan Halbert
7cc15e56c8 make translate 2019-08-22 15:20:23 -04:00
Scott Shawcroft
6aa311aabd
Merge pull request #2027 from dastels/displayio_fill_area
To displayio.Display: expose fill_area and add a property for rotation
2019-08-21 23:48:21 -07:00
Dave Astels
d547d59cba Merge remote-tracking branch 'adafruit/master' into displayio_fill_area 2019-08-21 15:02:51 -04:00
Dave Astels
dcf36db263 Make room 2019-08-21 14:46:10 -04:00
Dan Halbert
6e3a6d0ac5 typo in IncrementalEncoder.c 2019-08-20 16:23:17 -04:00
Dan Halbert
e00696de7f merge from upstream and make translate 2019-08-20 13:06:23 -04:00
Dan Halbert
e3dc5e3a66 Merge remote-tracking branch 'adafruit/master' into run-background-tasks
Restore dependencies indicated by indentation in circuitpy_mpconfig.h.
2019-08-19 12:41:20 -04:00
Dan Halbert
e2a4c76a37 make nrf touchio be generic: now available for SAMD51 too 2019-08-18 08:44:10 -04:00
Scott Shawcroft
583392a5c6
Merge pull request #2046 from brentru/add-pyportal-titano
Add PyPortal Titano
2019-08-12 16:01:10 -07:00
Jeff Epler
d9ee2d28a0 atmel-samd: Use RUN_BACKGROUND_TASKS 2019-08-11 08:53:02 -05:00
brentru
5a8846d33c remove cruft from prv board 2019-08-08 15:12:01 -04:00
brentru
f87f48ab88 adding pyportal titano board definition 2019-08-08 14:56:28 -04:00
Chris Osterwood
d5658860aa Added pin definition for battery change enable. Pin used to switch in a 10 ohm resistor during Hub reset & strapping. 2019-08-08 14:39:50 -04:00
Chris Osterwood
fb2712410e Merge branch 'master' into capablerobot-usbhub 2019-08-08 14:14:23 -04:00
Jeff Epler
33b949abfa samd: audio_dma, audio_background: Gate with CIRCUITPY_ defines
Some ports which actually don't have audioio or audiobusio were still
calling into audio_dma_background().  This wasn't an error until
the assignment to audio_dma_state in audio_dma_stop was added, though
it's not clear why.
2019-08-07 21:29:24 -05:00
Jeff Epler
500d1bb168 samd: audio_dma.c: Remove exceptions, just return early
These were most useful debugging, but because this code can be reached
"outside of the VM", it's not actually permitted to throw exceptions here.
2019-08-07 20:20:36 -05:00
brentru
1d4700cb6c add pindefs for tft and tft control 2019-08-07 18:29:20 -04:00
brentru
8f6eac98f3 add defs for pyportal titano 2019-08-07 17:10:31 -04:00
Jeff Epler
39c64bf83c samd: audio_dma_stop: don't free invalid channel
audio_dma_stop can be reached twice in normal usage of AudioOut.

This may bear further investigation, but stop it here, by making the
function check for a previously freed channel number.  This also prevents
the event channel from being disabled twice.

The first stop location is from audio_dma_get_playing, when the buffers
are exhausted; the second is from common_hal_audioio_audioout_stop when
checking the 'playing' flag.
2019-08-06 22:00:31 -05:00
Jeff Epler
8b717955ba samd: audio_dma: wrap dma_{en,dis}able_channel and add error checking
It turns out the "disable" error will fire in practice, we'll fix that
next.
2019-08-06 22:00:31 -05:00
Jeff Epler
6253f11503 samd: audio_dma_stop: Clear out audio_dma_state[]
As identified in #1908, when both AudioOut and PDMIn are used, hard
locks can occur.  Because audio_dma_stop didn't clear audio_dma_state[],
a future call to audio_dma_load_next_block could occur using a DMA
object which belongs to PDMIn.

I believe that this Closes: #1908 though perhaps it is still not the full
story.

Testing performed: Loaded a sketch similar to the one on #1908 that
tends to reproduce the bug within ~30s.  Ran for >300s without hard
lock.  HOWEVER, while my cpx is no longer hard locking, it occasionally
(<1 / 200s) announces
    Code done running. Waiting for reload.
(and does so), even though my main loop is surrounded by a 'while True:'
condition, so there are still gremlins nearby.
2019-08-06 21:34:21 -05:00
Scott Shawcroft
eee759455a
Merge pull request #2018 from keith-packard/snekboard
Add board support for keithp.com SnekBoard
2019-07-31 16:38:51 -07:00
Scott Shawcroft
366fdcce18
Merge pull request #2011 from tannewt/ssd1322
Add knobs for SSD1322 and two displayio fixes.
2019-07-30 14:15:37 -07:00
Scott Shawcroft
9dd56b1566
Merge branch 'master' into snekboard 2019-07-30 14:12:08 -07:00
wallarug
ecfffac3a8
Delete samd51x19-bootloader-external-flash-crystalless.ld 2019-07-30 19:48:35 +10:00
wallarug
ff6ae1aefb
Update mpconfigboard.mk to use standard linker file 2019-07-30 19:13:33 +10:00
Keith Packard
c6e4ddc88a boards/snekboard: Delete SPI object reference
Snekboard does not expose any pins for SPI to the user, so delete
the SPI object reference as that won't work.

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:45:52 -07:00
Keith Packard
9a37c8a4b3 boards/snekboard: Add pin aliases for UART and I2C
Allow users to use TX/RX and SDA/SCL names.

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:45:06 -07:00
Keith Packard
4387ecfdfb Update snekboard PID to official value
Snekboard has been assigned the following PIDs:

	PID 0x004D  # bootloader
	PID 0x804D  # arduino
	PID 0x804E  # circuitpython

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:15:18 -07:00
Keith Packard
326df70ac2 Fix snekboard names
Manufacturer -- keithp.com
Product -- snekboard

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:15:18 -07:00
Keith Packard
56f710f64f Add board support for keithp.com SnekBoard
This is another SAMDG2118A design with built-in 9V motor controllers
that are designed to be used with Lego PowerFunctions devices.

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:14:37 -07:00
wallarug
dc1eb73ee7
Merge branch 'master' into wallarug-robohat 2019-07-29 21:53:49 +10:00
wallarug
8974c7e843
Added BUTTON to pins.c 2019-07-29 16:37:53 +10:00
wallarug
9e0bea405d
Added BUTTON to pins.c 2019-07-29 16:37:21 +10:00
wallarug
4d30efdc2a
Updated pins.c for GROVE. 2019-07-29 16:29:48 +10:00
wallarug
8838e25cb2
Update pins.c 2019-07-29 16:28:35 +10:00
sommersoft
8eab946c5b
Merge pull request #2003 from C47D/travis_check_new_boards
Add check to travis to make sure new boards are built, fix #1886
2019-07-28 22:41:59 -05:00
wallarug
0f30070d58 updated naming schema to match other boards 2019-07-27 17:44:42 +10:00
wallarug
b06fa48735 updated a few files 2019-07-27 16:59:07 +10:00
wallarug
9c57f52d1e updated pins.c for robohat 2019-07-27 16:56:03 +10:00
wallarug
24e84adc6d further robohat cleanups 2019-07-27 16:38:47 +10:00
wallarug
e2b83e2dd9 minor changes robohat d21 2019-07-27 16:36:13 +10:00
wallarug
36008de2ed added custom ld file for samd51 no crystal, ext flash 2019-07-27 16:29:30 +10:00
wallarug
eda3423e35 updated to v1.7 board (samd51) 2019-07-27 16:27:41 +10:00
Scott Shawcroft
c61c874a6d
Reduce feather_m0_supersized build size
Make it match feather_m0_express
2019-07-26 00:31:41 -07:00
Scott Shawcroft
a87094e01f
Turn off GC opt to save space on Trinket Haxpress 2019-07-25 22:56:46 -07:00
Scott Shawcroft
4e7de436b4
Update constructors of boards with displays 2019-07-25 22:48:11 -07:00
Jeff Epler
6b44e40ee8 audiocore: Factor from audioio
When nrf pwm audio is introduced, it will be called `audiopwmio`.  To
enable code sharing with the existing (dac-based) `audioio`, factor
the sample and mixer types to `audiocore`.

INCOMPATIBLE CHANGE: Now, `Mixer`, `RawSample` and `WaveFile` must
be imported from `audiocore`, not `audioio`.
2019-07-25 06:44:26 -05:00
Dan Halbert
82ab998cd5
Merge pull request #1998 from tannewt/monocolor
Add support for grayscale displays
2019-07-22 22:30:28 -04:00
Scott Shawcroft
7cb2aa2d62
Merge pull request #1986 from AnthonyDiGirolamo/patch-1
Update Arch Linux ARM compiler installation instructions
2019-07-22 19:29:53 -07:00
Scott Shawcroft
1d1b8703b6
Review feedback including NO_BRIGHTNESS_COMMAND macro 2019-07-19 16:11:13 -07:00
Scott Shawcroft
b9b9ef227f
Turn off bitbanging on Hallowing to save code space. 2019-07-19 16:10:33 -07:00
Scott Shawcroft
cdfc169ab6
Correct typo in line meant to turn off frequencyio on M0 which saves 2k code space. 2019-07-19 16:10:32 -07:00
Scott Shawcroft
6797ec6ed3
Add support for grayscale displays that are < 8 bit depth.
This also improves Palette so it stores the original RGB888 colors.

Lastly, it adds I2CDisplay as a display bus to talk over I2C. Particularly
useful for the SSD1306.

Fixes #1828. Fixes #1956
2019-07-19 16:06:11 -07:00
Kattni Rembor
582acdaa0a Requested changes. 2019-07-09 16:12:24 -04:00
Kattni Rembor
d905958db1 Adding PyRuler to CircuitPython. 2019-07-09 16:02:39 -04:00
Scott Shawcroft
f0cf9a4e75
Merge pull request #1988 from jandjstudios/datum
Add support for boards in the datum series.
2019-07-09 09:33:13 -07:00
Scott Shawcroft
f4a64a2e80
Merge pull request #1989 from rce1086/master
Added conditional compilation around selection of TX pad candidates
2019-07-08 14:07:04 -07:00
Carl Elkins
64507207da Added conditional compilation around selection of TX pad candidates
Original code was correct for SAMD21
New code for SAMD51 only permits pad-0 for TX
2019-07-08 02:08:39 +01:00
jandjstudios
46b7575550 Initial commit to support boards in the datum series. 2019-07-06 13:41:03 -07:00
iot49
4c72a3991e updated samd and esp8266 ports 2019-07-05 10:01:51 -07:00
Anthony DiGirolamo
55f15e3c05
Update Arch Linux ARM compiler installation instructions
- Add copy-pasteable Arch Linux `arm-none-eabi-gcc` install line similar to Ubuntu example
- Add `arm-none-eabi-newlib` as a required package for Arch
- Reformat Ubuntu and Arch install code-blocks to catch the eye for the impatient

Arch Linux changed their packaging for [arm-none-eabi-gcc](https://www.archlinux.org/packages/community/x86_64/arm-none-eabi-gcc/) by creating [arm-none-eabi-newlib](https://www.archlinux.org/packages/community/any/arm-none-eabi-newlib/) as an optional package. Without it users will get errors about missing header files like:

```
In file included from asf4/samd51/include/samd51j19a.h:49,
                 from asf4/samd51/include/sam.h:38,
                 from ./mpconfigport.h:31,
                 from ../../py/mpconfig.h:45,
                 from ../../py/emitnx64.c:3:
/usr/lib/gcc/arm-none-eabi/9.1.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
    9 | # include_next <stdint.h>
      |                ^~~~~~~~~~
compilation terminated.
```
2019-07-04 11:14:50 -07:00
Chris Osterwood
97e7fea517 Change pin names to be more descriptive 2019-07-04 13:23:57 -04:00
Chris Osterwood
539502c891 Remove pin reservations. Prevents used from inside of CircuitPython code 2019-07-04 13:22:36 -04:00
Radomir Dopieralski
e45eac5016 Switch the terminal font for ugame10
I designed this really tiny, minimalist font for use on very small
displays. On uGame it lets one see the whole text that CircuitPython
prints on boot. The characters are 4x6 pixels each, and they are
optimized for legibility (large x-height, right angles, blocky shapes).

It might make sense to also use that font in other boards.
2019-07-01 23:05:07 +02:00
Scott Shawcroft
0cce7fcaa3
Merge remote-tracking branch 'adafruit/4.0.x' into merge_in_402 2019-06-27 14:06:26 -07:00
Scott Shawcroft
fe507db45f
Shrink pIRkey build down.
Rollback HID to save string space and remove board mapping for
default buses that don't exist.
2019-06-26 16:49:23 -07:00
Scott Shawcroft
7ad229ec27
Merge pull request #1958 from tannewt/pygamer_advanced
Add PyGamer Advance and fix Joystick pins
2019-06-19 12:32:36 -07:00
Scott Shawcroft
5e5252ced0
Merge pull request #1955 from pewpew-game/pygamer-stage
Add support for PyGamer to Stage library
2019-06-18 18:23:08 -07:00
Scott Shawcroft
352bf7eaf5
Add PyGamer Advance and fix Joystick pins 2019-06-18 12:22:20 -07:00
Radomir Dopieralski
5803245009 Add support for PyGamer to Stage library 2019-06-18 19:05:51 +02:00
Scott Shawcroft
2dddccb99e
Update board inits for new api. 2019-06-17 18:03:30 -07:00
brentru
ea2c068e11 COLMOD is 1 param, remove CASET/RASET in CircuitPython 2019-06-17 11:20:25 -04:00
brentru
207dc885a6 removed incorrect gamma code, looks better now 2019-06-14 16:34:30 -04:00
brentru
4092294e7c tft working init. sequence, still undersaturated 2019-06-14 16:17:05 -04:00
brentru
0bc74172a2 Add pybadge airlift, sans-tft 2019-06-14 14:46:19 -04:00
Scott Shawcroft
0b1f605a9b
Turn off gc opt for more M0 boards 2019-06-12 13:20:21 -07:00
Scott Shawcroft
a91ad05774
Change to one lto partition for ultimate optimization. 2019-06-12 11:37:46 -07:00
Scott Shawcroft
eb21fc3e31
Add partial display update support.
Different operations to the display tree have different costs. Be
aware of these costs when optimizing your code.
* Changing tiles indices in a TileGrid will update an area
covering them all.
* Changing a palette will refresh every object that references it.
* Moving a TileGrid will update both where it was and where it moved to.
* Adding something to a Group will refresh each individual area it
covers.
* Removing things from a Group will refresh one area that covers all
previous locations. (Not separate areas like add.)
* Setting a new top level Group will refresh the entire display.

Only TileGrid moves are optimized for overlap. All other overlaps
cause sending of duplicate pixels.

This also adds flip_x, flip_y and transpose_xy to TileGrid. They
change the direction of the pixels but not the location.

Fixes #1169. Fixes #1705. Fixes #1923.
2019-06-12 11:32:39 -07:00
Dan Halbert
ba1b36a800 Uncomment vm.c SUPEROPT (debugging typo); trim a few builds 2019-06-12 13:09:09 -04:00
Dan Halbert
1bb4fccc3b Turn off SUPEROPT on gc.c instead of trying to squueze inline limit so much; reorganize mpconfigboard.mk files 2019-06-12 11:08:22 -04:00
Dan Halbert
0b3f29780a shrink a bunch of builds to fit 2019-06-11 18:46:06 -04:00
Dan Halbert
4fc189b60c Merge latest 4.0.x fixes into master 2019-06-11 16:16:29 -04:00
shazz
9c49af0597 Added pin for SD CS 2019-06-08 12:04:27 -04:00
Elvis Pfützenreuter
1da8d4b4da Add PS/2 support -- ps2io module 2019-06-04 18:05:46 -03:00
Dan Halbert
bcda5e133d
Merge pull request #1903 from tannewt/get_area
Rework the pixel computation to use areas
2019-05-31 21:27:06 -04:00
Dan Halbert
4e85c1ef91 Implement forced clean builds for boards so designated.
Mark boards that set CFLAGS_INLINE_LIMIT for particular langauges as needing clean builds.

Fixes #1910.
2019-05-24 15:32:24 -04:00
Dan Halbert
e84f3b1c6a make crickit cpx pinyin build fit 2019-05-23 21:22:50 -04:00
Scott Shawcroft
3fad7de8db
Rework the pixel computation to use areas
This changes the displayio pixel computation from per-pixel to
per-area. This is precursor work to updating portions of the screen
(#1169). It should provide mild speedups because bounds checks are
done once per area rather than once per pixel. Filling by area also
allows TileGrid to maintain a row-associative fill pattern even when
the display's refresh is orthogonal to it.
2019-05-21 17:41:06 -07:00
Dan Halbert
0199d9810b Make pinyin fit on cpx 2019-05-21 15:18:56 -04:00
Dan Halbert
008bbc944c correct USB PIDs for several boards 2019-05-16 10:54:15 -04:00
Scott Shawcroft
f3ab820fc2
Merge pull request #1884 from CapableRobot/capablerobot-usbhub
Added board definition for Capable Robot Programmable USB Hub
2019-05-14 13:42:51 -07:00
Chris Osterwood
a0497553fc Fix to prevent critical pins from being reset when MCU restarts or enters REPL 2019-05-14 15:23:33 -04:00
Chris Osterwood
420dbafa9d Added board definition for Capable Robot Programmable USB Hub 2019-05-14 13:28:24 -04:00
sabas1080
9f082ba5cb Fix pin lost 2019-05-13 10:18:53 -05:00
Scott Shawcroft
36e2faf8d2
Merge pull request #1873 from ElectronicCats/escornabot_makech
Add Escornabot Makech of Electronic Cats
2019-05-10 12:39:58 -07:00
sabas1080
d174ce8821 Update pins define 2019-05-10 13:34:02 -05:00
Scott Shawcroft
67007282c9
Tighten down inlining on the pIRkey 2019-05-10 11:19:27 -07:00
Scott Shawcroft
80a752da87
Merge latest adafruit/master in. 2019-05-10 10:09:56 -07:00
sabas1080
27ea1df710 Init escornabot 2019-05-08 15:48:17 -05:00
Scott Shawcroft
9ba8191a04
Merge pull request #1855 from dhalbert/frequencyin-no-double-arith
avoid double float arithmetic in FrequencyIn
2019-05-08 14:40:18 -04:00
sabas1080
08a170388d fix VID and PID inverted 2019-05-08 10:09:49 -05:00
Dan Halbert
f59dadbb4f avoid double float arithmetic in FrequencyIn 2019-05-07 00:25:22 -04:00
ladyada
ed8e6e8f45 re-add i2s (its J not G!) 2019-04-29 20:30:53 -04:00
ladyada
fa3a52bc1e similar to pybadge, has pin defs for joystick - comes up with filesys and display so good enough to start hacking :) 2019-04-29 20:29:48 -04:00
wallarug
aa3c28787c removed problem libraries from frozen build. 2019-04-28 00:09:13 +10:00
wallarug
b4a70daf17 updated lots 2019-04-27 22:35:12 +10:00
wallarug
cd4aaa13a3 added robohatmm1 board defs. 2019-04-25 21:13:41 +10:00
ladyada
9b593cd154 update periph submodule 2019-04-23 18:20:13 -04:00
ladyada
a5697470e1 fix up pybadge for final release board (swap backlite and reset) 2019-04-23 16:43:20 -04:00
Scott Shawcroft
f548305c07
Merge pull request #1815 from dhalbert/stop-flicker
Turn off auto_brightness if brightness is set
2019-04-18 15:48:39 -07:00
Dan Halbert
0113e0970e add Display.__init__() args for brightness and auto_brightness 2019-04-18 15:59:16 -04:00