Commit Graph

2452 Commits

Author SHA1 Message Date
Hierophect 1140ff5cd5 WIP 2019-10-11 15:47:55 -04:00
Kamil Tomaszewski 6b9375804c Rename circuitpython.spk to firmware.spk 2019-10-11 17:15:25 +02:00
Kamil Tomaszewski 771f43591a Add links to serial drivers 2019-10-11 12:57:43 +02:00
Kamil Tomaszewski eb1dfd2312 Add .gitignore 2019-10-11 12:11:48 +02:00
Kamil Tomaszewski 0d139e4eca Add a way to change serial device name 2019-10-11 12:09:51 +02:00
Kamil Tomaszewski c062990830 Make Makefile work across OS 2019-10-11 12:09:51 +02:00
Kamil Tomaszewski 8f653d6238 Use CXD56 pin names 2019-10-11 12:09:51 +02:00
Kamil Tomaszewski 5f09609d41 Add Spresense board folder 2019-10-11 12:09:51 +02:00
Kamil Tomaszewski 1fa8841d20 Change port name to cxd56 2019-10-11 08:23:51 +02:00
Hierophect bfebbaee32 Merge remote-tracking branch 'upstream/master' into stm32-uart 2019-10-10 14:28:19 -04:00
Hierophect 06b2fed518 improve macro readability 2019-10-09 16:06:23 -04:00
hierophect 4ce7a4cfdb
Merge branch 'master' into stm32-DAC 2019-10-09 15:47:43 -04:00
Hierophect 5f33c542b4 Fix include issues 2019-10-09 14:52:30 -04:00
Hierophect 8a94f25181 Text fixes 2019-10-09 13:54:40 -04:00
Hierophect cb0ed264c4 Implement DAC 2019-10-09 13:34:20 -04:00
Kamil Tomaszewski 6d1748fd59 Add spresense-exported-sdk submodule 2019-10-09 08:38:50 +02:00
Kamil Tomaszewski 526925f1c6 Add Spresense board 2019-10-09 08:27:08 +02:00
Hierophect f58d54cd22 Preliminary read system, not buffered 2019-10-08 16:03:51 -04:00
kamtom480 f6e553f89f
Merge branch 'master' into circuitpython-number-endpoint 2019-10-08 09:41:29 +02:00
Hierophect cc3a17845c Fix USB issues, frequency macro, F412 tests 2019-10-07 14:22:12 -04:00
hierophect 59ed879c8f
Merge pull request #2197 from hierophect/always-build-modules
Sort some modules into ALWAYS-BUILD in mpconfig
2019-10-07 09:09:28 -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
Dan Halbert fc19e03128 WIP: bonding 2019-10-06 21:30:26 -04:00
Hierophect 0b85172ba6 WIP 2019-10-04 14:37:18 -04:00
Hierophect 51901f7de0 Add peripheral definitions 2019-10-04 11:42:38 -04:00
Hierophect dc4abb922b Revert accidental OS delete 2019-10-03 15:40:46 -04:00
hierophect f4922a530a
Merge pull request #2186 from hierophect/stm32-spi-flash
STM32: SPI Flash
2019-10-03 15:32:56 -04:00
Hierophect 7a2f60c43d Add Always Build flag, remove redundancy 2019-10-03 15:23:45 -04:00
Hierophect eacdb1da6e Disable timeout, remove redundancy 2019-10-03 14:43:25 -04:00
Dan Halbert 463415a7ef update stm32f4 port to use tinyusb synopsys tree 2019-10-03 13:26:03 -04:00
Hierophect 83c49a5c80 Increase SPI timeout duration 2019-10-03 09:14:54 -04:00
Hierophect 5a6194839b Timeout fix for I2C device testing 2019-10-02 17:59:42 -04:00
Hierophect 86305bfdfe Make all errors value errors 2019-10-02 17:32:54 -04:00
Hierophect 9aa6d215fd Add some definitions for when F412 can be implemented 2019-10-02 16:03:22 -04:00
Hierophect 5a2f82095a Implement SPI flash settings, bugfix for SPI pin assignment 2019-10-02 15:17:49 -04:00
Scott Shawcroft d6e987e587
Merge pull request #2182 from hierophect/stm32-spi
STM32: SPI Support
2019-09-30 20:00:23 -07:00
Hierophect b66700720b improve error readability 2019-09-30 18:05:07 -04:00
Hierophect 1f90cffc89 protect against edge case 2019-09-30 13:33:20 -04:00
Hierophect 56eb9666ea Implement never-reset, fix F412 2019-09-30 11:35:40 -04:00
Hierophect a475b667b5 Clean up debugging messages, remove shortcuts 2019-09-30 11:04:09 -04:00
Hierophect 492bc3eedc Expand pin definitions for all boards 2019-09-30 10:45:02 -04:00
Hierophect e2d0ad6adc Add settings reconfiguration 2019-09-29 15:01:32 -04:00
Hierophect bf7b841020 Further reversion 2019-09-29 13:22:12 -04:00
Hierophect 89315999e2 Fix bad returns, revert flash changes 2019-09-29 13:18:43 -04:00
Hierophect 270396a882 Refine SPI settings for testing 2019-09-29 13:01:27 -04:00
Hierophect d7443fce54 First implementation of read write 2019-09-27 17:59:55 -04:00
Hierophect ad33950966 Flash memory changes - non functional 2019-09-27 11:00:09 -04:00
Dan Halbert aa1eed3bd3 initial Arduino Nano 33 BLE board definition 2019-09-26 15:28:57 -04: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
Hierophect 51df8d18b4 Merge remote-tracking branch 'upstream/master' into stm32-spi 2019-09-26 13:44:24 -04:00
Scott Shawcroft 8221553600
Merge pull request #2175 from hierophect/stm32-f405-support
STM32 F405 support
2019-09-26 10:38:03 -07:00
hierophect f4a31a7843
Update PID to suggestion
USB_PID = 0x805C (Pyboard

Co-Authored-By: Scott Shawcroft <scott@tannewt.org>
2019-09-26 11:38:08 -04:00
Hierophect f08127bfcc WIP 2019-09-26 11:35:08 -04: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
Hierophect a926d01509 reorganize pins 2019-09-25 11:53:49 -04:00
Hierophect f286737868 add peripheral definitions 2019-09-25 11:37:27 -04:00
Hierophect 6058677979 whitespace fix 2019-09-24 16:10:43 -04:00
Hierophect 742e747609 Implement another USB ID 2019-09-24 14:53:56 -04:00
Hierophect c3baf286c1 Implement correct USB IDs 2019-09-24 14:51:57 -04:00
Hierophect d597410330 implement suggested changes 2019-09-24 14:15:04 -04:00
Hierophect dc1109dba7 add feather support 2019-09-24 14:07:03 -04:00
Hierophect 61a45cdaed clock fixes 2019-09-24 13:17:46 -04:00
Hierophect 31a22858d5 text fixes 2019-09-24 10:05:40 -04:00
Hierophect 2b65a0e95f WIP 2019-09-23 17:40:28 -04:00
Hierophect f1cd1c5d4d minor edits 2019-09-23 13:30:37 -04:00
Hierophect 19cf716461 Fix missing items 2019-09-23 12:14:27 -04:00
Hierophect 60bb6acf38 Add F405 support 2019-09-23 11:59:14 -04:00
Hierophect fd1a257df3 Merge branch 'master' into stm32-f405-support 2019-09-23 09:36:03 -04:00
wallarug 70860e1352 robohatmm1 removed uart and put in correct order 2019-09-22 19:47:44 +10:00
Limor "Ladyada" Fried 7f1bc48a88
Merge pull request #2173 from hierophect/stm32-os
STM32: Add OS and Struct support
2019-09-20 16:42:31 -04:00
Hierophect 200c474a13 correct typo 2019-09-20 15:55:11 -04:00
Hierophect 00f1e4f1ad WIP 2019-09-20 15:54:34 -04:00
Limor "Ladyada" Fried 8d16379634
Merge pull request #2151 from hierophect/stm32-peripherals
STM32: peripheral management
2019-09-20 15:40:25 -04:00
Hierophect 9af5f3a7a7 Add OS and struct support 2019-09-20 14:51:23 -04:00
Hierophect ef15ebe8c7 Repeated initialization protection, cleanup 2019-09-20 14:33:37 -04:00
Scott Shawcroft 13a9c446ee
Merge pull request #2171 from hierophect/stm32-find-fix
STM32: fix illegal option error on mac builds
2019-09-20 10:19:58 -07:00
Scott Shawcroft 19c6c96929
Merge pull request #2130 from jepler/nrf-debugflags
nrf: Makefile: sensible flags for debugging
2019-09-20 10:18:00 -07:00
Hierophect 7cea078494 Added existance check 2019-09-20 12:39:48 -04: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
Hierophect 18c5be8835 QOL pin adds 2019-09-19 17:01:25 -04:00
Hierophect 9da5723c59 F412 support, cleanup 2019-09-19 16:32:38 -04:00
Hierophect c12860ff7d the code equivalent of smacking something really hard with a wrench 2019-09-19 16:10:26 -04:00
Hierophect b325eadc33 various failed attempts to get I2C to reset 2019-09-19 16:02:52 -04: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
Hierophect d56b62e44c Fix crash related to improper instance assignment 2019-09-19 14:15:12 -04:00
Melissa LeBlanc-Williams 8dfb2237d9 Added TOUCH pins to HalloWing M4 for code compatibility 2019-09-19 10:40:13 -07:00
Hierophect c85873e4e6 index fix 2019-09-19 12:45:47 -04:00
Hierophect 60985968a8 Reorganize storage to per-pin 2019-09-19 12:18:18 -04:00
Hierophect 12cd009bb9 WIP 2019-09-18 16:49:15 -04:00
Hierophect bf62477ff9 Merge branch 'stm32-analogio' into stm32-peripherals 2019-09-18 13:45:22 -04:00
Hierophect cd5ec365d3 Cleanup 2019-09-18 13:44:08 -04:00
Hierophect d60ecc5e3d Rework I2C peripheral check 2019-09-18 13:42:54 -04:00
Hierophect 69a0bfaf34 Merge branch 'stm32-analogio' into stm32-peripherals 2019-09-18 12:15:44 -04:00
Hierophect c9b86111f4 text fix 2019-09-18 11:45:21 -04:00
Hierophect 601c3ea8dc minor HAL swap 2019-09-17 17:54:29 -04:00
Hierophect 97b1208829 Merge remote-tracking branch 'upstream/master' into stm32-analogio 2019-09-17 17:47:15 -04:00
Hierophect 48ae684c6e Adjust settings to support F412 2019-09-17 17:46:44 -04:00
Limor "Ladyada" Fried 69234cc8d6
Merge pull request #2163 from tannewt/cpx_displayio
Add custom CPX build for display support
2019-09-17 16:55:42 -04:00
Hierophect 863655044e Re-expand pin reset 2019-09-17 16:52:44 -04:00
Hierophect 71531dd4d1 Fix out of date HAL inputs in DigitalIO 2019-09-17 16:15:39 -04:00
Hierophect 7c713b9e3b Fix crash related to ADC timeout 2019-09-17 15:45:15 -04:00
Hierophect 168823e096 Retract pin resets, revert to HAL, QOL changes 2019-09-17 15:07:08 -04:00
Scott Shawcroft fc90c942f5
Add custom CPX build for display support 2019-09-17 10:40:07 -07:00
Scott Shawcroft b5a9ed3688
Merge pull request #2161 from jepler/nrf-analog-reference
nRF: Change analog reference voltage
2019-09-17 09:41:52 -07:00
jepler dffedd7c86 samd: peripherals: update submodule reference 2019-09-16 21:48:31 -05:00
jepler d39c85e3f5 nRF: Change analog reference to VCC(/4)
@ladyada says:
"having this be adjustable (reference) would be ideal cause you can get
absolute voltages but for now, VCC/4 + 4x matches every other chip :)"

