Commit Graph

294 Commits

Author SHA1 Message Date
caternuson
5298119aa2 change direction of shift right 2019-04-03 09:21:34 -07:00
Melissa LeBlanc-Williams
f1e4a2ffb9 Removed unnecessary bit-ANDing 2019-04-01 19:52:35 -07:00
Melissa LeBlanc-Williams
8b4ca24e56 Improved readability of Single Byte Bounds code 2019-03-31 14:17:54 -07:00
Melissa LeBlanc-Williams
e254597c24 Merge branch 'master' of https://github.com/adafruit/circuitpython into ssd1351-fix 2019-03-28 17:27:59 -07:00
Scott Shawcroft
9ff54fdf72
Merge pull request #1685 from makermelissa/master
Added option to enable toggling CS between init commands
2019-03-28 09:45:01 -07:00
Melissa LeBlanc-Williams
8087cb41e5 Merge branch 'master' of https://github.com/adafruit/circuitpython into ssd1351-fix 2019-03-27 20:18:37 -07:00
Melissa LeBlanc-Williams
2e0268cb09 Simplified cs toggling into fourwire only 2019-03-27 20:17:22 -07:00
Melissa LeBlanc-Williams
f3ec0514cd Simplified into fourwire only 2019-03-27 20:11:32 -07:00
Scott Shawcroft
9232ec50f1
Fix HID buffer lookup
The previous code assumed HID report ids were consecutive. This is
not true in the CircuitPython descriptor where report ids are fixed
for each report type.

Fixes #1617
2019-03-27 15:23:20 -07:00
Dan Halbert
374f210771 TileGrid: pixel_shader is not always a palette 2019-03-27 10:55:50 -04:00
Melissa LeBlanc-Williams
f4cede4747 Removed parameter so CS is always toggled 2019-03-26 18:46:13 -07:00
Melissa LeBlanc-Williams
b2ad16f5c8 Removed parameter so CS is always toggled 2019-03-26 18:34:07 -07:00
Melissa LeBlanc-Williams
a54493b4ae Added small delay inside toggle for edge cases 2019-03-26 07:45:17 -07:00
Melissa LeBlanc-Williams
09a1f06bbf Added small delay inside toggle for edge cases 2019-03-26 07:39:40 -07:00
Melissa LeBlanc-Williams
cc96c39e6d Fixed wrong operator 2019-03-25 23:58:58 -07:00
Melissa LeBlanc-Williams
c3329e224d Added Single Byte Boundaries option for certain displays 2019-03-24 23:59:28 -07:00
Melissa LeBlanc-Williams
b25c4baeec Moving Toggle to before command fixes driver issue 2019-03-23 21:04:25 -07:00
Melissa LeBlanc-Williams
fadb5a1024 Added option to toggle cs in displayio init sequence 2019-03-23 18:34:42 -07:00
Dan Halbert
26262cd477
Merge pull request #1670 from tannewt/fontio
Move Glyph and BuiltinFont into fontio
2019-03-20 17:36:04 -04:00
Scott Shawcroft
9f3ca66f97
Merge pull request #1676 from pewpew-game/bug1671
Make displayio.Palette support more than 255 colors
2019-03-20 14:13:18 -07:00
Radomir Dopieralski
f5cfd6e1f1 Make displayio.Palette support more than 255 colors
Fix #1671
2019-03-20 20:36:05 +01:00
Scott Shawcroft
5e2fec714c
Move Glyph and BuiltinFont into fontio
It was confusing in displayio.

Fixes #1662
2019-03-19 16:22:09 -07:00
Dan Halbert
43915133a1 after code.py runs, flush filesystem before resetting heap 2019-03-16 16:49:32 -04:00
Scott Shawcroft
946790bfb5
Add better PewPew error messages and update translations 2019-03-12 17:21:15 -07:00
Scott Shawcroft
224e9b1009
Standardize TileGrid to x and y properties over position
This brings it inline with Group. Also fixes #1613

This also includes a number of fixes for where a method is called
through a subclass. We now correctly get the native object.
Fixes #1567

