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 ES8311 (DAC chip)

Speaker

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

DAC Chip

Controlled with I2C using GPIO7 (SDA) and GPIO8 (SCL) and an address of 0x18.

microSD Card Reader

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