5db6db0128
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.
18 lines
383 B
Makefile
18 lines
383 B
Makefile
USB_VID = 0x303A
|
|
USB_PID = 0x7003
|
|
USB_PRODUCT = "ESP32-S3-EYE"
|
|
USB_MANUFACTURER = "Espressif"
|
|
|
|
IDF_TARGET = esp32s3
|
|
|
|
INTERNAL_FLASH_FILESYSTEM = 1
|
|
LONGINT_IMPL = MPZ
|
|
|
|
# The default queue depth of 16 overflows on release builds,
|
|
# so increase it to 32.
|
|
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
|
|
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
|
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
|
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|