Lastly, this adds subscript support to TileGrid for changing tile
indices. Similar to Bitmap, it accepts ints or 2-tuples.
2019-03-12 17:18:33 -07:00
Scott Shawcroft
ea45877ca5
Accept x and y kwargs into Group for initial position. 2019-03-12 17:17:32 -07:00
Radomir Dopieralski
caf51cf4eb Add default devices and tweak brightness in boards/pewpew10 2019-03-11 19:09:21 +01:00
Dan Halbert
1f31877d55 Rework background display task to allow reads from SPI SD card during display. Clarify code. Handle multiple displays better. 2019-03-07 00:08:16 -05:00
Dan Halbert
c854f6617a check display-bus transaction status and act accordingly 2019-03-06 13:45:48 -05:00
Dan Halbert
2eaa98ad71
Merge pull request #1601 from penguindustin/master
added height and width attributes for displayio
2019-03-06 12:43:55 -05:00
Dustin Mendoza
4145f87fcd changed from mp_int_t to uint16_t 2019-03-05 21:25:09 -08:00
Dan Halbert
146271fa58
Merge pull request #1604 from dhalbert/display_wait_for_frame-check-interrupts
Don't wait for display frame if interrupt pending
2019-03-04 13:55:13 -05:00
Dan Halbert
17bf2afa41
Merge pull request #1607 from pewpew-game/pewpew10.x-4.x
Add support for PewPew 10.x boards
2019-03-01 14:07:32 -05:00
Radomir Dopieralski
7afbfc7003 Use find_free_timer() 2019-03-01 16:46:59 +01:00
Bryan Siepert
76dc8e1ac8 fixed typo 2019-03-01 07:32:46 -08:00
Bryan Siepert
014595bff5 fixed whitespace, clarified variable name, and updated error messages 2019-03-01 07:17:50 -08:00
Radomir Dopieralski
a9074f7bd1 More style fixes 2019-03-01 16:11:22 +01:00
Radomir Dopieralski
89b2788d11 Apply review fixes:
* fix formatting
* fix copyrights
* fix CIRCUITPYTHON_GAMEPAD guards
* add CIRCUITPYTHON_PEW guards to reset
* fix module list order
2019-03-01 16:05:15 +01:00
Radomir Dopieralski
45fea86554 Rebase on top of CircuitPython 4.x 2019-03-01 14:59:21 +01:00
Bryan Siepert
398c7060f8 added monochrome, 8bpp indexed, and 32bpp ARGB BMPs 2019-02-28 23:08:12 -08:00
Dan Halbert
ced37c1001 Don't wait for display frame if interrupt pending 2019-02-28 22:36:50 -05:00
Radomir Dopieralski
48f0a5163e Reset timer when releasing _pew 2019-02-28 23:34:03 +01:00
Radomir Dopieralski
59f63eaef6 Handle new buttons 2019-02-28 23:34:03 +01:00
Radomir Dopieralski
55b511a5d8 Use a dedicated timer 2019-02-28 23:33:37 +01:00
Radomir Dopieralski
88e40193ae Add a _pew module 2019-02-28 23:32:58 +01:00
Dustin Mendoza
f127be4dd2 added height and width attributes for displayio 2019-02-25 16:39:20 -08:00
Bryan Siepert
b81072e750 (fork rebuild) Initial support for 16bpp 555&565 and 8bpp grayscale bitmaps 2019-02-23 10:58:46 -08:00
Dan Halbert
d218069f03
Merge pull request #1584 from tannewt/disable_concurrent_write_protection
Add option to disable the concurrent write protection
2019-02-21 17:15:50 -05:00
Scott Shawcroft
08158a7c34
Tweak the backlight PWM rate to be higher that audio range. Fixes #1571 2019-02-21 12:02:01 -08:00
Scott Shawcroft
1a0596a2fb
Add option to disable the concurrent write protection
This allows writing to the filesystem from the host computer and
CircuitPython by increasing the risk of filesystem corruption.
2019-02-21 10:45:41 -08:00
Scott Shawcroft
b1e8c43679
Fix reload while display is updating. 2019-02-19 14:51:39 -08:00
Scott Shawcroft
46fd60c703
Prevent infinite display update recursion and fix VFS mounting
Fixes #1529
2019-02-19 14:50:31 -08:00
Scott Shawcroft
c9f036ed40
Store the original layer in Group
As is we would return the native superclass object only.

