Commit Graph

2388 Commits

Author SHA1 Message Date
Hierophect 4a25c2344e implement os urandom 2019-11-18 18:27:25 -05:00
Hierophect a4797327cd add microcontroller toggles for status LED 2019-11-18 13:51:59 -05:00
Jeff Epler 40a47d41df samd: background: Allow monitoring time taken in background task
If you define MONITOR_BACKGROUND_TASK, then a physical output pin
(Metro M4 Express's "SCL" pin by default) will be set HIGH while in
the background task and LOW at other times
2019-11-18 11:01:24 -06: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
Cedar Grove Maker Studios e7df288a34
add USB interface description
... to "StringCarM0Ex"
2019-11-16 16:40:40 -08:00
Hierophect 51078cc38f timing tweaks with testing 2019-11-15 17:17:05 -05:00
Hierophect 98fd372d5b Add missing define 2019-11-15 13:19:37 -05:00
Hierophect ee1559b921 Merge branch 'pin-commonhal-additions' into stm32-neopixel 2019-11-15 13:09:59 -05:00
Hierophect 81223c76bd revert error 2019-11-15 13:04:25 -05:00
Hierophect 5f290d091e Merge branch 'pin-commonhal-additions' into stm32-neopixel 2019-11-15 13:00:11 -05:00
Hierophect 2c6781f74d move neopixel_in_use flag to shared-bindings 2019-11-15 12:59:52 -05:00
Hierophect e1579a1cc5 Merge branch 'pin-commonhal-additions' into stm32-neopixel 2019-11-15 12:47:23 -05:00
Hierophect de5691acf5 Add never_reset and reset to pin common hal, adjust files 2019-11-15 12:47:00 -05:00
Hierophect 6cce2d6d14 Implement Neopixel write, add defaults to f405 2019-11-15 12:28:16 -05:00
Hierophect 6e96b1945e Raise clock speed, adjust divisors 2019-11-13 13:18:43 -05:00
Dan Halbert 166518fc9b
Merge pull request #2272 from hierophect/stm32-microcontroller-fillout
STM32: add us delay
2019-11-12 18:03:55 -05:00
Hierophect e40bd07fcf fix conflicting definitions on discovery boards 2019-11-12 13:03:13 -05:00
Hierophect bbc366b85b Style overhaul, extra error checks 2019-11-12 11:26:14 -05:00
Hierophect ed3e377390 Merge remote-tracking branch 'upstream/master' into stm32-uart 2019-11-12 09:49:17 -05:00
Hierophect 14b70806a5 de-init check 2019-11-11 15:47:47 -05:00
Hierophect e076f14ea3 text fixes 2019-11-11 15:32:47 -05:00
Hierophect c38086fc4a fix typo 2019-11-11 15:04:22 -05:00
Hierophect 3f8b4727f5 Revise us delay to include interrupt/non-interrupt versions 2019-11-11 14:58:45 -05:00
Dan Halbert 91156670e9
Merge pull request #2271 from theacodes/enable-micropython-native
Allow boards to enable the `micropython.native` decorator
2019-11-08 13:42:17 -05:00
Hierophect d42c4b082d revert sublime being a dumb 2019-11-06 14:55:16 -05:00
Hierophect 39dbcb529a revert git being a dumb 2019-11-06 14:54:07 -05:00
Hierophect adfef8b520 Merge remote-tracking branch 'upstream/master' into stm32-dac-deinit 2019-11-06 14:46:56 -05:00
Dan Halbert b8373aca0c
Merge pull request #2266 from hierophect/stm32-defaults
STM32: Add board defaults
2019-11-06 14:29:29 -05:00
Thea Flowers c7195c4bc5
Allow boards to enable the `micropython.native` decorator
Adds the `CIRCUITPY_ENABLE_MPY_NATIVE` for `mpconfigboard.mk` that enables
the `micropython.native` decorator.
2019-11-05 14:27:53 -08:00
Hierophect e66fcb5e1f add missing newline 2019-11-05 16:32:34 -05:00
Hierophect 8a098c154d Fix unsaved file 2019-11-05 16:25:30 -05:00
Hierophect 1a7060af25 Add us delay 2019-11-05 16:23:59 -05:00
Hierophect 0b85c4bb20 Merge remote-tracking branch 'upstream/master' into stm32-uart 2019-11-05 10:56:57 -05:00
Hierophect dfe73a063d Fix error that would carry past python exception 2019-11-05 10:50:57 -05:00
Thea Flowers 73989dbcaf Add board configuration for Winterbloom Sol 2019-11-04 23:11:42 -08:00
Dan Halbert 8cd2f87e99
Merge pull request #2236 from tannewt/bleio_tweaks
Refine _bleio
2019-11-04 22:27:54 -05:00
Dan Halbert c87d6cc6a5
Merge pull request #2248 from hierophect/stm32-PWM
STM32: PWMOut
2019-11-04 22:08:01 -05:00
Dan Halbert f185b30d71
Update PWMOut.h 2019-11-04 20:41:54 -05:00
Hierophect 38e38b9f8d remove redundant comment 2019-11-04 17:20:10 -05:00
Hierophect 632b3267dc Add auto-shutoff of DAC when channels de-inited 2019-11-04 17:08:00 -05:00
Hierophect 40f920fbdf complete attribution edits 2019-11-04 14:39:41 -05:00
Hierophect ca1eb4def1 Add other board globals 2019-11-04 14:35:23 -05:00
Hierophect 2111a7c4cf Merge branch 'master' into stm32-defaults 2019-11-04 14:32:00 -05:00
Hierophect 3526fed611 add board global 2019-11-04 14:31:57 -05:00
Hierophect 15d8d88950 Add default defines 2019-11-04 14:15:26 -05:00
Hierophect ccff7e70ca Style changes and refactors 2019-11-04 11:30:49 -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
Hierophect 1c4f49bb83 attribution changes 2019-11-03 16:33:01 -05:00
Scott Shawcroft cd3fcc87ab
Merge pull request #2252 from dhalbert/cpb-two-i2c
nrf: allocate two I2C on CPB
2019-11-03 13:15:36 -08: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
jepler 2bdccf03a7 cpb: define the SPEAKER_ENABLE_PIN
This allows the board to disable the onboard speaker until explicitly
enabled in user code.

Testing performed on a CPB:
 * Touching the AUDIO pin with a fingertip no longer generates noise/buzz
 * Generating a waveform with `simpleio.tone` produces no sound by default
 * When the board.SPEAKER_ENABLE is configured as a digital output and
   set True, `simpleio.tone` does produce sound

Note that while guides should include information about SPEAKER_ENABLE, it's
possible that some users who omitted it could view this as a breaking change.
They can fix it by simply adding code similar to

    speaker_enable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
    speaker_enable.direction = digitalio.Direction.OUTPUT
    speaker_enable.value = True

before using the internal speaker.

Closes: #2258
2019-11-01 16:26:03 -05:00
jepler fe47eba97f nRF: Handle SPEAKER_ENABLE_PIN
.. the existing code, which was never activated by the preprocessor,
wasn't quite right.
2019-11-01 16:23:35 -05:00
Hierophect 8d0cc71aee Add write protections, fix edge case read halt 2019-11-01 17:00:01 -04:00
Scott Shawcroft 47e50e5659
Merge remote-tracking branch 'adafruit/master' into bleio_tweaks 2019-11-01 13:20:58 -07:00
Hierophect e605ce6317 Debugging additions 2019-11-01 14:30:28 -04:00
Hierophect 0a1a12b867 Revise PWM period generation algorithm to match other ports 2019-10-31 16:59:44 -04:00
brentru 2f04c5891f flip it around 2019-10-31 14:11:50 -04:00
brentru ab3da3071c flip MADCTL BGR bit to reflect RGB colors 2019-10-31 10:11:47 -04:00
Hierophect c78d79938d remove debug output 2019-10-30 17:07:16 -04:00
Hierophect a8070a4185 Revise IRQ managment, add restart on failure 2019-10-30 16:59:53 -04:00
Hierophect bb8046dbb3 remove debug messages 2019-10-30 10:00:50 -04:00
ladyada d2b613134d we should use native rotation, and tweak madctl (not done yet) 2019-10-29 22:53:44 -04:00
ladyada 1e869d1334 switch to 8-bit mode - tested on hardware! 2019-10-29 21:14:45 -04:00
Hierophect 6b0cb87cbf Dynamic prescaler adjustment, adjust pulse resolution 2019-10-29 17:17:26 -04:00
Hierophect 4de5a33a43 Style changes 2019-10-29 10:24:26 -04:00
Hierophect 33deb6752b Add harder resets to UART 2019-10-29 09:41:52 -04:00
Dan Halbert e35eb08f1d nrf: allocate two I2C on CPB 2019-10-28 21:08:53 -04:00
Dan Halbert 56ac41fabf
Merge pull request #2240 from theacodes/fix-2086
Track unadjusted PWM duty cycle to avoid accumulating conversion errors
2019-10-28 14:50:01 -04:00
Hierophect 3034cfc82f Merge remote-tracking branch 'upstream/master' into stm32-uart 2019-10-28 12:16:01 -04:00
Hierophect 69bf926211 Merge remote-tracking branch 'upstream/master' into stm32-PWM 2019-10-28 12:01:28 -04:00
Dan Halbert 1d7d9043c1 CXD56 is a better platform name 2019-10-28 10:47:09 -04:00
Dan Halbert 358920db0e Use MICROPY_PY_SYS_PLATFORM in mpconfigport.h only 2019-10-28 10:40:10 -04:00
Hierophect c0f1ce590e Add support across dev boards 2019-10-27 20:17:10 -04:00
Hierophect 7fd5e9b867 Fix issue with changing frequency 2019-10-27 19:41:01 -04:00
Hierophect 0cd8c3d5a8 Add all basic functions, never reset, dynamic pulse changes 2019-10-27 19:17:01 -04:00
Jeff Epler 1103490223
Merge pull request #2244 from dhalbert/itsybitsy_nrf52840_express
Initial Itsy nRF52840 defn
2019-10-27 16:46:28 -05:00
Hierophect cb491e855c WIP 2019-10-27 14:31:25 -04:00
Dan Halbert 76817eaa10 Merge remote-tracking branch 'adafruit/master' into nano-33-ble 2019-10-25 22:41:26 -04:00
Dan Halbert ab6fd34828 add object types to rgb status objects;mark spi rgb objects as never_reset 2019-10-25 22:32:43 -04:00
Dan Halbert 7d04d9109e use bitbang SPI for DotStar; still need to fix hw SPI for dotstar 2019-10-25 15:37:27 -04:00
Thea Flowers 4b742f88d9
Fix spelling 2019-10-25 10:50:27 -07:00
Dan Halbert cdeb0857a9 Initial Itsy nRF52840 defn 2019-10-25 11:15:34 -04:00
Hierophect cf7efee0d3 Add f405 pindefs 2019-10-24 18:00:50 -04:00
Hierophect 7f769580bd Merge remote-tracking branch 'upstream/master' into stm32-PWM 2019-10-24 14:11:51 -04:00
hierophect 3683ee3ffa
Merge pull request #2243 from hierophect/f405-rename-and-fixes
STM32: rename feather_stm32f405_express, fix makefile defs issue
2019-10-24 14:11:17 -04:00
Hierophect 511071e1ba Rename feather across folders and config, fix makefile def issue 2019-10-24 12:51:40 -04:00
Hierophect 64337775f8 PWM Base functionality testing for F405 2019-10-24 12:43:34 -04:00
Thea Flowers 4fdf518251
Track unadjusted PWM duty cycle to avoid accumulating conversion errors
Fixes #2086

When the frequency of a `PWMOut` is change it re-sets the PWM's duty cycle as
well, since the registers have to be re-calculated based on the new frequency.
Unfortunately, `common_hal_pulseio_pwmout_get_duty_cycle`
will return a value very close to, but not exactly, the value passed to `common_hal_pulseio_pwmout_set_duty_cycle`. If the frequency is modified
without the calling code also re-setting the duty cycle then the duty cycle
will decay over time. This fixes that problem by tracking the unadjusted duty
cycle and re-setting the duty cycle to that value when the frequency is changed.
2019-10-23 14:34:14 -07:00
ProductDev 4cd5571203 Adds builds for sparkfun_qwiic_micro with and without flash 2019-10-23 15:05:46 -06:00
Dan Halbert af1fab1915
Merge pull request #2226 from kamtom480/circuitpython-device-open
Do not open the same PWM device if it is already open
2019-10-23 15:08:40 -04:00
Scott Shawcroft 91c9d519ae
Refine comments and switch prefix_len to size_t 2019-10-22 23:09:56 -07:00
Hierophect 1d8a75fa3f minor WIP 2019-10-22 13:11:45 -04:00
Hierophect ca4b7f81e5 Initial template setup 2019-10-22 11:09:46 -04:00
Scott Shawcroft ae30a1e5aa
Refine _bleio
This PR refines the _bleio API. It was originally motivated by
the addition of a new CircuitPython service that enables reading
and modifying files on the device. Moving the BLE lifecycle outside
of the VM motivated a number of changes to remove heap allocations
in some APIs.

It also motivated unifying connection initiation to the Adapter class
rather than the Central and Peripheral classes which have been removed.
Adapter now handles the GAP portion of BLE including advertising, which
has moved but is largely unchanged, and scanning, which has been enhanced
to return an iterator of filtered results.

Once a connection is created (either by us (aka Central) or a remote
device (aka Peripheral)) it is represented by a new Connection class.
This class knows the current connection state and can discover and
instantiate remote Services along with their Characteristics and
Descriptors.

Relates to #586
2019-10-21 18:57:03 -07:00
Hierophect a596213526 non-functional WIP 2019-10-21 17:06:40 -04:00
Kamil Tomaszewski e4574fa3bf Clean UART on reset 2019-10-21 13:17:51 +02:00
Hierophect af28474b06 IRQ priority and port clearing scratchwork 2019-10-18 14:10:41 -04:00
Kamil Tomaszewski e2cb29f2a0 Change default stack size to 64kiB for Spresense 2019-10-18 15:43:06 +02:00
Kamil Tomaszewski 3ad13e14d8 Do not open the same UART device again 2019-10-18 12:39:52 +02:00
Kamil Tomaszewski b39ca3f8be Do not open the same PWM device again 2019-10-18 12:39:22 +02:00