Add support for M5Stack Timer camera

pull/114/head
Tim van der Heide 2025-04-25 12:44:19 +02:00
parent db0112e9c2
commit e8fcf9592d
3 changed files with 103 additions and 8 deletions

View File

@ -20,6 +20,7 @@
#define CAMERA_MODEL_XIAO_ESP32_S3_CAM false #define CAMERA_MODEL_XIAO_ESP32_S3_CAM false
#define CAMERA_MODEL_ESP32_S3_CAM false #define CAMERA_MODEL_ESP32_S3_CAM false
#define ESP32_S3_WROOM_FREENOVE false #define ESP32_S3_WROOM_FREENOVE false
#define M5STACK_TIMERCAMERA false
/* ---------------- BASIC MCU CFG --------------*/ /* ---------------- BASIC MCU CFG --------------*/
#define SW_VERSION "1.1.2" ///< SW version #define SW_VERSION "1.1.2" ///< SW version

View File

@ -0,0 +1,91 @@
/**
@file module_M5Stack_TimerCam.h
@brief Definition of the M5Stack TimerCamera module
@author Miroslav Pivovarsky
Contact: miroslav.pivovarsky@gmail.com
https://docs.m5stack.com/en/unit/timercam
Board configuration in the arduino IDE 2.3.2
Tools -> Board -> ESP32 Arduino -> ESP32 Dev Module
Tools -> CPU Frequency -> 240MHz (WiFi/BT)
Tools -> Core debug level -> None
Tools -> Flash frequency -> 80MHz
Tools -> Flash Mode -> DIO
Tools -> Partition scheme -> Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
@bug: no know bug
*/
#pragma once
#include "mcu_cfg.h"
#ifdef M5STACK_TIMERCAMERA
/* --------------- CAMERA CFG -------------------*/
#define PWDN_GPIO_NUM -1 ///< Power down control pin
#define RESET_GPIO_NUM 15 ///< Reset control pin
#define XCLK_GPIO_NUM 27 ///< External clock pin
#define SIOD_GPIO_NUM 25 ///< SCCB: SI/O data pin
#define SIOC_GPIO_NUM 23 ///< SCCB: SI/O control pin
#define Y9_GPIO_NUM 19 ///< SCCB: Y9 pin
#define Y8_GPIO_NUM 36 ///< SCCB: Y8 pin
#define Y7_GPIO_NUM 18 ///< SCCB: Y7 pin
#define Y6_GPIO_NUM 39 ///< SCCB: Y6 pin
#define Y5_GPIO_NUM 5 ///< SCCB: Y5 pin
#define Y4_GPIO_NUM 34 ///< SCCB: Y4 pin
#define Y3_GPIO_NUM 35 ///< SCCB: Y3 pin
#define Y2_GPIO_NUM 32 ///< SCCB: Y2 pin
#define VSYNC_GPIO_NUM 22 ///< Vertical sync pin
#define HREF_GPIO_NUM 26 ///< Line sync pin
#define PCLK_GPIO_NUM 21 ///< Pixel clock pin
/* ------------------ MCU CFG ------------------*/
#define BOARD_NAME F("M5Stack TimerCamera") ///< Board name
#define ENABLE_BROWN_OUT_DETECTION true ///< Enable brown out detection
#define ENABLE_PSRAM true ///< Enable PSRAM
/* --------------- OTA UPDATE CFG --------------*/
#define OTA_UPDATE_FW_FILE PSTR("ESP32_PrusaConnectCam.ino.bin") ///< OTA update firmware file name
#define FW_STATUS_LED_PIN 4 ///< GPIO pin for status FW update LED
#define FW_STATUS_LED_LEVEL_ON HIGH ///< GPIO pin level for status LED ON
/* --------------- FLASH LED CFG ---------------*/
#define ENABLE_CAMERA_FLASH false ///< Enable camera flash function
#define CAMERA_FLASH_DIGITAL_CTRL false ///< Enable camera flash digital control
#define CAMERA_FLASH_PWM_CTRL false ///< Enable camera flash PWM control
#define CAMERA_FLASH_NEOPIXEL false ///< Enable camera flash NeoPixel control
#define FLASH_GPIO_NUM 4 ///< Flash control pin
#define FLASH_NEOPIXEL_LED_PIN -1 ///< External flash control pin. RGB LED NeoPixel
#define FLASH_OFF_STATUS 0 ///< PWM intensity LED for OFF. 0-2^FLASH_PWM_RESOLUTION = 0-255
#define FLASH_ON_STATUS 205 ///< PWM intensity LED for ON. limitation to 80%. 2^FLASH_PWM_RESOLUTION * 0.8% = 204
#define FLASH_PWM_FREQ 2000 ///< frequency of pwm [240MHz / (100 prescale * pwm cycles)] = frequency
#define FLASH_PWM_CHANNEL 0 ///< channel 0
#define FLASH_PWM_RESOLUTION 8 ///< range 1-20bit. 8bit = 0-255 range
/* --------------- SD CARD CFG ---------------*/
#define ENABLE_SD_CARD false ///< Enable SD card function
#define SD_PIN_CLK 14 ///< GPIO pin for SD card clock
#define SD_PIN_CMD 15 ///< GPIO pin for SD card command
#define SD_PIN_DATA0 2 ///< GPIO pin for SD card data 0
/* ---------- RESET CFG CONFIGURATION ----------*/
#define CFG_RESET_PIN 37 ///< GPIO 12 is for reset CFG to default
#define CFG_RESET_LED_PIN 4 ///< GPIO for indication of reset CFG
#define CFG_RESET_LED_LEVEL_ON HIGH ///< GPIO pin level for status LED ON
/* -------------- STATUS LED CFG ----------------*/
#define STATUS_LED_ENABLE true ///< enable/disable status LED
#define STATUS_LED_GPIO_NUM 33 ///< GPIO pin for status LED
#define STATUS_LED_OFF_PIN_LEVEL LOW ///< GPIO pin level for status LED ON
/* -------------- DHT SENSOR CFG ----------------*/
#define DHT_SENSOR_ENABLE false ///< enable/disable DHT sensor
#define DHT_SENSOR_PIN 13 ///< GPIO pin for DHT sensor
#endif // M5STACK_TIMERCAMERA
/* EOF */

