Commit Graph

1087 Commits

Author SHA1 Message Date
Scott Shawcroft
9993a99906
Add initial Monster M4SK build 2019-08-22 14:24:32 -07:00
Scott Shawcroft
3a98de1236
Add reset() to display busses to detect whether it works 2019-08-22 14:23:33 -07:00
Scott Shawcroft
36a23e0fe3
Rework refresh API and factor common display stuff out
NOT TESTED! Just compiles

Fixes #1691
2019-08-22 14:23:27 -07:00
Scott Shawcroft
c247e7df9c
Begin refresh rework. 2019-08-22 14:08:33 -07:00
Scott Shawcroft
70680d5b22
EPaper displays work mostly. 2019-08-22 14:08:33 -07:00
Dan Halbert
7cc15e56c8 make translate 2019-08-22 15:20:23 -04:00
Scott Shawcroft
6aa311aabd
Merge pull request #2027 from dastels/displayio_fill_area
To displayio.Display: expose fill_area and add a property for rotation
2019-08-21 23:48:21 -07:00
Dave Astels
d547d59cba Merge remote-tracking branch 'adafruit/master' into displayio_fill_area 2019-08-21 15:02:51 -04:00
Dave Astels
dcf36db263 Make room 2019-08-21 14:46:10 -04:00
Dan Halbert
6e3a6d0ac5 typo in IncrementalEncoder.c 2019-08-20 16:23:17 -04:00
Dan Halbert
e00696de7f merge from upstream and make translate 2019-08-20 13:06:23 -04:00
Dan Halbert
e3dc5e3a66 Merge remote-tracking branch 'adafruit/master' into run-background-tasks
Restore dependencies indicated by indentation in circuitpy_mpconfig.h.
2019-08-19 12:41:20 -04:00
Dan Halbert
e2a4c76a37 make nrf touchio be generic: now available for SAMD51 too 2019-08-18 08:44:10 -04:00
Scott Shawcroft
583392a5c6
Merge pull request #2046 from brentru/add-pyportal-titano
Add PyPortal Titano
2019-08-12 16:01:10 -07:00
Jeff Epler
d9ee2d28a0 atmel-samd: Use RUN_BACKGROUND_TASKS 2019-08-11 08:53:02 -05:00
brentru
5a8846d33c remove cruft from prv board 2019-08-08 15:12:01 -04:00
brentru
f87f48ab88 adding pyportal titano board definition 2019-08-08 14:56:28 -04:00
Chris Osterwood
d5658860aa Added pin definition for battery change enable. Pin used to switch in a 10 ohm resistor during Hub reset & strapping. 2019-08-08 14:39:50 -04:00
Chris Osterwood
fb2712410e Merge branch 'master' into capablerobot-usbhub 2019-08-08 14:14:23 -04:00
Jeff Epler
33b949abfa samd: audio_dma, audio_background: Gate with CIRCUITPY_ defines
Some ports which actually don't have audioio or audiobusio were still
calling into audio_dma_background().  This wasn't an error until
the assignment to audio_dma_state in audio_dma_stop was added, though
it's not clear why.
2019-08-07 21:29:24 -05:00
Jeff Epler
500d1bb168 samd: audio_dma.c: Remove exceptions, just return early
These were most useful debugging, but because this code can be reached
"outside of the VM", it's not actually permitted to throw exceptions here.
2019-08-07 20:20:36 -05:00
brentru
1d4700cb6c add pindefs for tft and tft control 2019-08-07 18:29:20 -04:00
brentru
8f6eac98f3 add defs for pyportal titano 2019-08-07 17:10:31 -04:00
Jeff Epler
39c64bf83c samd: audio_dma_stop: don't free invalid channel
audio_dma_stop can be reached twice in normal usage of AudioOut.

This may bear further investigation, but stop it here, by making the
function check for a previously freed channel number.  This also prevents
the event channel from being disabled twice.

The first stop location is from audio_dma_get_playing, when the buffers
are exhausted; the second is from common_hal_audioio_audioout_stop when
checking the 'playing' flag.
2019-08-06 22:00:31 -05:00
Jeff Epler
8b717955ba samd: audio_dma: wrap dma_{en,dis}able_channel and add error checking
It turns out the "disable" error will fire in practice, we'll fix that
next.
2019-08-06 22:00:31 -05:00
Jeff Epler
6253f11503 samd: audio_dma_stop: Clear out audio_dma_state[]
As identified in #1908, when both AudioOut and PDMIn are used, hard
locks can occur.  Because audio_dma_stop didn't clear audio_dma_state[],
a future call to audio_dma_load_next_block could occur using a DMA
object which belongs to PDMIn.

I believe that this Closes: #1908 though perhaps it is still not the full
story.

Testing performed: Loaded a sketch similar to the one on #1908 that
tends to reproduce the bug within ~30s.  Ran for >300s without hard
lock.  HOWEVER, while my cpx is no longer hard locking, it occasionally
(<1 / 200s) announces
    Code done running. Waiting for reload.
