Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
154 changes: 154 additions & 0 deletions configs/sdkconfig_diycam_esp32s3devkitc1.defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# diycam esp32s3devkitc1
CONFIG_APP_REPRODUCIBLE_BUILD=y
CONFIG_BF20A6_SUPPORT=n
CONFIG_BF3005_SUPPORT=n
CONFIG_BOARD_TYPE_CUSTOM=y
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
CONFIG_BOOTLOADER_WDT_ENABLE=n
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=517
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=11
CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=5632
CONFIG_BT_NIMBLE_LOG_LEVEL_NONE=y
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL=y
CONFIG_BT_NIMBLE_NVS_PERSIST=y
CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n
CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n
CONFIG_BT_NIMBLE_SM_LEGACY=n
CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="j"
CONFIG_BUTTON_LONG_PRESS_HOLD_SERIAL_TIME_MS=100
CONFIG_BUTTON_LONG_PRESS_TIME_MS=500
CONFIG_CAMERA_D0=4
CONFIG_CAMERA_D1=5
CONFIG_CAMERA_D2=6
CONFIG_CAMERA_D3=7
CONFIG_CAMERA_D4=8
CONFIG_CAMERA_D5=9
CONFIG_CAMERA_D6=16
CONFIG_CAMERA_D7=17
CONFIG_CAMERA_FRONT_FACING=n
CONFIG_CAMERA_HREF=39
CONFIG_CAMERA_PCLK=21
CONFIG_CAMERA_PWDN=-1
CONFIG_CAMERA_RESET=-1
CONFIG_CAMERA_ROTATE_180=n
CONFIG_CAMERA_ROTATE_270=n
CONFIG_CAMERA_ROTATE_90=y
CONFIG_CAMERA_SCL=41
CONFIG_CAMERA_SDA=40
CONFIG_CAMERA_VSYNC=38
CONFIG_CAMERA_XCLK=-1
CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_STACK_CHECK_MODE_STRONG=y
CONFIG_COMPILER_WARN_WRITE_STRINGS=y
CONFIG_DCS_ADDRESS_MODE_BGR_SELECTED=n
CONFIG_DCS_ADDRESS_MODE_MIRROR_X_SELECTED=y
CONFIG_DCS_ADDRESS_MODE_MIRROR_Y_SELECTED=n
CONFIG_DCS_ADDRESS_MODE_SWAP_XY_SELECTED=y
CONFIG_DEBUG_MODE=y
CONFIG_DISPLAY_HEIGHT=135
CONFIG_DISPLAY_INVERT=y
CONFIG_DISPLAY_OFFSET_X=40
CONFIG_DISPLAY_OFFSET_Y=53
CONFIG_DISPLAY_PIN_BL=15
CONFIG_DISPLAY_PIN_CLK=12
CONFIG_DISPLAY_PIN_CS=10
CONFIG_DISPLAY_PIN_DC=13
CONFIG_DISPLAY_PIN_MISO=-1
CONFIG_DISPLAY_PIN_MOSI=11
CONFIG_DISPLAY_PIN_RST=14
CONFIG_DISPLAY_SPI_CLOCK=32000000
CONFIG_DISPLAY_SPI_HOST=1
CONFIG_DISPLAY_WIDTH=240
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_ERR_TO_NAME_LOOKUP=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=12288
CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=n
CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=n
CONFIG_ESP_SYSTEM_BBPLL_RECALIB=n
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
CONFIG_ESP_TASK_WDT_EN=n
CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=n
CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n
CONFIG_ESP_WIFI_IRAM_OPT=n
CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=n
CONFIG_ESP_WIFI_NVS_ENABLED=n
CONFIG_ESP_WIFI_RX_IRAM_OPT=n
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_FATFS_LFN_HEAP=y
CONFIG_FATFS_VFS_FSTAT_BLKSIZE=4096
CONFIG_FATFS_VOLUME_COUNT=1
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=3
CONFIG_GC0308_SUPPORT=n
CONFIG_GC032A_SUPPORT=n
CONFIG_GC2145_SUPPORT=n
CONFIG_HAS_CAMERA=y
CONFIG_I2C_SCL=-1
CONFIG_I2C_SDA=-1
CONFIG_IDF_TARGET="esp32s3"
CONFIG_INPUT_BTN_A=1
CONFIG_INPUT_BTN_B=42
CONFIG_INPUT_FRONT_SW=2
CONFIG_INPUT_INVERT_WHEEL=n
CONFIG_INPUT_ONE_BUTTON_MODE=n
CONFIG_INPUT_WHEEL_A=-1
CONFIG_INPUT_WHEEL_B=-1
CONFIG_INPUT_WHEEL_SW=-1
CONFIG_LCD_BACKLIGHT_PIN_NUM=-1
CONFIG_LCD_CMD_BITS=-1
CONFIG_LCD_PARAM_BITS=-1
CONFIG_LCD_PIXEL_CLOCK_HZ=-1
CONFIG_LCD_POWER_PIN_NUM=-1
CONFIG_LCD_RD_PIN_NUM=-1
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=n
CONFIG_NEWLIB_NANO_FORMAT=y
CONFIG_NT99141_SUPPORT=n
CONFIG_OV2640_SUPPORT=y
CONFIG_OV3660_SUPPORT=n
CONFIG_OV5640_SUPPORT=n
CONFIG_OV7670_SUPPORT=n
CONFIG_OV7725_SUPPORT=n
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitionss3.csv"
CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
CONFIG_PIN_NUM_CS=-1
CONFIG_PIN_NUM_DATA0=-1
CONFIG_PIN_NUM_DATA1=-1
CONFIG_PIN_NUM_DATA2=-1
CONFIG_PIN_NUM_DATA3=-1
CONFIG_PIN_NUM_DATA4=-1
CONFIG_PIN_NUM_DATA5=-1
CONFIG_PIN_NUM_DATA6=-1
CONFIG_PIN_NUM_DATA7=-1
CONFIG_PIN_NUM_DC=-1
CONFIG_PIN_NUM_RST=-1
CONFIG_PIN_NUM_WR=-1
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=n
CONFIG_PSRAM_DATA_ALIGNMENT=-1
CONFIG_SC030IOT_SUPPORT=n
CONFIG_SCCB_CLK_FREQ=200000
CONFIG_SPI_FLASH_VERIFY_WRITE=y
CONFIG_SPI_MASTER_ISR_IN_IRAM=n
CONFIG_SPI_SLAVE_ISR_IN_IRAM=n
CONFIG_SPIRAM=y
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=256
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536
CONFIG_SPIRAM_MEMTEST=n
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_SPIRAM_RODATA=y
CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
CONFIG_TINYUSB_CDC_ENABLED=y
CONFIG_TINYUSB_CDC_RX_BUFSIZE=64
CONFIG_UI_WRAP_ALL_MENUS=y
13 changes: 13 additions & 0 deletions diy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,19 @@ There are a number of hardware devices that can run Jade firmware with minimal c
* [3d printed case, example STL files available here](https://www.printables.com/model/493485-cases-for-diy-jade-based-on-esp32-cam)
* [Assembly Guide & Hardware Notes](./esp32-cam/)

### ESP32-S3-DevKitC-1 + ST7789 1.14" LCD + OV2640 Camera
![](img/esp32s3-devkitc1.jpg)
* Costs ~$10-15 USD for the dev board + ~$5-10 USD for display and camera modules
* Three button interface (left / select / right)
* USB VendorID:303a ProductID:1001 (Different to retail Jade)
* Typically supports Secure Boot V2
* Hardware Required (No Soldering Required)
* [ESP32-S3-DevKitC-1](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitc-1/index.html) (N8R8 variant, 8MB flash + 8MB Octal PSRAM)
* ST7789 1.14" 135*240 SPI LCD module
* OV2640 camera module (STM32-compatible red module with onboard oscillator)
* Dupont wires
* [Assembly Guide & Hardware Notes](./esp32s3-devkitc1/)

### Waveshare S3 Touch LCD 2
![](img/ws-touch-lcd2.jpg)
* Costs ~$20 USD from manufacturer
Expand Down
50 changes: 50 additions & 0 deletions diy/esp32s3-devkitc1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# ESP32-S3-DevKitC-1 Assembly

**Note on the OV2640 Camera Module**

This build uses the STM32-compatible OV2640 red module (common on AliExpress). Unlike other OV2640 modules, this one has an **onboard 24 MHz oscillator**, so the XCLK pin is not connected. The pixel clock output on this module is labelled **DCLK** (not PCLK), connect it to GPIO 21.

## Power Pins
| Function | Pin Number (On ESP32-S3) |
| --- | --- |
| VCC (Display, Camera) | 3.3V |
| GND (Display, Camera, Buttons) | GND |

## Display Pins (ST7789 1.14" SPI)
| Function Pin (On Display) | Pin Number (On ESP32-S3) |
| --- | --- |
| SDA (MOSI) | 11 |
| SCL (CLK) | 12 |
| CS | 10 |
| DC | 13 |
| RES (RST) | 14 |
| BL (Backlight) | 15 |

## Camera Pins (OV2640)
| Function Pin (On Camera) | Pin Number (On ESP32-S3) |
| --- | --- |
| D0 | 4 |
| D1 | 5 |
| D2 | 6 |
| D3 | 7 |
| D4 | 8 |
| D5 | 9 |
| D6 | 16 |
| D7 | 17 |
| XCLK | Not Connected (onboard oscillator) |
| DCLK (PCLK) | 21 |
| VSYNC | 38 |
| HREF | 39 |
| SDA (SCCB) | 40 |
| SCL (SCCB) | 41 |
| PWDN | GND (tie directly) |
| RESET | 3.3V (tie directly) |

## Button Pins
Wire each button with one leg to the Pin Number (On ESP32-S3) and the other to GND. Internal pull-ups are enabled, no external resistors needed.

| Button | Pin Number (On ESP32-S3) | Function |
| --- | --- | --- |
| LEFT | 1 | Navigate left / back |
| SELECT | 2 | Confirm / select |
| RIGHT | 42 | Navigate right |
Binary file added diy/img/esp32s3-devkitc1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.