Commit Graph

554 Commits

Author SHA1 Message Date
Scott Shawcroft
7a5d2e81fc
Merge pull request #6734 from dhalbert/remove-autobrightness
Remove support for auto-brightness
2022-08-10 10:22:53 -07:00
Dan Halbert
af64faae1e switch back one I2C message 2022-08-10 12:06:43 -04:00
Dan Halbert
198c8fea11 merge from upstream and fix espressif_esp32s3_eye 2022-08-10 08:43:08 -04:00
Dan Halbert
02cc6c2aee Merge remote-tracking branch 'adafruit/main' into remove-autobrightness 2022-08-10 08:35:53 -04:00
Dan Halbert
41bcd7b260 Remove support for auto-brightness 2022-08-09 22:40:21 -04:00
Scott Shawcroft
59b4353282
Merge pull request #6713 from tannewt/exception_filename
Add exception filename to title bar
2022-08-09 16:59:12 -07:00
Jeff Epler
5040e1b7a5
Merge pull request #6684 from jepler/espressif-camera-2
Rewrite camera support for the Espressif port
2022-08-09 18:50:25 -05:00
Scott Shawcroft
db837e2b48
Merge pull request #6725 from dhalbert/esp-stack-size-16kB
increase main task stack size from 8kB to 16kB
2022-08-09 16:40:16 -07:00
Scott Shawcroft
554063a817
Merge branch 'main' into espressif-camera-2 2022-08-09 14:07:14 -07:00
Scott Shawcroft
5084de1b73
Merge pull request #6708 from strid3r21/main
Added Smart Bee Design Boards
2022-08-09 14:06:11 -07:00
Dan Halbert
c4db71d12e
Merge pull request #6721 from dhalbert/i2c-target
Change I2C terminology from "peripheral" to "target"
2022-08-09 16:12:17 -04:00
Dan Halbert
4021b44a39 increase main task stack size from 8kB to 16kB 2022-08-09 15:00:01 -04:00
Scott Shawcroft
b3b27a1d80
Remove extra leading spaces 2022-08-09 10:45:47 -07:00
Scott Shawcroft
556d01a685
Remove extra newline at end of file 2022-08-09 10:44:57 -07:00
Scott Shawcroft
ce1273be7a
Pull Feather S2 TFT LED down on reset 2022-08-09 10:42:56 -07:00
Jeff Epler
c74746f052 Cross references in documentation always help 2022-08-09 12:20:02 -05:00
Dan Halbert
84807cd6eb Change I2C terminology from "peripheral" to "target" 2022-08-09 13:13:19 -04:00
Jeff Epler
5a85b8ab95 improve docstrings based on my best sleuthing 2022-08-09 11:42:19 -05:00
Jeff Epler
ec839d6f90 these items should not have been disabled 2022-08-09 11:42:19 -05:00
Jeff Epler
f87e34b9ed add shutter button 2022-08-09 11:42:19 -05:00
Dan Halbert
10275001ac enable web workflow on Feather HUZZAH32 2022-08-09 07:26:18 -04:00
paul
15ad24ba62 ran pre-commit. 2022-08-09 04:32:21 -04:00
lady ada
2cd9222e5e add includes 2022-08-07 14:32:29 -04:00
lady ada
029b6b6fbe add default display 2022-08-07 14:12:40 -04:00
paul
a6eadd6259 Added Bee Motion S3 board 2022-08-07 11:59:43 -04:00
paul
f39058edc4 Added Bee S3 board 2022-08-06 22:22:20 -04:00
Jeff Epler
1da8065d6b
Merge remote-tracking branch 'origin/main' into espressif-camera-2 2022-08-05 16:38:51 -05: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
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
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
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