(and does so), even though my main loop is surrounded by a 'while True:'
condition, so there are still gremlins nearby.
2019-08-06 21:34:21 -05:00
Scott Shawcroft
eee759455a
Merge pull request #2018 from keith-packard/snekboard
Add board support for keithp.com SnekBoard
2019-07-31 16:38:51 -07:00
Scott Shawcroft
366fdcce18
Merge pull request #2011 from tannewt/ssd1322
Add knobs for SSD1322 and two displayio fixes.
2019-07-30 14:15:37 -07:00
Scott Shawcroft
9dd56b1566
Merge branch 'master' into snekboard 2019-07-30 14:12:08 -07:00
wallarug
ecfffac3a8
Delete samd51x19-bootloader-external-flash-crystalless.ld 2019-07-30 19:48:35 +10:00
wallarug
ff6ae1aefb
Update mpconfigboard.mk to use standard linker file 2019-07-30 19:13:33 +10:00
Keith Packard
c6e4ddc88a boards/snekboard: Delete SPI object reference
Snekboard does not expose any pins for SPI to the user, so delete
the SPI object reference as that won't work.

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:45:52 -07:00
Keith Packard
9a37c8a4b3 boards/snekboard: Add pin aliases for UART and I2C
Allow users to use TX/RX and SDA/SCL names.

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:45:06 -07:00
Keith Packard
4387ecfdfb Update snekboard PID to official value
Snekboard has been assigned the following PIDs:

	PID 0x004D  # bootloader
	PID 0x804D  # arduino
	PID 0x804E  # circuitpython

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:15:18 -07:00
Keith Packard
326df70ac2 Fix snekboard names
Manufacturer -- keithp.com
Product -- snekboard

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:15:18 -07:00
Keith Packard
56f710f64f Add board support for keithp.com SnekBoard
This is another SAMDG2118A design with built-in 9V motor controllers
that are designed to be used with Lego PowerFunctions devices.

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-07-29 13:14:37 -07:00
wallarug
dc1eb73ee7
Merge branch 'master' into wallarug-robohat 2019-07-29 21:53:49 +10:00
wallarug
8974c7e843
Added BUTTON to pins.c 2019-07-29 16:37:53 +10:00
wallarug
9e0bea405d
Added BUTTON to pins.c 2019-07-29 16:37:21 +10:00
wallarug
4d30efdc2a
Updated pins.c for GROVE. 2019-07-29 16:29:48 +10:00
wallarug
8838e25cb2
Update pins.c 2019-07-29 16:28:35 +10:00
sommersoft
8eab946c5b
Merge pull request #2003 from C47D/travis_check_new_boards
Add check to travis to make sure new boards are built, fix #1886
2019-07-28 22:41:59 -05:00
wallarug
0f30070d58 updated naming schema to match other boards 2019-07-27 17:44:42 +10:00
wallarug
b06fa48735 updated a few files 2019-07-27 16:59:07 +10:00
wallarug
9c57f52d1e updated pins.c for robohat 2019-07-27 16:56:03 +10:00
wallarug
24e84adc6d further robohat cleanups 2019-07-27 16:38:47 +10:00
wallarug
e2b83e2dd9 minor changes robohat d21 2019-07-27 16:36:13 +10:00
wallarug
36008de2ed added custom ld file for samd51 no crystal, ext flash 2019-07-27 16:29:30 +10:00
wallarug
eda3423e35 updated to v1.7 board (samd51) 2019-07-27 16:27:41 +10:00
Scott Shawcroft
c61c874a6d
Reduce feather_m0_supersized build size
Make it match feather_m0_express
2019-07-26 00:31:41 -07:00
Scott Shawcroft
a87094e01f
Turn off GC opt to save space on Trinket Haxpress 2019-07-25 22:56:46 -07:00
Scott Shawcroft
4e7de436b4
Update constructors of boards with displays 2019-07-25 22:48:11 -07:00
Jeff Epler
6b44e40ee8 audiocore: Factor from audioio
When nrf pwm audio is introduced, it will be called `audiopwmio`.  To
enable code sharing with the existing (dac-based) `audioio`, factor
the sample and mixer types to `audiocore`.

INCOMPATIBLE CHANGE: Now, `Mixer`, `RawSample` and `WaveFile` must
be imported from `audiocore`, not `audioio`.
2019-07-25 06:44:26 -05:00
Dan Halbert
82ab998cd5
Merge pull request #1998 from tannewt/monocolor
Add support for grayscale displays
2019-07-22 22:30:28 -04:00
Scott Shawcroft
7cb2aa2d62
Merge pull request #1986 from AnthonyDiGirolamo/patch-1
Update Arch Linux ARM compiler installation instructions
2019-07-22 19:29:53 -07:00
Scott Shawcroft
1d1b8703b6
Review feedback including NO_BRIGHTNESS_COMMAND macro 2019-07-19 16:11:13 -07:00
Scott Shawcroft
b9b9ef227f
Turn off bitbanging on Hallowing to save code space. 2019-07-19 16:10:33 -07:00
Scott Shawcroft
cdfc169ab6
Correct typo in line meant to turn off frequencyio on M0 which saves 2k code space. 2019-07-19 16:10:32 -07:00
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
Kattni Rembor
582acdaa0a Requested changes. 2019-07-09 16:12:24 -04:00
Kattni Rembor
d905958db1 Adding PyRuler to CircuitPython. 2019-07-09 16:02:39 -04:00
Scott Shawcroft
f0cf9a4e75
Merge pull request #1988 from jandjstudios/datum
Add support for boards in the datum series.
2019-07-09 09:33:13 -07:00
Scott Shawcroft
f4a64a2e80
Merge pull request #1989 from rce1086/master
Added conditional compilation around selection of TX pad candidates
2019-07-08 14:07:04 -07:00
Carl Elkins
64507207da Added conditional compilation around selection of TX pad candidates
Original code was correct for SAMD21
New code for SAMD51 only permits pad-0 for TX
2019-07-08 02:08:39 +01:00
jandjstudios
46b7575550 Initial commit to support boards in the datum series. 2019-07-06 13:41:03 -07:00
iot49
4c72a3991e updated samd and esp8266 ports 2019-07-05 10:01:51 -07:00
Anthony DiGirolamo
55f15e3c05
Update Arch Linux ARM compiler installation instructions
- Add copy-pasteable Arch Linux `arm-none-eabi-gcc` install line similar to Ubuntu example
- Add `arm-none-eabi-newlib` as a required package for Arch
- Reformat Ubuntu and Arch install code-blocks to catch the eye for the impatient

