Scott Shawcroft
576373552a
atmel-samd: Run the VM hook while waiting for the UART read to timeout in case nothing is received.
2016-12-19 16:36:32 -08:00
Scott Shawcroft
b09a711eb0
Merge pull request #66 from tannewt/uart
...
Thanks to @turbinenreiter for the first work on this.
I heavily modified it to work with a circular RX buffer of configurable size. The main API is the same as the stream API and is a subset of upstream's machine.UART.
Fixes #46
2016-12-19 14:02:14 -08:00
Scott Shawcroft
f2bfbab6a0
atmel-samd: Save space by not creating default files on the FS and by only keeping LED flashing code when LEDs are present.
2016-12-19 13:03:50 -08:00
Sebastian Plamauer
1598e44231
atmel-samd: Add preliminary support for UART
2016-12-19 13:03:50 -08:00
Scott Shawcroft
af17b64a58
atmel-samd: Add samd module for atmel-samd specific configuration.
...
Fixes #49
2016-12-13 18:04:50 -08:00
Scott Shawcroft
78a807cc26
atmel-samd: Commit QTouch library. Missed because .a files are usually ignored.
2016-12-13 16:11:19 -08:00
Scott Shawcroft
18c1210e87
atmel-samd: Remove debug output.
2016-12-13 16:10:42 -08:00
Scott Shawcroft
781633c716
Fix up Analog classes: unify them at 16 bits and adds reference_voltage member
...
to make for easy conversion. Fixes #14 .
2016-12-13 16:09:00 -08:00
Scott Shawcroft
9ad0da6134
esp8266: Fix pyexec calls.
2016-12-12 17:11:07 -08:00
Scott Shawcroft
52f8e1cbf3
atmel-samd: Use bootloader again on the Metro M0
2016-12-12 17:09:42 -08:00
Scott Shawcroft
3972bc19c7
atmel-samd: Basic capacitive touch button support.
...
Currently only works on a single channel and is only enabled for boards with
SPI flash. Only really designed for hardware testing at this point.
2016-12-12 15:11:25 -08:00
Scott Shawcroft
cd09726904
Fix pyexec_file calls.
2016-12-09 22:49:44 -08:00
Scott Shawcroft
b6f1eebab3
atmel-samd: Add APA102 support and flash more advanced status.
...
The new sequence is as follows:
* Solid blue during the boot/settings script.
* Solid green during the main/code script.
* After main while waiting to enter repl or reset:
* Fading green once main is done successfully.
* On error produce a series of flashes:
* Long flash color of script.
* Long flash color of error:
* Green = IndentationError
* Cyan = SyntaxError
* White = NameError
* Orange = OSError
* Yellow = Other error
* Line number of the exception by digit. Number of flashes represents value.
* Thousands = White
* Hundreds = Blue
* Tens = Yellow
* Ones = Cyan
* Off for a period and then repeats.
At any point a write to the flash storage will flicker red.
Fixes #63
2016-12-09 19:35:56 -08:00
Scott Shawcroft
6225b89c76
atmel-samd: Stop dumping gc info on collect.
...
Fixes #27 .
2016-12-07 17:51:10 -08:00
Scott Shawcroft
1b819c6816
atmel-samd: Enable enumerate() adds 184 bytes.
...
Fixes #32 .
2016-12-07 17:18:12 -08:00
Scott Shawcroft
0ae344841f
atmel-samd & esp8266: Make sure pins are not already in use.
...
This prevents corrupting previous functional objects by stealing their pins
out from under them. It prevents this by ensuring that pins are in default
state before claiming them. It also verifies pins are released correctly and
reset on soft reset.
Fixes #4 , instantiating a second class will fail.
Fixes #29 , pins are now reset too.
2016-12-07 15:21:14 -08:00
Scott Shawcroft
bb9c751b50
atmel-samd: Correct fake date for FAT. Hopefully it'll be in 2016 now.
2016-12-05 11:15:46 -08:00
Scott Shawcroft
0ba9aee428
atmel-samd: Update Trinket and Gemma boards for rev B.
2016-12-05 11:14:36 -08:00
Scott Shawcroft
26229efe78
Add try_lock and unlock to I2C and SPI classes to make sure things
...
are shared well between threads and underlying MicroPython (SPI Flash
for example.)
It is recommended to use the bus device classes to manage the locks
and other transaction state.
https://github.com/adafruit/Adafruit_MicroPython_BusDevice
Fixed #58
Fixed #59
Fixed #60
2016-12-02 15:46:12 -08:00
Scott Shawcroft
03f49f8209
atmel-samd: Slim down the pin struct to save ~1200 bytes.
2016-12-01 13:47:18 -08:00
Scott Shawcroft
f4a1da4be9
atmel-samd: Only include bitbangio on boards with flash.
2016-12-01 13:46:44 -08:00
Scott Shawcroft
8ef0dd095a
Fix two bugs found by clang:
...
* PWMOut enter and exit weren't hooked up.
* end couldn't be negative in I2C.
2016-12-01 10:33:50 -08:00
Scott Shawcroft
915e1e5603
atmel-samd: Move the README text out of ROM to save space. We can still ship with it on flash.
2016-11-30 09:50:19 -08:00
Scott Shawcroft
3628a1ae48
atmel-samd: Fix FLASH_ROOT_POINTERS for internal flash builds.
2016-11-30 09:49:39 -08:00
Scott Shawcroft
9b3afc7b37
shared-bindings: Make MOSI and MISO optional for SPI.
2016-11-29 16:54:20 -08:00
Scott Shawcroft
4933fa1c27
shared-bindings: Ensure pin objects are actually pins.
...
Fixes #12
2016-11-29 15:50:01 -08:00
Scott Shawcroft
72455e441f
atmel-samd: Use MICROPY_VM_HOOK_LOOP to make sure the mass storage handling code is called even in tight Python loops. Fixes #51
2016-11-29 14:58:37 -08:00
Scott Shawcroft
16764dfa31
shared-bindings: Fix blinky example. Fixes #55
2016-11-29 14:37:25 -08:00
Scott Shawcroft
ddfa7595b0
Slim down Arduino Zero build by turning off mass storage LEDs.
2016-11-29 14:32:04 -08:00
Scott Shawcroft
94bde17256
Update Ubuntu and GCC versions used in Travis build. Now uses GCC 5.4.1. Also, tweaks what builds are run.
2016-11-29 14:31:08 -08:00
Scott Shawcroft
2d9a0c76c5
atmel-samd: Switch to MICROPY_PORT_ROOT_POINTERS for the flash cache.
2016-11-29 14:29:33 -08:00
Scott Shawcroft
05c14dfe78
Revert "py: Add ability to manually mark blocks during collect."
...
This reverts commit 9321828158
.
2016-11-29 14:11:32 -08:00
Scott Shawcroft
2042aad126
tools: Use a for loop to build all board variants.
2016-11-29 10:47:11 -08:00
Scott Shawcroft
888efa54e2
Only include uheap in debug builds.
2016-11-29 10:46:47 -08:00
Scott Shawcroft
d2aa05a9fe
shared-bindings: Stop using negative length at all. Having uint and int mixed is confusing.
2016-11-28 19:57:05 -08:00
Scott Shawcroft
bda6ee9a14
shared-bindings: Stop using max and min because C doesn't define them.
2016-11-28 19:48:48 -08:00
Scott Shawcroft
55c8c91e07
atmel-samd: Hook in bitbangio
2016-11-28 19:48:17 -08:00
Scott Shawcroft
6292f937da
esp8266: Make work with python 3 as default python impl.
2016-11-28 19:47:59 -08:00
Scott Shawcroft
77db3d450e
Add links to two more libraries.
2016-11-28 19:24:16 -08:00
Scott Shawcroft
b8bf15de16
atmel-samd: Add Circuit Playground M0 board. Its experimental.
2016-11-28 19:21:40 -08:00
Scott Shawcroft
f8898d01ce
py: fix python3 compatibility error
2016-11-28 19:20:51 -08:00
Scott Shawcroft
78f8565270
Add start and end kwargs to writeto and readfrom_into so a single buffer can be used to save memory.
2016-11-28 18:35:19 -08:00
Scott Shawcroft
a319ac2f4e
uheap: Switch to using gc_nbytes to measure allcoation size so we stop undercounting.
2016-11-23 17:32:50 -08:00
Scott Shawcroft
a8fbad5d8b
Add heap analysis scripts based on GDB breakpoint logs.
2016-11-23 17:31:53 -08:00
Scott Shawcroft
ea1320bee7
Add uheap for debugging the size of objects. Still not perfect though.
2016-11-22 17:32:28 -08:00
Scott Shawcroft
cc412a80ad
atmel-samd: Support Trinket and Gemma M0 prototypes.
2016-11-22 12:03:42 -08:00
Scott Shawcroft
8d5c90b0d0
Add script to build bins for Adafruit boards.
2016-11-21 14:40:28 -08:00
Scott Shawcroft
575d2e7998
atmel-samd: Default to code.txt instead of main.py (main.py will still work on its own.)
2016-11-21 14:32:11 -08:00
Scott Shawcroft
3b1109c47b
Merge pull request #50 from tannewt/microcontroller
...
Introduce shared APIs: nativeio, microcontroller and board modules. These are the only hardware API on the atmel-samd port.
2016-11-21 14:30:57 -08:00
Scott Shawcroft
ccbb5e84f9
This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware.
...
Docs are here: http://tannewt-micropython.readthedocs.io/en/microcontroller/
It differs from upstream's machine in the following ways:
* Python API is identical across ports due to code structure. (Lives in shared-bindings)
* Focuses on abstracting common functionality (AnalogIn) and not representing structure (ADC).
* Documentation lives with code making it easy to ensure they match.
* Pin is split into references (board.D13 and microcontroller.pin.PA17) and functionality (DigitalInOut).
* All nativeio classes claim underlying hardware resources when inited on construction, support Context Managers (aka with statements) and have deinit methods which release the claimed hardware.
* All constructors take pin references rather than peripheral ids. Its up to the implementation to find hardware or throw and exception.
2016-11-21 14:11:52 -08:00