... and indeed doing it this way happens to give a much more steady
reading when using a VCC-referenced resistance, and so many of the simple
things you'd wire up are actually VCC-referenced anyway.
2019-09-16 21:43:07 -05:00
Jeff Epler c56186da8c nRF: Change analog reference voltage
Datasheet reading explains one reason why readings might have been 10% low.
2019-09-16 18:35:48 -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
Hierophect 78de4b70ed Implemented working I2C on F412. 2019-09-13 14:00:53 -04:00
Scott Shawcroft 3422e53bd1
Merge pull request #2147 from jepler/issue2146
nRF: PWMOut: At deinit, make pin available again
2019-09-13 09:32:28 -07:00
Hierophect d96aa8dac4 Merge branch 'stm32-analogio' into stm32-peripherals 2019-09-13 12:10:54 -04:00
Hierophect f5cb2cc14e First pass at I2C pin authentication 2019-09-12 19:00:02 -04:00
Hierophect e445e7930e Merge remote-tracking branch 'upstream/master' into stm32-pin-remap 2019-09-12 16:00:41 -04:00
Hierophect 6b6178613d WIP 2019-09-12 16:00:01 -04:00
Hierophect 1fda6d4a48 Merge branch 'stm32-pin-remap' into stm32-peripherals 2019-09-12 14:27:24 -04:00
Hierophect 55eb8dcfa0 ADC unit select, reset bugfix 2019-09-12 13:47:01 -04:00
jepler df48312ce7 nRF: PWMOut: At deinit, make pin available again
Closes: #2146
2019-09-11 20:09:38 -05:00
Hierophect 57ce381bcd disable claim pin for debug 2019-09-11 17:26:33 -04:00
Hierophect 4b3796a303 Merge remote-tracking branch 'upstream/master' into stm32-analogio 2019-09-11 14:12:01 -04:00
Hierophect a59a8e7a19 Merge branch 'stm32-pin-remap' into stm32-analogio 2019-09-11 14:11:47 -04:00
Hierophect 6e007f4e8c text fixes 2019-09-11 14:09:57 -04:00
Hierophect d888922db6 minor text fix 2019-09-11 13:55:48 -04:00
Hierophect 3d2a4d4165 Merge branch 'stm32-f412-tinyusb' into stm32-analogio 2019-09-11 13:47:20 -04:00
Hierophect 9e25d9a9be Support for F412 2019-09-11 13:45:36 -04:00
Hierophect 9f8c8c6504 Compiler level bit packing 2019-09-11 13:12:49 -04:00
Hierophect 37248037d7 Alternative implementation via HAL for readability comparison 2019-09-11 11:35:37 -04:00
Hierophect 99c3cab00f text fixes 2019-09-10 19:51:26 -04:00
Hierophect 500b21c236 First pass at full LL implementation 2019-09-10 19:48:24 -04:00
Hierophect 49b04f4b77 Minor text fix 2019-09-10 17:52:07 -04:00
Scott Shawcroft 89fed709ad
Merge pull request #2127 from jepler/nrf-i2s
nrf: Add i2s audio output
2019-09-10 11:00:26 -07: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
jepler 7b9dfc9952 nrf: i2s: tune audio buffering
.. based on some tasks I found that caused stuttering:

 # Test SD and printing
 while True: os.listdir('.')

 # Test bulk I/O
 while True: len(open('somefile.wav', 'rb').read())