Arch Linux changed their packaging for [arm-none-eabi-gcc](https://www.archlinux.org/packages/community/x86_64/arm-none-eabi-gcc/) by creating [arm-none-eabi-newlib](https://www.archlinux.org/packages/community/any/arm-none-eabi-newlib/) as an optional package. Without it users will get errors about missing header files like:

```
In file included from asf4/samd51/include/samd51j19a.h:49,
                 from asf4/samd51/include/sam.h:38,
                 from ./mpconfigport.h:31,
                 from ../../py/mpconfig.h:45,
                 from ../../py/emitnx64.c:3:
/usr/lib/gcc/arm-none-eabi/9.1.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
    9 | # include_next <stdint.h>
      |                ^~~~~~~~~~
compilation terminated.
```
2019-07-04 11:14:50 -07:00
Chris Osterwood
97e7fea517 Change pin names to be more descriptive 2019-07-04 13:23:57 -04:00
Chris Osterwood
539502c891 Remove pin reservations. Prevents used from inside of CircuitPython code 2019-07-04 13:22:36 -04:00
Radomir Dopieralski
e45eac5016 Switch the terminal font for ugame10
I designed this really tiny, minimalist font for use on very small
displays. On uGame it lets one see the whole text that CircuitPython
prints on boot. The characters are 4x6 pixels each, and they are
optimized for legibility (large x-height, right angles, blocky shapes).

It might make sense to also use that font in other boards.
2019-07-01 23:05:07 +02:00
Scott Shawcroft
0cce7fcaa3
Merge remote-tracking branch 'adafruit/4.0.x' into merge_in_402 2019-06-27 14:06:26 -07:00
Scott Shawcroft
fe507db45f
Shrink pIRkey build down.
Rollback HID to save string space and remove board mapping for
default buses that don't exist.
2019-06-26 16:49:23 -07:00
Scott Shawcroft
7ad229ec27
Merge pull request #1958 from tannewt/pygamer_advanced
Add PyGamer Advance and fix Joystick pins
2019-06-19 12:32:36 -07:00
Scott Shawcroft
5e5252ced0
Merge pull request #1955 from pewpew-game/pygamer-stage
Add support for PyGamer to Stage library
2019-06-18 18:23:08 -07:00
Scott Shawcroft
352bf7eaf5
Add PyGamer Advance and fix Joystick pins 2019-06-18 12:22:20 -07:00
Radomir Dopieralski
5803245009 Add support for PyGamer to Stage library 2019-06-18 19:05:51 +02:00
Scott Shawcroft
2dddccb99e
Update board inits for new api. 2019-06-17 18:03:30 -07:00
brentru
ea2c068e11 COLMOD is 1 param, remove CASET/RASET in CircuitPython 2019-06-17 11:20:25 -04:00
brentru
207dc885a6 removed incorrect gamma code, looks better now 2019-06-14 16:34:30 -04:00
brentru
4092294e7c tft working init. sequence, still undersaturated 2019-06-14 16:17:05 -04:00
brentru
0bc74172a2 Add pybadge airlift, sans-tft 2019-06-14 14:46:19 -04:00
Scott Shawcroft
0b1f605a9b
Turn off gc opt for more M0 boards 2019-06-12 13:20:21 -07:00
Scott Shawcroft
a91ad05774
Change to one lto partition for ultimate optimization. 2019-06-12 11:37:46 -07: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
ba1b36a800 Uncomment vm.c SUPEROPT (debugging typo); trim a few builds 2019-06-12 13:09:09 -04:00
Dan Halbert
1bb4fccc3b Turn off SUPEROPT on gc.c instead of trying to squueze inline limit so much; reorganize mpconfigboard.mk files 2019-06-12 11:08:22 -04:00
Dan Halbert
0b3f29780a shrink a bunch of builds to fit 2019-06-11 18:46:06 -04:00
Dan Halbert
4fc189b60c Merge latest 4.0.x fixes into master 2019-06-11 16:16:29 -04:00
shazz
9c49af0597 Added pin for SD CS 2019-06-08 12:04:27 -04:00
Elvis Pfützenreuter
1da8d4b4da Add PS/2 support -- ps2io module 2019-06-04 18:05:46 -03:00
Dan Halbert
bcda5e133d
Merge pull request #1903 from tannewt/get_area
Rework the pixel computation to use areas
2019-05-31 21:27:06 -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
Dan Halbert
e84f3b1c6a make crickit cpx pinyin build fit 2019-05-23 21:22:50 -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
Dan Halbert
0199d9810b Make pinyin fit on cpx 2019-05-21 15:18:56 -04:00
Dan Halbert
008bbc944c correct USB PIDs for several boards 2019-05-16 10:54:15 -04:00
Scott Shawcroft
f3ab820fc2
Merge pull request #1884 from CapableRobot/capablerobot-usbhub
Added board definition for Capable Robot Programmable USB Hub
2019-05-14 13:42:51 -07:00
Chris Osterwood
a0497553fc Fix to prevent critical pins from being reset when MCU restarts or enters REPL 2019-05-14 15:23:33 -04:00
Chris Osterwood
420dbafa9d Added board definition for Capable Robot Programmable USB Hub 2019-05-14 13:28:24 -04:00
sabas1080
9f082ba5cb Fix pin lost 2019-05-13 10:18:53 -05:00
Scott Shawcroft
36e2faf8d2
Merge pull request #1873 from ElectronicCats/escornabot_makech
Add Escornabot Makech of Electronic Cats
2019-05-10 12:39:58 -07:00
sabas1080
d174ce8821 Update pins define 2019-05-10 13:34:02 -05:00
Scott Shawcroft
67007282c9
Tighten down inlining on the pIRkey 2019-05-10 11:19:27 -07:00
Scott Shawcroft
80a752da87
Merge latest adafruit/master in. 2019-05-10 10:09:56 -07:00
sabas1080
27ea1df710 Init escornabot 2019-05-08 15:48:17 -05:00
Scott Shawcroft
9ba8191a04
Merge pull request #1855 from dhalbert/frequencyin-no-double-arith
avoid double float arithmetic in FrequencyIn
2019-05-08 14:40:18 -04:00
sabas1080
08a170388d fix VID and PID inverted 2019-05-08 10:09:49 -05:00
Dan Halbert
f59dadbb4f avoid double float arithmetic in FrequencyIn 2019-05-07 00:25:22 -04:00
ladyada
ed8e6e8f45 re-add i2s (its J not G!) 2019-04-29 20:30:53 -04:00
ladyada
fa3a52bc1e similar to pybadge, has pin defs for joystick - comes up with filesys and display so good enough to start hacking :) 2019-04-29 20:29:48 -04:00
wallarug
aa3c28787c removed problem libraries from frozen build. 2019-04-28 00:09:13 +10:00
wallarug
b4a70daf17 updated lots 2019-04-27 22:35:12 +10:00
wallarug
cd4aaa13a3 added robohatmm1 board defs. 2019-04-25 21:13:41 +10:00
ladyada
9b593cd154 update periph submodule 2019-04-23 18:20:13 -04:00
ladyada
a5697470e1 fix up pybadge for final release board (swap backlite and reset) 2019-04-23 16:43:20 -04:00
Scott Shawcroft
f548305c07
Merge pull request #1815 from dhalbert/stop-flicker
Turn off auto_brightness if brightness is set
2019-04-18 15:48:39 -07:00
Dan Halbert
0113e0970e add Display.__init__() args for brightness and auto_brightness 2019-04-18 15:59:16 -04:00
Scott Shawcroft
f7c7904e2b
Correct call structure for throwing errors 2019-04-17 13:54:29 -07:00
Carlos
71c4f100de
Update translations and use same error for PDM too 2019-04-17 11:28:43 -07:00
Carlos
5865b28592
[audiobusio-I2SOut] Fix translation error 2019-04-17 11:12:38 -07:00
Carlos
65cc366280
[audiobusio-I2SOut] Fix compilation error by using mp_raise_ValueError_varg 2019-04-17 11:12:38 -07:00
Carlos
9f63125345
Fix I2SOut message, fix #1765 2019-04-17 11:12:38 -07:00
Dan Halbert
6684a3c723
Merge pull request #1778 from pewpew-game/gamepad-shift
Add GamePadShift for handling shift-register-based buttons
2019-04-17 10:22:24 -04:00
Scott Shawcroft
2fa1bf4351
Merge remote-tracking branch 'adafruit/master' into gamepadshift 2019-04-16 11:23:41 -07:00
Scott Shawcroft
55782901d0
Actually call gamepadshift_tick 2019-04-16 11:15:42 -07:00
Scott Shawcroft
f58446e937
Merge branch 'master' into master 2019-04-16 10:32:38 -07:00
Scott Shawcroft
0e03a321e4
Fully split gamepadshift from gamepad 2019-04-16 10:11:54 -07:00
ITACA Innovation S.R.L
2d303213ed Add files via upload 2019-04-16 16:50:54 +02:00
ITACA Innovation S.R.L
4f5a7ffe46 Updates: VID&PID, pinout
Changed VID & PID to new ones.
Changed the layout accordingly to the prototype version.
2019-04-16 16:45:47 +02:00
Scott Shawcroft
c927e6b938
Split GamePadShift from GamePad to save space on most boards. 2019-04-15 15:40:06 -07:00
Scott Shawcroft
22889ca29a
Merge pull request #1790 from pewpew-game/pybadge-stage
Enable _stage module and freeze stage library on the PyBadge
2019-04-15 14:25:50 -07:00
Radomir Dopieralski
ade6bd8185 Enable _stage module and freeze stage library on the PyBadge 2019-04-15 14:38:02 +02:00
siddacious
5135ee52d9 Changing to support for CP32-M4 wrover 2019-04-14 19:45:44 -07:00
Radomir Dopieralski
eeef5359f9 Merge branch 'master' into gamepad-shift 2019-04-13 11:54:25 +02:00
Dan Halbert
f8473f4a39
Merge pull request #1788 from tannewt/pinyin
Add Chinese (Pinyin) and slim down boards so it fits
2019-04-12 20:36:59 -04:00
Scott Shawcroft
defc6dceb0
Slim down feather m0 express 2019-04-12 16:18:08 -07:00
Scott Shawcroft
796fc3f5ab
Update font location and shrink a bunch of builds 2019-04-12 15:25:48 -07:00
Scott Shawcroft
c064deaaf5
Merge pull request #1785 from pewpew-game/ugame-displayio
Enable displayio for the ugame10 board
2019-04-12 13:26:51 -07:00
Scott Shawcroft
7161038d6b
Turn off displayio because it is a satellite 2019-04-12 11:54:32 -07:00
Radomir Dopieralski
0599286e32 Use never_reset in ugame10 2019-04-12 20:45:52 +02:00
Radomir Dopieralski
947662415c Disable gamepad for feather_m0_express_crickit 2019-04-12 20:43:29 +02:00
Max Holliday
41499ac315
No I2S on G19 2019-04-12 10:06:17 -07:00
Max Holliday
e85b6fb83c
adding kicksat-sprite board
See https://github.com/RoboticExplorationLab/sprite for details
2019-04-12 10:06:17 -07:00
Radomir Dopieralski
dabbded622 Got back to using Display object in the Stage library 2019-04-12 11:19:19 +02:00
Radomir Dopieralski
c3136f4f32 Enable displayio for uGame10 board
Also, make the _stage library work with the fourwire bus, to re-use the
display.
2019-04-12 01:10:57 +02:00
Radomir Dopieralski
5603d0cd38 Configure the TFT spi to 24MHz by default
That is (slightly) out of spec for the display, but it works reliably.
2019-04-11 15:47:26 +02:00
Scott Shawcroft
9f4f689879
Free up space in Itsy Bitsy M0 by limiting inline. 2019-04-10 14:09:14 -07:00
ladyada
894c1e9590 Rev D/E (beta) hardware! 2019-04-10 08:37:20 -04:00
Dan Halbert
203d795bd6
Merge pull request #1772 from tannewt/fix_gc_never_free
Check that a never free pointer is on the heap.
2019-04-10 08:26:37 -04:00
Scott Shawcroft
44e32506ed
Don't make Pins for those not connected on Itsy M0 2019-04-10 00:06:59 -07:00
Dan Halbert
c0c809ad4b Fix version skew for bast_pro_mini build 2019-04-09 22:52:53 -04:00
Scott Shawcroft
ac2fd2fa80
Merge pull request #1773 from dhalbert/no-recursive-background-tasks
Don't let a background task call run_background_tasks()
2019-04-09 18:39:28 -07:00
Dan Halbert
d8763debf5
shrink sparkfun_lumidrive build 2019-04-09 21:23:28 -04:00
Dan Halbert
fc9cb038c4
Merge pull request #1715 from ElectronicCats/master
Added Bast Pro Mini M0
2019-04-09 20:53:05 -04:00
Dan Halbert
d633928a16 Don't let a background task call run_background_tasks() 2019-04-09 20:23:01 -04:00
Scott Shawcroft
129e725599
Merge branch 'master' into master 2019-04-09 14:40:36 -07:00
Scott Shawcroft
0e98eeb63b
Turn off touchio on pIRkey and add back usb midi.
USB MIDI was still being compiled in mostly anyway. There is no
place to touch on the board so touchio is useless.
2019-04-09 12:36:14 -07:00
Scott Shawcroft
ef23ffe584
Turn off audiobusio on Hallowing to free rom
It is about 5kb and the pins aren't broken out for it anyway.
2019-04-09 12:01:00 -07:00
Scott Shawcroft
de48e4b262
Merge remote-tracking branch 'adafruit/master' into fix_cpx_display 2019-04-08 17:15:08 -07:00
Scott Shawcroft
0f003ac5b8
Reorganize board busses into shared-bindings and shared-module. 2019-04-08 16:58:50 -07:00
Radomir Dopieralski
8323721232 Stop hard-coding SPI frequency in FourWire
Instead remember and use the frequency, polarity and phase that was
set when the bus was first created.
2019-04-06 15:15:29 +02:00
Scott Shawcroft
7686f93ef4
Fix crash when getting board.SPI outside the VM
If one of the default pins was already in use it would crash.

