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
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
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
iot49
4c72a3991e
updated samd and esp8266 ports
2019-07-05 10:01:51 -07:00
Elvis Pfützenreuter
1da8d4b4da
Add PS/2 support -- ps2io module
2019-06-04 18:05:46 -03:00
Scott Shawcroft
b87565138e
Rework safe mode so we can trigger on all resets
2019-05-09 10:15:28 -07:00
Scott Shawcroft
837d3f57ee
Update on_next_reset
for new safe mode.
...
Fixes #1831
2019-05-08 15:23:40 -07:00
Dan Halbert
f59dadbb4f
avoid double float arithmetic in FrequencyIn
2019-05-07 00:25:22 -04:00
Scott Shawcroft
f7c7904e2b
Correct call structure for throwing errors
2019-04-17 13:54:29 -07:00
Carlos
71c4f100de
Update translations and use same error for PDM too
2019-04-17 11:28:43 -07:00
Carlos
5865b28592
[audiobusio-I2SOut] Fix translation error
2019-04-17 11:12:38 -07:00
Carlos
65cc366280
[audiobusio-I2SOut] Fix compilation error by using mp_raise_ValueError_varg
2019-04-17 11:12:38 -07:00
Carlos
9f63125345
Fix I2SOut message, fix #1765
2019-04-17 11:12:38 -07:00
Scott Shawcroft
de48e4b262
Merge remote-tracking branch 'adafruit/master' into fix_cpx_display
2019-04-08 17:15:08 -07:00
Radomir Dopieralski
8323721232
Stop hard-coding SPI frequency in FourWire
...
Instead remember and use the frequency, polarity and phase that was
set when the bus was first created.
2019-04-06 15:15:29 +02:00
Scott Shawcroft
7686f93ef4
Fix crash when getting board.SPI outside the VM
...
If one of the default pins was already in use it would crash.
The internal API has been refined to allow us to get the value
without causing an init of the singleton.
Fixes #1753
2019-04-05 19:06:37 -07:00
Dan Halbert
cdd77b5972
remove CPy-specific EIC handlers from samd-peripherals
2019-04-04 16:04:11 -04:00
Scott Shawcroft
ff7e729032
Fix custom pin in use logic for SWD
...
This should allow you to use SWD pins unless a debugger is attached.
You may have trouble connecting to SWD when CircuitPython has already
begun using them.
Fixes #1633
2019-03-14 11:11:35 -07:00
Dan Halbert
97140e6a62
wrong arg type for PWMOut variable_frequency
2019-03-12 21:28:30 -04:00
Scott Shawcroft
37e10d4a81
Be more careful when initing the board outside the VM.
2019-03-12 11:18:29 -07:00
sommersoft
b7b74d1f78
update translations
2019-03-02 18:17:58 -06:00
sommersoft
a44bfc2730
Merge branch 'master' of https://github.com/adafruit/circuitpython into new_freq_in
2019-03-01 21:24:30 -06:00
Dan Halbert
3c24e893e9
Fix SYNCBUSY loop typo.
2019-02-28 23:38:26 -05:00
Dan Halbert
808304e827
Use TCC LUPD lock when updating CCB
2019-02-28 19:53:35 -05:00
sommersoft
4d47ce5c60
fixes set_timer_handler call
2019-02-27 19:28:59 -06:00
sommersoft
4a9f05a44f
final re-glue; compiles now.
2019-02-25 21:22:52 -06:00
sommersoft
f602fa3d9f
fix init deps
2019-02-24 18:07:26 -06:00
sommersoft
2437ab9605
update frequencyin interrupt handler
2019-02-22 17:19:09 -06:00
sommersoft
a1060747f8
Merge branch 'new_master' into new_freq_in
2019-02-22 23:12:11 +00:00
Scott Shawcroft
af863a3780
Merge pull request #1586 from sommersoft/shared_timer_handler
...
Move shared_timer_handler
2019-02-22 11:04:27 -08:00
sommersoft
55e7c5a41b
handle 'set_timer_handler' on this side, vs samd-periphs.
2019-02-19 20:18:21 -06:00
Dan Halbert
9c24c804fb
Fix #ifdefs in port.c to call xxx_reset() rroutines properly. Remove most uses of EXPRESS_BOARD.
2019-02-18 22:44:31 -05:00
sommersoft
dafc370d22
moves 'shared_timer_handler' back to atmel-samd from samd-peripherals
2019-02-16 19:54:16 -06:00
sommersoft
ea9200a042
starting again; initial addition of 'frequencyio.FrequencyIn'
2019-02-16 19:26:24 -06:00
Dan Halbert
cf545cd477
WIP: fix issues with remaining atmel-samd builds
2019-02-15 09:52:45 -05:00
Dan Halbert
da5008f4d8
Fix atmel UART after ASF4 pruning.
2019-02-13 11:42:09 -05:00
Scott Shawcroft
1a6ad20943
Get space back by using less ASF4 and combining register writes
2019-02-11 17:36:34 -08:00
Scott Shawcroft
69bc5e189b
Rudamentary backlight support
2019-01-31 11:42:14 -08:00
Scott Shawcroft
edc8383e22
Improvements thanks to danh's review
2019-01-18 16:37:06 -08:00
Scott Shawcroft
760bd8d8a4
share fourwire and make nrf compile
2019-01-17 15:15:59 -08:00
Scott Shawcroft
2d136d58bf
Fix other builds and hallowing
2019-01-17 14:45:29 -08:00
Scott Shawcroft
84292ad890
External fourwire works and blinka splash after
2019-01-17 00:20:16 -08:00
Scott Shawcroft
05d8885a1a
Rework displays in prep for dynamic support and 8bit parallel.
2019-01-16 12:05:20 -08:00
Scott Shawcroft
a14762a16c
Add support for rendering a shape.
...
Fixes #1171
2019-01-14 17:29:15 -08:00
Scott Shawcroft
19db886645
Support the display on the pyportal.
...
Also fix #1390 , reload during sleep broken.
2019-01-10 17:29:34 -08:00
Scott Shawcroft
7ad2e6ace3
Add stack validity check and raise an error when it happens.
...
The backtrace cannot be given because it relies on the validity
of the qstr data structures on the heap which may have been
corrupted.
In fact, it still can crash hard when the bytecode itself is
overwritten. To fix, we'd need a way to skip gathering the
backtrace completely.
This also increases the default stack size on M4s so it can
accomodate the stack needed by ASF4s nvm API.
2018-12-04 23:26:04 -08:00
Dan Halbert
63cd9209f1
allow KeyboardInterrupt on UART read; fix nrf UART pin claiming; rename feather 52840 UART pins
2018-12-04 15:05:39 -05:00
Dan Halbert
80db2cec99
UART changes: timeout in secs, write bytes, etc.
2018-12-03 12:04:32 -05:00
Dan Halbert
11de8fdca7
merge 3.x swap of /lib and .frozen; update frozen libs
2018-11-15 15:00:23 -05:00
Scott Shawcroft
a3a690dc01
Add pragma to ensure neopixel_write is always -Os
2018-11-13 10:56:00 -08:00
Scott Shawcroft
43f7ca7985
Incorporate feedback:
...
* Clean up board defines.
* Add flush on eject and stay ejected.
* Swith back to NONE protocol for CDC.
2018-11-09 11:33:56 -08:00
Scott Shawcroft
9d91111b1b
Move atmel-samd to tinyusb and support nRF flash.
...
This started while adding USB MIDI support (and descriptor support is
in this change.) When seeing that I'd have to implement the MIDI class
logic twice, once for atmel-samd and once for nrf, I decided to refactor
the USB stack so its shared across ports. This has led to a number of
changes that remove items from the ports folder and move them into
supervisor.
Furthermore, we had external SPI flash support for nrf pending so I
factored out the connection between the usb stack and the flash API as
well. This PR also includes the QSPI support for nRF.
2018-11-08 17:25:30 -08:00
ATMakersBill
4f2f571536
Adding the serial_bytes_available() method to the 3.x branch
2018-11-03 14:01:30 -04:00
Scott Shawcroft
4eb1fe18e5
Tweaks from feedback:
...
* default_value is now quiescent_value
* Use step = -step format for sign switch
* Add note about analogout_reset being empty
2018-10-17 11:31:08 -07:00
Scott Shawcroft
c209165d43
Ramp values to and from a default value while active.
...
This reduces the popping sound on initial playback of an audio
sample.
The M4 DAC has a pop on startup that cannot be prevented. It also
does not allow readback so current values of the DAC are ignored.
Fixes #1090
2018-10-16 16:23:29 -07:00
Scott Shawcroft
df80ad8e6e
Merge pull request #1193 from ATMakersBill/master
...
Add supervisor.runtime.serial_bytes_available so that input() can be used without blocking.
2018-10-09 23:58:43 -07:00
ATMakersBill
9f94712ad1
replacing change to input() with separate method to check for USB Serial input
2018-10-09 18:37:52 -04:00
Scott Shawcroft
a9d094ab74
Fix translations
2018-09-21 12:24:04 -04:00
Scott Shawcroft
e5274959f2
Merge remote-tracking branch 'adafruit/3.x' into merge_3x
2018-09-21 12:22:26 -04:00
Scott Shawcroft
655f223916
Clock the SAMD21 much faster so it can actually convert at its max
...
sample rate of 350ksps.
Also added an error check of sample rate.
Fixes #1196
2018-09-18 15:29:46 -07:00
Dan Halbert
bc510e714f
merge 3.0.2 to master
2018-09-18 15:38:12 -04:00
Dan Halbert
6a046f55c4
UART fixes and enhancements; default board object fix
2018-09-12 17:19:43 -04:00
Paul Kierstead
02b3f62460
When UART timeout of zero is given, make read() return data already available
2018-09-12 13:25:49 -04:00
Dan Halbert
c3918bae57
PWMOut was not claming channels on shared TCCs
2018-09-11 19:46:47 -04:00
Scott Shawcroft
c2e49dc87f
Merge remote-tracking branch 'adafruit/master' into hallowing
2018-09-06 14:54:55 -07:00
Scott Shawcroft
1683eb913d
Minor tweaks based on feedback
2018-09-06 14:49:49 -07:00
Dan Halbert
4c3b4cacfa
Merge remote-tracking branch 'adafruit/master' into nrf-pin-claiming
2018-09-05 13:15:22 -04:00
Paul Kierstead
2d3f1a10bf
When UART timeout of zero is given, make read() return data already available
2018-09-01 17:07:30 +00:00
Dan Halbert
9ea809bef7
add pin claiming to devices
2018-08-31 18:38:05 -04:00
Scott Shawcroft
121903b6ee
Tweaks based on feedback
2018-08-31 14:21:48 -07:00
Scott Shawcroft
6697544cdf
Introduce displayio to render graphics to displays.
...
It's designed to minimize RAM footprint by using Sprites to
represent objects on the screen. The object model also facilitates
partial screen updating which reduces the bandwidth needed to display.
This is all handled in C. Python simply manipulates the objects with
the ability to synchronize to frame timing.
2018-08-31 12:31:52 -07:00
Jerry Needell
e8b94d0024
adjust SAMD51 neopixel_write timing
2018-08-24 07:01:50 -04:00
Scott Shawcroft
44de3d49a8
Speed up zero neopixel pulses.
...
SK6812 on 5v is pickier than WS2812 on 5v.
Hopefully fixes #1083 .
2018-08-20 17:04:46 -07:00
Noralf Trønnes
eefb6842a0
i2cslave: Fix missing translate() when raising exceptions
...
The translate() changes where applied after travis had checked the
i2cslave PR so this wasn't caught.
2018-08-18 16:00:06 +02:00
Scott Shawcroft
4a4d84ba42
Merge pull request #1064 from notro/i2cslave
...
Add busio.I2CSlave
2018-08-17 16:51:45 -07:00
Scott Shawcroft
2cd166b573
Fix esp and samd
2018-08-16 17:41:35 -07:00
Scott Shawcroft
de5a9d72dc
Compress all translated strings with Huffman coding.
...
This saves code space in builds which use link-time optimization.
The optimization drops the untranslated strings and replaces them
with a compressed_string_t struct. It can then be decompressed to
a c string.
Builds without LTO work as well but include both untranslated
strings and compressed strings.
This work could be expanded to include QSTRs and loaded strings if
a compress method is added to C. Its tracked in #531 .
2018-08-16 17:40:57 -07:00
Noralf Trønnes
11cbeb87ad
ports/atmel-samd: Implement i2cslave.I2CSlave
...
This adds support for SAMD acting as a I2C slave in polled mode.
2018-08-16 17:20:49 +02:00
Noralf Trønnes
b6822b86ac
busio/I2C: Split out samd_i2c_get_sercom()
...
It will be shared with I2CSlave.
2018-08-16 17:06:40 +02:00
Scott Shawcroft
86d2154d71
Change file mode back.
2018-08-09 09:14:14 -07:00
Scott Shawcroft
94c5ceab36
Initial SAMR board revision.
2018-08-09 05:36:46 -07:00
Jeff Epler
b0e33f6a11
atmel-samd: UART: allocate rx buffer in long-lived region
...
This is not strictly needed in order for #1056 to be resolved,
because the "make long-lived" machinery is unaware of this pointer.
However, as UARTs are assumed to be long-lived, this change is
beneficial because it moves the long-lived buffer into the upper
memory area with other long-lived objects, instead of remaining in
the low heap.
2018-08-08 19:21:57 -05:00
Dan Halbert
2e80f37709
Merge pull request #1096 from tannewt/tune_neopixel
...
Retune neopixel timings on SAMD51. They were too slow.
2018-08-07 21:33:12 -04:00
Scott Shawcroft
b0dd645e27
Retune neopixel timings on SAMD51. They were too slow.
...
Fixes #1083
2018-08-07 16:58:37 -07:00
Scott Shawcroft
933add6cd8
Support internationalisation.
2018-08-07 14:58:57 -07:00
Scott Shawcroft
168aa394db
Move pin struct to the peripherals library.
...
Its slimmed down by removing the qstr and bit packing TCC info.
The trinket m0 build actually grows by 20 bytes. The arduino zero
build shrinks by 188 bytes.
2018-08-02 13:59:05 -07:00
hathach
533d8dda96
fix samd usb hid typo
2018-08-01 08:40:04 +07:00
Dan Halbert
2809b4f9dd
Merge branch 'master' into micropython-25ae98f-merge
2018-07-16 19:36:40 -04:00
Dan Halbert
a20ab40ed2
Merge 3.0.0 final bugfixes and changes to master
2018-07-16 09:01:46 -04:00
Dan Halbert
e2e01efa84
compiles and runs; hangs on import storage;storage.VfsFat.<tab>
2018-07-13 22:51:10 -04:00
Dan Halbert
8bb363f7c4
must set pull after setting direction with gpio_set_pin routines
2018-07-09 17:18:06 -04:00
Dan Halbert
52a11547cb
fix OneWire timing and DigitalInOut.switch_to_input()
2018-06-28 23:32:20 -04:00
Scott Shawcroft
a5e03b76a6
Split out the peripherals library in preparation of sharing with MakeCode.
2018-06-15 16:16:21 -07:00
Scott Shawcroft
ee817a2fa8
Correct UART reads to return error on timeout.
...
This causes read to correctly return None instead of b''.
Fixes #874
2018-06-12 14:03:27 -07:00
Dan Halbert
4691b30c02
PDMIn: turn serializer on when starting DMA
2018-06-12 12:35:51 -04:00
Dan Halbert
b2d98edb4e
Merge pull request #901 from tannewt/pulseio_too_fast
...
Prevent freezing USB during high frequency PulseIn.
2018-06-08 17:59:06 -04:00
Scott Shawcroft
8fb34a5846
Use bool not int.
2018-06-08 14:57:20 -07:00
Scott Shawcroft
2fbab8067a
Prevent freezing USB during high frequency PulseIn.
...
We now track the last time the background task ran and bail on the
PulseIn if it starves the background work. In practice, this
happens after the numbers from pulsein are no longer accurate.
This also adjusts interrupt priorities so most are the lowest level
except for the tick and USB interrupts.
Fixes #516 and #876
2018-06-08 12:56:32 -07:00
Dan Halbert
218930d18b
Check for PDMIn DMA getting stuck.
2018-06-08 08:23:52 -04:00