2473 Commits

Author SHA1 Message Date
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
Jeff Epler
bfdfe0e681 stm32: fix uses of ticks_ms global 2019-11-22 14:30:08 -06:00
Jeff Epler
77b78d7fb9 Merge remote-tracking branch 'origin/master' into tick-refactor 2019-11-22 14:28:51 -06:00
Jeff Epler
1c6c9a3e1f nrf: i2sout: Ensure hardware I2S is stopped at deinit
.. otherwise, it may be possible under some scenario, for the background
task to continue and overwrite unrelated memory.
2019-11-22 14:15:07 -06:00
Dan Halbert
e18d3e0f76 Merge branch 'master' into m4-network-ps2io 2019-11-22 15:02:52 -05:00
Jeff Epler
aabb56c840 nrf: i2sout: Only update hold_value when appropriate
If we put no samples into the buffer, then there is no last
sample to fill out hold_value with.  (and, in fact, the expression such
as *(uint32_t*)(buffer-4) is outside an allocated region)

Detect this condition, and leave the prior value in place.

This improves clicks heard when pausing and resuming a waveform.
2019-11-22 13:54:37 -06: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