Commit Graph

2532 Commits

Author SHA1 Message Date
Joe Bakalor 3992a870e5
Merge branch 'master' into teknikio/bluebird 2019-12-13 08:55:15 -05:00
JoeBakalor 4bee6536c9 updates to bluebird 2019-12-13 08:52:03 -05:00
Joe Bakalor b484c89b73
Merge pull request #4 from adafruit/master
Pull master
2019-12-13 08:51:06 -05:00
Hierophect 99c02b5afb usb not working... 2019-12-12 17:53:04 -05:00
Hierophect e4fb414b91 clean up definitions post merge 2019-12-12 17:17:29 -05:00
Hierophect ab3762d8f5 Merge branch 'dumb-git-stuff' into stm32-meowbit 2019-12-12 16:34:11 -05:00
Hierophect 7e0719117b Revert "remove F401 additions to streamline"
This reverts commit 12737e2821.
2019-12-12 16:32:33 -05:00
Hierophect 2be18a7b53 revert dumb thing 2019-12-12 16:30:24 -05:00
Hierophect 842f8b2d3d Revert "Remove meowbit for now"
This reverts commit 006182f4e8.
2019-12-12 16:27:32 -05:00
Dan Halbert ef2ef7a6b8 merge from master 2019-12-12 15:51:13 -05:00
Dan Halbert e11fabd5e0 moved nrf internal filesystem to just below bootloader 2019-12-12 14:57:23 -05:00
Dan Halbert 7889b999cc Fix flash write error handling; clean up safe mode message printing 2019-12-12 14:41:49 -05:00
Hierophect 9339903a30 Revert "delete old boards"
This reverts commit 00e953e86c.
2019-12-12 13:24:46 -05:00
Hierophect d44a758a2d Add no VBUS option to blackpill 2019-12-12 12:48:37 -05:00
Hierophect 39f3063ed4 Merge remote-tracking branch 'upstream/master' into update-tusb 2019-12-12 12:47:48 -05:00
Hierophect 885a1415d0 Update stm32 usb.c 2019-12-12 12:47:40 -05:00
JoeBakalor dde7c5e145 Merge branch 'master' of https://github.com/Teknikio/circuitpython 2019-12-12 08:59:37 -05:00
Joe Bakalor bf4138b0e4
Merge pull request #3 from adafruit/master
Pull master
2019-12-12 08:59:22 -05:00
Dan Halbert fd03fd5e4f sd_flash_operation_status should be volatile 2019-12-12 00:19:03 -05:00
Dan Halbert 8176325130 Merge remote-tracking branch 'adafruit/master' into ld-cleanup 2019-12-11 22:52:59 -05:00
Hierophect 70d899d354 WIP to successful USB test 2019-12-11 17:58:21 -05:00
Dan Halbert ae64a669dd address review comments 2019-12-11 15:43:06 -05:00
JoeBakalor 0da5dceccf update bluebird makefile 2019-12-11 15:25:16 -05:00
JoeBakalor a273a7c55e add remaining peripheral pin maps and digital/analog pin definitions 2019-12-11 15:23:16 -05:00
JoeBakalor 006d85d5c2 add make file and board configuration, add accelerometer pin mappings 2019-12-11 14:49:59 -05:00
Scott Shawcroft e5adf3c43f
Merge pull request #2361 from hierophect/stm32-blackpill
STM32: Blackpill Support
2019-12-11 11:07:23 -08:00
Dan Halbert 1e11f2708b remove debugging leftovers 2019-12-11 09:34:56 -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
hierophect 30aba46735
Merge branch 'master' into stm32-blackpill 2019-12-10 15:38:42 -05:00
Hierophect 33233934e9 text fix 2019-12-10 15:13:11 -05:00
Hierophect 0e2a03e3bd revert usb.c additions 2019-12-10 15:07:39 -05:00
Jeff Epler a08d9e6d8e audiocore: Add MP3File using Adafruit_MP3 library 2019-12-10 14:03:06 -06:00
Jeff Epler a484a93b29 nRF: disk_read must be 4-byte aligned
.. a requirement that oofatfs needs to be taught to respect.

This problem can be demonstrated with the following snippet, except
that the related file ("test.bin") must also be contiguous on the
filesystem.  You can ensure this by reformatting your device's filesystem
before testing, then copying any single file bigger than 4kB to test.bin.

    f = open("test.bin", "rb")
    f.seek(2048)
    b = bytearray(2048)
    v = memoryview(b)
    f.readinto(v[909:])