Each of these tasks *WAS* worse and I am improving them in a separate
PR by adding RUN_BACKGROUND_TASKS to them.
2019-09-09 20:13:12 -05:00
jepler c66f5a8536 nrf: i2s: rewrite without 'goto' 2019-09-09 19:26:18 -05:00
jepler fe9605a6a3 nrf: i2s: Comment this slightly tricksy code 2019-09-09 19:25:52 -05:00
Hierophect c438468a82 Updated VID and PID 2019-09-09 17:05:18 -04:00
Hierophect d8251ae4ab Include full descriptor list 2019-09-09 15:01:04 -04:00
Hierophect 129615a724 text fixes 2019-09-09 11:58:27 -04:00
Hierophect 426ddb356e Add support for F412 via latest tinyusb update 2019-09-09 11:42:55 -04:00
jepler ccf08aa3df nrf: I2SOut: deal more gracefully with errors from the sample 2019-09-08 21:59:07 -05:00
jepler e890bc8efe nrf: Makefile: sensible flags for debugging
This enables the highest level of debug symbols, and all optimizations
except lto that do NOT interfere with debugging, in the view of the gcc
maintainers.
2019-09-08 21:07:00 -05:00
jepler f38ee42874 nrf: Add i2s audio output
Testing performed: I used a Particle Xenon with a HDA1334 I2S DAC.
I played a variety of mono 16-bit samples at 11025 and 22050Hz nominal
bit rates.  With this setup, all the 11025Hz samples sound good.
I tested play, pause,  and loop functionality.

