Commit Graph

75 Commits

Author SHA1 Message Date
Scott Shawcroft
844c20106b
Turn off micropython.mem_info on SAMD to get ~1k back 2019-02-04 18:00:18 -08:00
Scott Shawcroft
601a910f4e
More improvements to Terminal:
* Fix Hallowing.
* Fix builds without displayio.
* Fix y bounds that appears as untrollable row of pixels.
* Add scrolling to TileGrid.
* Remove Sprite to save space. TileGrid is a drop in replacement.
2019-01-31 11:42:14 -08:00
Scott Shawcroft
1a1dbef992
Hook up the terminal based on the first display. 2019-01-31 11:42:14 -08:00
Scott Shawcroft
fb0970ec6e
Add terminalio 2019-01-31 11:42:13 -08:00
Scott Shawcroft
aaa644b223
Skip displayio on crickit builds and cpx build due to lack of space. 2019-01-22 18:49:37 -08:00
Scott Shawcroft
0cdbc004e6
Enable displayio on all Express boards. 2019-01-22 17:59:31 -08:00
Scott Shawcroft
a380865655
Merge remote-tracking branch 'adafruit/master' into HEAD 2019-01-22 14:02:07 -08:00
Scott Shawcroft
96e2c717fc
Fix build 2019-01-17 22:10:11 -08:00
Scott Shawcroft
6404aaf411
Fix up nrf and using board.SPI in FourWire 2019-01-17 18:19:07 -08:00
Scott Shawcroft
2d136d58bf
Fix other builds and hallowing 2019-01-17 14:45:29 -08:00
Scott Shawcroft
5277138c99
pyportal compiles and tweak blinka colors 2019-01-17 10:57:05 -08:00
Roy Hooper
ffe734edf7 Fresh combined checkin of _pixelbuf library. 2019-01-13 23:51:13 -05:00
Scott Shawcroft
b5e40f52c2
Add USB MIDI support for SAMD and nRF.
The API should be identical to using a UART for MIDI.

Fixes #672
2019-01-09 14:02:11 -08:00
Scott Shawcroft
801d9a5abc
Fix running the USB task on nRF.
It wasn't being run due to a rework done only on the atmel-samd port.
The rework itself isn't needed now that the heap check triggers safe
mode instead of throwing a Python exception. So, I've removed the
rework.
2018-12-07 16:11:21 -08:00
Scott Shawcroft
7ad2e6ace3
Add stack validity check and raise an error when it happens.
The backtrace cannot be given because it relies on the validity
of the qstr data structures on the heap which may have been
corrupted.

In fact, it still can crash hard when the bytecode itself is
overwritten. To fix, we'd need a way to skip gathering the
backtrace completely.

This also increases the default stack size on M4s so it can
accomodate the stack needed by ASF4s nvm API.
2018-12-04 23:26:04 -08:00
Scott Shawcroft
c47c495aca
Merge pull request #1329 from notro/oserror_errno
Support OSError subclasses and attributes
2018-11-27 22:35:54 -08:00
Jeff Epler
78972cc879 ports/atmel-samd: enable json module on M4 boards with lots of flash 2018-11-22 10:35:44 -06:00
Noralf Trønnes
704d0c606b samd51: Support more uerrno errno values
Use the default MICROPY_PY_UERRNO_LIST to give libraries access to all the errno values.
2018-11-13 22:07:05 +01:00
Scott Shawcroft
355abc835e
Fix output overflow and make help translatable 2018-11-09 16:41:08 -08: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
Nick Moore
f6482699a0 Merge remote-tracking branch 'origin/master' into circuitpython/nickzoic/703-wiznet-5500-native 2018-10-25 12:20:50 +11:00
Scott Shawcroft
dc9d338612
Merge pull request #1167 from notro/cpython_stdlib
Support CPython standard library
2018-10-24 12:57:41 -07:00
Noralf Trønnes
d882ff6328 samd51: Set stack size to 8k
This is necessary in order to run unittest.
Heavy tests like those in the stdlib need 12-14k.
2018-10-24 19:33:01 +02:00
Noralf Trønnes
1b86e5fc83 samd51: Enable functionality to support CPython stdlib
This enables various things in order to support the CPython standard library.

MICROPY_PY_BUILTINS_NOTIMPLEMENTED:
Support NotImplemented for easy conversion of stdlib.
It doesn't do fallbacks though, only raises TypeError.

MICROPY_PY_COLLECTIONS_ORDEREDDICT:
collections.OrderedDict

MICROPY_PY_FUNCTION_ATTRS:
Support function.__name__ for use as key in the function attribute workaround.

MICROPY_PY_IO:
uio module: BytesIO, FileIO, StringIO, TextIOWrapper
Also add 'io' alias.

MICROPY_PY_REVERSE_SPECIAL_METHODS:
Support the __r*__ special methods.

MICROPY_PY_SYS_EXC_INFO:
sys.exc_info() used by unittest when collecting exceptions.

MICROPY_CPYTHON_COMPAT:
Some of the things it adds:

>>> object.__init__
<function>
>>> object.__new__
<function>
>>> object.__class__
<class 'type'>
>>> object().__class__
<class 'object'>
>>> object.__name__
'object'

