Skip to content

Guition JC-ESP32P4-M3-DEV ​

This board features a Guition JC-ESP32P4-M3, which is a module that includes an ESP32-P4 and an ESP32-C6 as a co-processor for WIFI/Bluetooth.

Github Repos ​

Board Connectors ​

ESP32P4-M3-DEV Board

SymbolDescription
1BOOT (SW1) - Boot Mode/GPIO35
2RESET (SW2) - CHIP_PU
3Microphone (MIC1)
4Speaker (CN1)
5microSD Card Reader (J1)
6Battery Connector (CN4)
7Battery Start Charging (SW3)
8USB High Speed (USB3)
9USB Full Speed (USB2)
10USB TTL/UART (USB1)
11MX1.25 4P Power Input (CN2)
12Ethernet (RJ1)
13Camera CSI (J3)
14Display DSI (J2)
15MX1.25 4P RS485/RS422 Input (J5)
16MX1.25 4P RS485/RS422 Driver Output (J4)
17JST SH1.0 4P I2C (CN3)
18FPC Capacitive Touch 6pin 0.5mm (FPC1)
19Backlight LED Output (CN5)
20Expansion IO (JP1)

Inputs and Connectors ​

Microphone ​

MIC1 connects to DAC chip

Speaker ​

DAC Chip is connected to NS4150 (Audio Amplifier), which can be enabled by setting GPIO11 to HIGH.

DAC Chip ​

ES8311 Chip ADC for input (MIC) and DAC for output.

Control through I2C using GPIO7 (SDA) and GPIO8 (SCL) and an address of 0x18 (7 bit, or 0x30 for 8 bit address).

Data through I2S needs:

GPIOI2S Config
GPIO13mclk
GPIO12bclk
GPIO10ws
GPIO9dout (Speaker)
GPIO48din (Mic)

microSD Card Reader ​

GPIODescription
GPIO45Enable (Power TF Card)
GPIO43CLK
GPIO44CMD
GPIO39DATA0
GPIO40DATA1
GPIO41DATA2
GPIO42CD/DATA3

MX1.25 Power Input (CN2) ​

CN2 is a 4-pin Power Input and UART, pins:

PINDescription
15V Power
2UART TX (GPIO37)
3UART RX (GPIO38)
4GND

Ethernet ​

JST SH1.0mm 4P I2C (CN3) ​

4 Pin interface for I2C Communication

PINDescription
1GND
23.3V Power
3SCL (GPIO8)
4SDA (GPIO7)

MX1.25 4P RS485/RS422 (J5 Input, J4 Output) ​

Uses a MAX485 to handle input and send output

Input (J5)

PINDescription
15V Power
2R Receiver Output
3D Driver Input
4GND

Output (J4)

PINDescription
15V Power
2A Noninverting Driver Output
3B Inverting Driver Output
4GND

To enable it, UART must be used through GPIO27 (RX/R) and GPIO26 (TX/D).

Backlight LED Output (CN5) ​

It uses an MP3202 to power up to 39 white LEDs.

To enable the chip, GPIO23 must be used.

PINDescription
1Top / Cathode
2Bottom / Anode
3GND
4GND

FPC Capacitive Touch 6pin 0.5mm (FPC1) ​

PINDescription
13.3V Power
2GND
3SDA (GPIO7)
4SCL (GPIO8)
5INT
6RST

Expansion IO (JP1) ​

PINDescription
13.3V Power
25V Power
33.3V Power
45V Power
5GND
6GND
7GPIO1
8NC
9GPIO2
10GPIO47
11GPIO3
12GPIO46
13GPIO4
14GPIO45
15GPIO5
16GND
17GPIO20
183.3V Power
19GPIO32
20C6_U0RXD (C6 RX)
21GPIO33
22C6_U0TXD (C6 TX)
23SDA
24C6_IO9 (C6 BOOT)
25SCL
26C6_CHIP_PU (C6 RESET)

Setup ​

VSCode ​

  • Install Extension
  • Select ESP-IDF: Explorer sidebar
  • Advanced -> New Project Wizard
  • Select SDK Version
  • ESP-IDF Templates -> sample_project click on button Create project using template sample_project and select location menuconfig settings
  • Select Command SDK Configuration Editor (menuconfig)
  • Select Component config -> Hardware Settings -> Chip Revision
  • Check Select ESP32-P4 revisions <3.0 (No >=3.x Support)
  • Minimum Supported ESP32-P4 Revision select Rev v1.0menuconfig settings
  • Build Project
  • Flash Device select UART

The led (with resistance) should be connected to GND (JP1 Pin 5) and GPIO1 (JP1 Pin 7) and should blink each second.

main/main.c

c
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"

#define BLINK_GPIO GPIO_NUM_1
#define BLINK_PERIOD 1000

static const char *TAG = "blink";
static uint8_t s_led_state = 0;

static void blink_led(void)
{
    /* Set the GPIO level according to the state (LOW or HIGH)*/
    gpio_set_level(BLINK_GPIO, s_led_state);
}

static void configure_led(void)
{
    ESP_LOGI(TAG, "Example configured to blink GPIO LED!");
    gpio_reset_pin(BLINK_GPIO);
    /* Set the GPIO as a push/pull output */
    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
}

void app_main(void)
{
    /* Configure the peripheral according to the LED type */
    configure_led();

    while (1) {
        ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
        blink_led();
        /* Toggle the LED state */
        s_led_state = !s_led_state;
        vTaskDelay(BLINK_PERIOD / portTICK_PERIOD_MS);
    }
}

Module Pinout ​

JC-ESP32P4-M3