During some runs with 22050Hz samples, there were glitches.  However,
these may have only occurred during runs where I had set breakpoints
and watchpoints in gdb.

I also tested with a MAX98357A I2S amplifier.  On this device, everything
sounded "scratchy".  I was powering it from 5V and the 5V rail seemed
steady, so I don't have an explanation for this.  However, I haven't
tried it with a SAMD board.
2019-09-08 16:46:35 -05:00
Dan Halbert bd7b03fc7e
Merge pull request #2124 from dhalbert/cpb-fixes
Fix Circuit Playground Bluefruit pin errors
2019-09-08 12:07:16 -04:00
Hierophect 0d2e9c3762 WIP 2019-09-07 15:54:16 -04:00
Hierophect beb40a62a7 Fix missed shift replacement 2019-09-07 13:19:50 -04:00
Hierophect 642f4535f4 text fixes 2019-09-06 19:44:57 -04:00
Hierophect 4490fb196d delete analogio for now 2019-09-06 19:42:03 -04:00
Hierophect a3ed5ec27b Add latest USB support 2019-09-06 18:02:57 -04:00
Hierophect 589b502bfc Merge branch 'master' into stm32-analogio 2019-09-06 17:55:33 -04:00
Hierophect a932d2c4a1 Minor fixes 2019-09-06 17:40:45 -04:00
Hierophect 8c0be5fbe2 Pack pin numbers, add ADC to pin structure, support DigitalIO 2019-09-06 17:30:52 -04:00
Dan Halbert cf6fbcbf2d
Merge pull request #2123 from hierophect/stm32-flashstub-fix
Fix stm32f412zg compile warning
2019-09-06 14:56:24 -04:00
Dan Halbert 3c22c690c8 CPB A1 pin mapping wrong; remove A7 2019-09-06 14:17:11 -04:00
Hierophect 3156ee1acb Re-apply warning as error 2019-09-06 11:28:57 -04:00
Hierophect ba45f98073 Add basic analogio files 2019-09-06 11:26:20 -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 321b57a5d2
Merge pull request #2080 from sommersoft/mixer_voice
Add audiocore.MixerVoice
2019-09-04 12:46:59 -07:00
Dan Halbert b46c8dcc62
Merge pull request #2065 from hierophect/f411re-feature-buildout
F411re feature buildout
2019-09-04 15:45:54 -04:00
Scott Shawcroft 7951646b9a
Disable bitbangio on uGame10 2019-09-04 11:49:47 -07:00
Hierophect 479b047618 Reverted descriptor changes pending HID restructuring 2019-09-04 13:58:18 -04:00
sommersoft b1c3d47413 Merge branch 'master' of https://github.com/adafruit/circuitpython into mixer_voice 2019-09-01 21:16:12 -05:00
sommersoft c4d6f4f536 disable 'audiomixer' for all M0 boards 2019-09-01 17:39:20 -05:00
Scott Shawcroft b954b2f5df
Merge pull request #2092 from dhalbert/bleio-api-revamp
Bleio attribute api revamp
2019-08-29 21:48:31 -07:00
sommersoft 8120f5cdad Merge branch 'master' of https://github.com/adafruit/circuitpython into mixer_voice 2019-08-29 22:14:53 -05:00
Dan Halbert 7a64af9280 rename bleio module to _bleio 2019-08-29 18:44:27 -04:00
Dan Halbert b11b7916fd address minor issues: typos, make translate, and sphinx 2019-08-29 17:58:21 -04: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
Dan Halbert f17059b10b another API rework: less abstraction leakage 2019-08-28 23:15:22 -04: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
Dan Halbert 19c59b41ed bleio: API change to create and connect related objects simulatenously: no orphan bleio objects 2019-08-28 16:15:09 -04:00
Dan Halbert a72bcab0fd Merge remote-tracking branch 'adafruit/master' into bleio-api-revamp 2019-08-28 16:09:18 -04: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
Dan Halbert 0364f1dc85 remove some debugging prints 2019-08-26 08:17:59 -04:00
Dan Halbert 76446f634b BLE HID WIP: works everywhere except iOS; fixed a bunch of bugs; pretend bonding 2019-08-25 21:38:13 -04:00
sommersoft 696117b048 disable audiomixer on boards it doesn't fit on 2019-08-25 14:53:34 -05:00
sommersoft 2e4b687ba5 enable audiomixer on nrf 2019-08-25 07:32:48 -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 2497cbe186
Fix nrf builds 2019-08-22 14:23:33 -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
Benny Meisels d37dd4d758
Updated ParallelBus implementation in nrf port 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
Dan Halbert 18f441ae35
Merge pull request #2083 from dhalbert/no-32khz-xtal
Fix CPBlue LFCLKSRC; CPB has no status neopixel
2019-08-22 13:14:40 -04:00
Dan Halbert 0b7291d767 fix default crystal value; fix include order 2019-08-22 09:01:05 -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
Dan Halbert acc6df4959 merge similar fix in 2019-08-22 01:29:34 -04:00
Dan Halbert d94023e9b3 Fix CPBlue LFCLKSRC; CPB has no status neopixel 2019-08-22 01:04:00 -04:00
Scott Shawcroft 524fa82092
Merge pull request #2081 from dhalbert/rotaryio-pin-check-fix
typo in IncrementalEncoder.c
2019-08-21 13:02:06 -07:00
Scott Shawcroft 389e7cc35d
Merge pull request #2072 from bmeisels/nrf-no-crystal-support
Add support for nrf boards that don't have an external crystal
2019-08-21 13:01:26 -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
Benny Meisels fe2ec6c887 Add support for nrf boards that don't have an external crystal 2019-08-20 23:30:21 +03: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 44b28d1187 update tinyusb to 00c440cb 2019-08-19 19:42:45 -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
Hierophect e490e6361f Add warnings, cosmetic fixes, remove vestigial modules 2019-08-19 10:47:18 -04:00
Jeff Epler 26a05d01dc Merge remote-tracking branch 'origin/master' into nrf-pdm-audioin 2019-08-18 21:30:14 -05:00
Hierophect 95411a62b3 Cosmetic fixes 2019-08-18 19:08:27 -04:00
Jeff Epler 912fd7759d nrf: PDMIn: Implement
So far, this supports only 16kHz and 16-bit samples with a fixed gain.
This is enough to support the basic functionality of e.g., sensing
ambient audio levels.
2019-08-18 15:58:04 -05:00
Jeff Epler 79f8a85786 nrf: stub out audiobusio.PDMIn, audiobusio.I2SOut 2019-08-18 15:55:57 -05:00
Dan Halbert 3f7321af00
Merge pull request #2031 from jepler/nrf-lto
Enable link-time optimization for nrf targets
2019-08-18 12:35:26 -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 85d7398476
Merge pull request #2066 from dhalbert/ble-pairing
BLE: more features
2019-08-16 14:50:00 -07:00
Dan Halbert 630c92392a address review comments; avoid calling common_hal_bleio_device... routines from shared-bindings 2019-08-16 15:18:53 -04:00
Hierophect 7dbf1a8caa text fixes 2019-08-15 17:56:15 -04:00
Hierophect 1f42ce5f40 QOL fixes, compatibility fixes, attribution 2019-08-15 17:45:40 -04:00
Hierophect bc7ba33892 Add uid fetch, revert USB hacks 2019-08-15 16:35:01 -04:00
Hierophect a9d3ad86e5 Fix flash size, add filesystem disable flag 2019-08-15 15:55:33 -04:00
Hierophect 0fdb5a032f Text fixes 2019-08-15 15:12:50 -04:00
Hierophect 620d3d14dd Add conditional endpoints to descriptor script 2019-08-15 13:41:51 -04:00
Hierophect 1539dca7f0 Add reset support, minor fixes 2019-08-14 13:14:42 -04:00
Dan Halbert 5877bd6036 CPblue initial definition 2019-08-13 22:12:36 -04:00
Hierophect c4c55fffb1 Fixed remaining issues with flash organization and writing 2019-08-13 18:05:40 -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 11dd3a260e nrf: Use RUN_BACKGROUND_TASKS 2019-08-11 08:53:02 -05:00
Jeff Epler d9ee2d28a0 atmel-samd: Use RUN_BACKGROUND_TASKS 2019-08-11 08:53:02 -05:00
Hierophect 300dc68955 Further non-functional flash changes 2019-08-10 18:00:09 -04:00
Hierophect 294d6dc867 Add flash functions and setup, fix msc descriptor bug 2019-08-09 19:58:54 -04: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
Dan Halbert 1570ef2dd4 specifying attribute length; fix up value setting 2019-08-07 23:49:09 -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
Hierophect c375a5d37f Add pin and module support for F411 2019-08-07 18:12:13 -04:00
brentru 8f6eac98f3 add defs for pyportal titano 2019-08-07 17:10:31 -04:00
Dan Halbert d047b73a9c fix newly-introduced bugs; UART client/server working again 2019-08-07 11:10:21 -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
Dan Halbert d74c8b9425 WIP: more Descriptor work; refactor gattc/gatts read/write 2019-08-06 22:55:25 -04: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
Dan Halbert 243334da75 Merge remote-tracking branch 'adafruit/master' into ble-pairing 2019-08-05 23:06:24 -04:00
Scott Shawcroft 59efce3035
Merge pull request #2039 from dhalbert/metro-52840
Metro nRF52840 rev A defn; remove '#define FEATHER52840' from mpconfigboard.h
2019-08-05 18:48:36 -07:00
Scott Shawcroft b675a27e16
Merge pull request #2000 from jepler/nrf-pwm-audio
Implement PWM audio out for the nrf port
2019-08-05 17:26:27 -07:00
Dan Halbert c56566179a Metro nRF52840 rev A defn; also remove '#define FEATHER52840' from mpconfigboard.h files 2019-08-05 18:10:27 -04:00
Dan Halbert b67d04a5b1 Merge remote-tracking branch 'adafruit/master' into ble-pairing 2019-08-05 16:35:44 -04:00
Hierophect 2489c09b44 Merge i2c implementation 2019-08-04 17:24:07 -04:00
Hierophect a635d46b1a Fix merge related issues 2019-08-04 17:19:38 -04:00
Hierophect 0c43bae01d Merge branch 'master' into f411re-feature-buildout 2019-08-04 16:37:49 -04:00
Hierophect 268cf0a3cc Quick fix for incorrect MCU package type 2019-08-04 16:31:03 -04:00
Jeff Epler 77bc1ba03e nrf: PWMAudioOut: Remove the need to wait in "pause"
The original formulation was because I saw the need to avoid a transition
from playing to stopped exactly when a resume was taking place.  However,
@tannewt was concerned about this pause causing trouble, because it could
be relatively lengthy (several ms even in a typical case).