The internal API has been refined to allow us to get the value
without causing an init of the singleton.

Fixes #1753
2019-04-05 19:06:37 -07:00
Melissa LeBlanc-Williams
36b10104d6 Adjusted inline limit to fix Hallowing PL build 2019-04-05 12:17:16 -07:00
Melissa LeBlanc-Williams
7872a33f8b Merge branch 'master' of https://github.com/adafruit/circuitpython into ssd1331 2019-04-05 11:10:02 -07:00
Dan Halbert
50d72ed993 shrink sparkfun_lumidrive to make room for large translations 2019-04-05 11:23:47 -04:00
Melissa LeBlanc-Williams
af3d809980 Updated boards files with displays 2019-04-04 23:18:15 -07:00
Dan Halbert
b5bc8b3fc2
Merge pull request #1745 from dhalbert/rotaryio-typo-eic-refactor
ROTARYIO_MODULE typo; EIC interrupt handler refactor
2019-04-04 23:53:46 -04:00
Dan Halbert
682e83a63c Turn off rotaryio on pewpew10 so de_DE will fit 2019-04-04 20:28:32 -04:00
Dan Halbert
29df5930dd #if EIC handlers; turn off rotaryio in pirkey for space reasons 2019-04-04 16:48:38 -04:00
Dan Halbert
2528b67e77 update samd-peripherals 2019-04-04 16:36:14 -04:00
Dan Halbert
cdd77b5972 remove CPy-specific EIC handlers from samd-peripherals 2019-04-04 16:04:11 -04:00
Scott Shawcroft
ceb6f2e4fc
Rework flash flush so it preserves the cache
This should make filesystem writes quicker and cause less heap
churn.
2019-04-03 18:28:27 -07:00
Sabas
19c6b8aa0c
Merge branch 'master' into master 2019-04-02 23:15:56 -06:00
Dan Halbert
709de9ce9f
Merge pull request #1732 from ladyada/master
add airlift lite - samd51j19 + 2MB QSPI
2019-04-02 17:11:59 -04:00
Dan Halbert
10e35f30f0 shrink inline-limit to allow large Hallowing translation to fit 2019-04-01 12:18:25 -04:00
ladyada
8159272a8b remove old comment 2019-03-31 23:17:19 -04:00
ladyada
89cf60eac3 add airlift lite - samd51j19 + 2MB QSPI 2019-03-31 19:20:15 -04:00
sabas1080
bb7bb80b4a update bast pro mini m0 2019-03-30 15:28:23 -06: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
Dan Halbert
f118aef283 copy/paste error 2019-03-27 18:19:39 -04:00
Dan Halbert
88068876ed turn off frequencyio for all SAMD21 builds 2019-03-27 17:54:36 -04:00
Dan Halbert
df79e9a732
Merge pull request #1687 from jrcutler/master
Enable nvm storage for all samd21x18 boards
2019-03-27 11:10:22 -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
5f0e71ccb4 Merge branch 'master' of https://github.com/adafruit/circuitpython into ssd1351-fix 2019-03-26 18:23:02 -07:00
Melissa LeBlanc-Williams
0df40534f3 Merge branch 'master' of https://github.com/adafruit/circuitpython 2019-03-26 18:22:30 -07:00
Scott Shawcroft
2c93ce5a28
Merge pull request #1672 from dhalbert/regular-fs-flush
flush flash filesystem once a second
2019-03-26 13:47:43 -07:00
ITACA Innovation S.R.L
74c5705a9a
Update mpconfigboard.mk 2019-03-25 17:19:40 +01:00
ITACA Innovation S.R.L
994f292b3b
Rename ports/atmel-samd/boards/uChip/pins.c to ports/atmel-samd/boards/uchip/pins.c 2019-03-25 15:59:22 +01:00
ITACA Innovation S.R.L
5ed11ddfc3
Rename ports/atmel-samd/boards/uChip/mpconfigboard.mk to ports/atmel-samd/boards/uchip/mpconfigboard.mk 2019-03-25 15:59:00 +01:00
ITACA Innovation S.R.L
dfc5602fa0
Rename ports/atmel-samd/boards/uChip/mpconfigboard.h to ports/atmel-samd/boards/uchip/mpconfigboard.h 2019-03-25 15:58:37 +01:00
ITACA Innovation S.R.L
af04307c83
Rename ports/atmel-samd/boards/uChip/board.c to ports/atmel-samd/boards/uchip/board.c 2019-03-25 15:57:35 +01:00
ITACA Innovation S.R.L
4886451000
Add files via upload
This is a pull request to add support for uChip into the Circuitpython environment.