View File

@ -14,7 +14,7 @@
#include "mcu_cfg.h" #include "mcu_cfg.h"
#if ((AI_THINKER_ESP32_CAM + ESP32_WROVER_DEV + CAMERA_MODEL_ESP32_S3_DEV_CAM + CAMERA_MODEL_ESP32_S3_EYE_2_2 + CAMERA_MODEL_XIAO_ESP32_S3_CAM + CAMERA_MODEL_ESP32_S3_CAM + ESP32_S3_WROOM_FREENOVE) != 1) #if ((AI_THINKER_ESP32_CAM + ESP32_WROVER_DEV + CAMERA_MODEL_ESP32_S3_DEV_CAM + CAMERA_MODEL_ESP32_S3_EYE_2_2 + CAMERA_MODEL_XIAO_ESP32_S3_CAM + CAMERA_MODEL_ESP32_S3_CAM + ESP32_S3_WROOM_FREENOVE + M5STACK_TIMERCAMERA) != 1)
#error "Exactly one camera model must be defined as true." #error "Exactly one camera model must be defined as true."
#endif #endif
@ -39,6 +39,9 @@
#elif (true == ESP32_S3_WROOM_FREENOVE) #elif (true == ESP32_S3_WROOM_FREENOVE)
#include "module_ESP32-S3_Wroom_Freenove.h" #include "module_ESP32-S3_Wroom_Freenove.h"
#elif (true == M5STACK_TIMERCAMERA)
#include "module_M5Stack_TimerCam.h"
#else #else
#error "No module selected" #error "No module selected"