{"id":2331,"date":"2026-05-22T04:00:26","date_gmt":"2026-05-22T04:00:26","guid":{"rendered":"https:\/\/ai-box.eu\/?p=2331"},"modified":"2026-05-22T04:00:00","modified_gmt":"2026-05-22T04:00:00","slug":"keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470","status":"publish","type":"post","link":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/","title":{"rendered":"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470"},"content":{"rendered":"<p>After I showed you in <a href=\"https:\/\/ai-box.eu\/en\/?p=2213\">Part 4 of my ESP-Claw series<\/a> how I got my ESP-Claw agent talking to my local Ollama server for the first time, things settled down for a while. My Guition JC1060P470 is running, talking to Qwen 3.6 35B on my RTX A6000 GPUs, and doing exactly what it should.<\/p>\n<p>But ESP-Claw is a <strong>very active open-source project<\/strong>. Espressif commits new features, bug fixes, and capabilities to the repository almost every day. And that raises a very practical question for me as a maker: <strong>How do I keep my installation up to date without losing the board adaptation for the JC1060P470 that I worked so hard on?<\/strong><\/p>\n<p>This update, rebuild, and re-flash workflow is exactly what this post is about. It sounds dry at first, but for me it has become a real maker skill, because I obviously don&#8217;t want to lose my configurations the first time I try to update ESP-Claw.<\/p>\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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#What_remains_from_the_setup_in_Parts_1_through_4\" >What remains from the setup in Parts 1 through 4?<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_1_Back_up_your_own_board_adaptation_first\" >Phase 1: Back up your own board adaptation first<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_2_Check_ESP-IDF_%E2%80%94_but_only_update_it_if_necessary\" >Phase 2: Check ESP-IDF \u2014 but only update it if necessary<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_3_Update_the_ESP-Claw_repository\" >Phase 3: Update the ESP-Claw repository<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_4_Bring_back_the_stash_or_restore_the_backup\" >Phase 4: Bring back the stash or restore the backup<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_5_Dont_forget_tooling_updates\" >Phase 5: Don&#8217;t forget tooling updates<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_6_Re-resolve_components_and_re-run_gen-bmgr-config\" >Phase 6: Re-resolve components and re-run gen-bmgr-config<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_7_Lock_in_the_chip_revision_permanently\" >Phase 7: Lock in the chip revision permanently<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_8_The_new_build\" >Phase 8: The new build<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_9_What_survives_the_flash_and_what_doesnt\" >Phase 9: What survives the flash and what doesn&#8217;t?<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_10_Re-flash_and_monitor\" >Phase 10: Re-flash and monitor<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#Phase_11_Function_check_and_discovering_new_capabilities\" >Phase 11: Function check and discovering new capabilities<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#My_personal_conclusion_on_Part_5\" >My personal conclusion on Part 5<\/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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#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_remains_from_the_setup_in_Parts_1_through_4\"><\/span>What remains from the setup in Parts 1 through 4?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before I get started, here&#8217;s a quick overview of my setup on my machine to get you back up to speed:<\/p>\n<ul>\n<li><strong>ESP-IDF v5.5.4<\/strong> installed at <code>D:\\Programme\\Espressif554\\<\/code><\/li>\n<li><strong>ESP-Claw repository<\/strong> cloned to <code>D:\\esp32-claw\\esp-claw\\<\/code><\/li>\n<li>My own <strong>board adaptation<\/strong> under <code>application\\edge_agent\\boards\\guition\\jc1060p470_m3_dev\\<\/code><\/li>\n<li><strong>menuconfig<\/strong> adjustment for ESP32-P4 chip revision &lt;3.0<\/li>\n<li>Stored on the board: <strong>WiFi credentials, LLM configuration for Ollama, memory files<\/strong><\/li>\n<\/ul>\n<p>These four items will be my common thread through the next phases, because each of them I can either keep or accidentally overwrite during the update.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_1_Back_up_your_own_board_adaptation_first\"><\/span>Phase 1: Back up your own board adaptation first<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>My <code>boards\/guition\/jc1060p470_m3_dev\/<\/code> files are probably the most valuable part of the whole setup. The YAML files, the JD9165 init sequence, the sdkconfig defaults \u2014 all of that was several evenings of work. If I lose them, I&#8217;m not starting &#8220;a little&#8221; from scratch, but actually completely. I would have to work everything out again from the beginning to figure out how the configuration came together.<\/p>\n<p>That&#8217;s why my first thought before every update is: <strong>make a backup<\/strong>.<\/p>\n<p>For most makers, the most pragmatic approach is the right one: save the board information as a *.ZIP file.<\/p>\n<p>I created a <code>backups<\/code> folder inside <code>D:\\esp32-claw\\<\/code> where I want to store the ZIP file. Then I proceeded as follows.<\/p>\n<p><strong>Command:<\/strong> <code>cd D:\\esp32-claw\\esp-claw\\application\\edge_agent<\/code><\/p>\n<p><strong>Command:<\/strong> <code>Compress-Archive -Path boards\\guition -DestinationPath D:\\esp32-claw\\backups\\boards_guition_$(Get-Date -Format yyyyMMdd).zip<\/code><\/p>\n<p>This gives me a timestamped ZIP file, and I can restore the state from before the update at any time.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_2_Check_ESP-IDF_%E2%80%94_but_only_update_it_if_necessary\"><\/span>Phase 2: Check ESP-IDF \u2014 but only update it if necessary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>My second reflex used to be to also bring ESP-IDF up to date during every update. <strong>I now advise against that.<\/strong> A new ESP-IDF version can bring its own incompatibilities, and I don&#8217;t want to change two variables at the same time during an update.<\/p>\n<p>My approach today:<\/p>\n<ol>\n<li>First just update ESP-Claw and see whether the current ESP-IDF version (v5.5.4 in my case) is still sufficient<\/li>\n<li>Only if the build fails with a clear error message like &#8220;requires ESP-IDF &gt;= v5.x.x&#8221;, install a newer ESP-IDF version afterwards<\/li>\n<li>The new ESP-IDF version is installed <strong>in parallel<\/strong>, not over the old one<\/li>\n<\/ol>\n<p>Just like I described in <a href=\"https:\/\/ai-box.eu\/en\/news\/esp-idf-v5-5-4-einrichten-und-esp-claw-bauen-schritt-fuer-schritt\/2190\/\">Part 2 of the series<\/a> for v5.5.4.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_3_Update_the_ESP-Claw_repository\"><\/span>Phase 3: Update the ESP-Claw repository<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now we get to the actual update. Important: <strong>Always work in the &#8220;ESP-IDF 5.5 PowerShell&#8221;<\/strong>, not in a regular Windows PowerShell.<\/p>\n<p>First I check what state my local repo is in:<\/p>\n<p><strong>Command:<\/strong> <code>cd D:\\esp32-claw\\esp-claw<\/code><\/p>\n<p><strong>Command:<\/strong> <code>git status<\/code><\/p>\n<p>If you proceed the way I described here, you&#8217;ll probably see your changes listed under &#8220;Untracked files&#8221; or &#8220;Modified files&#8221;. I want to take those out of the way first so that <code>git pull<\/code> runs cleanly:<\/p>\n<p><strong>Command:<\/strong> <code>git stash --include-untracked<\/code><\/p>\n<p><code>git stash<\/code> puts my local changes aside like a drawer. They&#8217;re not gone \u2014 I can bring them back later with <code>git stash pop<\/code>.<\/p>\n<p>Now let&#8217;s see what&#8217;s new in ESP-Claw:<\/p>\n<p><strong>Command:<\/strong> <code>git fetch<\/code><\/p>\n<p><strong>Command:<\/strong> <code>git log HEAD..origin\/master --oneline<\/code><\/p>\n<p>This gives me a list of all the commits that have been added to the <code>master<\/code> branch since my last state. For me, that was <strong>47 new commits in just a few days<\/strong> on my first update. That&#8217;s a decent amount. If after running that command you end up in a pager with <code>[END]<\/code> at the bottom of the screen, just press <strong><code>q<\/code><\/strong> and you&#8217;re back in PowerShell.<\/p>\n<p>Now the actual pull:<\/p>\n<p><strong>Command:<\/strong> <code>git pull --rebase<\/code><\/p>\n<p>I use the <code>--rebase<\/code> flag so that my own commits are <strong>cleanly placed on top of the new state<\/strong> instead of creating an ugly merge commit.<\/p>\n<p><strong>Very important afterwards:<\/strong> Update the submodules too, otherwise you&#8217;ll end up with a mix of new main code and old submodules.<\/p>\n<p><strong>Command:<\/strong> <code>git submodule update --init --recursive<\/code><\/p>\n<p>For me, this step took several seconds because, among others, ESP-Hosted and LVGL brought fresh versions.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_4_Bring_back_the_stash_or_restore_the_backup\"><\/span>Phase 4: Bring back the stash or restore the backup<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Depending on the variant from Phase 1, the next step looks different:<\/p>\n<p><strong>The ZIP backup:<\/strong><\/p>\n<p><strong>Command:<\/strong> <code>Expand-Archive -Path D:\\esp32-claw\\backups\\boards_guition_&lt;date&gt;.zip -DestinationPath .\\application\\edge_agent\\boards\\ -Force<\/code><\/p>\n<p>This copies my saved board adaptation back into the right place in the updated repo.<\/p>\n<p>If there are <strong>merge conflicts<\/strong> now \u2014 that happened to me once \u2014 <code>git status<\/code> will show me the affected files. Conflicts in YAML or Kconfig files are usually harmless, because my board adaptation doesn&#8217;t change any file that Espressif itself maintains. For conflicts in <code>setup_device.c<\/code>, however, I would look more closely and check the history of the original with <code>git log<\/code>.<\/p>\n<p><strong>A practical tip from me:<\/strong> Make sure that after restoring there are <strong>no old backup files<\/strong> with the <code>.c<\/code> extension left in your board directory (for example <code>setup_device_DISPLAY_BACKUP.c<\/code>). When building, ESP-IDF automatically pulls every <code>.c<\/code> file from the boards folder into the compilation, and a backup file like that will crash the build with unknown types and unused constants. Just rename such files to <code>.c.bak<\/code> or remove them from the boards directory entirely.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_5_Dont_forget_tooling_updates\"><\/span>Phase 5: Don&#8217;t forget tooling updates<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>ESP-Claw ships with the Python tool <code>esp-bmgr-assist<\/code>, which generates C code from my YAML files. This tool is developed in parallel with the repo, and if I don&#8217;t update it along with everything else, my <code>idf.py gen-bmgr-config<\/code> will run with an outdated version that might not even understand the new schema.<\/p>\n<p><strong>Command:<\/strong> <code>pip install --upgrade esp-bmgr-assist<\/code><\/p>\n<p>In my case this resulted in a jump from v0.8.1 to a newer version, and that actually fixed a build error that I otherwise wouldn&#8217;t have understood for a long time.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_6_Re-resolve_components_and_re-run_gen-bmgr-config\"><\/span>Phase 6: Re-resolve components and re-run gen-bmgr-config<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now I switch into the edge-agent directory:<\/p>\n<p><strong>Command:<\/strong> <code>cd application\\edge_agent<\/code><\/p>\n<p>With the new submodules and an updated codebase, ESP-IDF may want to re-resolve some of its <strong>managed components<\/strong>. A reconfigure triggers this cleanly:<\/p>\n<p><strong>Command:<\/strong> <code>idf.py reconfigure<\/code><\/p>\n<p>After that, I run the <strong>ESP Board Manager<\/strong> over my YAML files again. This is important because new schema versions occasionally introduce additional required fields that the build would otherwise complain about:<\/p>\n<p><strong>Command:<\/strong> <code>idf.py gen-bmgr-config -c .\/boards -b jc1060p470_m3_dev<\/code><\/p>\n<p>If at the end I see something like <code>Successfully validated 7 peripherals<\/code> and <code>Successfully validated 6 devices<\/code> again, the adaptation is compatible with the current schema. If not, I get a clear error message at this point with the line number in the respective YAML and can fix it precisely. Better now than later in the middle of the build.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_7_Lock_in_the_chip_revision_permanently\"><\/span>Phase 7: Lock in the chip revision permanently<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Here&#8217;s my most important lesson from the first update: The <strong>chip revision adjustment for my old ESP32-P4 v1.3<\/strong>, which I set via <code>menuconfig<\/code> in <a href=\"https:\/\/ai-box.eu\/en\/news\/esp-idf-v5-5-4-einrichten-und-esp-claw-bauen-schritt-fuer-schritt\/2190\/\">Part 2<\/a>, is <strong>gone<\/strong> after an <code>idf.py fullclean<\/code>. The <code>sdkconfig<\/code> file is regenerated in the process, and I lose the manual adjustment with it.<\/p>\n<p>The clean solution: add the setting to my <strong><code>sdkconfig.defaults.board<\/code><\/strong>. That way it moves into version control and survives every clean build:<\/p>\n<pre><code># Chip revision range for older ESP32-P4 silicon (Guition JC1060P470 has v1.3)\r\nCONFIG_ESP32P4_REV_MIN_FULL=0\r\nCONFIG_ESP32P4_REV_MAX_FULL_NUM=199<\/code><\/pre>\n<p>I had already added these two lines at the very end of this file <code>D:\\esp32-claw\\esp-claw\\application\\edge_agent\\boards\\guition\\jc1060p470_m3_dev\\sdkconfig.defaults.board<\/code> before the update, and I can only recommend it to anyone using an older P4 board. It saves a step on every rebuild and prevents head-scratching when the firmware suddenly fails to boot.<\/p>\n<p>Anyone with a newer board featuring P4 v3.0+ (ESP32-P4 Function EV Board, M5Stack Tab5) can of course skip this step.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_8_The_new_build\"><\/span>Phase 8: The new build<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now comes the moment of truth:<\/p>\n<p><strong>Command:<\/strong> <code>idf.py build<\/code><\/p>\n<p>At this point the update ran for me in two modes:<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Build mode<\/strong><\/th>\n<th><strong>My duration<\/strong><\/th>\n<th><strong>When<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Incremental<\/td>\n<td>1\u20133 minutes<\/td>\n<td>When only a few files have changed<\/td>\n<\/tr>\n<tr>\n<td>Full rebuild<\/td>\n<td>8\u201315 minutes<\/td>\n<td>After submodule updates or <code>idf.py fullclean<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To be honest, after a larger ESP-Claw update a <strong>full rebuild<\/strong> is almost always required, because Espressif touches header files deep down and then all dependent modules have to be recompiled.<\/p>\n<p>At the end I see output like this again:<\/p>\n<p><code>edge_agent.bin binary size 0x2b0760 bytes. Smallest app partition is 0x400000 bytes. 0x14f8a0 bytes (33%) free.<\/code><\/p>\n<p>For me the firmware <strong>grew slightly<\/strong> after the update to about 2.82 MB with 33 % free space in the app partition. That&#8217;s normal because new capabilities bring additional code. As long as there&#8217;s still enough space on the app partition, everything is fine.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_9_What_survives_the_flash_and_what_doesnt\"><\/span>Phase 9: What survives the flash and what doesn&#8217;t?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before the re-flash, I want to know exactly <strong>what on the board survives my update and what doesn&#8217;t<\/strong>. And at this point I have to share an honest maker anecdote with you, because this is exactly where I fell into the trap headfirst during my first update.<\/p>\n<p>My first reflex was: &#8220;I&#8217;ll just use <code>idf.py flash<\/code>, that will do the right thing.&#8221; Wrong thinking. After the flash my provisioning AP <code>esp-claw-000000<\/code> was active again, the WLAN password was gone, the Ollama configuration was empty, and my memory files were reset to the default state. I had to go through the entire provisioning from Part 4 again and lost my trained skills.<\/p>\n<p>The reason lies in the flash command that ESP-IDF calls internally. Take a look at the line that <code>idf.py flash<\/code> actually executes:<\/p>\n<pre><code>esptool.py ... write_flash ...\r\n  0x2000   bootloader\/bootloader.bin\r\n  0x8000   partition_table\/partition-table.bin\r\n  0x10000  ota_data_initial.bin\r\n  0x20000  edge_agent.bin\r\n  0xb20000 storage.bin     \u2190 \u2190 \u2190 \u2190 \u2190 <\/code><\/pre>\n<p>The last line is the decisive point: With a normal <code>idf.py flash<\/code>, ESP-Claw writes a <strong>fresh <code>storage.bin<\/code> to the FATFS partition at 0xb20000<\/strong>, and that overwrites everything stored there. In ESP-Claw, the WiFi credentials, LLM configuration, and memory files actually live in this storage partition, not in NVS as I had originally assumed.<\/p>\n<p>This is what the partitions look like on my 16 MB flash:<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Partition<\/strong><\/th>\n<th><strong>Content<\/strong><\/th>\n<th><strong>Survives <code>flash<\/code><\/strong><\/th>\n<th><strong>Survives <code>app-flash<\/code><\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>bootloader<\/code><\/td>\n<td>Boot code<\/td>\n<td>Overwritten<\/td>\n<td>Survives<\/td>\n<\/tr>\n<tr>\n<td><code>partition-table<\/code><\/td>\n<td>Partition layout<\/td>\n<td>Overwritten<\/td>\n<td>Survives<\/td>\n<\/tr>\n<tr>\n<td><code>otadata<\/code><\/td>\n<td>Which OTA slot is active<\/td>\n<td>Reset to default<\/td>\n<td>Survives<\/td>\n<\/tr>\n<tr>\n<td><code>ota_0<\/code> \/ <code>ota_1<\/code><\/td>\n<td>The app firmware (edge_agent.bin)<\/td>\n<td>Active slot is overwritten<\/td>\n<td>Active slot is overwritten<\/td>\n<\/tr>\n<tr>\n<td><code>nvs<\/code><\/td>\n<td>Hardly used by ESP-Claw<\/td>\n<td>Survives<\/td>\n<td>Survives<\/td>\n<\/tr>\n<tr>\n<td><code>storage<\/code> (FATFS)<\/td>\n<td>WiFi, LLM config, memory, scripts, router rules<\/td>\n<td><strong>Overwritten!<\/strong><\/td>\n<td><strong>Survives!<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In plain words: A normal <code>idf.py flash<\/code> effectively returns my board to <strong>factory state<\/strong>, because the <code>storage.bin<\/code> is flashed along with everything else. That makes sense on the very first flash, but it&#8217;s a huge pitfall on every later update.<\/p>\n<p>The clean solution comes from ESP-IDF itself and is called <code>app-flash<\/code>. This command writes <strong>only the app partition<\/strong> with the new <code>edge_agent.bin<\/code> and leaves all other partitions, especially the <code>storage.bin<\/code>, untouched:<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Strategy<\/strong><\/th>\n<th><strong>Command<\/strong><\/th>\n<th><strong>When useful<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Gentle app update<\/strong><\/td>\n<td><code>idf.py -p COM7 app-flash<\/code><\/td>\n<td>Update the app, keep all settings \u2014 <strong>my default for updates<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Full flash<\/strong><\/td>\n<td><code>idf.py -p COM7 flash<\/code><\/td>\n<td>First flash on a new board or intentional factory state<\/td>\n<\/tr>\n<tr>\n<td><strong>Hard reset<\/strong><\/td>\n<td><code>idf.py -p COM7 erase_flash<\/code> followed by <code>idf.py -p COM7 flash<\/code><\/td>\n<td>For stubborn problems: board fully back to zero<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>For every subsequent update I now only use the <strong>gentle app-flash variant<\/strong>. I save the full flash for the very first setup run, and the hard reset for cases where the board simply won&#8217;t recover.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_10_Re-flash_and_monitor\"><\/span>Phase 10: Re-flash and monitor<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now I connect the board, find the right COM port (COM7 in my case), and start flashing.<\/p>\n<p>To find the right port, you can run the following command.<\/p>\n<p><strong>Command:<\/strong> <code>Get-PnpDevice -Class Ports -PresentOnly | Format-Table FriendlyName, Status<\/code><\/p>\n<p>I immediately use the mode that opens the serial monitor right after the flash, and of course <code>app-flash<\/code> instead of <code>flash<\/code>:<\/p>\n<p><strong>Command:<\/strong> <code>idf.py -p COM7 app-flash monitor<\/code><\/p>\n<p>What I want to see in the boot log is essentially the same as in <a href=\"https:\/\/ai-box.eu\/en\/?p=2213\">Part 4<\/a>:<\/p>\n<ul>\n<li><strong>PSRAM with 32 MB at 200 MHz octal mode<\/strong> detected<\/li>\n<li><strong>All peripheral blocks from my YAML initialized<\/strong><\/li>\n<li><strong>Both ES8311 codec instances<\/strong> started<\/li>\n<li><strong>ESP-Hosted host side<\/strong> starts SDIO probe<\/li>\n<li><strong>ESP32-C6 detected as slave<\/strong><\/li>\n<\/ul>\n<p>The decisive difference compared to the very first flash: <strong>This time my board connects directly to my home WLAN<\/strong>, because the WiFi credentials in the storage partition have remained untouched. The log no longer shows <code>Provisioning AP active<\/code>, but goes straight to:<\/p>\n<p><code>wifi station: connected to &lt;my_SSID&gt;, IP: 192.168.178.161<\/code><\/p>\n<p>That&#8217;s exactly the result I wanted. No re-provisioning, no captive-portal acrobatics, no fight with Android. The board reappears on the LAN with its known IP address. With <code>Ctrl + ]<\/code> I can leave the monitor later and get back into PowerShell.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phase_11_Function_check_and_discovering_new_capabilities\"><\/span>Phase 11: Function check and discovering new capabilities<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Via the old LAN IP I open the ESP-Claw web UI and check three things:<\/p>\n<ol>\n<li><strong>System Settings \u2192 LLM<\/strong>: Are my Ollama settings still there? (base URL, model name, timeout)<\/li>\n<li><strong>Memory<\/strong>: Are Soul, Identity, and User Info still unchanged?<\/li>\n<li><strong>Capabilities<\/strong>: Have any <strong>new<\/strong> capabilities been added that I want to activate?<\/li>\n<\/ol>\n<p>The third point is what really makes updates exciting for me. With my last update two new capabilities were actually added that I want to look at in more depth later. They are exactly the building blocks I&#8217;ll use to connect my robot-car control.<\/p>\n<p>Finally a quick test in the <strong>web chat<\/strong>:<\/p>\n<p><code>Are you still there?<\/code><\/p>\n<p>If the answer comes back smoothly, the full chain still works after the update: Browser \u2192 ESP-Claw \u2192 Ollama \u2192 A6000 \u2192 Qwen 3.6 \u2192 Answer.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"My_personal_conclusion_on_Part_5\"><\/span>My personal conclusion on Part 5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>An update workflow sounds like bookkeeping, but for me it has become an <strong>important maker discipline<\/strong>. I take three lessons from the first updates:<\/p>\n<ol>\n<li><strong>Back up your own board adaptation.<\/strong> A simple ZIP backup before every <code>git pull<\/code> is the easiest and safest way to make sure nothing gets lost.<\/li>\n<li><strong><code>sdkconfig.defaults.board<\/code>.<\/strong> Everything that would otherwise need to be set via <code>menuconfig<\/code> belongs in this file \u2014 otherwise it won&#8217;t survive a clean build and I&#8217;d be starting over every time.<\/li>\n<li><strong><code>idf.py app-flash<\/code> instead of <code>idf.py flash<\/code> on updates.<\/strong> That&#8217;s the crucial difference between a gentle firmware update and an accidental factory reset that wipes WiFi, LLM configuration, and memory files.<\/li>\n<\/ol>\n<p>In the end, sovereign AI also means: <strong>being able to maintain your own stack yourself<\/strong>, without depending on a foreign cloud, a foreign update system, or a foreign app store.<\/p>\n<p>In the <strong>next part<\/strong> I&#8217;ll return to the actual AI topic. I&#8217;ll dive deeper into the architecture and look at what capabilities and skills are in detail, how they differ, and how the interplay between LLM, Lua runtime, and hardware works. I need exactly that understanding before I write my own skills to control my robot car.<\/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 presentation of the vision<\/li>\n<li><strong>Part 2<\/strong>: Setting up ESP-IDF v5.5.4 and building ESP-Claw \u2014 step by step<\/li>\n<li><strong>Part 3<\/strong>: Adding a new board to ESP-Claw \u2014 my board adaptation for the Guition JC1060P470<\/li>\n<li><strong>Part 4<\/strong>: Connecting ESP-Claw to your own Ollama server \u2014 configuration and first chats<\/li>\n<li><strong>Part 5 (this post)<\/strong>: Keeping ESP-Claw up to date \u2014 update, rebuild, and re-flash on the Guition JC1060P470<\/li>\n<li><strong>Part 6<\/strong>: Understanding capabilities and skills \u2014 the architecture of an ESP-Claw agent<\/li>\n<li><strong>Part 7<\/strong>: Writing your own skill \u2014 remotely controlling the robot car or explaining the dishwasher<\/li>\n<li><strong>Part 8<\/strong>: Voice in, voice out \u2014 the HMI board as a real voice assistant for the washing machine<\/li>\n<li><strong>Part 9<\/strong>: Lua scripts for behavior patterns \u2014 when the agent acts on its own<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>After I showed you in Part 4 of my ESP-Claw series how I got my ESP-Claw agent talking to my local Ollama server for the first time, things settled down for a while. My Guition JC1060P470 is running, talking to Qwen 3.6 35B on my RTX A6000 GPUs, and doing exactly what it should. But [&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,50],"tags":[1279,1289,1080,1281,1287,1282,1286,1290,1288,1280,1067,1283,1040,1284,1285,1278,1032,1277],"class_list":["post-2331","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware-en","category-large-language-models-en","category-top-story-en","tag-ai-agent-microcontroller","tag-edge-ai-esp32","tag-esp-claw-board-adaptation","tag-esp-claw-firmware-update","tag-esp-claw-git-pull","tag-esp-claw-jc1060p470","tag-esp-claw-rebuild","tag-esp-claw-sdkconfig","tag-esp-claw-storage-partition","tag-esp-claw-update","tag-esp-idf-v5-5-4","tag-esp32-p4-update","tag-guition-jc1060p470","tag-idf-py-app-flash","tag-idf-py-flash","tag-ollama-local-llm","tag-sovereign-ai","tag-update-esp-claw","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>Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470 - Exploring the Future: Inside the AI Box<\/title>\n<meta name=\"description\" content=\"How to update ESP-Claw without data loss: git pull, rebuild, and a gentle app-flash on the Guition JC1060P470 \u2014 keeping WiFi and Ollama config intact.\" \/>\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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470 - Exploring the Future: Inside the AI Box\" \/>\n<meta property=\"og:description\" content=\"How to update ESP-Claw without data loss: git pull, rebuild, and a gentle app-flash on the Guition JC1060P470 \u2014 keeping WiFi and Ollama config intact.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/\" \/>\n<meta property=\"og:site_name\" content=\"Exploring the Future: Inside the AI Box\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-22T04:00:26+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=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/\"},\"author\":{\"name\":\"Maker\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#\\\/schema\\\/person\\\/cc91d08618b3feeef6926591b465eab1\"},\"headline\":\"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470\",\"datePublished\":\"2026-05-22T04:00:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/\"},\"wordCount\":2436,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ai-box.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ESP32_CLAW_board_adaption.jpg\",\"keywords\":[\"AI agent microcontroller\",\"Edge AI ESP32\",\"ESP-Claw board adaptation\",\"ESP-Claw Firmware Update\",\"ESP-Claw git pull\",\"ESP-Claw JC1060P470\",\"ESP-Claw Rebuild\",\"ESP-Claw sdkconfig\",\"ESP-Claw Storage Partition\",\"ESP-Claw Update\",\"ESP-IDF v5.5.4\",\"ESP32-P4 Update\",\"Guition JC1060P470\",\"idf.py app-flash\",\"idf.py flash\",\"Ollama local LLM\",\"sovereign AI\",\"update ESP-Claw\"],\"articleSection\":[\"Hardware\",\"Large Language Models\",\"Top story\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/\",\"url\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/\",\"name\":\"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on 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\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ai-box.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ESP32_CLAW_board_adaption.jpg\",\"datePublished\":\"2026-05-22T04:00:26+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/#\\\/schema\\\/person\\\/cc91d08618b3feeef6926591b465eab1\"},\"description\":\"How to update ESP-Claw without data loss: git pull, rebuild, and a gentle app-flash on the Guition JC1060P470 \u2014 keeping WiFi and Ollama config intact.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#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\\\/large-language-models-en\\\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\\\/2331\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/ai-box.eu\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on 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":"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470 - Exploring the Future: Inside the AI Box","description":"How to update ESP-Claw without data loss: git pull, rebuild, and a gentle app-flash on the Guition JC1060P470 \u2014 keeping WiFi and Ollama config intact.","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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/","og_locale":"en_US","og_type":"article","og_title":"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470 - Exploring the Future: Inside the AI Box","og_description":"How to update ESP-Claw without data loss: git pull, rebuild, and a gentle app-flash on the Guition JC1060P470 \u2014 keeping WiFi and Ollama config intact.","og_url":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/","og_site_name":"Exploring the Future: Inside the AI Box","article_published_time":"2026-05-22T04:00:26+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":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#article","isPartOf":{"@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/"},"author":{"name":"Maker","@id":"https:\/\/ai-box.eu\/en\/#\/schema\/person\/cc91d08618b3feeef6926591b465eab1"},"headline":"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on the Guition JC1060P470","datePublished":"2026-05-22T04:00:26+00:00","mainEntityOfPage":{"@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/"},"wordCount":2436,"commentCount":0,"image":{"@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#primaryimage"},"thumbnailUrl":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","keywords":["AI agent microcontroller","Edge AI ESP32","ESP-Claw board adaptation","ESP-Claw Firmware Update","ESP-Claw git pull","ESP-Claw JC1060P470","ESP-Claw Rebuild","ESP-Claw sdkconfig","ESP-Claw Storage Partition","ESP-Claw Update","ESP-IDF v5.5.4","ESP32-P4 Update","Guition JC1060P470","idf.py app-flash","idf.py flash","Ollama local LLM","sovereign AI","update ESP-Claw"],"articleSection":["Hardware","Large Language Models","Top story"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/","url":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/","name":"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on 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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#primaryimage"},"image":{"@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#primaryimage"},"thumbnailUrl":"https:\/\/ai-box.eu\/wp-content\/uploads\/2026\/05\/ESP32_CLAW_board_adaption.jpg","datePublished":"2026-05-22T04:00:26+00:00","author":{"@id":"https:\/\/ai-box.eu\/en\/#\/schema\/person\/cc91d08618b3feeef6926591b465eab1"},"description":"How to update ESP-Claw without data loss: git pull, rebuild, and a gentle app-flash on the Guition JC1060P470 \u2014 keeping WiFi and Ollama config intact.","breadcrumb":{"@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ai-box.eu\/en\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#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\/large-language-models-en\/keeping-esp-claw-up-to-date-update-rebuild-and-re-flash-on-the-guition-jc1060p470\/2331\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/ai-box.eu\/en\/"},{"@type":"ListItem","position":2,"name":"Keeping ESP-Claw Up to Date \u2014 Update, Rebuild and Re-Flash on 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\/2331","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=2331"}],"version-history":[{"count":1,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/posts\/2331\/revisions"}],"predecessor-version":[{"id":2332,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/posts\/2331\/revisions\/2332"}],"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=2331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/categories?post=2331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai-box.eu\/en\/wp-json\/wp\/v2\/tags?post=2331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}