{"id":2195,"date":"2026-05-16T11:18:31","date_gmt":"2026-05-16T11:18:31","guid":{"rendered":"https:\/\/ai-box.eu\/?p=2195"},"modified":"2026-05-16T19:51:54","modified_gmt":"2026-05-16T19:51:54","slug":"ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470","status":"publish","type":"post","link":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/","title":{"rendered":"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470"},"content":{"rendered":"<p>After I showed you in <a href=\"https:\/\/ai-box.eu\/en\/news\/esp-idf-v5-5-4-einrichten-und-esp-claw-bauen-schritt-fuer-schritt\/2190\/\" target=\"_blank\" rel=\"noopener\">Part 2 of my ESP-Claw series<\/a> how I compiled ESP-Claw for the first time, today we move on to what is probably the trickiest part of the whole project: <strong>How do I get ESP-Claw to recognize my Guition JC1060P470 as a supported board?<\/strong><\/p>\n<p>Anyone who read Part 2 knows: my successful build was configured for the ESP32-P4 Function EV Board. Espressif&#8217;s own reference board. If I were to flash this firmware as-is onto my Guition, the display, touch, audio, and WiFi wouldn&#8217;t be addressable because the pin assignment is completely different. So I needed my own <strong>board adaptation<\/strong>.<\/p>\n<p>This story has a classic turning point. First a longer period of being stuck, since I hadn&#8217;t done such an adaptation in a while, then the obvious idea of using an unassuming search term in GitHub&#8217;s own search and suddenly the path was clear.<\/p>\n<div id=\"attachment_2274\" style=\"width: 1034px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption-1024x771.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2274\" class=\"size-large wp-image-2274\" src=\"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption-1024x771.jpg\" alt=\"ESP-CLAW board adaption\" width=\"1024\" height=\"771\" srcset=\"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption-1024x771.jpg 1024w, https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption-300x226.jpg 300w, https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption-768x578.jpg 768w, https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption-1080x813.jpg 1080w, https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg 1400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><p id=\"caption-attachment-2274\" class=\"wp-caption-text\">ESP-CLAW board adaption<\/p><\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#What_exactly_is_a_board_adaptation_in_ESP-Claw\" >What exactly is a board adaptation in ESP-Claw?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#The_dead_end_data_sheet_research\" >The dead end: data sheet research<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#The_breakthrough_a_GitHub_search_for_%E2%80%9CJC1060P470%E2%80%9D\" >The breakthrough: a GitHub search for &#8220;JC1060P470&#8221;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#The_pin_map_from_pingcfgh\" >The pin map from pingcfg.h<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_1_Create_the_directory_structure\" >Phase 1: Create the directory structure<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_2_board_infoyaml_%E2%80%93_the_boards_business_card\" >Phase 2: board_info.yaml \u2013 the board&#8217;s business card<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_3_board_peripheralsyaml_%E2%80%93_the_hardware_layer\" >Phase 3: board_peripherals.yaml \u2013 the hardware layer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_4_board_devicesyaml_%E2%80%93_the_logical_layer\" >Phase 4: board_devices.yaml \u2013 the logical layer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_5_setup_devicec_%E2%80%93_the_JD9165_init_sequence\" >Phase 5: setup_device.c \u2013 the JD9165 init sequence<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_6_sdkconfigdefaultsboard_%E2%80%93_the_ESP-IDF_defaults\" >Phase 6: sdkconfig.defaults.board \u2013 the ESP-IDF defaults<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_7_Letting_the_ESP_Board_Manager_generate_the_code\" >Phase 7: Letting the ESP Board Manager generate the code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Phase_8_Build_and_first_tests\" >Phase 8: Build and first tests<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#My_personal_conclusion_on_Part_3\" >My personal conclusion on Part 3<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#Whats_coming_in_the_next_posts\" >What&#8217;s coming in the next posts?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"What_exactly_is_a_board_adaptation_in_ESP-Claw\"><\/span>What exactly is a board adaptation in ESP-Claw?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>ESP-Claw ships out of the box with a few reference boards that work right away:<\/p>\n<ul>\n<li><strong>ESP32-P4 Function EV Board<\/strong> (Espressif&#8217;s own development board)<\/li>\n<li><strong>M5Stack Tab5<\/strong> (a 5-inch HMI board with ESP32-P4)<\/li>\n<li><strong>Waveshare ESP32-P4 Nano<\/strong><\/li>\n<li>Various others from Espressif and third parties<\/li>\n<\/ul>\n<p>My Guition JC1060P470 is <strong>not<\/strong> among them, but in return it was also cheap to get on AliExpress. For ESP-Claw to know how to deal with the hardware \u2013 which pins for I\u00b2C, which for SDIO to the WiFi co-processor, which LCD controller is installed, how the audio codec is addressed and so on \u2013 it needs a tailor-made configuration. ESP-Claw calls this configuration a <strong>board adaptation<\/strong>, and it consists of several files, none of which were provided directly by the manufacturer in the download data offered for the board:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 33.33%;\"><strong>File<\/strong><\/td>\n<td style=\"width: 33.33%;\"><strong>What it defines<\/strong><\/td>\n<td style=\"width: 33.33%;\"><strong>Format<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>board_info.yaml<\/code><\/td>\n<td>Metadata about the board (name, manufacturer, chip)<\/td>\n<td>YAML<\/td>\n<\/tr>\n<tr>\n<td><code>board_peripherals.yaml<\/code><\/td>\n<td>Hardware peripherals (I\u00b2C, I\u00b2S, GPIO, LDO, DSI, LEDC)<\/td>\n<td>YAML<\/td>\n<\/tr>\n<tr>\n<td><code>board_devices.yaml<\/code><\/td>\n<td>Logical devices (audio codec, display, touch, SD card)<\/td>\n<td>YAML<\/td>\n<\/tr>\n<tr>\n<td><code>setup_device.c<\/code><\/td>\n<td>Driver-specific C code (e.g. JD9165 init sequence)<\/td>\n<td>C<\/td>\n<\/tr>\n<tr>\n<td><code>sdkconfig.defaults.board<\/code><\/td>\n<td>Defaults for ESP-IDF (flash size, PSRAM, ESP-Hosted)<\/td>\n<td>Kconfig<\/td>\n<\/tr>\n<tr>\n<td><code>README.md<\/code><\/td>\n<td>Documentation for other makers<\/td>\n<td>Markdown<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sounds manageable. But the catch is: for each of these files, I had to know <strong>what exactly is built into my board and which pins it communicates with<\/strong>. And with an AliExpress board carrying Chinese documentation, that was the first real stumbling block.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_dead_end_data_sheet_research\"><\/span>The dead end: data sheet research<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>My first instinct was to look for a data sheet in the AliExpress listing. A wasted effort. The seller only had a few marketing images online. On the manufacturer&#8217;s website at Guition I did find a PDF, but it was in English and Chinese and mostly showed connector pinouts, not the internal pin assignments of the ESP32-P4 to display, touch or audio.<\/p>\n<p>Here&#8217;s another link to the manufacturer&#8217;s info, which turned out to be quite helpful: <a href=\"https:\/\/devices.esphome.io\/devices\/guition-esp32-p4-m3-dev\/\" target=\"_blank\" rel=\"noopener\">https:\/\/devices.esphome.io\/devices\/guition-esp32-p4-m3-dev\/<\/a><\/p>\n<p>This ZIP file contains schematics (in Chinese), demo code (Arduino-based, not directly usable) and a few PNG screenshots. Helpful, but not enough to build an ESP-Claw adaptation from.<\/p>\n<p>Here&#8217;s the link to the ZIP file mentioned above (use at your own risk): <a href=\"https:\/\/pan.jczn1688.com\/directlink\/1\/HMI%20display\/JC-ESP32P4-M3-DEV.zip\" target=\"_blank\" rel=\"noopener\">https:\/\/pan.jczn1688.com\/directlink\/1\/HMI%20display\/JC-ESP32P4-M3-DEV.zip<\/a><\/p>\n<p><strong>ESP-Claw&#8217;s own documentation<\/strong> also only helped to a limited extent: it describes the YAML schema, but without a <strong>complete example for an exotic display controller<\/strong> like the JD9165, you&#8217;re on your own.<\/p>\n<p>I spent longer than I&#8217;d like to admit reading through ESP-Claw&#8217;s reference boards:<\/p>\n<ul>\n<li><code>boards\/espressif\/esp32_p4_function_ev\/<\/code> for the P4 MIPI-DSI setup with EK79007<\/li>\n<li><code>boards\/m5stack\/m5stack_tab5\/<\/code> for a P4 with a different display controller (ILI9881C)<\/li>\n<\/ul>\n<p>From both I could learn structure and schema, but <strong>not<\/strong> the specific JD9165 init sequence or the exact pin assignments of my Guition board.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_breakthrough_a_GitHub_search_for_%E2%80%9CJC1060P470%E2%80%9D\"><\/span>The breakthrough: a GitHub search for &#8220;JC1060P470&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Frustrated, I finally tried what should actually always be the first step: a global <strong>GitHub search for the exact board name<\/strong>.<\/p>\n<p><strong>Link:<\/strong> <a href=\"https:\/\/github.com\/search?q=JC1060P470&amp;type=code\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/search?q=JC1060P470&amp;type=code<\/a><\/p>\n<p>And indeed. The search surfaced a rather unassuming repository:<\/p>\n<p>I built on this <strong>repository<\/strong>: <a href=\"https:\/\/github.com\/Deep-start9527\/guition_product_demo\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Deep-start9527\/guition_product_demo<\/a><\/p>\n<p>A maker had published a complete demo project for the JC1060P470 in ESP-IDF here, with fully working code for display, touch, audio and more. Exactly the information that had been missing from Guition. <strong>That was my moment of hope<\/strong>.<\/p>\n<p>Here is another <strong>repository<\/strong> that the manufacturer has linked on its product page: <a href=\"https:\/\/github.com\/p1ngb4ck\/unofficial_guition_esp32p4_repo\/tree\/main\/JC-ESP32P4-M3-Dev\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/p1ngb4ck\/unofficial_guition_esp32p4_repo\/tree\/main\/JC-ESP32P4-M3-Dev<\/a><\/p>\n<p>From this repository, two files became my most important allies:<\/p>\n<ul>\n<li><code>pingcfg.h<\/code> \u2013 the <strong>complete pin map of the board<\/strong>, neatly documented as header constants<\/li>\n<li><code>demo\/main\/lcd\/lcd.c<\/code> \u2013 the <strong>JD9165 init sequence<\/strong>, around 50 register writes with comments<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"The_pin_map_from_pingcfgh\"><\/span>The pin map from pingcfg.h<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>From the <code>pingcfg.h<\/code>, I was able to extract the complete pin assignment. Here&#8217;s a condensed overview of the most important connections:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 33.33%;\"><strong>Function<\/strong><\/td>\n<td style=\"width: 33.33%;\"><strong>Pin(s)<\/strong><\/td>\n<td style=\"width: 33.33%;\"><strong>Usage<\/strong><\/td>\n<\/tr>\n<tr>\n<td>I\u00b2C (touch + audio codec)<\/td>\n<td>SDA=7, SCL=8<\/td>\n<td>GT911, ES8311<\/td>\n<\/tr>\n<tr>\n<td>I\u00b2S (audio)<\/td>\n<td>MCLK=13, BCLK=12, WS=10, DOUT=9, DIN=48<\/td>\n<td>ES8311 microphone\/speaker<\/td>\n<\/tr>\n<tr>\n<td>Audio amplifier<\/td>\n<td>PA_EN=11<\/td>\n<td>Speaker amp on\/off<\/td>\n<\/tr>\n<tr>\n<td>LCD backlight<\/td>\n<td>BL=23 (LEDC, 20 kHz)<\/td>\n<td>Brightness control<\/td>\n<\/tr>\n<tr>\n<td>LCD reset<\/td>\n<td>RST=0<\/td>\n<td>Hardware reset of the panel<\/td>\n<\/tr>\n<tr>\n<td>microSD (4-bit mode)<\/td>\n<td>CLK=43, CMD=44, D0\u2013D3=39\/40\/41\/42<\/td>\n<td>SDMMC<\/td>\n<\/tr>\n<tr>\n<td>ESP32-C6 SDIO<\/td>\n<td>CLK=18, CMD=19, D0\u2013D3=14\/15\/16\/17, RST=54<\/td>\n<td>ESP-Hosted for WiFi\/BT<\/td>\n<\/tr>\n<tr>\n<td>UART0 (console)<\/td>\n<td>TX=37, RX=38<\/td>\n<td>Serial output via CH340<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>With this project in hand, the 6 empty configuration files suddenly became a manageable task. I now knew what was connected where, and that&#8217;s half the battle.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_1_Create_the_directory_structure\"><\/span>Phase 1: Create the directory structure<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>ESP-Claw expects board adaptations under the path <code>application\/edge_agent\/boards\/&lt;manufacturer&gt;\/&lt;boardname&gt;\/<\/code>. In my case:<\/p>\n<p><strong>Command:<\/strong> <code>mkdir -p D:\\esp32-claw\\esp-claw\\application\\edge_agent\\boards\\guition\\jc1060p470_m3_dev<\/code><\/p>\n<p>I chose the suffix <code>_m3_dev<\/code> because the board is officially called <strong>JC-ESP32P4-M3-DEV<\/strong>. This way, the directory name stays consistent with the manufacturer&#8217;s designation.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_2_board_infoyaml_%E2%80%93_the_boards_business_card\"><\/span>Phase 2: board_info.yaml \u2013 the board&#8217;s business card<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The easiest file. It only contains metadata that ESP-Claw uses to list the board in its selection:<\/p>\n<ul>\n<li>Board name (internal and for display)<\/li>\n<li>Manufacturer (Guition)<\/li>\n<li>Chip family (esp32p4)<\/li>\n<li>Hardware revision<\/li>\n<\/ul>\n<p>This file takes maybe 20 lines and is done in five minutes thanks to the LLMs of this world.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_3_board_peripheralsyaml_%E2%80%93_the_hardware_layer\"><\/span>Phase 3: board_peripherals.yaml \u2013 the hardware layer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This is where it gets interesting. In this file, I define all the <strong>hardware peripheral blocks of the ESP32-P4<\/strong> that ESP-Claw should later use. For my board, that meant 7 peripheral definitions:<\/p>\n<ol>\n<li><strong>i2c_master<\/strong> \u2013 the I\u00b2C bus for touch and audio codec<\/li>\n<li><strong>i2s_audio_out<\/strong> \u2013 I\u00b2S channel for DAC (speaker)<\/li>\n<li><strong>i2s_audio_in<\/strong> \u2013 I\u00b2S channel for ADC (microphone)<\/li>\n<li><strong>gpio_pa_control<\/strong> \u2013 control GPIO for the audio amplifier<\/li>\n<li><strong>ldo_mipi<\/strong> \u2013 the internal power supply for MIPI-DSI<\/li>\n<li><strong>dsi_display<\/strong> \u2013 the DSI bus for the display<\/li>\n<li><strong>ledc_backlight<\/strong> \u2013 LEDC PWM channel for the backlight<\/li>\n<\/ol>\n<p>With the first versions of my YAML file, the build immediately ran into <strong>schema errors<\/strong>. ESP-Claw is very strict when parsing, and I had to figure out in several iterations which field names are actually expected. Here are the most important corrections I learned from my first failed attempts:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><strong>My first assumption (wrong)<\/strong><\/td>\n<td style=\"width: 50%;\"><strong>What ESP-Claw really expects<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>type: mipi_dsi<\/code><\/td>\n<td><code>type: dsi<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>num_data_lanes: 2<\/code><\/td>\n<td><code>data_lanes: 2<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>type: touch<\/code><\/td>\n<td><code>type: lcd_touch<\/code><\/td>\n<\/tr>\n<tr>\n<td>I\u00b2S as a single peripheral block<\/td>\n<td>Split into <code>i2s_audio_out<\/code> + <code>i2s_audio_in<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>My tip:<\/strong> Have a look at the YAML of an existing similar board from the ESP-Claw project (e.g. <code>esp32_p4_function_ev<\/code>) and copy the structure before inventing your own field names. That saves an enormous amount of time.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_4_board_devicesyaml_%E2%80%93_the_logical_layer\"><\/span>Phase 4: board_devices.yaml \u2013 the logical layer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>While <code>board_peripherals.yaml<\/code> describes the raw hardware, <code>board_devices.yaml<\/code> defines the <strong>logical devices that run on top of that hardware<\/strong>. So: Which display driver? Which audio codec? Which touch controller?<\/p>\n<p>For my board, this was originally 6 devices:<\/p>\n<ol>\n<li><strong>audio_dac<\/strong> \u2013 ES8311 as DAC for audio output<\/li>\n<li><strong>audio_adc<\/strong> \u2013 ES8311 as ADC for microphone input<\/li>\n<li><strong>fs_sdcard<\/strong> \u2013 FAT file system on the microSD card<\/li>\n<li><strong>lcd_brightness<\/strong> \u2013 brightness control via LEDC<\/li>\n<li><strong>display_lcd<\/strong> \u2013 the actual display with JD9165 controller<\/li>\n<li><strong>lcd_touch<\/strong> \u2013 GT911 touch controller<\/li>\n<\/ol>\n<p>An important insight: <strong>WiFi and Ethernet are NOT included here.<\/strong> ESP-Claw configures the network entirely via the Kconfig defaults in <code>sdkconfig.defaults.board<\/code>, not via YAML. That confused me at first because I had been looking for a &#8220;wifi&#8221; entry.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_5_setup_devicec_%E2%80%93_the_JD9165_init_sequence\"><\/span>Phase 5: setup_device.c \u2013 the JD9165 init sequence<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This is where the most exciting part came in. Display controllers like the JD9165 require a <strong>specific initialization sequence<\/strong> of around 50 register writes. This sequence isn&#8217;t in any data sheet, only in the board&#8217;s vendor demo. Without it, the display only shows pixel garbage or stays black.<\/p>\n<p>This is exactly where the <code>lcd.c<\/code> from the Chinese demo project saved my life. I could take the entire init array <strong>1:1 into my own <code>setup_device.c<\/code><\/strong>:<\/p>\n<ul>\n<li>Page-select commands (for choosing internal register banks)<\/li>\n<li>Power sequencing<\/li>\n<li>Gamma correction<\/li>\n<li>Timing parameters for the DSI interface<\/li>\n<li>Display-on command with a 120 ms wait<\/li>\n<\/ul>\n<p>Reconstructing this sequence myself would probably have cost me days and, without a logic analyzer or MIPI sniffer, would have been practically impossible.<\/p>\n<p><strong>My takeaway:<\/strong> When dealing with exotic display controllers, <strong>always<\/strong> look for an existing vendor demo before trying to derive the init sequence from the data sheet. Data sheets describe registers, but not the correct order or timings.<\/p>\n<p>Note: I then ended up commenting all of that out again because, after flashing, the microcontroller was stuck in an endless loop, since it couldn&#8217;t find a display. I don&#8217;t have one yet.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_6_sdkconfigdefaultsboard_%E2%80%93_the_ESP-IDF_defaults\"><\/span>Phase 6: sdkconfig.defaults.board \u2013 the ESP-IDF defaults<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In this file, I set the <strong>ESP-IDF-specific defaults for my board<\/strong>. Here are the most important entries:<\/p>\n<ul>\n<li><code>CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y<\/code> (16 MB flash)<\/li>\n<li><code>CONFIG_SPIRAM_MODE_HEX=y<\/code> (Octal PSRAM)<\/li>\n<li><code>CONFIG_SPIRAM_SPEED_200M=y<\/code> (PSRAM at 200 MHz)<\/li>\n<li><code>CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions_16MB.csv\"<\/code><\/li>\n<li><code>CONFIG_ESP_HOSTED_HOST_INTERFACE_SDIO=y<\/code> (WiFi via C6 over SDIO)<\/li>\n<li><code>CONFIG_ESP_CONSOLE_UART_DEFAULT=y<\/code> (console via UART0)<\/li>\n<\/ul>\n<p>This file is exactly what activates the <strong>ESP-Hosted bridge to the ESP32-C6<\/strong>, which I need later for WiFi. Without this setting, the P4 cannot communicate with its radio co-processor.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_7_Letting_the_ESP_Board_Manager_generate_the_code\"><\/span>Phase 7: Letting the ESP Board Manager generate the code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>ESP-Claw ships with a helpful tool called the <strong>ESP Board Manager<\/strong>, which automatically generates C code from my YAML files. I call it once after each change to the YAMLs:<\/p>\n<p><strong>Command:<\/strong> <code>idf.py gen-bmgr-config -c .\/boards -b jc1060p470_m3_dev<\/code><\/p>\n<p>If everything fits, I see output like this at the end:<\/p>\n<p><code>Successfully validated 7 peripherals<\/code><br \/>\n<code>Successfully validated 6 devices<\/code><\/p>\n<p>If the numbers match what I have defined in YAML, the adaptation is syntactically correct. If something is wrong, you usually get a very clear error message \u2013 with line number and a concrete hint. The error messages are understandable once you&#8217;ve wrestled with the configuration a bit beforehand\u2026<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_8_Build_and_first_tests\"><\/span>Phase 8: Build and first tests<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>After all this preparation, the decisive moment arrived:<\/p>\n<p><strong>Command:<\/strong> <code>idf.py build<\/code><\/p>\n<p>The first attempt, as expected, threw errors like missing fields, wrong data types, and forgotten <code>dependencies:<\/code> blocks. But after every correction I got a little further, until finally a clean build went through:<\/p>\n<p><code>edge_agent.bin binary size 0x28e3a0 bytes. Smallest app partition is 0x400000 bytes. 0x171c60 bytes (36%) free.<\/code><\/p>\n<p>About <strong>2.6 MB of firmware<\/strong> for my specifically adapted board. Ready to flash.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"My_personal_conclusion_on_Part_3\"><\/span>My personal conclusion on Part 3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Writing a board adaptation for a board that isn&#8217;t officially supported <strong>isn&#8217;t a free ride<\/strong>. There were several moments when I was close to moving the project to an ESP32-P4 Function EV Board just so I wouldn&#8217;t have to wrestle with the Guition anymore.<\/p>\n<p>What ultimately helped me was:<\/p>\n<ol>\n<li><strong>The GitHub search for the exact board name.<\/strong> It turned hours of guessing into concrete pin maps and init sequences.<\/li>\n<li><strong>The ESP-Claw reference boards as a template.<\/strong> Even though none of them exactly matched mine, the structure was very instructive.<\/li>\n<li><strong>Patience with the iterative YAML schema learning.<\/strong> Every schema error was a step toward understanding.<\/li>\n<li><strong>Not trying to reconstruct the JD9165 init sequence myself.<\/strong> When someone has spent hours in front of a logic analyzer before you, gratefully use the result.<\/li>\n<\/ol>\n<p>These three parts of my series (installation, build, board adaptation) are the <strong>&#8220;boring but&#8221; necessary basics<\/strong>. They were most of the work, but they&#8217;re also the foundation for everything exciting that follows. From Part 4 onwards it gets much more entertaining, because that&#8217;s when the AI part comes into play.<\/p>\n<p>In the <strong>next part<\/strong>, I&#8217;ll show you how I connect my ESP-Claw agent to my own Ollama inference server. How I set the right configuration fields in the web UI, and which stumbling blocks were waiting for me. Spoiler: there were some.<\/p>\n<p><strong>See you in the next part!<\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Whats_coming_in_the_next_posts\"><\/span>What&#8217;s coming in the next posts?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Part 1<\/strong>: Kickoff and introduction of the vision<\/li>\n<li><strong>Part 2<\/strong>: Setting up ESP-IDF v5.5.4 and building ESP-Claw \u2013 step by step<\/li>\n<li><strong>Part 3 (this post)<\/strong>: Adding a new board to ESP-Claw \u2013 my board adaptation for the Guition JC1060P470<\/li>\n<li><strong>Part 4<\/strong>: Connecting ESP-Claw to your own Ollama server \u2013 configuration and first chats<\/li>\n<li><strong>Part 5<\/strong>: Understanding capabilities and skills \u2013 the architecture of an ESP-Claw agent<\/li>\n<li><strong>Part 6<\/strong>: Writing your own skill \u2013 remote-controlling the robot car or explaining the dishwasher<\/li>\n<li><strong>Part 7<\/strong>: Voice in, voice out \u2013 the HMI board as a real voice assistant to help out at the washing machine<\/li>\n<li><strong>Part 8<\/strong>: Lua scripts for behavioral patterns \u2013 when the agent acts on its own<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>After I showed you in Part 2 of my ESP-Claw series how I compiled ESP-Claw for the first time, today we move on to what is probably the trickiest part of the whole project: How do I get ESP-Claw to recognize my Guition JC1060P470 as a supported board? Anyone who read Part 2 knows: my [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2274,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[53,162,8],"tags":[1086,1085,1077,1092,1088,1080,1081,1095,1090,1093,1037,1096,1089,1091,1040,1082,1084,1083,1094,1087],"class_list":["post-2195","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware-en","category-large-language-models-en","category-news","tag-board_devices-yaml","tag-board_peripherals-yaml","tag-edge_agent","tag-es8311-codec","tag-esp-board-manager","tag-esp-claw-board-adaptation","tag-esp-claw-custom-board","tag-esp-claw-new-board","tag-esp-claw-yaml","tag-esp-hosted-sdio","tag-esp32-p4","tag-esp32-p4-board-support","tag-gen-bmgr-config","tag-gt911-touch","tag-guition-jc1060p470","tag-jc-esp32p4-m3-dev","tag-jd9165-driver","tag-jd9165-init-sequence","tag-mipi-dsi-esp32-p4","tag-setup_device-c","et-has-post-format-content","et_post_format-et-post-format-standard"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470 - Exploring the Future: Inside the AI Box<\/title>\n<meta name=\"description\" content=\"ESP-Claw board adaptation from scratch: how I added the Guition JC1060P470 with YAML, JD9165 init, and a key GitHub discovery that saved my project.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470 - Exploring the Future: Inside the AI Box\" \/>\n<meta property=\"og:description\" content=\"ESP-Claw board adaptation from scratch: how I added the Guition JC1060P470 with YAML, JD9165 init, and a key GitHub discovery that saved my project.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/\" \/>\n<meta property=\"og:site_name\" content=\"Exploring the Future: Inside the AI Box\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-16T11:18:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-16T19:51:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"1054\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Maker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Ingmar_Stapel\" \/>\n<meta name=\"twitter:site\" content=\"@Ingmar_Stapel\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Maker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/\"},\"author\":{\"name\":\"Maker\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#\\\/schema\\\/person\\\/cc91d08618b3feeef6926591b465eab1\"},\"headline\":\"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470\",\"datePublished\":\"2026-05-16T11:18:31+00:00\",\"dateModified\":\"2026-05-16T19:51:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/\"},\"wordCount\":2149,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ai-box.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ESP32_CLAW_board_adaption.jpg\",\"keywords\":[\"board_devices.yaml\",\"board_peripherals.yaml\",\"edge_agent\",\"ES8311 codec\",\"ESP Board Manager\",\"ESP-Claw board adaptation\",\"ESP-Claw custom board\",\"ESP-Claw new board\",\"ESP-Claw YAML\",\"ESP-Hosted SDIO\",\"ESP32-P4\",\"ESP32-P4 board support\",\"gen-bmgr-config\",\"GT911 touch\",\"Guition JC1060P470\",\"JC-ESP32P4-M3-DEV\",\"JD9165 driver\",\"JD9165 init sequence\",\"MIPI-DSI ESP32-P4\",\"setup_device.c\"],\"articleSection\":[\"Hardware\",\"Large Language Models\",\"News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/\",\"url\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/\",\"name\":\"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470 - Exploring the Future: Inside the AI Box\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ai-box.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ESP32_CLAW_board_adaption.jpg\",\"datePublished\":\"2026-05-16T11:18:31+00:00\",\"dateModified\":\"2026-05-16T19:51:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#\\\/schema\\\/person\\\/cc91d08618b3feeef6926591b465eab1\"},\"description\":\"ESP-Claw board adaptation from scratch: how I added the Guition JC1060P470 with YAML, JD9165 init, and a key GitHub discovery that saved my project.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ai-box.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ESP32_CLAW_board_adaption.jpg\",\"contentUrl\":\"https:\\\/\\\/ai-box.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ESP32_CLAW_board_adaption.jpg\",\"width\":1400,\"height\":1054,\"caption\":\"ESP-CLAW board adaption\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/news\\\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\\\/2195\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/\",\"name\":\"Exploring the Future: Inside the AI Box\",\"description\":\"Inside the AI Box, we share our experiences and discoveries in the world of artificial intelligence.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#\\\/schema\\\/person\\\/cc91d08618b3feeef6926591b465eab1\",\"name\":\"Maker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e96b93fc3c7e50c1f21c5c6b1f146dc4867936141360830b328947b32cacf93a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e96b93fc3c7e50c1f21c5c6b1f146dc4867936141360830b328947b32cacf93a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e96b93fc3c7e50c1f21c5c6b1f146dc4867936141360830b328947b32cacf93a?s=96&d=mm&r=g\",\"caption\":\"Maker\"},\"description\":\"I live in Bavaria near Munich. In my head I always have many topics and try out especially in the field of Internet new media much in my spare time. I write on the blog because it makes me fun to report about the things that inspire me. I am happy about every comment, about suggestion and very about questions.\",\"sameAs\":[\"https:\\\/\\\/ai-box.eu\"],\"url\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/author\\\/ingmars\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470 - Exploring the Future: Inside the AI Box","description":"ESP-Claw board adaptation from scratch: how I added the Guition JC1060P470 with YAML, JD9165 init, and a key GitHub discovery that saved my project.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/","og_locale":"en_US","og_type":"article","og_title":"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470 - Exploring the Future: Inside the AI Box","og_description":"ESP-Claw board adaptation from scratch: how I added the Guition JC1060P470 with YAML, JD9165 init, and a key GitHub discovery that saved my project.","og_url":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/","og_site_name":"Exploring the Future: Inside the AI Box","article_published_time":"2026-05-16T11:18:31+00:00","article_modified_time":"2026-05-16T19:51:54+00:00","og_image":[{"width":1400,"height":1054,"url":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","type":"image\/jpeg"}],"author":"Maker","twitter_card":"summary_large_image","twitter_creator":"@Ingmar_Stapel","twitter_site":"@Ingmar_Stapel","twitter_misc":{"Written by":"Maker","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#article","isPartOf":{"@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/"},"author":{"name":"Maker","@id":"https:\/\/ai-box.eu\/en\/#\/schema\/person\/cc91d08618b3feeef6926591b465eab1"},"headline":"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470","datePublished":"2026-05-16T11:18:31+00:00","dateModified":"2026-05-16T19:51:54+00:00","mainEntityOfPage":{"@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/"},"wordCount":2149,"commentCount":0,"image":{"@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#primaryimage"},"thumbnailUrl":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","keywords":["board_devices.yaml","board_peripherals.yaml","edge_agent","ES8311 codec","ESP Board Manager","ESP-Claw board adaptation","ESP-Claw custom board","ESP-Claw new board","ESP-Claw YAML","ESP-Hosted SDIO","ESP32-P4","ESP32-P4 board support","gen-bmgr-config","GT911 touch","Guition JC1060P470","JC-ESP32P4-M3-DEV","JD9165 driver","JD9165 init sequence","MIPI-DSI ESP32-P4","setup_device.c"],"articleSection":["Hardware","Large Language Models","News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/","url":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/","name":"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470 - Exploring the Future: Inside the AI Box","isPartOf":{"@id":"https:\/\/ai-box.eu\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#primaryimage"},"image":{"@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#primaryimage"},"thumbnailUrl":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","datePublished":"2026-05-16T11:18:31+00:00","dateModified":"2026-05-16T19:51:54+00:00","author":{"@id":"https:\/\/ai-box.eu\/en\/#\/schema\/person\/cc91d08618b3feeef6926591b465eab1"},"description":"ESP-Claw board adaptation from scratch: how I added the Guition JC1060P470 with YAML, JD9165 init, and a key GitHub discovery that saved my project.","breadcrumb":{"@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#primaryimage","url":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","contentUrl":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","width":1400,"height":1054,"caption":"ESP-CLAW board adaption"},{"@type":"BreadcrumbList","@id":"https:\/\/ai-box.eu\/en\/news\/ein-neues-board-zu-esp-claw-hinzufuegen-meine-board-adaption-fuer-das-guition-jc1060p470\/2195\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/ai-box.eu\/en\/"},{"@type":"ListItem","position":2,"name":"Adding a new board to ESP-Claw: Board adaptation for the Guition JC1060P470"}]},{"@type":"WebSite","@id":"https:\/\/ai-box.eu\/en\/#website","url":"https:\/\/ai-box.eu\/en\/","name":"Exploring the Future: Inside the AI Box","description":"Inside the AI Box, we share our experiences and discoveries in the world of artificial intelligence.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ai-box.eu\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/ai-box.eu\/en\/#\/schema\/person\/cc91d08618b3feeef6926591b465eab1","name":"Maker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e96b93fc3c7e50c1f21c5c6b1f146dc4867936141360830b328947b32cacf93a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e96b93fc3c7e50c1f21c5c6b1f146dc4867936141360830b328947b32cacf93a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e96b93fc3c7e50c1f21c5c6b1f146dc4867936141360830b328947b32cacf93a?s=96&d=mm&r=g","caption":"Maker"},"description":"I live in Bavaria near Munich. In my head I always have many topics and try out especially in the field of Internet new media much in my spare time. I write on the blog because it makes me fun to report about the things that inspire me. I am happy about every comment, about suggestion and very about questions.","sameAs":["https:\/\/ai-box.eu"],"url":"https:\/\/ai-box.eu\/en\/author\/ingmars\/"}]}},"_links":{"self":[{"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/posts\/2195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/comments?post=2195"}],"version-history":[{"count":3,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/posts\/2195\/revisions"}],"predecessor-version":[{"id":2286,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/posts\/2195\/revisions\/2286"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/media\/2274"}],"wp:attachment":[{"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/media?parent=2195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/categories?post=2195"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/tags?post=2195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}