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
|
|
|
#
|
|
|
|
# SPI RAM config
|
|
|
|
#
|
|
|
|
# CONFIG_SPIRAM_MODE_QUAD is not set
|
|
|
|
CONFIG_SPIRAM_MODE_OCT=y
|
|
|
|
# CONFIG_SPIRAM_TYPE_AUTO is not set
|
|
|
|
CONFIG_SPIRAM_TYPE_ESPPSRAM64=y
|
|
|
|
CONFIG_SPIRAM_SIZE=8388608
|
|
|
|
# end of SPI RAM config
|
|
|
|
|
2023-03-02 17:15:57 +05:30
|
|
|
CONFIG_SPIRAM_CLK_IO=30
|
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
|
|
|
#
|
|
|
|
# PSRAM Clock and CS IO for ESP32S3
|
|
|
|
#
|
2023-03-02 17:15:57 +05:30
|
|
|
CONFIG_SPIRAM_CS_IO=26
|
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
|
|
|
# end of PSRAM Clock and CS IO for ESP32S3
|
|
|
|
|
|
|
|
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
|
|
|
# CONFIG_SPIRAM_RODATA is not set
|
|
|
|
CONFIG_SPIRAM_SPEED_80M=y
|
|
|
|
# CONFIG_SPIRAM_SPEED_40M is not set
|
|
|
|
CONFIG_SPIRAM=y
|
|
|
|
CONFIG_SPIRAM_BOOT_INIT=y
|
|
|
|
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
|
|
|
CONFIG_SPIRAM_USE_MEMMAP=y
|
|
|
|
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
|
|
|
# CONFIG_SPIRAM_USE_MALLOC is not set
|
|
|
|
CONFIG_SPIRAM_MEMTEST=y
|
|
|
|
#
|
|
|
|
# LWIP
|
|
|
|
#
|
|
|
|
CONFIG_LWIP_LOCAL_HOSTNAME="espressif-esp32s3-eye"
|
|
|
|
# end of LWIP
|