核心变更: - face_tracker.cc: YUYV→YVYU 序列修正(byte[1]=V, byte[3]=U), 基于 JPEG Dump 诊断工具验证 OV3660 FORMAT_CTRL00=0x61 实际是 YVYU - face_tracker.cc: 启动时 base64 打印一帧 JPEG 到串口,用于肉眼验证 - config.h: XCLK 20MHz→10MHz,给飞线信号完整性 2x 裕度 - scripts/auto_capture_jpeg.py: 自动串口抓帧工具(DTR/RTS 复位 + base64 解码) - scripts/extract_jpeg_from_log.py: 从日志离线提取 JPEG - Coglet项目分析与开发指南.md: 新增"六点六"章节,汇总 Phase 01 主要矛盾(画面可辨识≠模型可识别)、YUV→RGB 色偏三层原因、 esp-dl 模型输入分布敏感性、延迟分析、三方案对比、方案 B 突破口 - docs/: 新增 2 篇 OV3660 相关 CSDN 参考资料 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
337 lines
10 KiB
C
337 lines
10 KiB
C
#ifndef _BOARD_CONFIG_H_
|
||
#define _BOARD_CONFIG_H_
|
||
|
||
#include <driver/gpio.h>
|
||
|
||
#define AUDIO_INPUT_SAMPLE_RATE 16000
|
||
#define AUDIO_OUTPUT_SAMPLE_RATE 24000
|
||
|
||
// 如果使用 Duplex I2S 模式,请注释下面一行
|
||
#define AUDIO_I2S_METHOD_SIMPLEX
|
||
|
||
#ifdef AUDIO_I2S_METHOD_SIMPLEX
|
||
|
||
#define AUDIO_I2S_MIC_GPIO_WS GPIO_NUM_4 // checked for CogNog V1.0 - original NUM_1
|
||
#define AUDIO_I2S_MIC_GPIO_SCK GPIO_NUM_5 // checked for CogNog V1.0 - original NUM_2
|
||
#define AUDIO_I2S_MIC_GPIO_DIN GPIO_NUM_6 // checked for CogNog V1.0 - original NUM_42
|
||
#define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_7 // checked for CogNog V1.0 - original NUM_39
|
||
#define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_15 // checked for CogNog V1.0 - original NUM_40
|
||
#define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_16 // checked for CogNog V1.0 - original NUM_41
|
||
|
||
#else
|
||
|
||
#define AUDIO_I2S_GPIO_WS GPIO_NUM_4
|
||
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_5
|
||
#define AUDIO_I2S_GPIO_DIN GPIO_NUM_6
|
||
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_7
|
||
|
||
#endif
|
||
|
||
|
||
#define BUILTIN_LED_GPIO GPIO_NUM_3 //changes from 48
|
||
#define BOOT_BUTTON_GPIO GPIO_NUM_0
|
||
#define TOUCH_BUTTON_GPIO GPIO_NUM_NC
|
||
#define VOLUME_UP_BUTTON_GPIO GPIO_NUM_NC
|
||
#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_NC
|
||
|
||
//Camera Config
|
||
#define CAMERA_PIN_D0 GPIO_NUM_11 // checked for CogNog V1.0
|
||
#define CAMERA_PIN_D1 GPIO_NUM_9 // checked for CogNog V1.0
|
||
#define CAMERA_PIN_D2 GPIO_NUM_8 // checked for CogNog V1.0
|
||
#define CAMERA_PIN_D3 GPIO_NUM_10 // checked for CogNog V1.0
|
||
#define CAMERA_PIN_D4 GPIO_NUM_12 // checked for CogNog V1.0
|
||
#define CAMERA_PIN_D5 GPIO_NUM_39 // checked for CogNog V1.0 - original NUM_18
|
||
#define CAMERA_PIN_D6 GPIO_NUM_40 // checked for CogNog V1.0 - original NUM_17
|
||
#define CAMERA_PIN_D7 GPIO_NUM_14 // checked for CogNog V1.0 - original NUM_16 << REWIRED IN PROTOTYPE P2 << 35->14
|
||
#define CAMERA_PIN_XCLK GPIO_NUM_21 // checked for CogNog V1.0 - original NUM_15
|
||
#define CAMERA_PIN_PCLK GPIO_NUM_13 // checked for CogNog V1.0
|
||
#define CAMERA_PIN_VSYNC GPIO_NUM_41 // checked for CogNog V1.0 - original NUM_6 << REWIRED IN PROTOTYPE P2 << 36->41
|
||
#define CAMERA_PIN_HREF GPIO_NUM_42 // checked for CogNog V1.0 - original NUM_7 << REWIRED IN PROTOTYPE P2 << 37->42
|
||
#define CAMERA_PIN_SIOC GPIO_NUM_47 // checked for CogNog V1.0 - original NUM_5
|
||
#define CAMERA_PIN_SIOD GPIO_NUM_48 // checked for CogNog V1.0 - original NUM_4
|
||
#define CAMERA_PIN_PWDN GPIO_NUM_NC
|
||
#define CAMERA_PIN_RESET GPIO_NUM_NC
|
||
// [2026-04-21 方案 B] 原 20MHz 在飞线路径上产生 DVP 数据线位错位
|
||
// (画面彩色马赛克撕裂)。降到 10MHz 给飞线信号完整性 2x 裕度
|
||
// 代价:sensor 帧率从 24fps 减半到 ~12fps(足够人脸追踪)
|
||
#define XCLK_FREQ_HZ 10000000
|
||
|
||
#define DISPLAY_BACKLIGHT_PIN GPIO_NUM_NC // checked
|
||
#define DISPLAY_MOSI_PIN GPIO_NUM_NC // checked - original NUM_20
|
||
#define DISPLAY_DC_PIN GPIO_NUM_NC // checked - original NUM_47
|
||
#define DISPLAY_RST_PIN GPIO_NUM_NC // checked - original NUM_21
|
||
#define DISPLAY_CS_PIN GPIO_NUM_NC // checked - original NUM_47
|
||
|
||
#define DISPLAY_CLK_PIN GPIO_NUM_NC // I dont know whats going on here
|
||
|
||
// // Not sure about any of this ...
|
||
|
||
// #define DISPLAY_SDA_PIN GPIO_NUM_41
|
||
// #define DISPLAY_SCL_PIN GPIO_NUM_42
|
||
// #define DISPLAY_WIDTH 128
|
||
|
||
// #if CONFIG_OLED_SSD1306_128X32
|
||
// #define DISPLAY_HEIGHT 32
|
||
// #elif CONFIG_OLED_SSD1306_128X64
|
||
// #define DISPLAY_HEIGHT 64
|
||
// #elif CONFIG_OLED_SH1106_128X64
|
||
// #define DISPLAY_HEIGHT 64
|
||
// #define SH1106
|
||
// #else
|
||
// #error "未选择 OLED 屏幕类型"
|
||
// #endif
|
||
|
||
// #define DISPLAY_MIRROR_X true
|
||
// #define DISPLAY_MIRROR_Y true
|
||
|
||
// // Not sure about any of this ^^^
|
||
|
||
|
||
|
||
|
||
|
||
#ifdef CONFIG_LCD_ST7789_240X320
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_240X320_NO_IPS
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR false
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_170X320
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 170
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 35
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_172X320
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 172
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 34
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_240X280
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 280
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 20
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_240X240
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 240
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_240X240_7PIN
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 240
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 3
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7789_240X135
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 135
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY true
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 40
|
||
#define DISPLAY_OFFSET_Y 53
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7735_128X160
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 128
|
||
#define DISPLAY_HEIGHT 160
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y true
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR false
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7735_128X128
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 128
|
||
#define DISPLAY_HEIGHT 128
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y true
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR false
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_BGR
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 32
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7796_320X480
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 320
|
||
#define DISPLAY_HEIGHT 480
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_BGR
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ST7796_320X480_NO_IPS
|
||
#define LCD_TYPE_ST7789_SERIAL
|
||
#define DISPLAY_WIDTH 320
|
||
#define DISPLAY_HEIGHT 480
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR false
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_BGR
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ILI9341_240X320
|
||
#define LCD_TYPE_ILI9341_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_BGR
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_ILI9341_240X320_NO_IPS
|
||
#define LCD_TYPE_ILI9341_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR false
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_BGR
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_GC9A01_240X240
|
||
#define LCD_TYPE_GC9A01_SERIAL
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 240
|
||
#define DISPLAY_MIRROR_X true
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_BGR
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
#ifdef CONFIG_LCD_CUSTOM
|
||
#define DISPLAY_WIDTH 240
|
||
#define DISPLAY_HEIGHT 320
|
||
#define DISPLAY_MIRROR_X false
|
||
#define DISPLAY_MIRROR_Y false
|
||
#define DISPLAY_SWAP_XY false
|
||
#define DISPLAY_INVERT_COLOR true
|
||
#define DISPLAY_RGB_ORDER LCD_RGB_ELEMENT_ORDER_RGB
|
||
#define DISPLAY_OFFSET_X 0
|
||
#define DISPLAY_OFFSET_Y 0
|
||
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
|
||
#define DISPLAY_SPI_MODE 0
|
||
#endif
|
||
|
||
|
||
// A MCP Test: Control a lamp
|
||
#define LAMP_GPIO GPIO_NUM_2 //changed from 14 tp 2
|
||
|
||
#endif // _BOARD_CONFIG_H_
|