We tested the uploaded code and it seems to work with Circuitpython.
If there are any suggestions or changes needed, please let us know!


What is uChip in brief?
A complete USB dev board the size of a narrow 16-DIP package, featuring Atmel SAMD21 Cortex M0+ and onboard switching converters. (OTG compliant and power delivery up to 1A@5V or 3V3).
For more details refer to the ongoing campaign on kickstarter.
www.kickstarter.com/projects/1186620431/uchip-arduino-zero-compatible-in-a-narrow-dip-16-p
2019-03-25 13:06:31 +01:00
Melissa LeBlanc-Williams
c3329e224d Added Single Byte Boundaries option for certain displays 2019-03-24 23:59:28 -07:00
Justin R. Cutler
41f4f269f1 Disable frequencyio support for samd21-based catwan_usbstick target. 2019-03-24 14:22:23 -04:00
Justin R. Cutler
d6c7bda6d1 Enable 256b of nvm storage for all samd21x18-bootloader.ld boards. 2019-03-24 12:02:07 -04:00
Melissa LeBlanc-Williams
0c33f7fdb4 Enable CS toggle for displayio by default 2019-03-23 20:23:23 -07:00
Melissa LeBlanc-Williams
d2a0ec28a0 Fixed display init on boards with displays 2019-03-23 19:32:15 -07:00
Dan Halbert
eca23a7279 remove i2cslave from feather m0 crickit 2019-03-20 15:38:52 -04:00
Dan Halbert
fbf166af1a enable MICROPY_CPYTHON_COMPAT for most builds except CIRCUITPY_SMALL_BUILD; remove a few other things to make fit 2019-03-20 14:36:24 -04:00
Dan Halbert
2459eabd66 flush flash filesystem once a second 2019-03-20 12:21:36 -04:00
Radomir Dopieralski
a50ee4f650 Add frozen stage module to ugame10 board
And also ignore some more pins.

