Sean Cross
3ed5b87b8f
nrf: add support for nrf52833
...
This adds preliminary support for the nRF52833, which is a variant of
the nRF52840 with half the RAM, half the flash, and fewer peripherals.
Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 12:29:56 +08:00
Scott Shawcroft
bebf27e733
Merge remote-tracking branch 'adafruit/master' into lower_power
...
This isn't perfect and needs a bit more testing.
2020-04-20 18:25:13 -07:00
Jeff Epler
5fcc6d6286
RGBMatrix: finish renaming from Protomatter
...
This gets all the purely internal references. Some uses of
protomatter/Protomatter/PROTOMATTER remain, as they are references
to symbols in the Protomatter C library itself.
2020-04-17 18:44:07 -05:00
Jeff Epler
3d6258f63d
Rename Protomatter -> RGBMatrix
...
This is a quick rename, it changes the user-facing names but not the
internal names of things.
2020-04-17 18:43:57 -05:00
Jeff Epler
a32337718d
Rename _protomatter -> protomatter
...
I originally believed that there would be a wrapper library around it,
like with _pixelbuf; but this proves not to be the case, as there's
too little for the library to do.
2020-04-17 18:43:57 -05:00
Scott Shawcroft
b580b34cbf
Merge remote-tracking branch 'adafruit/master' into lower_power
2020-04-14 17:14:44 -07:00
Jeff Epler
1d8a073c05
nrf: protomatter port
2020-04-14 18:24:58 -05:00
Scott Shawcroft
7e69d30c02
Fix nRF PulseIn
2020-04-03 14:22:56 -07:00
Scott Shawcroft
8fe512c7e9
Merge remote-tracking branch 'adafruit/master' into lower_power
2020-03-31 15:13:58 -07:00
Scott Shawcroft
8a5d3cd6c4
Add exception on small buffer and fix Connecion WRITE handling
2020-03-25 17:41:47 -07:00
Scott Shawcroft
3551b769a2
Fix connection handle tracking in PacketBuffer when a server.
2020-03-25 13:31:18 -07:00
William Moser
c961ed9025
Added 31250 and 56000 to baudrate_map in UART.c, to parallel definitions in nrfx/mdk/nrf*_bitfields.h files
2020-03-24 13:25:02 -04:00
Scott Shawcroft
76ca13b6ed
Fix SAMD51 pulsein
2020-03-13 17:21:15 -07:00
Scott Shawcroft
48b5f2a384
Initial work on SAMD
2020-03-13 11:16:41 -07:00
Scott Shawcroft
affd3fcc2a
Clear the pending IRQ in the NVIC as well.
2020-03-13 11:16:38 -07:00
Scott Shawcroft
00d5f63e7c
Hopefully fix PulseIn
2020-03-13 11:12:31 -07:00
Scott Shawcroft
ed5cdd7e09
Hopefully fix flash flush and hopefully audio as well.
2020-03-13 11:12:31 -07:00
Scott Shawcroft
418333979a
Fix autoreload, neopixel, monotonic_ns and sleep w/o SD
2020-03-13 11:12:31 -07:00
Scott Shawcroft
6f60afe8c5
First try at lowering the power consumption
2020-03-13 11:12:30 -07:00
Dan Halbert
8435935429
update uses of assert_pin_free; remove redundant checks
2020-02-29 15:37:32 -05:00
Dan Halbert
b6206406de
new pin validation routines; don't use mp_const_none if NULL will do
2020-02-28 23:43:04 -05:00
Scott Shawcroft
28c7a1e9c3
Fix crash after empty REPL session
...
We were trying to reset bluetooth when it was off and then trying
to raise an exception without the heap.
2020-02-24 16:11:17 -08:00
Dan Halbert
f63b2c0d0c
use realloc instead
2020-02-21 17:36:15 -05:00
Dan Halbert
9cf46ec947
put neopixel_write buffer in root pointers
2020-02-21 08:44:25 -05:00
Dan Halbert
23d6a3dc1f
merge from upstream
2020-02-20 22:27:16 -05:00
Dan Halbert
634d246910
relicense nrf SPI.c to MIT
2020-02-20 16:00:21 -05:00
Dave Marples
24405cabaf
Edits as a result of review
2020-02-19 00:07:01 +00:00
Dave Marples
490a808bf6
Addition of stubs for rs485/CTS/RTS handling on non-implemented chips
2020-02-18 23:16:40 +00:00
Dan Halbert
e00b3269fe
use properly-sized SPI transactions
2020-02-12 15:04:19 -05:00
Dan Halbert
2e029d55fc
nrf: add SPIM3 support
2020-02-11 19:22:14 -05:00
Dan Halbert
005c4caf8c
fix function defs for compiler
2020-02-07 10:32:37 -05:00
Dan Halbert
857d8ab40a
improve time.monotonic_ns() accuracy from ms to us
2020-02-07 10:02:50 -05:00
Dan Halbert
a63f49cb83
Merge pull request #2592 from tannewt/add_extra_ble_error
...
Add another error message to BLE
2020-02-05 23:39:17 -05:00
Scott Shawcroft
72a1bdab30
Add another error message for extended advertisements at the same
...
time as scan response. The SD can't do it.
2020-02-05 15:56:17 -08:00
Dan Halbert
b6da2fa173
nrf: fix i2c frequency setting
2020-02-05 11:25:31 -05:00
Dan Halbert
be4e681d07
fix UICR check; do not use NULL for no MISO
2020-01-31 18:57:41 -05:00
Dan Halbert
4abd5f1f7b
increase max connections from 2 to 5
2020-01-31 14:58:23 -05:00
Dan Halbert
87f73e2729
track vm_used_ble better
2020-01-30 09:52:06 -05:00
Dan Halbert
68f9aee992
reset NeoPixels on CPB on soft reload
2020-01-23 20:16:31 -05:00
Dan Halbert
85dc4089b9
address review comments
2020-01-14 17:23:16 -05:00
Dan Halbert
0367ba7495
fix some typos and leftovers
2020-01-13 18:29:34 -05:00
Dan Halbert
2a75196aa3
merge from adafruit/circuitpython
2020-01-13 18:15:32 -05:00
Dan Halbert
4ad004f24e
put bonding to-do flags into Connection objects instead of using a heap-allocated queue
2020-01-13 17:52:32 -05:00
Dan Halbert
9e7f8743c2
fix CCCD bonding store; avoid excessive bonding writes
2020-01-12 23:32:51 -05:00
Dan Halbert
346ce3b73b
wip: HID bonding works!
2020-01-10 23:55:45 -05:00
Scott Shawcroft
6ea8d8a6c2
Merge pull request #2498 from dhalbert/optional-i2c-pullup-checking
...
Make requiring I2C pullups be optional
2020-01-10 11:42:44 -08:00
Scott Shawcroft
8708d3dc45
Merge pull request #2461 from jepler/urandom-hardfaults
...
Urandom hardfaults
2020-01-10 11:37:59 -08:00
Dan Halbert
9c167af17a
wip; redid flash writing to be compatible with SD
2020-01-09 17:40:02 -05:00
Dan Halbert
189f2d5f07
Make requiring I2C pullups be optional
2020-01-09 17:31:50 -05:00
Jeff Epler
1c6efb9e66
os.urandom: remove unneeded sleep
2020-01-08 16:48:17 -06:00
Roy Hooper
1caf6bd8d3
add missing .h file
2020-01-08 15:23:38 -05:00
Roy Hooper
e1c1e32ceb
address code review
2020-01-08 15:17:54 -05:00
Roy Hooper
4e040b0152
add reset of heap to board reset for nrf port
2020-01-08 15:15:27 -05:00
Roy Hooper
34c9e00f08
try (re)using the buffer in neopixel_write
2020-01-08 15:14:53 -05:00
Scott Shawcroft
7a94940c89
Replace magic number and add comment.
2020-01-08 11:01:43 -08:00
Jeff Epler
b3fb024301
nrf: Call into sd as many times as necessary to fill urandom request
...
Generating 51200 bytes in one go takes 4.966s, so that's a rate of about
10KiB/s.
2020-01-08 10:06:55 -06:00
Dan Halbert
390337b9a5
wip; compiles
2020-01-05 23:33:42 -05:00
Scott Shawcroft
82fb761c0f
Add PacketBuffer and MTU negotiation support.
...
PacketBuffer facilitates packet oriented BLE protocols such as BLE
MIDI and the Apple Media Service.
This also adds PHY, MTU and connection event extension negotiation
to speed up data transfer when possible.
2020-01-03 17:29:54 -08:00
Scott Shawcroft
f6ec1ea172
Throw an error when we cannot allocate PWM pixel buffer
2020-01-03 15:15:36 -08:00
Scott Shawcroft
6afb8dadbc
Change SPI and I2C in the same way.
2020-01-03 15:14:37 -08:00
Dan Halbert
242d572470
wip
2020-01-03 10:24:07 -05:00
Scott Shawcroft
cfd71d9023
Fix nRF UART reset
...
disable only turns off ENABLE but doesn't set the init tracking that
nrfx uses. uninit hangs if ENABLE is off and is called because it
waits forever for TX to stop.
2019-12-27 20:18:07 -08:00
Jeff Epler
51af8aadb7
nrf: PWMAudioOut: 62500Hz limitation is not needed
...
.. and it gets in the way of some example programs, due to the way
circuitplayground library generates different frequency sine waves
2019-12-19 10:34:56 -06:00
Ha Thach
25df6e613a
Merge pull request #2395 from hathach/nrfx-v2
...
upgrade nrfx API to v2
2019-12-18 16:14:25 +07:00
Jeff Epler
8137ac4c49
nRF: PWMAudioOut: handle non-looping rawsamples
2019-12-17 08:59:08 -06:00
hathach
894cad2e17
upgrade nrfx API to v2
2019-12-17 21:39:52 +07:00
Dan Halbert
ef2ef7a6b8
merge from master
2019-12-12 15:51:13 -05:00
Dan Halbert
7889b999cc
Fix flash write error handling; clean up safe mode message printing
2019-12-12 14:41:49 -05:00
Dan Halbert
ae64a669dd
address review comments
2019-12-11 15:43:06 -05:00
Dan Halbert
68ae47907c
merge from upstream
2019-12-10 21:04:46 -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
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
Dan Halbert
40434d6919
wip
2019-12-05 22:45:53 -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
Jeff Epler
95d9c49e43
Merge remote-tracking branch 'origin/master' into tick-refactor
2019-11-29 11:27:09 -06: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
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
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
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
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
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
Scott Shawcroft
743bc829ab
Clean up debug changes
2019-11-21 16:39:57 -08:00
Scott Shawcroft
e63796c7bc
Special exception message for when pairing prompt is ignored.
2019-11-21 16:32:42 -08:00
Scott Shawcroft
39f4046f70
Fix pairing when peripheral. Central untested.
2019-11-21 16:32:42 -08:00
Scott Shawcroft
5e857fdb67
Use BluetoothError in _bleio
...
This better differentiates errors than using OSError everywhere.
2019-11-20 14:02:15 -08:00
Scott Shawcroft
11c2c3443f
Add support for extended (>31 byte) BLE advertisements.
2019-11-19 13:55:58 -08: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
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
Dan Halbert
8cd2f87e99
Merge pull request #2236 from tannewt/bleio_tweaks
...
Refine _bleio
2019-11-04 22:27:54 -05:00
Dan Halbert
e3638ffaad
Merge pull request #2262 from jepler/cpb-speaker-disable
...
cpb: Disable the onboard speaker until request
2019-11-03 18:34:29 -05: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