jepler
ccf08aa3df
nrf: I2SOut: deal more gracefully with errors from the sample
2019-09-08 21:59:07 -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
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
Dan Halbert
f17059b10b
another API rework: less abstraction leakage
2019-08-28 23:15:22 -04: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
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
Scott Shawcroft
7324b70a7c
Rework based on Dan's review
2019-08-23 15:27:21 -07:00
Scott Shawcroft
2497cbe186
Fix nrf builds
2019-08-22 14:23:33 -07:00
Benny Meisels
d37dd4d758
Updated ParallelBus implementation in nrf port
2019-08-22 14:08:33 -07:00
Dan Halbert
7cc15e56c8
make translate
2019-08-22 15:20:23 -04:00
Dan Halbert
0b7291d767
fix default crystal value; fix include order
2019-08-22 09:01:05 -04:00
Dan Halbert
d94023e9b3
Fix CPBlue LFCLKSRC; CPB has no status neopixel
2019-08-22 01:04:00 -04:00
Dan Halbert
e00696de7f
merge from upstream and make translate
2019-08-20 13:06:23 -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
Jeff Epler
26a05d01dc
Merge remote-tracking branch 'origin/master' into nrf-pdm-audioin
2019-08-18 21:30:14 -05: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
e2a4c76a37
make nrf touchio be generic: now available for SAMD51 too
2019-08-18 08:44:10 -04: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
Jeff Epler
11dd3a260e
nrf: Use RUN_BACKGROUND_TASKS
2019-08-11 08:53:02 -05:00
Dan Halbert
1570ef2dd4
specifying attribute length; fix up value setting
2019-08-07 23:49:09 -04:00
Dan Halbert
d047b73a9c
fix newly-introduced bugs; UART client/server working again
2019-08-07 11:10:21 -04:00
Dan Halbert
d74c8b9425
WIP: more Descriptor work; refactor gattc/gatts read/write
2019-08-06 22:55:25 -04:00
Dan Halbert
243334da75
Merge remote-tracking branch 'adafruit/master' into ble-pairing
2019-08-05 23:06:24 -04: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
b67d04a5b1
Merge remote-tracking branch 'adafruit/master' into ble-pairing
2019-08-05 16:35:44 -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
Dan Halbert
7ce3776b80
WIP: rework of Characteristic properties; enhance Descriptor; not tested
2019-08-02 17:57:31 -04: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
Dan Halbert
91d791afd0
cleanup adapter.address; add uniquish suffix to BLE device name
2019-07-31 00:30:24 -04:00
Dan Halbert
83129b8c63
BLE: peripheral client pairing (not yet bonding); fix time doc formatting
2019-07-30 14:26:26 -04:00
Jeff Epler
b72352949b
PWM audio: Rename AudioOut -> PWMAudioOut, _audioio_ -> _audiopwmio_
2019-07-29 18:39:00 -04:00
Dan Halbert
28ca05ccdc
allow discovery from central or peripheral
2019-07-27 13:22:15 -04:00
Jeff Epler
a183425e00
ports/nrf: Implement audioio.AudioOut using PWM
...
This implements AudioOut, with known caveats:
* pause/resume are not yet implemented (this is just a bug)
* at best, the sample fidelity is 8 bits (this is a hardware limitation)
Testing performed:
My test system is a Particle Xenon with a PAM8302 op-amp
https://www.adafruit.com/product/2130 and 8-ohm speaker. There's no
analog filtering between the Xenon's PWM pin and the "A+" input of
the amplifier; the "A-" pin is disconnected. It is powered from
VUSB.
I used pin D4, which is *NOT* listed as a low-speed-only pin, but
the code does NOT switch the pin to high drive. This is related to
an open issue for general inability to set drive level for pins
being used by a "special function" on nrf:
https://github.com/adafruit/circuitpython/issues/1270
Nothing about the code I've written should limit the usable pins.
All samples I played were 16-bit, generally monophonic at 11025Hz
and 22050Hz from the Debian LibreOffice package.
2019-07-26 07:57:11 -05:00
Jeff Epler
2bc704fe07
ports/nrf: factor out routines for allocating, freeing pwm channels
2019-07-26 07:52:37 -05:00
Scott Shawcroft
8ec2d6ce49
Merge pull request #2007 from hierophect/F4xx-port-setup
...
Add STM32 Discovery F412ZG and F411RE support
2019-07-24 18:49:48 -07:00
Hierophect
58630a844a
Add feature conditionals and clean up
2019-07-22 12:58:28 -04: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
Hierophect
43e8a4110f
Add missing files for DigitalIO
2019-07-17 14:18:01 -04:00
Dan Halbert
364ee62d10
Address review comments.
2019-07-16 19:53:36 -04:00
Dan Halbert
1cf8a3e8d8
Merge remote-tracking branch 'adafruit/master' into ble-scanner
2019-07-11 18:42:16 -04:00
Scott Shawcroft
6fad383367
Merge pull request #1925 from C47D/rgb_status
...
Initial support for RGB led as Status indicator, fixes #1382
2019-07-09 10:31:34 -07:00
Dan Halbert
6a001786a9
merge from master
2019-07-09 08:58:49 -04:00
Dan Halbert
118b26b335
UARTClient now works both directions
2019-07-09 00:21:46 -04:00
Dan Halbert
09ddff8df1
WIP: Need descriptors for Central CCCD discovery; not done yet
2019-07-07 00:07:47 -04:00
Scott Shawcroft
5610e05b8c
Fix up nrf so that it is initialized properly. Also, do not reset
...
it's pins.
2019-07-06 12:48:16 -07:00
iot49
6e5d70fa19
changed type of receiver_buffer_size to uint16_t
2019-07-03 12:02:01 -07:00
Dan Halbert
bf8a35b2f8
WIP: CharacteristicBuffer for Central; not working: need to set remote Characteristic Service
2019-07-02 22:34:54 -04:00
Dan Halbert
6ea01ea9b0
Central is connecting; characteristics can be read and written
2019-06-29 00:20:06 -04:00
Dan Halbert
140904ec84
getting Scanner to work
2019-06-22 22:10:15 -04:00
Dan Halbert
4881e1ff55
WIP: Central compiles; now will test
2019-06-21 18:04:04 -04:00
Dan Halbert
23bd861c9a
nrf: fix neopixel_write pwm buf size calc
2019-06-20 18:02:14 -04:00
Dan Halbert
24ac1fdcab
WIP: backup only; not compiled
2019-06-19 21:54:28 -04:00
Dan Halbert
a1b5d800f3
Update copyrights; get ready for Central
2019-06-19 10:42:36 -04:00
Dan Halbert
35b9191857
Don't operate directly on bleio objects in shared-bindings: use common_hal
...
routines instead. Changes made but not yet tested.
2019-06-18 23:46:20 -04:00
Dan Halbert
bed6d43a76
merge from upstream; WIP redo Address; no more AddressType
2019-06-13 21:55:07 -04:00
Dan Halbert
1905d90eaa
Make advertising data buffers long-lived
2019-06-05 20:08:53 -04:00
Dan Halbert
613e12f99f
Replace Broadcaster with enhanced Peripheral
2019-06-03 20:40:05 -04:00
Dan Halbert
63ac37946d
1. Remove advertising data construction in C: it's all done in Python now
...
2. Add scan response capability to advertising.
2019-06-02 23:21:30 -04:00
Dan Halbert
12f1d9d30c
fix advertisement length check; add Service.secondary attribute
2019-05-31 18:03:05 -04:00
Dan Halbert
6cec81bcb5
Need to enable ble before scanning
2019-05-23 22:05:16 -04:00
Dan Halbert
1639354e5f
Scanner working, but not very first time
2019-05-23 16:07:54 -04:00
Dan Halbert
15b7946fc4
Off-by-one error for usage of MAX_TX_IN_PROGRESS
2019-04-22 22:07:48 -04:00
Nick Moore
9c42a72275
Fix up single-byte access to nvm.ByteArray
2019-04-16 14:53:44 +10:00
Nick Moore
83dad37562
Fixups for adafruit/circuitpython#1042
2019-04-16 14:53:44 +10:00
Nick Moore
02dd32da60
Make some space for NVM adafruit/circuitpython#1042
2019-04-16 14:53:44 +10:00
Nick Moore
66e8ceafad
switch nvm.ByteArray to use new nrf_nvm_safe_flash_page_write
...
adafruit/circuitpython#1610
2019-04-16 14:53:44 +10:00
Nick Moore
d0e5af3b09
Working flash pages for nvm.ByteArray adafruit/circuitpython#1042
...
import microcontroller
def dump(n = microcontroller.nvm):
for i in range(0,len(n)):
print ("%02X " % n[i], end="")
if i % 16 == 15: print('')
microcontroller.nvm[0:4096] = bytes([1,2,3,4,5,6,7,8]) * 512
microcontroller.nvm[4096:8192] = bytes([16,17,18,19]) * 1024
microcontroller.nvm[4090:4101] = b'thisisatest'
microcontroller.nvm[100:105] = b'hello'
microcontroller.nvm[8000:8007] = b'goodbye'
dump()
2019-04-16 14:53:44 +10:00
Nick Moore
933500c448
nvm.ByteArray reads & writes but no sensible erase yet adafruit/circuitpython#1042
2019-04-16 14:53:44 +10:00
Nick Moore
df89156f2f
Start on nRF nvm.ByteArray adafruit/circuitpython#1042 (doesn't do anything yet)
2019-04-16 14:53:44 +10:00
Scott Shawcroft
254d0a53ac
Revert "nrf nvm: touchups to nickzoic PR #1768 "
2019-04-15 18:50:33 -07:00
Dan Halbert
864910559b
fix subscripting
2019-04-10 21:41:55 -04:00
Nick Moore
18908c21f7
Fixups for adafruit/circuitpython#1042
2019-04-09 12:53:11 +10:00
Nick Moore
fdaff00c78
Make some space for NVM adafruit/circuitpython#1042
2019-04-09 10:56:53 +10:00
Nick Moore
bc92441803
switch nvm.ByteArray to use new nrf_nvm_safe_flash_page_write
...
adafruit/circuitpython#1610
2019-04-09 10:55:39 +10:00
Nick Moore
8e7fee2246
Working flash pages for nvm.ByteArray adafruit/circuitpython#1042
...
import microcontroller
def dump(n = microcontroller.nvm):
for i in range(0,len(n)):
print ("%02X " % n[i], end="")
if i % 16 == 15: print('')
microcontroller.nvm[0:4096] = bytes([1,2,3,4,5,6,7,8]) * 512
microcontroller.nvm[4096:8192] = bytes([16,17,18,19]) * 1024
microcontroller.nvm[4090:4101] = b'thisisatest'
microcontroller.nvm[100:105] = b'hello'
microcontroller.nvm[8000:8007] = b'goodbye'
dump()
2019-04-09 10:55:39 +10:00
Nick Moore
492431a694
nvm.ByteArray reads & writes but no sensible erase yet adafruit/circuitpython#1042
2019-04-09 10:54:11 +10:00
Nick Moore
f8e5e2da64
Start on nRF nvm.ByteArray adafruit/circuitpython#1042 (doesn't do anything yet)
2019-04-09 10:54:11 +10:00
Scott Shawcroft
049b9ca094
Remove terse TODOs
2019-04-08 14:46:45 -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
Nick Moore
781d301bb6
Remove unnecessary MP_WEAK declarations
2019-04-02 13:33:22 +11:00
Nick Moore
94bda3bde1
Change nRF RTC implementation to use RTC2 #1046
...
(to avoid interference with Bluetooth Softdevice. See
https://github.com/adafruit/circuitpython/pull/1534#issuecomment-478776240
with thanks to @bboser for pointing it out)
2019-04-02 13:28:22 +11:00
Nick Moore
6afe23d0b0
There isn't really a good way to calibrate this RTC adafruit/circuitpython#1046
2019-04-02 13:28:03 +11:00
Nick Moore
6206fa9a82
adafruit/circuitpython#1046 handle overflows in the RTC counter
2019-04-02 13:27:45 +11:00
Nick Moore
f846fa109e
enable NRFX RTC adafruit/circuitpython#1046
2019-04-02 13:27:28 +11:00
Nick Moore
f88f9fd748
more fake RTC code ... adafruit/circuitpython#1046
...
(works if MP_WEAK common_hal_rtc_get_time is removed)
2019-04-02 13:27:13 +11:00
Nick Moore
4a5c52fbd6
starting on #1046 rtc for nRF
2019-04-02 13:27:00 +11:00
Dan Halbert
0653bca323
Revert "Circuitpython nickzoic 1046 nrf rtc"
2019-03-29 16:41:29 -04:00
Nick Moore
71622a4515
There isn't really a good way to calibrate this RTC adafruit/circuitpython#1046
2019-03-28 09:50:09 +11:00
Nick Moore
28254def0b
adafruit/circuitpython#1046 handle overflows in the RTC counter
2019-03-28 09:50:09 +11:00
Nick Moore
b09d2c3c62
enable NRFX RTC adafruit/circuitpython#1046
2019-03-28 09:50:09 +11:00
Nick Moore
69cf33e6a1
more fake RTC code ... adafruit/circuitpython#1046
...
(works if MP_WEAK common_hal_rtc_get_time is removed)
2019-03-28 09:50:09 +11:00
Nick Moore
77f307c642
starting on #1046 rtc for nRF
2019-03-28 09:50:09 +11:00
Radomir Dopieralski
f440e41819
Really fix the error messages in bleio, this time
2019-03-25 14:04:50 +01:00
Radomir Dopieralski
bb10a8aaa1
Fix error messages in bleio
2019-03-25 09:19:48 +01:00
Dan Halbert
fe555a4098
Allow NFC pins to be used for other purposes.
2019-03-21 11:22:58 -04:00
Dan Halbert
99da3b9646
Use critical section, not lock, in CharacteristicBuffer; use a root pointer for ble_drv list
2019-02-21 00:19:31 -05:00
Dan Halbert
a345ef28f2
finish Makefile refactoring; nrf builds work
2019-02-15 18:55:10 -05:00
Dan Halbert
ab4194f752
don't allocate DMA buffer as long-lived
2019-02-13 19:49:57 -05:00
Dan Halbert
e92d90ce9c
Add second UARTE to busio.UART. Init uarts on startup.
2019-02-12 22:34:05 -05:00
Scott Shawcroft
37b9cd5974
Merge pull request #1521 from nickzoic/circuitpython-nickzoic-1045-nrf-rotaryio
...
Circuitpython nickzoic 1045 nrf rotaryio
2019-02-07 10:38:20 -08:00
Nick Moore
b9db977a2d
Change pin mode to pullup for adafruit/circuitpython#1045
2019-02-07 09:47:56 +11:00
Nick Moore
a7c349bc6e
Add quarter-click logic to adafruit/circuitpython#1045
2019-02-05 16:41:33 +11:00
Nick Moore
95454ecde0
useful output from rotaryio adafruit/circuitpython#1045
2019-02-05 16:41:33 +11:00
Nick Moore
21eb7e8e64
GPIOTE handlers for rotaryio.IncrementalEncoder adafruit/circuitpython#1045
2019-02-05 14:15:13 +11:00
Nick Moore
ee21cc163f
Start on rotaryio.IncrementalEncoder adafruit/circuitpython#1045 (does nothing yet!)
2019-02-05 14:15:03 +11:00
Scott Shawcroft
ec03887040
Fix hallowing and nrf builds
2019-01-31 11:42:15 -08:00
hathach
164e1e2341
re-init usb hardware when enable/disable SD
2019-01-30 14:13:07 +07:00
Scott Shawcroft
765d877dfa
Merge pull request #1499 from nickzoic/nickzoic/circuitpython-nrf-touchin-1048
...
Nickzoic/circuitpython nrf touchin 1048
2019-01-28 00:22:34 -08:00
Nick Moore
294b026aca
Automatically set a default threshold for touchio.TouchIn channels
2019-01-28 18:22:57 +11:00
Nick Moore
539aaf08b5
speed up measurement loop
2019-01-27 21:54:59 +11:00
Nick Moore
4a093294ac
hugely simplified version of the touchio.TouchIn.get_raw_reading code ( adafruit/circuitpython#1048 )
2019-01-27 15:08:03 +11:00
Dan Halbert
7998a7696d
also handle BLE_GATTS_EVT_SYS_ATTR_MISSING: fixes Android:
2019-01-23 22:12:38 -05:00
Dan Halbert
b1f1bb1389
support BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST, sent by newer devices
2019-01-23 21:07:23 -05:00
Dan Halbert
e170e03f8c
Merge remote-tracking branch 'adafruit/master' into bleio2
2019-01-21 20:38:26 -05:00
Dan Halbert
28cfd8a513
CharacteristicBuffer: make it be a stream class; add locking
2019-01-19 19:45:35 -05:00
Scott Shawcroft
edc8383e22
Improvements thanks to danh's review
2019-01-18 16:37:06 -08:00
Scott Shawcroft
fddc98858a
fix nonetype handling and nrf never reset
2019-01-17 18:51:40 -08:00
Scott Shawcroft
6404aaf411
Fix up nrf and using board.SPI in FourWire
2019-01-17 18:19:07 -08:00
Scott Shawcroft
760bd8d8a4
share fourwire and make nrf compile
2019-01-17 15:15:59 -08:00
Dan Halbert
50ee5ef24c
merge translations; add bleio comments; fix minor sphinx issues in midi
2019-01-10 21:12:17 -05:00
hathach
f366e3feea
Merge branch 'master' into nrf52_pulsein
2019-01-09 20:39:35 +07:00
hathach
cfc4c8cbfa
minor clean up
2019-01-09 15:43:54 +07:00
hathach
db82160eef
fix pulsein incorrect compute
2019-01-09 15:15:30 +07:00
Dan Halbert
13d607698e
m_tx_in_progress might underflow (check on this)
2019-01-08 16:37:14 -05:00
Dan Halbert
50641c4152
remove debugging printf's
2019-01-08 15:52:21 -05:00
Dan Halbert
f66f55b4ed
add CharacteristicBuffer; UART seems to work!
2019-01-07 22:46:20 -05:00
hathach
215008f78c
clean up neopixel write !!
2019-01-08 00:21:31 +07:00
Dan Halbert
a77b2363ef
evt handler list bugs; unique evt handler names; remove uuid128_reference
2019-01-03 21:42:42 -05:00
Dan Halbert
8dea6f53bb
forgot to store data when reading a gatts value
2019-01-03 14:16:41 -05:00
Dan Halbert
87c6f33bcc
Broadcaster now takes whole packet. Also should be scannable
2019-01-01 14:11:59 -05:00
Dan Halbert
b6b5ed9c89
Remove nRF52832 support
2018-12-30 22:49:20 -05:00
Dan Halbert
1dc3957e72
LocalPeripheral is now Peripheral; more work on basic GATTS support; UART not working yet
2018-12-30 22:33:49 -05:00
Dan Halbert
ef39e72c7c
free event handlers on reset; fix typo in Broadcaster
2018-12-29 13:55:10 -05:00
Dan Halbert
145e110915
Merge remote-tracking branch 'adafruit/master' into bleio-rev
2018-12-29 00:00:39 -05:00
Dan Halbert
4d1f0ec07b
Add Broadcaster. Reset correctly on reload.
2018-12-28 23:34:23 -05:00
hathach
6b0d93cea3
correct i2c max len
2018-12-28 21:14:27 +07:00
hathach
a4ee80832a
fix #1422 correct i2c max xfer len (size in bits)
2018-12-28 16:30:11 +07:00
hathach
3ee766bc01
put received bytes to fifo when error
2018-12-28 01:05:30 +07:00
hathach
d092722ae8
fix #1407 keep receiving in case of error
2018-12-28 00:40:29 +07:00
Dan Halbert
4167bf5b24
wip: advertising works, but not connection
2018-12-27 00:04:04 -05:00
hathach
6752266673
added pulsein using gpiote (gpio interrupt)
2018-12-18 22:05:17 +07:00
Dan Halbert
bfa66861ef
Merge remote-tracking branch 'adafruit/master' into bleio-rev
2018-12-13 16:33:15 -05:00
hathach
b37b2fa7e7
overwrite old data if fifo is full
2018-12-13 23:56:06 +07:00
hathach
e136222ae2
use rbuf for busio uart
2018-12-13 23:48:53 +07:00
Nick Moore
1dc4c4757e
touchio.TouchIn sensing working on a single pin! adafruit/circuitpython#1048
2018-12-11 14:33:35 +11:00
Nick Moore
901db4797e
progress on NRF touchio.TouchIn #1048
2018-12-09 16:48:33 +11:00
Dan Halbert
a7a24096f4
bleio WIP: redo for more immutability; use sd_* routines for internal flash write
2018-12-07 16:52:47 -05:00
Scott Shawcroft
6ef8639971
Rework safe mode and have heap overwrite trigger it.
...
This creates a common safe mode mechanic that ports can share.
As a result, the nRF52 now has safe mode support as well.
The common safe mode adds a 700ms delay at startup where a reset
during that window will cause a reset into safe mode. This window
is designated by a yellow status pixel and flashing the single led
three times.
A couple NeoPixel fixes are included for the nRF52 as well.
Fixes #1034 . Fixes #990 . Fixes #615 .
2018-12-06 14:24:20 -08:00
Dan Halbert
125901e4e2
Merge remote-tracking branch 'adafruit/master' into bleio-rev
2018-12-06 12:41:38 -05: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
Nick Moore
452a622459
Set up structure for touchio adafruit/circuitpython#1048 (does nothing yet)
2018-12-04 17:12:02 +11:00
Dan Halbert
80db2cec99
UART changes: timeout in secs, write bytes, etc.
2018-12-03 12:04:32 -05:00
Dan Halbert
3164b16196
WIP: debug; add hash and __eq__ to UUID
2018-11-26 21:09:17 -05:00
Dan Halbert
6fb7590280
Merge remote-tracking branch 'adafruit/master' into bleio-rev
2018-11-26 10:16:29 -05:00
Scott Shawcroft
15eeac5d4b
A few fixes for nRF52840 feather QSPI and neopixel
2018-11-23 14:22:07 -08:00
Dan Halbert
1763ffe245
More UUID work; use mp_raise for exceptions
2018-11-20 23:04:58 -05:00
Dan Halbert
31cc71f7fb
WIP: bleio revisions
2018-11-20 09:36:45 -05: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
arturo182
4bc24c4f60
bleio: Fix errors after rebase
2018-10-21 17:15:27 +02:00
arturo182
eceb21a017
bleio: Don't register the services until needed
...
Because of the very specific way nRF requires service registration
(characteristics can be added only to last added service), we would
have to write the Python code in a specific way. With this patch the
user has more freedom.
2018-10-21 16:00:04 +02:00
arturo182
19fab4af5a
bleio: Remove deep copy constructor for UUID
2018-10-21 15:59:50 +02:00
arturo182
b5e5805bb4
bleio: Remove redundant struct field
2018-10-21 15:59:46 +02:00
arturo182
c7b42d80b3
bleio: A bit of cleanup
2018-10-21 15:59:42 +02:00
arturo182
17f13ecc2c
nrf: Cleanup of the ble driver
...
Moved the functions to classes that they belong to.
2018-10-21 15:54:13 +02:00
arturo182
77eeecbfd9
nrf: BLE driver cleanup
2018-10-21 15:52:36 +02:00
arturo182
6545aa99a9
nrf: Remove the ble drv specific characteristic struct
2018-10-21 15:51:04 +02:00
arturo182
98aa8c5923
nrf: Remove the ble drv specific service struct
2018-10-21 15:51:01 +02:00
arturo182
3df7dea2cc
nrf: Remove the ble drv specific advertisement data struct
2018-10-21 15:50:59 +02:00
arturo182
4b344812bf
nrf: Remove the ble drv specific address struct
2018-10-21 15:50:56 +02:00
arturo182
3bd65fbae5
nrf: Move the Peripheral class to bleio as Device
...
This was the last class from ubluepy and so that module is now gone.
The Device class offers both Peripheral and Central functionality.
See the inline docs for more info.
2018-10-21 15:50:45 +02:00
arturo182
bda734223e
nrf: Move the Service class from ubluepy to the shared bleio module
2018-10-21 15:43:51 +02:00
arturo182
cc78249226
nrf: Move the Characteristic class from ubluepy to the shared bleio module
2018-10-21 15:43:48 +02:00
arturo182
1c6bf9a150
bleio: Move the Scanner class to a shared module
2018-10-21 15:43:29 +02:00
arturo182
345334aaf1
bleio: Add a new Address class
...
Use the new in the Adapter singleton.
2018-10-21 15:43:21 +02:00
arturo182
20b8d5169d
nrf: Move the Descriptor class from ubluepy to the shared bleio module
2018-10-21 15:43:13 +02:00
arturo182
f4940c9aec
nrf: Move the UUID class from ubluepy to the shared bleio module
...
Also added a UUIDType enum-like class for determining UUID type.
2018-10-21 15:43:08 +02:00
Dan Halbert
b3c7746a7f
fix copyright notice
2018-10-16 11:09:37 -04:00
Dan Halbert
2262efc311
PulseOut working
2018-10-16 11:05:02 -04:00
Dan Halbert
8d58093328
Merge pull request #1259 from dhalbert/nrf-pwmout
...
Allow variable freq PWMOut; use multiple channels if same freq
2018-10-10 12:27:27 -04: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
Dan Halbert
ca737e6f7c
Don't disable tempoarily in deinit().
2018-10-09 21:23:47 -04:00
Dan Halbert
91a88cf568
Allow variable freq PWMOut; use multiple channels if same freq
2018-10-09 20:52:55 -04:00
ATMakersBill
9f94712ad1
replacing change to input() with separate method to check for USB Serial input
2018-10-09 18:37:52 -04:00
Dan Halbert
6049776b26
Merge branch 'master' into nrf52_uart_io
2018-10-03 13:31:48 -04:00
hathach
b8884ccc8b
Merge branch 'master' into nrf52_uart_io
2018-10-03 23:13:56 +07:00
hathach
08cbb03bdd
implement common_hal_busio_uart_clear_rx_buffer
2018-10-03 11:39:01 +07:00
hathach
f543c8415d
"busio.UART not yet implemented -> not available
2018-10-03 11:30:31 +07:00
Dan Halbert
21d331c8cc
round SPI freq down; check max freq
2018-10-02 21:06:40 -04:00
Dan Halbert
aa95526428
nrf: remove error check for SPI baudrate too high; round to nearest baudrate
2018-10-01 18:54:13 -04:00
Dan Halbert
48a3aafdd2
reset I2C and SPI on ctrl-D
2018-09-25 15:12:10 -04:00
hathach
76d6fb03f0
more clean up
2018-09-26 02:12:06 +07:00
hathach
eba80f7a99
update translate string
2018-09-26 02:10:44 +07:00
hathach
52328c88cd
remove space
2018-09-26 02:06:32 +07:00
hathach
74cc55b107
change error type to runtime
2018-09-25 17:31:53 +07:00
hathach
dec5c50c45
clean up
2018-09-25 16:22:14 +07:00
hathach
2f0e0bdcaf
migrate serial from uart to uarte
2018-09-25 16:14:44 +07:00
hathach
9017c9d29a
clean up
2018-09-25 14:29:45 +07:00
hathach
d3e5ba83eb
update nrfx to 1.3.0
2018-09-25 13:00:57 +07:00
hathach
d714479924
clean up
2018-09-25 12:48:48 +07:00
hathach
01c1296197
nrf52 uart io rx work reliably
2018-09-25 12:37:31 +07:00
hathach
1782ceab35
uarte malloc if buffer is not in SRAM
2018-09-24 16:18:49 +07:00
hathach
4015023e01
clean up uart io
2018-09-24 16:12:05 +07:00
hathach
7bbd449f06
uarte rx work fine
2018-09-24 15:54:32 +07:00
hathach
fdd3e91753
changing to nrf uarte, tx works fine
2018-09-24 14:56:52 +07:00
hathach
7a1b4ccc9b
Merge branch 'master' into nrf52_uart_io
2018-09-24 12:50:48 +07:00
Dan Halbert
2c15d12f2f
allow multiple I2C and SPI; improve nrfx_config.h
2018-09-20 20:45:30 -04:00
hathach
816ff05253
clean up
2018-09-21 03:53:35 +07:00
hathach
dddc437ea7
got rx working finally
2018-09-21 03:48:13 +07:00
hathach
fe1a297889
still have issue with initial uart rx
2018-09-21 01:27:52 +07:00
Dan Halbert
2309e60c0d
WIP; problem with staticly allocated IRQ handlers
2018-09-19 21:59:04 -04:00
hathach
9c25306877
uart rx got some issue with irq
2018-09-20 02:12:21 +07:00
hathach
c5593ec074
got uart tx work
2018-09-19 17:59:15 +07:00
Dan Halbert
56b7f3ba64
fix translate omission; pca10059 fix in .travis.yml
2018-09-18 16:28:27 -04:00
Dan Halbert
bc510e714f
merge 3.0.2 to master
2018-09-18 15:38:12 -04:00
Dan Halbert
6a72084198
fix nrf builds; sphinx 1.8.0 crashing: use lower version
2018-09-12 18:37:03 -04:00
Dan Halbert
e335c74ac6
use open-drain capabilities on GPIO; clean up board init; set correct GPIO voltage
2018-09-09 15:01:28 -04:00
Dan Halbert
100603a60b
neopixel_write merge; alphabetize stuff in Makefile
2018-09-05 17:38:59 -04:00
Dan Halbert
4c3b4cacfa
Merge remote-tracking branch 'adafruit/master' into nrf-pin-claiming
2018-09-05 13:15:22 -04:00
hathach
ccd87a33b6
use nrf_pwm instead of direct registers
2018-09-05 13:18:36 +07:00
Dan Halbert
b5c03a7085
generalize # of ports; remove atmel neopixel code; remove pin name in mc_pin_obj_t
2018-09-04 16:43:21 -04:00
hathach
f4a98e909c
fix nrf52832 build 2
2018-09-04 23:25:08 +07:00
hathach
b9e8e3cd1f
fix nrf52832 build
2018-09-04 20:54:36 +07:00
hathach
1fe3ed87eb
run background job while waiting for neopixel write seqend
2018-09-04 19:24:45 +07:00
hathach
3ae24d9f9a
add neopixel_write implementation, work ok
2018-09-04 18:33:08 +07:00
hathach
e17253071e
adding neopixel write
2018-09-04 15:51:49 +07:00
Dan Halbert
4382389e6f
fix typos, remove incorrect pca10059 example; add default buses for pca10056; improve board names for pca boards
2018-09-01 00:29:36 -04:00
Dan Halbert
9ea809bef7
add pin claiming to devices
2018-08-31 18:38:05 -04:00
Dan Halbert
585597a252
pin files rework; implement pin claiming; add more boards
2018-08-31 18:05:55 -04:00
Dan Halbert
0e8d146184
wip
2018-08-31 18:05:55 -04:00
ladyada
ded38d30b6
rename pin.h to nrf_pin.h to avoid conflict with Pin.h
2018-08-26 20:37:12 -04:00
Dan Halbert
85df32907f
rename nrf boards to feather_nrf52832 and feather_nrf52840_express
2018-08-21 18:45:37 -04:00
Egor Leonenko
18e9f74738
Fix PWM Support on NRF52840
...
Replace usage of pin number alone with port+pin combination in NRF port of PWMOut
2018-08-17 19:34:03 +12:00
Scott Shawcroft
76e0373576
Fix nrf and unix
2018-08-16 17:41:38 -07:00
hathach
200669216e
more clean up
2018-08-01 08:52:07 +07:00
hathach
bac233e99b
clean up
2018-08-01 08:47:41 +07:00
hathach
6ddd8583da
clean up
2018-08-01 08:20:20 +07:00
hathach
4bece22c92
add hid keyboard LED indicator stub
2018-07-31 23:02:15 +07:00
hathach
05139e2aee
all hid devices seems to be ok
2018-07-31 22:54:26 +07:00
hathach
2c85f42330
add usb hid syscontrol
2018-07-31 21:57:00 +07:00
hathach
ef58adacd3
usb hid consumer control works
2018-07-31 21:19:02 +07:00
hathach
fd661c1d57
improve usb hid
2018-07-31 21:06:24 +07:00
hathach
27b2a9fe59
add usb_desc, disable tinyusb stack CFG_TUD_DESC_AUTO
2018-07-31 17:50:32 +07:00
hathach
d15caf0dbd
hid keyboard and mouse work well
2018-07-31 16:42:04 +07:00
hathach
368d59796f
adding usb_hid
...
compiled with undefined ref
2018-07-27 17:36:41 +07:00
Dan Halbert
a20ab40ed2
Merge 3.0.0 final bugfixes and changes to master
2018-07-16 09:01:46 -04:00
arturo182
05c1384b67
nrf: Split the ble module into a shared part and the port implementation
...
This allows other ports to implement these shared bindings.
2018-07-13 16:01:15 +02:00
hathach
10846d316b
Merge branch 'master' into nrf52840_usbboot
2018-07-11 21:35:44 +07:00
Dan Halbert
4962468fff
Merge pull request #1011 from arturo182/nrf_cleanup
...
nrf: More cleanup and porting
2018-07-10 15:44:30 -04:00
arturo182
1163462635
nrf: Remove the old time hal and replace with nRFx
2018-07-10 14:59:10 +02:00
Scott Shawcroft
e875f4e52e
Merge pull request #1002 from arturo182/nrfx_gpio
...
nrf: Rewrite the DigitalInOut hal using nRFx
2018-07-09 17:54:38 -07:00
hathach
0e819599e7
Merge branch 'master' into nrf52840_usbboot
2018-07-10 02:02:52 +07:00
Scott Shawcroft
fd5634e4aa
Merge pull request #992 from arturo182/nrf_i2c_fix
...
nrf: Fix I2C transfers with data larger than HW allows
2018-07-08 20:12:09 -07:00
arturo182
388f554ff6
nrf: Rewrite the DigitalInOut hal using nRFx
2018-07-08 17:48:32 +02:00
arturo182
da27253693
nrf: Fix I2C transfers with data larger than HW allows
2018-07-06 21:12:24 +02:00
arturo182
ac74edb4e4
nrf: Fix SPI transfers with data larger than HW allows
2018-07-06 21:10:25 +02:00
hathach
6ef3a0b181
implement filesystem_writable_by_python()
2018-07-06 13:01:07 +07:00
Scott Shawcroft
05a088b369
Merge pull request #972 from arturo182/nrf_i2c
...
nrf: Rewrite the I2C common-hal using nrfx
2018-07-02 14:33:06 -07:00
Dan Halbert
2a0b857643
implement mp_hal_delay_us() to not need interrupts, and use it
2018-06-29 16:01:46 -04:00
Scott Shawcroft
007155276a
Merge pull request #969 from arturo182/nrf_more_commonhal
...
nrf: Rewrite more common-hal with nrfx and sync with atsamd port
2018-06-28 14:00:45 -07:00
Scott Shawcroft
ae82a93b56
Merge pull request #967 from arturo182/nrf_os
...
nrf: Rewrite the os common-hal using nrfx
2018-06-28 13:55:34 -07:00
arturo182
178c089045
nrf: Rewrite the I2C common-hal using nrfx
2018-06-28 22:45:02 +02:00
arturo182
6e6a500801
nrf: Rewrite the os common-hal using nrfx
2018-06-27 21:01:07 +02:00
arturo182
b87bba8a28
nrf: Rewrite more common-hal with nrfx and sync with atsamd port
2018-06-27 20:55:29 +02:00
arturo182
2a12fcd18b
nrf: Rewrite the AnalogIn common-hal using nrfx
2018-06-27 20:41:30 +02:00
arturo182
2f1e678d60
nrf: Rewrite the SPI common-hal using nrfx
...
Use SPIM2 on nRF52832 and SPIM3 on nRF52840. SPIM3 is able to go
up to 32MHz!
2018-06-25 23:46:34 +02:00
arturo182
c2d4d0a10b
nrf: Simplify pin generation and definition
...
This commit cleans up the pin generation code, all the pins and their
AF (only ADC, for now) are specified in nrf52_af.csv and board use their
own csv file to specify which pins are available on that board and if
they have any special names.
2018-06-20 23:26:32 +02:00
jerryneedell
8150150a24
return "false" for stub call
...
See #918 for discussion
2018-06-10 07:11:44 -04:00
Scott Shawcroft
8195df1b55
Stub out get_paused in nrf builds.
2018-06-08 14:01:54 -07:00
Jerry Needell
d6c26942a5
add timeout keyword to I2C - for bitbangio - ignored for busio
2018-05-13 21:54:44 -04:00
Dan Halbert
5f98953ed8
esp8266 and nrf: raise NotImplementedError
2018-04-10 12:08:41 -04:00
sommersoft
6ee573c7c9
Merge branch 'master' into super_status
2018-03-30 14:27:39 -05:00
Jeff Epler
c0029e1d97
Don't lose half of the processor's serial number
...
Before this change, `microcontroller.cpu.uid` returned values
where the top 4 bits of each byte were zero, because of
an incorrect bitmask used in this function.
2018-03-25 13:01:04 -05:00
sommersoft
8c9cc6b7c0
nrf: changed Status to Runtime; instituted runtime singleton
2018-03-10 01:07:17 +00:00
Dan Halbert
5f101f3535
Add dummy UART implementation to nrf so it builds with UART turned on. Also add OneWire.
2018-02-21 22:53:17 -05:00
sommersoft
5de8df7997
added Status submodule to ports/nrf/common-hal/supervisor; issue #544
2018-02-19 22:27:16 +00:00
arturo182
8bfdaa89b9
nrf: Remove SAMD mentions carried over while copying files
2018-02-07 22:44:27 +01:00
arturo182
47c8e20e5a
nrf: Make sure to not use SD functions when SD not available
2018-02-07 22:41:20 +01:00
Kevin Townsend
9d191f7f9f
Merge pull request #589 from arturo182/nrf_gamepad
...
nrf: Implement ticks, add gamepad module and example
2018-02-07 22:17:05 +01:00
arturo182
021df5d3d3
nrf: Cleanup AnalogOut and throw an exception in constructor
...
The nRF MCUs do not support analog output. Throwing an exception
in the constructor will stop users from creating an instance of
the AnalogOut class.
In the future we can ifdef-out the whole class so it is not available
in the module at all.
2018-02-06 21:15:49 +01:00
arturo182
1de2ee6884
nrf: Implement ticks, add gamepad module and example
2018-02-05 20:48:25 +01:00
arturo182
76f5c01798
nrf: Get the port working on pca10056 (nRF52840)
2018-02-05 20:38:41 +01:00
arturo182
6731b47d5a
nrf: Implement MCU temperature reading
...
If softdevice is available and enabled the SD function will be used,
otherwise use MCU registers.
2018-02-02 20:33:21 +01:00
arturo182
d0b451be94
nrf: Use the right SPI registers on nRF52840
2018-02-02 20:31:47 +01:00
Dan Halbert
64831f4e7d
add SPI.frequency to nRF
2018-01-30 13:23:00 -05:00
sommersoft
44bc1711aa
Added Unique ID Functions/Updated Support Matrix ( #527 )
...
shared_bindings/index.rst: updated Support Matrix format as discussed in PR #503 & Issue #448 .
shared-bindings/microcontroller/Processor.c & .h: added UID lookup functionality for use with all ports. Fixes #462 .
2018-01-18 11:39:11 -08:00
Dan Halbert
19d353ccd9
nrf: fixups for changes from 2.2
...
1. bidirectional SPI support (@microbuilder please check)
2. slight changes in DigitalIO types
3. placeholders (not implemented yet) for single/double-click bootloader support
2018-01-03 16:50:57 -05:00
microbuilder
ad7cd0399d
Added 'mp_raise_NotImplementedError(NULL)'
2017-12-22 11:48:07 +01:00
microbuilder
b9e229f739
Removed old code snippets
2017-12-22 11:47:15 +01:00
microbuilder
ace872bf11
Added 'mp_raise_NotImplementedError(NULL)'
2017-12-22 11:45:51 +01:00
microbuilder
60a23f0fb6
nRF52 update with internal file system support
2017-12-21 13:49:14 +01:00
Kevin Townsend
ce75a21e50
Revert "Supervisor REPL support for ports/nrf/boards/feather52"
...
This reverts commit 92113dde81
.
2017-11-23 13:38:38 +01:00
Kevin Townsend
92113dde81
Supervisor REPL support for ports/nrf/boards/feather52
2017-11-23 09:22:11 +01:00