>>> 'Hello'.encode()
b'Hello'
>>> b'Hello'.decode()
'Hello'

Named tuple field names from string:
namedtuple('Point', 'x y')
2018-10-24 19:33:01 +02:00
Noralf Trønnes
cec9a69a15 samd51: Make errno, os, and time module aliases
Add alias for uerrno so the user doesn't have to know about the
CircuitPython special names for the module.

Make os and time weak modules (aliases) making it possible to add
functionality to those modules written in python.

Example:
'import os' will now look in the path for an os module and if not found
it will import the builtin module. An os module written in python will
import the builtin module through its name prefixed with an underscore
(_os) following the C module naming practice in CPython.

Also right align the macro values to increase readability making it
easier to compare the values for samd21 and samd51. Even the longest
macro from py/mpconfig.h will fit with this alignment.
2018-10-24 19:31:53 +02:00
Nick Moore
aab28748bb Merge remote-tracking branch 'origin/master' into circuitpython/nickzoic/703-wiznet-5500-native 2018-10-11 14:19:10 +11:00
Scott Shawcroft
2b0356c61f
Disable framebuf by default on express builds. 2018-10-05 15:19:09 -07:00
Nick Moore
15b59bee1b change initialization method + mod_network names 2018-10-04 22:31:47 +10:00
Nick Moore
f9bda0ff93 Makefile & mpconfigport for atmel-samd with wiznet 2018-10-04 22:02:25 +10:00
Scott Shawcroft
121903b6ee
Tweaks based on feedback 2018-08-31 14:21:48 -07:00
Scott Shawcroft
6697544cdf
Introduce displayio to render graphics to displays.
It's designed to minimize RAM footprint by using Sprites to
represent objects on the screen. The object model also facilitates
partial screen updating which reduces the bandwidth needed to display.

This is all handled in C. Python simply manipulates the objects with
the ability to synchronize to frame timing.
2018-08-31 12:31:52 -07:00
Noralf Trønnes
11cbeb87ad ports/atmel-samd: Implement i2cslave.I2CSlave
This adds support for SAMD acting as a I2C slave in polled mode.
2018-08-16 17:20:49 +02:00
Scott Shawcroft
86d2154d71
Change file mode back. 2018-08-09 09:14:14 -07:00
Scott Shawcroft
94c5ceab36
Initial SAMR board revision. 2018-08-09 05:36:46 -07:00
Dan Halbert
498fec64e2 increase new dynamic stack size to a comfortable value for now 2018-08-03 22:35:20 -04:00
Scott Shawcroft
a88cdaca6a
Remove rogue execute bit. Must a common incorrect shortcut for me. :-) 2018-07-31 12:42:21 -07:00
Scott Shawcroft
12cf5e51c2
Allow for resizing the stack area. 2018-07-31 05:18:23 -07:00
Dan Halbert
f48b70050e merge finished 2018-07-28 13:29:47 -04:00
Scott Shawcroft
a5e03b76a6 Split out the peripherals library in preparation of sharing with MakeCode. 2018-06-15 16:16:21 -07:00
Scott Shawcroft
0c7c0821fc
Merge pull request #891 from godlygeek/low_flash_errno_fixes
Human readable OSError messages for low flash devices
2018-06-04 17:22:57 -07:00
Matt Wozniski
22f4438787 Prune atmel-samd errno list
Remove errnos that are only raised by modules that aren't linked into
the atmel-samd port.
2018-06-01 19:04:14 -04:00
Matt Wozniski
e798b67ca2 Begin a custom list of errnos for atmel-samd
The uerrno module was written to allow boards to customize the list of
errnos they can raise.  Start by copying the default list.
2018-06-01 19:04:04 -04:00
Scott Shawcroft
fd71e56891 atmel-samd: Re-org helper peripheral files into their own subdirectory.
Ideally in the future they won't depend on ASF4 or MicroPython.
2018-06-01 15:07:31 -07:00
Radomir Dopieralski
b219ce6d37 Add gamepad_singleton to root pointers 2018-05-30 23:11:22 +02:00
Dan Halbert
b9f36184f5 refine pirkey build 2018-05-24 13:28:03 -04:00
Scott Shawcroft
99123a8621 Turn on touchio for M0 boards. M4 will come later once its supported
by FreeTouch.

Fixes #670
2018-05-22 13:49:08 -07:00
Scott Shawcroft
165b28438a
Merge pull request #854 from python-ugame/extra-override
Allow overriding EXTRA_BUILTIN_MODULES in mpconfigboard.h
2018-05-22 10:22:35 -07:00
Dan Halbert
5680933483 refactor longint settings; make crickit cpx build 2018-05-21 23:58:03 -04:00
Radomir Dopieralski
6a6ab2b0ec Allow overriding EXTRA_BUILTIN_MODULES in mpconfigboard.h
Some boards (like the uGame10) may want to have their own set of extra
modules. This change lets them override EXTRA_BUILTIN_MODULES in their
mpconfigboard.h and makes the ugame10 board do that.
2018-05-21 09:23:58 +02:00
Noralf Trønnes
cf33ad9a54 atmel-samd/samd21: Enable long int on Express boards
This is necessary for using 1970 epoch in the time module.
2018-05-18 12:35:26 +02:00