Fixes #1551
2019-02-15 14:29:59 -08:00
Scott Shawcroft
473bdf48f6
A safe mode fix and displayio fixes
* Fixes safe mode on the SAMD51. The "preserved" value was being
clobbered by the bootloader.
* Fixes auto-reload loop when in safe mode.
* Fixes reading Group children with [].
* Check that a TileGrid actually moves before queueing a refresh.
2019-02-13 15:31:06 -08:00
Dan Halbert
66b0c67f54
Merge pull request #1536 from TG-Techie/patch-4
DISPIO: end_x can't be > height of shape
2019-02-12 19:17:10 -05:00
TG-Techie
4fbbb999b9
DISPIO: end_x can't be > height of shape
an author must have forgotten to change from height to width after copy paste.
2019-02-12 17:53:11 -05:00
Scott Shawcroft
1e16b3e134
Tweaks based on dhalbert's feedback. 2019-02-12 14:18:53 -08:00
Scott Shawcroft
c17f147be9
A variety of displayio improvements
This changes a number of things in displayio:
* Introduces BuiltinFont and Glyph so the built in font can be used by libraries. For boards with
  a font it is available as board.TERMINAL_FONT. Fixes #1172
* Remove _load_row from Bitmap in favor of bitmap[] access. Index can be x/y tuple or overall index. Fixes #1191
* Add width and height properties to Bitmap.
* Add insert and [] access to Group. Fixes #1518
* Add index param to pop on Group.
* Terminal no longer takes unicode character info. It takes a BuiltinFont instead.
* Fix Terminal's handling of [###D vt100 commands used when up arrowing into repl history.
* Add x and y positions to Group plus scale as well.
* Add bitmap accessor for BuiltinFont
2019-02-11 20:55:05 -08:00
Craig Forbes
de43911a68 Remove usb_midi.PortIn and PortOut constructors. 2019-02-06 22:22:15 -06:00
Scott Shawcroft
448ae64d8e
Add support for display rotation and raw commands
Display rotation is relative to the scan order of the display.
The scan order can be found by scrolling the display with command
0x37 `display_bus.send(0x37, struct.pack(">H", i % 128))`

Fixes #1504
2019-02-01 00:32:03 -08:00
Scott Shawcroft
354a26963b
Correctly handle no backlight pin. 2019-01-31 11:42:15 -08:00
Scott Shawcroft
2c069a5685
Polish up comments 2019-01-31 11:42:15 -08:00
Scott Shawcroft
4672866eec
Remove Sprite references 2019-01-31 11:42:14 -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
6145f08cc8
Support adjustable backlight brightness 2019-01-31 11:42:14 -08:00
Scott Shawcroft
69bc5e189b
Rudamentary backlight support 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
590e029198
Begin font parsing and packing for terminal 2019-01-31 11:42:13 -08:00
Scott Shawcroft
fb0970ec6e
Add terminalio 2019-01-31 11:42:13 -08:00
Scott Shawcroft
73cf490635
Add TileGrid 2019-01-31 11:42:13 -08:00
Scott Shawcroft
b2f2abcb22
Make palette color ordering consistent with ColorConvertes and fix blinka. 2019-01-23 14:44:46 -08:00
Scott Shawcroft
3139d0dc20
Use common delay function during display init so we don't starve background tasks. 2019-01-23 14:43:54 -08:00
Scott Shawcroft
a380865655
Merge remote-tracking branch 'adafruit/master' into HEAD 2019-01-22 14:02:07 -08:00
Dan Halbert
777408ff8d struct.pack_into incorrect buffer size check 2019-01-21 11:45:38 -05:00
Scott Shawcroft
2bcf81fb9e
Merge pull request #1479 from siddacious/master
adding height and width to OnDiskBitmap for #1460
2019-01-21 00:32:49 -08:00
Bryan Siepert
ab2ad7ba45 adding height and width to OnDiskBitmap for #1460 2019-01-20 22:33:22 -08:00
Dan Halbert
a8f4aa4796 Merge remote-tracking branch 'adafruit/master' into struct-compat 2019-01-20 21:47:13 -05:00
Dan Halbert
7a09af73ec Improve struct compatibility with CPython 2019-01-20 15:12:34 -05:00
Roy Hooper
50af08a6f3 Merge branch 'master' into pixelbuf 2019-01-19 16:33:59 -05:00
Scott Shawcroft
ae52c964c2
Cleanup display rework for PR.
Fixes #1465. Fixes #1337. Fixes #1168
2019-01-18 13:47:40 -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
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
Scott Shawcroft
84292ad890
External fourwire works and blinka splash after 2019-01-17 00:20:16 -08:00
Scott Shawcroft
05d8885a1a
Rework displays in prep for dynamic support and 8bit parallel. 2019-01-16 12:05:20 -08:00
Scott Shawcroft
bfd531281a
Fix default values on last line. 2019-01-15 10:15:55 -08:00
Scott Shawcroft
747f2cfe26
Add subclass support to displayio.
Also, swap make_news to accept a kwarg map and refine param checking.