After reflection, I've convinced myself that updating the registers
in this order in resume avoids a window where a "stopped" event can
be missed as long as the shortcut is updated first.

Testing re-performed: pause/resume testing of looped RawSample and
WaveFile audio sources.
2019-08-03 08:19:25 -05:00
Jeff Epler 4bae29b925 nrf: enable link-time optimization
Testing performed: installed freshly built .uf2 on a Particle Xenon.
Checked that circuitpython still starts.
Checked that the size of all .uf2 files for nrf builds are plausible.

Aside from memory savings, the performance of Python code (pystone)
increased by about +14%.

However, this adds about 12-16 seconds to each nrf build.

Timings & Sizes (build system: i5-3320M, -j5 parallelism on 4 threads):

Before:
$ make -j5 BOARD=particle_xenon
765004 bytes free in flash out of 1048576 bytes ( 1024.0 kb ).
232076 bytes free in ram for stack out of 245760 bytes ( 240.0 kb ).
68.54user 11.83system 0:34.34elapsed 234%CPU
pystones before: 570

After:
$ make -j5 BOARD=particle_xenon
804284 bytes free in flash out of 1048576 bytes ( 1024.0 kb ).
232072 bytes free in ram for stack out of 245760 bytes ( 240.0 kb ).
71.06user 11.77system 0:46.91elapsed 176%CPU
pystones after: 650

