Commit Graph

28542 Commits

Author SHA1 Message Date
Jeff Epler 1a11ff864a
Merge remote-tracking branch 'origin/main' into espressif-camera-2 2022-08-05 21:08:12 -05:00
Hosted Weblate 5e58fc1167
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2022-08-06 00:59:15 +02:00
Hosted Weblate e9d10dfa38
Merge remote-tracking branch 'origin/main' 2022-08-06 00:59:12 +02:00
Scott Shawcroft 01f252d125
Merge pull request #6698 from tannewt/title_execution_status
Turn on title bar everywhere and enhance it
2022-08-05 15:59:07 -07:00
Jeff Epler 1da8065d6b
Merge remote-tracking branch 'origin/main' into espressif-camera-2 2022-08-05 16:38:51 -05:00
Scott Shawcroft 207311b02a
Merge branch 'main' into title_execution_status 2022-08-05 13:42:58 -07:00
Hosted Weblate db9a9a1571
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2022-08-05 21:06:53 +02:00
Dan Halbert 8c10e09ba0
Merge pull request #6667 from jepler/esp-reserve-heap-for-idf
Add ability to reserve psram
2022-08-05 15:06:44 -04:00
Jeff Epler 3f49d77036
Improve esp32-s3-eye board definition 2022-08-05 13:10:21 -05:00
Dan Halbert 7ab8a66cda
Merge pull request #6695 from tannewt/always_circuitpy
Get CIRCUITPY FATFS directly.
2022-08-05 11:51:35 -04:00
Dan Halbert b92c3bbfb1
Merge pull request #6697 from tannewt/temp_redirect
Switch to temporary redirect for cp.local
2022-08-05 11:48:57 -04:00
Dan Halbert 9ab4843bd8
Merge pull request #6700 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-08-05 11:48:43 -04:00
River Wang 1e741f53fa
Translated using Weblate (Chinese (Pinyin))
Currently translated at 93.4% (932 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/zh_Latn/
2022-08-05 16:18:53 +02:00
Jonny Bergdahl d61f9eee7f
Translated using Weblate (Swedish)
Currently translated at 100.0% (997 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/sv/
2022-08-05 16:18:53 +02:00
Wellington Terumi Uemura 7f600422b0
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (997 of 997 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/
2022-08-05 16:18:53 +02:00
Mark faa34c1a0f
Merge pull request #6696 from gamblor21/fix-6576-spi_device
Check if CS parameter is DigitalInOut type
2022-08-04 22:24:49 -05:00
gamblor21 9b9f8de0ba Changed error handling to use new routine 2022-08-04 19:34:12 -05:00
Scott Shawcroft 167108a91f
Fix builds with displayio but not terminalio 2022-08-04 16:34:25 -07:00
Scott Shawcroft 5e015001c0
Add supervisor.runtime.autoreload
This replaces supervisor.enable_autoreload() and
supervisor.disable_autoreload(). It also allows user code to get
the current autoreload state.

Replaces #5352 and part of #5414
2022-08-04 16:34:25 -07:00
Scott Shawcroft e7d72b1ebe
Use libgcc from Arch on SAMD21 (it's smaller.)
Fixes #4705
2022-08-04 16:33:41 -07:00
Scott Shawcroft eb7ddf52e6
Fix BLE workflow and add boot_out.txt UID
Fixes #6621
2022-08-04 16:33:10 -07:00
Scott Shawcroft 83cbbc9946
Add BLE status to title bar 2022-08-04 16:33:10 -07:00
Scott Shawcroft 3a2bcbc5c7
Enable title bar on all builds
* Tweak scroll area position so last line is complete and top is
  under the title bar.
* Pick Blinka size based on the font to minimize unused space in
  title bar. Related to #2791
* Update the title bar after terminal is started. Fixes #6078

Fixes #6668
2022-08-04 16:33:10 -07:00
Scott Shawcroft 577d53dda4
Add execution status into title bar 2022-08-04 16:33:09 -07:00
Scott Shawcroft 185d3e19ec
Switch to temporary redirect for cp.local
This prevents browsers from caching it. Thanks to MakerMelissa for
the suggestion.
2022-08-04 16:25:50 -07:00
gamblor21 0ca29fa213 Check if CS parameter is DigitalInOut type 2022-08-04 18:12:27 -05:00
Scott Shawcroft 125b276af0
Get CIRCUITPY FATFS directly.
Otherwise, you may actually get a non-root filesystem.

Fixes #6575
2022-08-04 16:06:27 -07:00
Jeff Epler 861fa9625d
Add the ESP32-EYE aka ESP-EYE 2022-08-04 15:12:12 -05:00
Jeff Epler 98202c8568
Allow changing camera settings that require reinit
These can only be changed in a group, though any items to keep
unchanged can be unspecified or specified as None.
2022-08-04 15:12:11 -05:00
Jeff Epler 428fbcd343
remove debug message during build 2022-08-04 15:12:10 -05:00
Jeff Epler 0e26a937cc
Disable camera everywhere it doesn't fit 2022-08-04 15:12:08 -05:00
Jeff Epler 230532f0eb
one last doc build fix 2022-08-04 15:12:07 -05:00
Jeff Epler a9d53ad2a6
Fix "check-stubs" problems 2022-08-04 15:12:06 -05:00
Jeff Epler 7cb40c9054
further doc build fixes 2022-08-04 15:12:05 -05:00
Jeff Epler 81fb9a5f20
specify return type for docs 2022-08-04 15:12:04 -05:00
Jeff Epler 277b439562
Bump setuptools version
Building locally I saw this message:
```
/home/jepler/.espressif/python_env/idf4.4_py3.9_env/lib/python3.9/site-packages/setuptools_scm/integration.py:27: RuntimeWarning:
ERROR: setuptools==44.1.1 is used in combination with setuptools_scm>=6.x

Your build configuration is incomplete and previously worked by accident!
setuptools_scm requires setuptools>=45
```

For some reason this dependency is not automatically met, e.g., by
setuptools_scm specifying a versioned dependency itself! So specify
it here.
2022-08-04 15:12:03 -05:00
Jeff Epler 8bdbe0355a
Add more getters 2022-08-04 15:12:02 -05:00
Jeff Epler badcae5ace
Fix docstring errors 2022-08-04 15:12:01 -05:00
Jeff Epler aead0dfe45
Return a Bitmap from take() when appropriate 2022-08-04 15:12:00 -05:00
Jeff Epler 54fe753602
Enable gifio and qrio when appropriate 2022-08-04 15:11:59 -05:00
Jeff Epler 64b1d003df
Allow a Bitmap to be constructed from a buffer (in C anyway)
.. so that Camera.take() can return one without copying
2022-08-04 15:11:58 -05:00
Jeff Epler 258f72640a
Implement a pile of getters & setters 2022-08-04 15:11:57 -05:00
Jeff Epler 69949ecb43
update PID for this board 2022-08-04 15:11:56 -05:00
Jeff Epler d1b89fca91
Reset camera when interpreter is reset 2022-08-04 15:11:55 -05:00
Jeff Epler f54c7adddc
Must treat NO_PIN cast to uint8_t the same as NO_PIN
Otherwise, deinitializing a camera with e.g., the powerdown
pin unspecified results in an assertion failure in a debug build.
2022-08-04 15:11:54 -05:00
Jeff Epler 1d1e139379
fix taking multiple pictures 2022-08-04 15:11:53 -05:00
Jeff Epler b903a020fd
Enable display on esp32-s3-eye 2022-08-04 15:11:52 -05:00
Jeff Epler 8d673bdbf5
reserve 1MB of PSRAM for camera framebuffer on esp32s3-eye
.. this setting can be overridden with a bigger or smaller value in
CIRCUITPY/.env but 1/8 of PSRAM seems like a good initial value. It's
enough to store a single 800x600 or 640x480 RGB565 frame, or multiple
smaller frames such as 320x240.
2022-08-04 15:11:51 -05:00
Jeff Epler 5db6db0128
add esp32-camera
This uses the esp32-camera code instead of our own homebrewed camera code.
In theory it supports esp32, esp32-s2 and esp32-s3, as long as they have
PSRAM.

This is very basic and doesn't support changing any camera parameters,
including switching resolution or pixelformat.

This is tested on the Kaluga (ESP32-S2) and ESP32-S3-Eye boards.

First, reserve some PSRAM by putting this line in `CIRCUITPY/_env`:
```
CIRCUITPY_RESERVED_PSRAM=524288
```
and hard-reset the board for it to take effect.

Now, the following script will take a very low-resolution jpeg file and print
it in the REPL in escape coded form:

```python
import board
import esp32_camera

c = esp32_camera.Camera(
    data_pins=board.CAMERA_DATA,
    external_clock_pin=board.CAMERA_XCLK,
    pixel_clock_pin=board.CAMERA_PCLK,
    vsync_pin=board.CAMERA_VSYNC,
    href_pin=board.CAMERA_HREF,
    pixel_format=esp32_camera.PixelFormat.JPEG,
    i2c=board.I2C(),
    external_clock_frequency=20_000_000)

m = c.take()
if m is not None:
    print(bytes(m))
```

Then on desktop open a python repl and run something like
```python
>>> with open("my.jpg", "wb") as f: f.write(<BIG PASTE FROM REPL>)
```
and open my.jpg in a viewer.
2022-08-04 15:11:50 -05:00
Jeff Epler 07afb3eab8
Fix typo 2022-08-04 15:11:49 -05:00