This is needed for the builds on the circuitpython.org to be functional.
2019-03-17 14:03:50 +01:00
Scott Shawcroft
ff7e729032
Fix custom pin in use logic for SWD
This should allow you to use SWD pins unless a debugger is attached.
You may have trouble connecting to SWD when CircuitPython has already
begun using them.

Fixes #1633
2019-03-14 11:11:35 -07:00
Scott Shawcroft
e05ab64398
Squeeze down the feather crickit build 2019-03-13 17:20:18 -07:00
Dan Halbert
494a9d3825
Merge pull request #1640 from tannewt/final_displayio_changes
Final displayio changes before 4.0.0
2019-03-13 18:24:04 -04:00
Dan Halbert
97140e6a62 wrong arg type for PWMOut variable_frequency 2019-03-12 21:28:30 -04:00
Scott Shawcroft
96a924f5f0
Turn off networking on M0s.
It takes 10k of code space and isn't very useful because of the
M0's limited RAM. Disabling it allows us to add other things.
2019-03-12 17:18:30 -07:00
Scott Shawcroft
2e500a8a29
Copy inline setting on feather m0 express that the metro has. 2019-03-12 14:06:01 -07:00
Scott Shawcroft
b1c572e82e
Fixup the pybadge definition so the screen works. 2019-03-12 11:18:29 -07:00
Scott Shawcroft
37e10d4a81
Be more careful when initing the board outside the VM. 2019-03-12 11:18:29 -07:00
John Reese
ef4a74e201
Add basic Pybadge board definition
Currently boots on board and can connect to REPL,
but does not appear as mountable drive in OS.
Starting REPL gives the following error message:

