Commit Graph

328 Commits

Author SHA1 Message Date
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
Tavish Naruka
7f97cc1940 Generate .hex for Blip. 2019-07-08 14:16:31 +05:30
Radomir Dopieralski
7c908b08ee Use FONTBOUNDINGBOX for font metrics
Instead of iterating over all the glyphs and calculating the maximum
width and height, use the FONTBOUNDINGBOX to determine the size of a
tile for terminalio.

This works better with fonts such as generated by FontForge, that don't
include the empty space in the glyph bitmap itself. It also lets the
font author specify vertical spacing they want.

I only tested this with the default font and with one I generated with
FontForge.
2019-06-30 01:10:47 +02:00
Scott Shawcroft
eb21fc3e31
Add partial display update support.
Different operations to the display tree have different costs. Be
aware of these costs when optimizing your code.
* Changing tiles indices in a TileGrid will update an area
covering them all.
* Changing a palette will refresh every object that references it.
* Moving a TileGrid will update both where it was and where it moved to.
* Adding something to a Group will refresh each individual area it
covers.
* Removing things from a Group will refresh one area that covers all
previous locations. (Not separate areas like add.)
* Setting a new top level Group will refresh the entire display.

Only TileGrid moves are optimized for overlap. All other overlaps
cause sending of duplicate pixels.

This also adds flip_x, flip_y and transpose_xy to TileGrid. They
change the direction of the pixels but not the location.

Fixes #1169. Fixes #1705. Fixes #1923.
2019-06-12 11:32:39 -07:00
Dan Halbert
4fc189b60c Merge latest 4.0.x fixes into master 2019-06-11 16:16:29 -04:00
Dan Halbert
5164a6eb26 forgot tools/git-checkout-latest-tag.sh in PR #1909 2019-06-11 15:22:32 -04:00
Dan Halbert
4e85c1ef91 Implement forced clean builds for boards so designated.
Mark boards that set CFLAGS_INLINE_LIMIT for particular langauges as needing clean builds.

Fixes #1910.
2019-05-24 15:32:24 -04:00
Scott Shawcroft
3fad7de8db
Rework the pixel computation to use areas
This changes the displayio pixel computation from per-pixel to
per-area. This is precursor work to updating portions of the screen
(#1169). It should provide mild speedups because bounds checks are
done once per area rather than once per pixel. Filling by area also
allows TileGrid to maintain a row-associative fill pattern even when
the display's refresh is orthogonal to it.
2019-05-21 17:41:06 -07:00
Scott Shawcroft
796fc3f5ab
Update font location and shrink a bunch of builds 2019-04-12 15:25:48 -07:00
hexthat
f36572f322
Rename tools/new-ter-u12n.bdf to tools/default-font/new-ter-u12n.bdf 2019-04-12 12:55:13 -07:00
hexthat
b4509362ef
Add files via upload 2019-04-12 12:55:13 -07:00
Scott Shawcroft
1eb1430d82
Add alias support for unique board revs
This way we can list different board styles and track their
downloads without a completely new binary.

Fixes #1673
2019-04-11 11:25:04 -07:00
Dan Halbert
7798eb983d updated usb_descriptor submodule per @hathach 2019-04-05 11:52:38 -04:00
Scott Shawcroft
6fcda1dec4
Support multi-byte values with Bitmap
It also corrects the behavior of single byte values.

Fixes #1744
2019-04-04 12:50:35 -07:00
Scott Shawcroft
bbed7b813b
Add script to convert release notes from Markdown 2019-03-30 23:31:11 -07: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
Scott Shawcroft
cac9da37f9
Update board info build to handle top level list. 2019-03-11 17:07:15 -07:00
Dan Halbert
b1d194505e Build both BIN and UF2 for RFM boards 2019-03-05 13:11:10 -05:00
Scott Shawcroft
785edf719e
Update translations based on git history 2019-02-22 15:28:29 -08:00
Scott Shawcroft
2a5a735d94
Add utility to remerge translations 2019-02-22 13:06:40 -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
Scott Shawcroft
3af57f3e92
Fix up heap analysis for dynamic heap location 2019-02-01 16:03:37 -08:00
Scott Shawcroft
ec03887040
Fix hallowing and nrf builds 2019-01-31 11:42:15 -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
d30bdd4cb3
Fix board info script to skip removed boards. 2019-01-24 10:22:14 -08:00
Gregory P. Smith
7296b647ef Add MDK nRF52840 MDK USB Dongle support.
Adds support for https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/.

A cheap nRF52840 USB stick with optional headers, very Trinket and Itsy like.
2019-01-15 01:37:22 -08:00
vgoodwinv
c1cfe5f5f0
Update build_release_files.py 2019-01-14 21:35:21 -05:00
vgoodwinv
d1204c7cf3
Update build_release_files.py 2019-01-14 21:27:14 -05:00
vgoodwinv
6962c04f66
Update build_release_files.py
added language directories under exist board directories for #1441
2019-01-14 21:21:48 -05:00
Scott Shawcroft
b5f35b82e1
Remove from build info too 2019-01-14 13:30:09 -08:00
Dan Halbert
50ee5ef24c merge translations; add bleio comments; fix minor sphinx issues in midi 2019-01-10 21:12:17 -05:00
Dan Halbert
516d7da641
Merge pull request #1449 from tannewt/midi
Add USB MIDI support for SAMD and nRF.
2019-01-10 19:49:33 -05: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
d41ed768dc Fix sphinx build issues; add better travis fold reporting; update author info 2019-01-09 16:22:19 -05:00
Dan Halbert
e47decbdc5 improve travis fold status reporting; fix sphinx build; fix sphinx errors 2019-01-09 13:32:45 -05:00
Dan Halbert
b6b5ed9c89 Remove nRF52832 support 2018-12-30 22:49:20 -05:00
Carl Karsten
5f3a259827 Sync with micropython. closes #1414 2018-12-20 18:44:39 -06:00
Scott Shawcroft
b1c882a26b
Default nrf boards to UF2 2018-12-11 11:51:07 -08:00
Scott Shawcroft
96e65fa641
Fix build board info for python3.5 2018-12-10 13:17:05 -08:00
Scott Shawcroft
7da85f5a4f
Strip a newline from the version tag. 2018-12-10 10:13:09 -08:00
Scott Shawcroft
06c4938120
Build UF2s for the particle boards 2018-12-07 17:37:25 -08:00
Dan Halbert
58f230d632 make sure travis sees some output in time 2018-12-05 15:01:58 -05:00
Scott Shawcroft
b0da9ac780
Don't capture output 2018-12-04 18:20:51 -08:00
Scott Shawcroft
15c1fc873c
Add particle boards, fix cp32 and try to speed up atmel build 2018-12-04 18:20:48 -08:00
Scott Shawcroft
df18d22a93
Capture stderr as well and work on nRF build 2018-11-30 12:59:05 -08:00
Scott Shawcroft
cf70dc4f1c
Fix BLE build 2018-11-30 11:53:33 -08:00
Scott Shawcroft
56345ff997
A few tweaks based on review feedback 2018-11-30 10:58:27 -08:00
Scott Shawcroft
9d07e95351
Add support for adding release info into adafruit/circuitpython-org
This also changes the build script to python with better output.
2018-11-30 00:30:57 -08:00