Closes: #2332
2019-12-10 14:03:06 -06:00
Hierophect e328e9c106 minor text changes 2019-12-10 15:02:38 -05:00
Scott Shawcroft 387ab6c87e
Merge pull request #2315 from hierophect/stm32-pyb-nano
STM32: Add PYB Nano support
2019-12-10 11:25:07 -08:00
Scott Shawcroft dda9ea09b1
Merge pull request #2363 from jepler/samd-neopixel
samd: neopixel: Fix neopixels after #2297
2019-12-10 11:23:18 -08:00
Scott Shawcroft 8497ea8aab
Merge pull request #2365 from dhalbert/cpb-power-switch
Add POWER_SWITCH pin to CPB
2019-12-10 10:53:45 -08:00
Joe Bakalor dbc28e35c5
Merge pull request #2 from adafruit/master
Pull master
2019-12-10 11:50:49 -05:00
Dan Halbert 60f399395a Add POWER_SWITCH pin to CPB 2019-12-09 18:30:24 -05:00
Scott Shawcroft 19ac8aea8c
Merge pull request #2353 from jepler/audiosample-protocol
Convert audiosamples to use micropython "protocols" (safely)
2019-12-09 14:50:16 -08:00
Hierophect b0a5e81c46 Merge remote-tracking branch 'upstream/master' into stm32-meowbit 2019-12-09 12:29:00 -05:00
Hierophect 00e953e86c delete old boards 2019-12-09 12:28:25 -05:00
Jeff Epler 13620cc4db nRF: PWMAudioOut: fix half-speed playback of stereo samples
The "spacing" of "buffer structure" is confusing, use the "channel count"
instead.

Testing performed on nrf52840 feather:

Play stereo and mono, 8- and 16-bit, 8kHz RawSamples representing 333.33Hz
square waves.

Use both mono and stereo PWMAudioOut instances.

Scope the RC-filtered signal and use the scope's frequency
measurement function, verify the frequency is 333 or 334Hz in all tested
cases.

In the "stereo output" cases, verify both the L and R channels.  Verify
the output amplitude is the same in both channels.

In the "stereo output" cases, run a second test where the L channel's
amplitude is attenuated 50%. Verify the output amplitude is correct
in each channel.
2019-12-09 10:57:55 -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 f5e913101c
Merge pull request #2301 from tannewt/support_extended_advertising
Add support for extended (>31 byte) BLE advertisements.
2019-12-06 23:51:05 -05:00
Scott Shawcroft da0ea979ff
Check connection validity after service discovery.
Fixes #2347
2019-12-06 16:03:14 -08:00
Hierophect dd4d3a662d conditional for F412 register difference 2019-12-06 16:44:17 -05:00
Hierophect 252da17bc9 Create VBUS disable interface in shared supervisor 2019-12-06 15:55:00 -05:00
Dan Halbert 559ce6a949
Merge pull request #2356 from tannewt/central_pairing
Add connection interval and debugging
2019-12-06 15:19:40 -05:00
Dan Halbert d628d2a261 atmel-samd working 2019-12-06 15:18:20 -05:00
Scott Shawcroft 840f88b8f0
Merge pull request #2350 from hierophect/stm32-neopixel-fix
Fix for neopixels on <100MHz STM32 boards
2019-12-06 10:40:50 -08:00
Hierophect 6c8503b3c6 VBUS fix actually doesn't work 2019-12-06 12:39:22 -05:00
Hierophect 2a01f0806e text fixes 2019-12-06 11:58:26 -05:00
Hierophect 0ae08e275d remove pyb nano folder 2019-12-06 11:54:01 -05:00
Hierophect f6d0e912c9 remove old 401 files 2019-12-06 11:52:40 -05:00
Hierophect 2dcfc9d411 USB fixes and cleanup 2019-12-06 11:41:38 -05:00
Dan Halbert a0721fc94a Merge remote-tracking branch 'adafruit/master' into ld-cleanup 2019-12-05 22:46:38 -05:00
Dan Halbert 40434d6919 wip 2019-12-05 22:45:53 -05:00
Hierophect 9b43d5ced4 Merge remote-tracking branch 'upstream/master' into stm32-blackpill 2019-12-05 14:25:39 -05:00
Hierophect c53496a55e remove redundant NOPs 2019-12-05 12:45:09 -05:00
Hierophect f3f2c7f5de change default phase for SPI 2019-12-05 11:38:20 -05:00
Scott Shawcroft 17c8356b8c
Add connection interval and debugging
This also sets TinyUSB to master and to not include its submodules.