```
You are running in safe mode which means something unanticipated happened.
Looks like our core CircuitPython code crashed hard. Whoops!
Please file an issue at https://github.com/adafruit/circuitpython/issues
 with the contents of your CIRCUITPY drive and this message:
Crash into the HardFault_Handler.
```
2019-03-12 11:12:35 -07:00
Scott Shawcroft
8f57606513
Merge pull request #1635 from caternuson/iss1634_SPEAKER
add SPEAKER pin alias for PyPortal
2019-03-11 19:16:01 -07:00
caternuson
46fc8a8a86 change order so SPEAKER is first 2019-03-11 17:45:27 -07:00
caternuson
53b7055283 add SPEAKER pin alias for PyPortal 2019-03-11 15:12:29 -07:00
Radomir Dopieralski
caf51cf4eb Add default devices and tweak brightness in boards/pewpew10 2019-03-11 19:09:21 +01:00
Dan Halbert
26ed411936 Shrink build so de_DE fits 2019-03-07 07:47:18 -05:00
sommersoft
b7b74d1f78 update translations 2019-03-02 18:17:58 -06:00
sommersoft
b2520f3147 using the correct name for things is important... 2019-03-02 16:17:23 -06:00
sommersoft
c9eb02d9d2 shore-up inclusion 2019-03-02 10:05:32 -06:00
sommersoft
2cd6a79016 better handle frequencyio inclusion 2019-03-01 22:46:57 -06:00
sommersoft
438eadd63a re-add frequencyin to 'timer_handler' after upstream merge 2019-03-01 21:47:23 -06:00
sommersoft
a44bfc2730 Merge branch 'master' of https://github.com/adafruit/circuitpython into new_freq_in 2019-03-01 21:24:30 -06: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
263134dcd3 Add more guards for CIRCUITPYTHON_PEW 2019-03-01 18:50:00 +01:00
Dan Halbert
7535326d38
Merge pull request #1605 from dhalbert/pwmout-tcc-lock-ccb
Use TCC LUPD lock when updating CCB
2019-03-01 12:03:38 -05:00
Radomir Dopieralski
2bfafd1fc9 Enable math for pewpew10 2019-03-01 16:55:54 +01:00
Radomir Dopieralski
5d85d54026 Move the frozen pew.py into a submodule 2019-03-01 16:24: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
3826ca4194 Rename internal pins to add underscore in front 2019-03-01 15:10:43 +01:00
Radomir Dopieralski
f5f4932220 Clean unused include from tick.c 2019-03-01 15:09:00 +01:00
Radomir Dopieralski
18870255ea Remove the pewpew70 board definition, leave only pewpew10 2019-03-01 15:06:24 +01:00
Dan Halbert
fb027f2024 Update PyPortal pins to rev C 2019-03-01 09:06:03 -05:00
Radomir Dopieralski
45fea86554 Rebase on top of CircuitPython 4.x 2019-03-01 14:59:21 +01:00
Dan Halbert
3c24e893e9 Fix SYNCBUSY loop typo. 2019-02-28 23:38:26 -05:00
Dan Halbert
808304e827 Use TCC LUPD lock when updating CCB 2019-02-28 19:53:35 -05:00
Radomir Dopieralski
59f63eaef6 Handle new buttons 2019-02-28 23:34:03 +01:00
Radomir Dopieralski
0a5c1c9402 Some cleanup 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
Radomir Dopieralski
7ac11ed8e1 Enlarge the usb disk 2019-02-28 23:25:18 +01:00
Radomir Dopieralski
5a1e69f5b8 Correct a typo in the pin name 2019-02-28 23:23:26 +01:00
Radomir Dopieralski
a41ea27596 Add pewpew70 board 2019-02-28 23:23:26 +01:00
sommersoft
4d47ce5c60 fixes set_timer_handler call 2019-02-27 19:28:59 -06:00
sommersoft
9d20380bd4 Merge branch 'master' into new_freq_in 2019-02-26 04:29:16 +00:00
sommersoft
4a9f05a44f final re-glue; compiles now. 2019-02-25 21:22:52 -06:00
sommersoft
a8204f1bf9 touchup adding frequencyin interrupt handling 2019-02-24 18:07:55 -06:00
sommersoft
f602fa3d9f fix init deps 2019-02-24 18:07:26 -06:00
Bryan Siepert
3afcd3f5bc another/different size tweak for the DE hallowing build 2019-02-23 20:18:22 -08:00
Bryan Siepert
2cb31ea546 Merge branch 'master' into bmp_bitdepths 2019-02-23 20:16:57 -08:00
Bryan Siepert
3843e96edc Tweaking German hallowing build for size 2019-02-23 19:47:58 -08:00
ladyada
85421f9766 final pin names, tested with final release 2019-02-23 15:40:28 -05:00
sommersoft
2437ab9605 update frequencyin interrupt handler 2019-02-22 17:19:09 -06:00
sommersoft
a1060747f8 Merge branch 'new_master' into new_freq_in 2019-02-22 23:12:11 +00:00
Scott Shawcroft
af863a3780
Merge pull request #1586 from sommersoft/shared_timer_handler
Move shared_timer_handler
2019-02-22 11:04:27 -08:00
sommersoft
a3f387274f fix build issues 2019-02-21 20:46:42 -06:00
sommersoft
7a7f6638d2 update peripherals submodule 2019-02-21 18:44:51 -06:00
Kattni
f3e50b9df2
Merge pull request #1581 from dhalbert/ble-drv-root-pointer
Use critical section, not lock, in CharacteristicBuffer; use a root pointer for ble_drv list
2019-02-21 12:28:41 -05:00
Dan Halbert
99da3b9646 Use critical section, not lock, in CharacteristicBuffer; use a root pointer for ble_drv list 2019-02-21 00:19:31 -05:00
sommersoft
55e7c5a41b handle 'set_timer_handler' on this side, vs samd-periphs. 2019-02-19 20:18:21 -06:00
Dan Halbert
0dc2600587
Merge pull request #1552 from tannewt/onsdbitmap
Fix displaying images off of SD cards.
2019-02-19 19:28:53 -05:00
Scott Shawcroft
3e24b9668e
Merge pull request #1573 from dhalbert/reset-analogout
Fix #ifdefs in port.c to call xxx_reset() routines properly. Remove most uses of EXPRESS_BOARD.
2019-02-19 16:14:33 -08:00
Scott Shawcroft
53fa65e318
Speed up pyportal by writing memory on the same access as our rotation. 2019-02-19 14:51:39 -08:00
Dan Halbert
4e75aaecd0
Merge pull request #1569 from TG-Techie/patch-7
PYPORTAL:make it easier for people to hookup in spi mode
2019-02-19 14:12:30 -05:00
Dan Halbert
9c24c804fb Fix #ifdefs in port.c to call xxx_reset() rroutines properly. Remove most uses of EXPRESS_BOARD. 2019-02-18 22:44:31 -05:00
TG-Techie
d453b605d3
make it easier for people to hookup in spi mode without looking inspecting schematic 2019-02-18 15:00:14 -05:00
Dan Halbert
339a22752b Remove rtc from pirkey_m0 to make TRANSLATION=fr fit 2019-02-18 09:02:26 -05:00
Dan Halbert
97aeb1953b correct weak module links; samd module only in m4 ports; update libraries 2019-02-17 23:48:08 -05:00
sommersoft
dafc370d22 moves 'shared_timer_handler' back to atmel-samd from samd-peripherals 2019-02-16 19:54:16 -06:00
sommersoft
ea9200a042 starting again; initial addition of 'frequencyio.FrequencyIn' 2019-02-16 19:26:24 -06:00
Dan Halbert
7b3f7605b8 address @tannewt changes: move and rename common files; remove PORT_HEAP_SIZE 2019-02-15 20:32:32 -05:00
Dan Halbert
a345ef28f2 finish Makefile refactoring; nrf builds work 2019-02-15 18:55:10 -05:00
Dan Halbert
cf545cd477 WIP: fix issues with remaining atmel-samd builds 2019-02-15 09:52:45 -05:00
Dan Halbert
5154e0581e WIP: atmel-samd trinket build works 2019-02-15 00:28:20 -05:00
Dan Halbert
f99b9ddcf1
Merge pull request #1546 from tannewt/fix_safe_mode
A safe mode fix and displayio fixes
2019-02-13 21:15:14 -05:00
Scott Shawcroft
d6cbd5be92
Merge pull request #1540 from TG-Techie/patch-6
PYPORTAL: pindefs incorrect
2019-02-13 17:21:22 -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
da5008f4d8 Fix atmel UART after ASF4 pruning. 2019-02-13 11:42:09 -05:00
TG-Techie
e901317fd7
PYPORTAL: pindefs incorrect
@jerryneedell  suggested the pins could be wrong when I told him I was getting reading that didn't change, having corrected the pinout to match the schematic I was given it now works! 