Timings on travis:

Before:
Build feather_nrf52840_express for pl took 55.79s and succeeded
Build feather_nrf52840_express for zh_Latn_pinyin took 3.18s and succeeded

After:
Build feather_nrf52840_express for pl took 62.72s and succeeded
Build feather_nrf52840_express for zh_Latn_pinyin took 19.10s

Closes: #1396
2019-08-02 20:59:47 -05:00
Dan Halbert 7ce3776b80 WIP: rework of Characteristic properties; enhance Descriptor; not tested 2019-08-02 17:57:31 -04:00
Jeff Epler 28b7cbfca6 nrf: Mark interrupt vectors as used 2019-08-02 07:53:35 -05:00
jepler 34e2bab96a nrf: Implement RUNMODE_BOOTLOADER and RUNMODE_SAFE_MODE 2019-08-01 18:53:07 -05:00
Jeff Epler 76f65ac694 Implement play/pause
.. and also incidentally fix a problem where a RawSample could only
be looped 131070 times.
2019-07-31 20:02:56 -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
Jeff Epler b0f7c7bc4c Merge remote-tracking branch 'origin/master' into nrf-pwm-audio 2019-07-31 16:32:54 -05:00
Hierophect 06d53ef8a7 minor debugging changes 2019-07-31 17:06:44 -04:00
Hierophect e2fc55f829 Add baseline HAL I2C support 2019-07-31 14:58:55 -04:00
Dan Halbert ee518b9141 Merge remote-tracking branch 'adafruit/master' into ble-pairing 2019-07-31 11:22:48 -04:00
Dan Halbert 91d791afd0 cleanup adapter.address; add uniquish suffix to BLE device name 2019-07-31 00:30:24 -04: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
Dan Halbert 83129b8c63 BLE: peripheral client pairing (not yet bonding); fix time doc formatting 2019-07-30 14:26:26 -04: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
Jeff Epler b72352949b PWM audio: Rename AudioOut -> PWMAudioOut, _audioio_ -> _audiopwmio_ 2019-07-29 18:39:00 -04: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
Hierophect 6c7723905c Add temp status LEDs 2019-07-29 11:21:35 -04: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
Dan Halbert 28ca05ccdc allow discovery from central or peripheral 2019-07-27 13:22:15 -04:00
wallarug 0f30070d58 updated naming schema to match other boards 2019-07-27 17:44:42 +10:00