It also fixes an old displayio example comment and retries gattc
reads.
2019-12-04 14:39:02 -08:00
Scott Shawcroft 19dc219ff7
Merge pull request #2351 from hierophect/stm32-i2c-never-reset
STM32: Add I2C never reset
2019-12-04 10:26:51 -08:00
Hierophect 3de1b9edbe Merge remote-tracking branch 'upstream/master' into stm32-displayio 2019-12-04 10:50:14 -05:00
Jeff Epler 238e121236 protocols: Allow them to be (optionally) type-safe
Protocols are nice, but there is no way for C code to verify whether
a type's "protocol" structure actually implements some particular
protocol.  As a result, you can pass an object that implements the
"vfs" protocol to one that expects the "stream" protocol, and the
opposite of awesomeness ensues.

This patch adds an OPTIONAL (but enabled by default) protocol identifier
as the first member of any protocol structure.  This identifier is
simply a unique QSTR chosen by the protocol designer and used by each
protocol implementer.  When checking for protocol support, instead of
just checking whether the object's type has a non-NULL protocol field,
use `mp_proto_get` which implements the protocol check when possible.

The existing protocols are now named:
    protocol_framebuf
    protocol_i2c
    protocol_pin
    protocol_stream
    protocol_spi
    protocol_vfs
(most of these are unused in CP and are just inherited from MP; vfs and
stream are definitely used though)

I did not find any crashing examples, but here's one to give a flavor of what
is improved, using `micropython_coverage`.  Before the change,
the vfs "ioctl" protocol is invoked, and the result is not intelligible
as json (but it could have resulted in a hard fault, potentially):

    >>> import uos, ujson
    >>> u = uos.VfsPosix('/tmp')
    >>> ujson.load(u)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: syntax error in JSON

After the change, the vfs object is correctly detected as not supporting
the stream protocol:
    >>> ujson.load(p)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    OSError: stream operation not supported
2019-12-04 09:29:57 -06:00
Hierophect e6b45656f9 Add module and empty parallelbus 2019-12-03 17:18:42 -05:00
Hierophect 012b3bdf18 Add I2C never reset, SPI bugfix 2019-12-03 16:18:49 -05:00
Hierophect 45a6b03d40 copy from busted branch 2019-12-03 15:30:12 -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
Hierophect 12737e2821 remove F401 additions to streamline 2019-12-02 12:28:48 -05: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
Scott Shawcroft 3fc58cee38
Merge remote-tracking branch 'adafruit/master' into support_extended_advertising 2019-11-26 13:12:43 -08: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
Scott Shawcroft e5dd78d393
Merge pull request #2324 from jepler/nrf-i2s-channels-widths
nrf: assign channel width and count correctly
2019-11-25 16:59:08 -08:00
Scott Shawcroft 2653455ded
Merge pull request #2321 from jepler/nrf-i2s-buglets
Nrf i2s buglets
2019-11-25 16:11:43 -08:00
Thomas Sarlandie 11dc572bce feature: our own PID - thanks @ladyada 2019-11-25 21:56:42 +01:00
Jeff Epler 1ee35fd6fd nrf: i2sout: move register settings closer together
.. just for consistency's sake
2019-11-25 11:43:51 -06:00
Jeff Epler 47a6eaa297 nrf: i2sout: Assign SWIDTH
The sample width register was never set, so all samples were played
as though they were 16 bit.

After this change, 8-bit samples no longer produce audio on the MAX 98357A
BOB, because only 16-, 24-, and 32-bit samples are supported by the
hardware.  This will be addressed by a future change to pad samples to
16 bits; see #2323 and the 98357A datasheet page 6.
2019-11-25 11:43:29 -06:00
Jeff Epler 8f4bab2d24 i2sout: Correctly retrieve channel_count
The meaning of the "single channel" parameter is not well-documented,
but in fact it seems that "true" must be passed or else the returned
channel_count is always 1.  This caused stereo samples to be played
incorrectly.
2019-11-25 10:59:59 -06:00
Thomas Sarlandie fc71ed9789 add shirtty board - hackaday supercon 2019 addon 2019-11-25 17:44:41 +01:00
Dan Halbert d154d11911
Merge pull request #2320 from jepler/nrf-unsigned-audio-crash
nrf: i2sout: Fix double-increment when copying samples
2019-11-25 11:42:16 -05:00
Jeff Epler c9946dfd63 nrf: i2sout: Use <, not !=, for loop condition
This is good C style, h/t @danh
2019-11-25 09:35:57 -06:00
Jeff Epler 19d122e546 nrf: i2sout: Fix double-increment when copying samples
This caused two problems when playing unsigned samples:
 * When an even number of samples were present, it "worked" but only
   every other sample was copied into the output, changing the waveform
 * When an odd number of samples were present, the copy continued beyond
   the end of the buffers and caused a hard fault
2019-11-25 09:07:20 -06: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