used:
```
ts = adafruit_touchscreen.Touchscreen(board.TOUCH_XL, board.TOUCH_XR,
                                      board.TOUCH_YD, board.TOUCH_YU,
                                      calibration=((5200, 59000), (5800, 57000)),
                                      size=(320, 240))

while True:
    p = ts.touch_point
    if p:
        time.sleep(.5)
        print(p)
```
2019-02-12 22:18:36 -05:00
Scott Shawcroft
70f40a03cb
Rotate pyportal screen to be correct 2019-02-12 13:53:27 -08:00
Scott Shawcroft
b4306314aa
Move terminal font to terminalio from board. 2019-02-12 10:10:02 -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
1a6ad20943
Get space back by using less ASF4 and combining register writes 2019-02-11 17:36:34 -08:00
Max Holliday
2e48739a4e standardizing on "BATTERY" pin; and load-leveling Travis 2019-02-06 10:50:57 -08:00
Max Holliday
4c1b85cdcd elaborating on include path for board_busses 2019-02-05 20:21:54 -08:00
Max Holliday
30fcb14017 correcting VID/PID and adding sam32 to travis 2019-02-05 19:20:43 -08:00
Max Holliday
a2936c4c20 adding SAM32 board
SAMD51 running circuitpython talking to an ESP32 running micropython.
Full board details at: https://github.com/maholli/SAM32
2019-02-05 17:22:34 -08:00
Scott Shawcroft
844c20106b
Turn off micropython.mem_info on SAMD to get ~1k back 2019-02-04 18:00:18 -08:00
Scott Shawcroft
90e5964703
Set auto brightness on by default for boards with displays built in. 2019-02-03 13:42:03 -08:00
Scott Shawcroft
03068a9388
Fix built-in inits and terminal allocate 2019-02-01 01:00:10 -08:00
Scott Shawcroft
ec03887040
Fix hallowing and nrf builds 2019-01-31 11:42:15 -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
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
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
39240516f3
Correct pin capitalization 2019-01-31 09:11:30 -08:00
Scott Shawcroft
3225878f63
for redboard turbo too 2019-01-30 22:55:36 -08:00
Scott Shawcroft
fe2a092f1c
Fix board_bus location 2019-01-30 22:54:26 -08:00
Elias Santistevan
b124071e10 Removes a lot of left over comments, adds lumidrive and redboard turbo to travis.yml 2019-01-30 16:13:08 -07:00
Elias Santistevan
178cfc1623 Adds make config files for SparkFun LumiDrive and Redboard Turbo 2019-01-30 13:50:29 -07:00