Fixes #1237
2019-01-14 17:29:19 -08:00
Scott Shawcroft
a14762a16c
Add support for rendering a shape.
Fixes #1171
2019-01-14 17:29:15 -08:00
Roy Hooper
ffe734edf7 Fresh combined checkin of _pixelbuf library. 2019-01-13 23:51:13 -05:00
Scott Shawcroft
62a8cc2825
Merge pull request #1453 from tannewt/text_on_pyportal
Enable the display on pyportal
2019-01-11 10:33:16 -08:00
Dan Halbert
50ee5ef24c merge translations; add bleio comments; fix minor sphinx issues in midi 2019-01-10 21:12:17 -05:00
Scott Shawcroft
6594937a65
Support rendering groups inside groups 2019-01-10 17:30:16 -08:00
Scott Shawcroft
3dd59c3d5f
Polish thanks to Dan's feedback 2019-01-10 11:00:40 -08: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
Dan Halbert
f66f55b4ed add CharacteristicBuffer; UART seems to work! 2019-01-07 22:46: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
4d1f0ec07b Add Broadcaster. Reset correctly on reload. 2018-12-28 23:34:23 -05:00
Dan Halbert
4167bf5b24 wip: advertising works, but not connection 2018-12-27 00:04:04 -05: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
Dan Halbert
f6c73b35f9
Merge pull request #1323 from notro/os_mkdir_a_b
shared-module/os: Fix os.mkdir('a/b')
2018-11-27 17:08:51 -05:00
Noralf Trønnes
28383afa11 shared-module/os: Fix os.mkdir('a/b')
This fixes commit a99f9427420d("'/' and '\' are also acceptable ends of the path now") which broke mkdir.
The problem is where the directory name is a single letter like this:
>>> os.mkdir('a')
>>> os.mkdir('a/b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exists
>>> os.mkdir('a/bb')
>>>

I wasn't smart enough to fix this in the oofatfs library, so I did it in the os shared module by
creating a path lookup function for the os methods that only deals with directories. I reverted
the library change introduced by the aforementioned commit.

This means that os.stat and os.rename can't handle trailing slashes. This is to avoid allowing
filenames with trailing slashes to pass through. In order to handle trailing slashes for these
it would be necessary to check if it really is a directory before stripping. I didn't do this
since the original issue was to make os.chdir tolerate trailing slashes.

There's an open MicroPython issue #2929 wrt. trailing slashes and mkdir.
2018-11-09 19:20:56 +01:00
Scott Shawcroft
168e23e466
Build refinement to handle warnings and quiet output 2018-11-09 00:11:43 -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
Dan Halbert
64d457dad9 bring bleio PR up to date 2018-11-07 14:12:22 -05:00
caternuson
46f1a0719e add channels and bits_per_sample to audioio.WaveFile 2018-10-31 18:08:10 -07:00
Nick Moore
b714f5d650 Add "dhcp" property to turn DHCP on and off 2018-10-25 11:29:27 +11:00
arturo182
b5e5805bb4 bleio: Remove redundant struct field 2018-10-21 15:59:46 +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
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
fb422ccf5e bleio: Remove SAMD mention in include guard
Damn copy-paste!
2018-10-21 15:43:43 +02:00
arturo182
1c6bf9a150 bleio: Move the Scanner class to a shared module 2018-10-21 15:43:29 +02:00
arturo182
7390dc7dab bleio: Move ScanEntry to shared module and add a new AdvertisementData class 2018-10-21 15:43:24 +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
Nick Moore
06894be294 timer ticks for DHCP state machine for wiznet 2018-10-16 23:10:18 +11:00
Nick Moore
45974978ef fixup 2018-10-16 23:09:55 +11:00
Nick Moore
a15f3361aa add mechanism for timer ticks in NICs 2018-10-16 23:09:25 +11:00
Nick Moore
1f760bded8 header file cleanup for wiznet 2018-10-16 23:07:58 +11:00
Nick Moore
a4a0cf826b fix doc comments, translations again 2018-10-11 17:02:29 +11:00
Nick Moore
bb239052ea Split wiznet driver into shared-bindings vs shared-module 2018-10-11 15:05:25 +11: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
Nick Moore
823ff779ca network module c api into shared-module 2018-10-11 14:02:18 +11:00
Scott Shawcroft
6da25c8893
Rename stop to stop_voice in case we want stop to stop everything later. 2018-10-09 13:28:00 -07:00
Nick Moore
9b36d33df1 move random mac address function into network module 2018-10-09 13:12:04 +11:00
Nick Moore
6e624b9c6a Split wiznet.WIZNET5K off into its own file 2018-10-09 13:05:58 +11:00
Scott Shawcroft
3c6812f2c1
Fix M0 math 2018-10-05 15:19:09 -07:00
Scott Shawcroft
8587d8edf0
Fix voice ending in the middle of a buffer. 2018-10-05 15:19:08 -07:00
Scott Shawcroft
76008ce304
Introduce audioio.Mixer which can mix multiple audio samples
to produce a single sample.

Only works with 16 bit samples on the M4.

Fixes #987
2018-10-05 15:12:23 -07:00
Nick Moore
d33f6214f1 modify modnetwork and modusocket for circuitpython 2018-10-04 22:02:25 +10:00
Nick Moore
3c32d046bf Copy wiznet module across from MicroPython 2018-10-04 21:22:09 +10:00
Scott Shawcroft
75d497bcc8
More explicit init in Group 2018-09-13 10:42:12 -07:00
Scott Shawcroft
f21cf15c38
Add OnDiskBitmap which loads pixel data straight from disk.
Also, renamed Sprite's palette to pixel_shader so it can be
anything that produces colors based on values (including color values).
Added a ColorConverter that converts RGB888 (found in bitmaps) to
RGB565 for the display.

Fixes #1182
2018-09-12 15:25:59 -07:00
Scott Shawcroft
1683eb913d
Minor tweaks based on feedback 2018-09-06 14:49:49 -07: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
Scott Shawcroft
de5a9d72dc
Compress all translated strings with Huffman coding.
This saves code space in builds which use link-time optimization.
The optimization drops the untranslated strings and replaces them
with a compressed_string_t struct. It can then be decompressed to
a c string.

Builds without LTO work as well but include both untranslated
strings and compressed strings.

This work could be expanded to include QSTRs and loaded strings if
a compress method is added to C. Its tracked in #531.
2018-08-16 17:40:57 -07:00
Scott Shawcroft
933add6cd8
Support internationalisation. 2018-08-07 14:58:57 -07:00
Dan Halbert
761f9a938e
Merge pull request #1075 from tannewt/more_mp_raise
Use more mp_raise_* to save 28 bytes code size.
2018-07-31 19:09:10 -04:00
Scott Shawcroft
0bf999f52a
Use more mp_raise_* to save 28 bytes code size. 2018-07-31 13:50:48 -07:00
Dan Halbert
bc760dd341 WIP: complete manual inspection of all significant changes 2018-07-23 21:34:25 -04:00
Dan Halbert
2809b4f9dd Merge branch 'master' into micropython-25ae98f-merge 2018-07-16 19:36:40 -04:00
Dan Halbert
a20ab40ed2 Merge 3.0.0 final bugfixes and changes to master 2018-07-16 09:01:46 -04:00
Dan Halbert
e2e01efa84 compiles and runs; hangs on import storage;storage.VfsFat.<tab> 2018-07-13 22:51:10 -04:00
Dan Halbert
dbf1a2f7d5 allow '/' to be mounted on '/' from Python code 2018-06-21 09:24:40 -04:00
Dan Halbert
f152889938 do not permit mounting over a directory or file with the same name as the mount point 2018-06-15 13:53:30 -04:00
Dan Halbert
327b0f76da fix os.listdir() when current dir is '/' 2018-06-15 10:51:03 -04:00