Commit Graph

28453 Commits

Author SHA1 Message Date
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
Jeff Epler
8e08cc38f8
Add default I2C bus to Kaluga 2022-08-04 15:11:48 -05:00
Jeff Epler
5ac3aeaac7
Remove unused header 2022-08-04 15:11:47 -05:00
Jeff Epler
82be75adb5 Add ability to reserve psram
.. the primary user of which will be the camera, since the framebuffers
must be allocated via esp-idf allocation function and never from the
gc heap.

A board can have a default value, and the value can also be set in the
/.env file using the key CIRCUITPY_RESERVED_PSRAM with the value being
the reserved size in bytes.

Co-authored-by: Dan Halbert <halbert@adafruit.com>
2022-08-03 16:19:40 -05:00
Scott Shawcroft
d659a3b457
Merge pull request #6690 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-08-02 22:41:45 -07:00
Hosted Weblate
fde916d4ac
Merge remote-tracking branch 'origin/main' 2022-08-03 03:36:41 +02:00
Dan Halbert
291994b7d6
Merge pull request #6686 from andywarburton/main
WebWorkFlow CSS Tweaks for edit.html
2022-08-02 21:36:37 -04:00
Hosted Weblate
c6e527d72e
Merge remote-tracking branch 'origin/main' 2022-08-03 03:35:06 +02:00
Dan Halbert
767234e79c
Merge pull request #6688 from tannewt/fix_esp32c3_paste
Fix C3 when pasting 128+ characters
2022-08-02 21:35:02 -04:00
Hosted Weblate
8bd54726e4
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-03 03:31:53 +02:00
Dan Halbert
524cc5e274
Merge pull request #6685 from tannewt/esp32_ww
Enable Web Workflow on Feather ESP32 V2
2022-08-02 21:30:23 -04:00
Mark
febedeb3f7
Merge pull request #6687 from tannewt/fix_esp32_sx_usb
Fix S2/S3 USB
2022-08-02 19:41:29 -05:00
Scott Shawcroft
9de8ae70b6
Fix C3 when pasting 128+ characters
The ringbuf used to fill up and the recv interrupt would block CP.
Now it'll disable the interrupt until we have enough room in the
ringbuf.

Fixes #6678
2022-08-02 15:25:19 -07:00
Scott Shawcroft
1c69fe1727
Fix S2/S3 USB
The new Kconfig that fixed C3 added a dependency on USB_OTG_SUPPORTED
that is only calculated if we include the usb module in cmake.

Fixes #6679
2022-08-02 14:11:09 -07:00
Andy Warburton
019fbb1cb9 Merge branch 'main' of https://github.com/andywarburton/circuitpython 2022-08-02 21:10:46 +01:00
Andy Warburton
b67f3585e8 css tweaks for edit.html
added remote css support to webworkflow edit.html and moved in page css out to the external stylesheet.
2022-08-02 21:10:39 +01:00
Scott Shawcroft
74e841d835
Read fuses to know what flash and ram pins to never reset 2022-08-02 12:01:42 -07:00
Scott Shawcroft
b38109c488
Merge pull request #6682 from andywarburton/main
added remote CSS links to web work flow
2022-08-02 11:03:42 -07:00
Scott Shawcroft
f8c183bf3a
Merge pull request #6683 from Neradoc/nera-web-workflow-2
Add Authorization to Allow-Headers in web workflow
2022-08-02 11:02:30 -07:00
Scott Shawcroft
cb2e1e0064
Merge pull request #6680 from FoamyGuy/edit_url_fix
fix edit URL for files inside of directories
2022-08-02 10:54:19 -07:00
Neradoc
063e168810 Add Authorization to Allow-Headers in web workflow
Makes Safari happy
2022-08-02 18:40:10 +02:00
Andy Warburton
5d653772cd added version number to file name
added version number to file name
2022-08-02 16:43:40 +01:00
Andy Warburton
1448bcab6b added remote CSS links to web work flow
added remote css URL to pull additional CSS from the circuitpython.org site (apologies for the  black background - this is temporary, I'll send an update to the CP.org css *very* shortly that will undo this)
2022-08-02 16:36:20 +01:00
foamyguy
da8451b7cc fix edit URL for files inside of directories 2022-08-01 21:56:11 -05:00
Scott Shawcroft
f0c6a8c49a
Odroid pin defs 2022-08-01 15:52:08 -07:00
Scott Shawcroft
9661d3256c
Add more ESP32 boards and enable web workflow 2022-08-01 15:52:08 -07:00
Dan Halbert
664cadc3ac
Merge pull request #6670 from dhalbert/fix-samd-i2c-freq-check
Fix SAMD I2C frequency check
2022-08-01 14:08:54 -04:00
Dan Halbert
9baa2724a7 code formatting suggestion 2022-08-01 00:27:25 -04:00