Restoring Grove Vision AI V2 t Factory Settings - Prevents SenseCraft Pretrained model Upload

SenseCraft Web toolkit connects to Grove Vision AI V2, but fails to upload any pretrained model after attempting to restore the Grove Vision AI V2 to factory settings per the Wiki instructions to restore factory settings using an attached XIAO-ESP32C3 and the Arduino Example program of

Seeed_Arduino_SSCMA > we2_iic_bootloader_recover

(Grove Vision AI Module V2 | Seeed Studio Wiki)

Connecting to PUTTY terminal provides the following:

1st BL Modem Build DATE=Nov 30 2023, 0x0002000b

Please input any key to enter X-Modem mode in 100 ms

waiting input key…

slot flash_offset 0x00000000

New MemDesp himax_sec_SB_image_process PASS

set_memory_s_ns

bl_status = 0x800000, HX_DSP_FLAG 1

bl_status = 0x800000

jump_addr=0x10000000

Compiler Version: ARM GNU, 13.2.1 20231009

Hello World!

[TEST COMPLETE]________________________________________________

Hi there,

So , not sure if you know but the SCCMA was recently updated , so you may need to roll back to that version to get it to Go :+1:
I do believe it matters for a factory restore. YMMV :grin:

HTH
GL :slight_smile: PJ :v:

@PJ_Glasso Thanks for the prompt reply. How do I replace the simply “Hello World!” application from restoring the boot loader, with the newest (or most appropriate) version of SSCMA-Micro that is to enable the Grove Vision AI V2 to work with the SenseCraft Web tool for uploading pretrained models? The SSCMA-Micro GitHub Readme does not seem to provide instructions.

SSCMA-Micro/README.md at main · Seeed-Studio/SSCMA-Micro

Hi there,

That was a good question , I had forgot had to go ask… :grin:
there is ZERO how to Flashing instructions so, feeling around in the dark there but luckily we have some tools.
you have it this way :

  1. Replace the default “Hello World” app (from restoring the bootloader)
  2. Flash the latest working SSCMA-Micro firmware that enables use with Seeed’s SenseCraft Web tool (model uploader)
  3. Understand how to use the SSCMA-Micro GitHub repo properly — which lacks clear flashing instructions.

It’s confusing various parts together is what makes it work ,so I had to do it backwards to re-understand it better and It has changed since the launch

Step 1: Understand What SSCMA-Micro Is

SSCMA-Micro is not just a sketch — it’s a complete firmware build (based on TFLite Micro), and you don’t upload it through Arduino or PlatformIO. Instead, Seeed provides a precompiled .uf2 file for Grove Vision AI V2.

That .uf2 acts like firmware to:

  • Enable the USB serial debug
  • Enable communication with SenseCraft Web (via USB CDC)
  • Run inference models
  • Accept uploads of .tflite models from the web tool

Step 2: Flash SSCMA-Micro UF2 Firmware

Instructions:

  1. Put the Grove Vision AI V2 into bootloader mode:
  • Press and hold BOOT, then tap RESET, then release BOOT
  • The device should mount as a USB drive (e.g., GROVEAI)
  1. Download the prebuilt .uf2 firmware from Seeed’s GitHub:
  1. Drag and drop the .uf2 file onto the mounted USB drive
  2. The board will reboot and begin running the SSCMA-Micro firmware, which listens for model uploads over USB.

Step 3: Test with SenseCraft Web

  1. Open: https://sensecraft.seeed.cc/
  2. Connect your Grove Vision AI V2
  3. Upload a .tflite model (Seeed provides examples)
  4. The board should now start running the new model

Ignore Arduino IDE for This Use Case

Once SSCMA-Micro is flashed, you no longer need the Arduino IDE — unless you plan to replace the firmware. Uploading a sketch from Arduino will overwrite SSCMA-Micro, which disables SenseCraft model upload.

Replacing “Hello World!” UF2 with SSCMA‑Micro firmware

You want to replace the simple “Hello World!” bootloader with the newest SSCMA‑Micro that supports Grove Vision AI V2.

HTH
GL :slight_smile: PJ :v:

@PJ_Glasso I tried your reply “Step 2: Flash SSCMA-Micro UF2 Firmware Instructions” with the following results: 1) Putting the Grove Vision AI V2 in bootloader mode (whether by holding BOOT and pressing/releasing RESET, or holding BOOT while powering on, or by double pressing BOOT) does not mount a USB drive (using Windows 11), but still shows the Grove Vision AI V2 connected as a COM port. 2) your link does not point to any precompiled .uf2 file. Instead it has “There aren’t any releases here”.
Can you provide a corrected link to a precompiled .UF2 file to restore my new Grove Vision AI V2 for use with the SenseCraft Web Tool? Also, an alternative method to flash or upload it to the Grove Vision AI V2 via a COM port? THANKS!

Releases Seeed-Studio/SSCMA-MIcro in GitHub

Did you find a solution? Did you find any .uf2 file?
My Grove vision AI seems completely bricked after trying to flash firmware. DFU mode seems to not work either.
I have read too many non-working instructions by now.

Hi there,

I was able to open a new unit and follow each step in this video, Everything Worked!.
https://youtu.be/avClSk_wFnk?si=dIjcUM8cwRnZxq9I

The first time I missed the Driver an Nothing Worked appeared to be bricked. It wasn’t, Start over and follow the same steps as the Author be sure to download the ZIP of the SCCM lib update, also don’t forget the .JSON lib too :v:

HTH
GL :slight_smile: PJ :v:

Where does it fail for you?, if it get’s stuck just refresh the page… it will recover. :+1:

Worked the first time out of the box. if you don’t get the preliminary pop-up for the port the device is connected to or you don’t here the Windows New Device found Gong" then stop and go back do not move forward or you may brick your device. at which point you will need to use the unbrick procedure on the wiki. YMMV :crossed_fingers: I can verify the steps work when followed. :+1:

Hi there,

So , I was able to train the on/off or power on presents on the dev board pics, took less than 5 minutes. (I could get better inference numbers) you see in the class set there contains an "off " picture(bad) confusses model and lowers results.

(power off) Class2 Higher

(power on) Class1 Higher

HTH
GL :slight_smile: PJ :v:

@PJ_Glasso @mortenp I too am able to load and operate pre-trained SenseCraft models on a newly opened Grove Vision AI V2. That is not the issue I am having. The issue is on a separate Grove Vision AI V2 unit that needs to be restored to factory settings (e.g. after using with Edge Impulse which replaces the Seeed factory firmware with their own version). Please see my entry above of Jun 30 that explains the steps taken and result. I suspect the issue is the Seeed Wiki instructions to restore SSCMA-Micro firmware on the Grove Vision AI V2 (which is a separate program designed to communicate with the SSCMA Arduino library for the XIAO as well as the SenseCraft Vision Workspace). Per the responses on PUTTY I provided above after following the Wiki restore steps, it seems like an old version of firmware from Nov 30, 2023 and a simple “HELLO WORLD” application are installed on the Grove Vision AI V2). After this attempt to restore the Grove Vision AI V2 firmware, the SenseCraft Vision Workspace indicates it has successfully connected to the Grove Vision AI V2, but the Vision Workspace does not show the Device ID, name, nor Device Version nor show a device update button, so it seems incompatible with the restored SSCMA-Micro firmware? In addition, attempting to load any pretrained model to the Grove Vision AI V2, just shows “Loading…” but never uploads and completes. Therefore, it will not allow a newer/current version of the SSCMA-MICRO firmware to be installed in the Grove Vision AI V2 unit along with the pretrained model. So in summary, the issue is being able to restore the Grove Vision AI V2 to the (current level) of factory restoration of firmware (SSCMA-Micro + ??) for use with the SenseCraft pretrained models via the Vision Workspace. I hope this issue is now clear but please let me know what additional troubleshooting, or results I can provide. Thx!

Hi there,

Ok, So I’m up to speed now. So Did you try refreshing the page after it says “loading”
It has the original flash restored to the grove_VI2 but it’s not completing.

This is the weird part for me ? Something is definitely sideways then.
Let me try and break mwine , I have two. :grin:

the only time it got stuck , I refreshed the page after getting tired of waiting… and the thing came back working in the preview window, and I was able to deploy it then, and it does work…Hmmm?
Do you get the popup for it to connect ? in between steps?

LMK,

HTH
Gl :slight_smile: PJ :v:

@PJ_Glasso I appreciate you working thru this issue with me! refreshing the Vision Workspace page (I’m using Chrome Browser on a Windows 11 PC), goes back to the pop up of “Sure to deploy this model?” and I select “Confirm” again. I reselect the device on the popup and it indicates “connecting” for a few seconds, the gets stuck again at “Loading…”. Again, while the Vision Workspace indicates it is connected, under DEVICE there is nothing listed (i.e. device ID, name, or version as is listed with a newly opened device). I’ve tried many refreshes with the same results.

Hi there,

Ok, no worries, we’ll figure it out.
Must have some corruption somewhere?

So if you press the reset button on the GV2 does it disconnect or reset while the port is connected if pressed ?
I may go load a Edge setup on one and try to get back to Senscraft. see if I can duplicate it. Either way a fresh Flash will be needed i’m sure.
The absence of the Info is a BIG red ARROW…:grin:

I assume you used the Xiao and Arduino to restore it? that method.

HTH
GL :slight_smile: PJ :v:

I saw the newest Tech from Nordic “nuclio” pretty wild stuff from them, and they are an Edge partner :stuck_out_tongue_closed_eyes: Edge needs work IMO. I’m glad there is competition in the space. :+1:

leaning towards program is ok , but bootloader must be nurfed?

@PJ_Glasso In the Vision Workspace, pressing the reset button on the GV2 does not indicate a disconnect. Unplugging the USB from the GV2 does cause a disconnect. Yes I used a XIAO ESP32C3 and Arduino for the attempted restore.

1 Like

Hi there,

Ok, managed to get the restore going, What a PITA for the Edge impulse model setup, but it did work, I took 30 pics on 1 class and 30 on the other class2 then 30 on unkown… takes way longer though than Sensecraft. Also I see why now, I was AFU’d :stuck_out_tongue_closed_eyes: the older version had a Uf2 restore file.
This new one is different. NO UF2 I would bet though you could do a uf2 if it was in the bootloader I don’t believe it is in this one…

and NOW after the return to factory bootloader… here is what worked.

So mount up a C3 is what I used, but an S3 will work also.

Disconnect the camera.

make sure you have the latest version of the "seeed Arduino SSCMA " 1.03 library installed,
It wouldn’t run with the current BSP either , go figure :face_with_hand_over_mouth: , I had a hunch it wouldn’t. I used 3.1.0
Thanks Espressif :fu:
So load up the sketch from the examples >Seeed Arduino SCCMA “we2_iic_bootloader”
set the pins for the I2C for the MCU

// Please check the I2C pins of your board, -1 for default I2C pins
#define I2C_SDA_PIN D4
#define I2C_SCL_PIN D5

they -1 didn’t work for me, I set them to be sure… :+1:

I put the C3 in Bootloader mode, and hit Upload

here is compiler output

FQBN: esp32:esp32:XIAO_ESP32C3
Using board 'XIAO_ESP32C3' from platform in folder: C:\Users\Dude\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.0
Using core 'esp32' from platform in folder: C:\Users\Dude\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.0
EDIT for Brevity>>>>>
C:\\Users\\Dude\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-rv32\\2405/bin/riscv32-esp-elf-size" -A "C:\\Users\\Dude\\AppData\\Local\\arduino\\sketches\\1D3E20AE83DB7575B388FF445489388D/we2_iic_bootloader_recover.ino.elf"
Sketch uses 525112 bytes (40%) of program storage space. Maximum is 1310720 bytes.
Global variables use 12012 bytes (3%) of dynamic memory, leaving 315668 bytes for local variables. Maximum is 327680 bytes.
"C:\Users\Dude\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.9.dev3/esptool.exe" --chip esp32c3 --port "COM16" --baud 921600  --before default_reset --after hard_reset write_flash  -z --flash_mode keep --flash_freq keep --flash_size keep 0x0 "C:\Users\Dude\AppData\Local\arduino\sketches\1D3E20AE83DB7575B388FF445489388D/we2_iic_bootloader_recover.ino.bootloader.bin" 0x8000 "C:\Users\Dude\AppData\Local\arduino\sketches\1D3E20AE83DB7575B388FF445489388D/we2_iic_bootloader_recover.ino.partitions.bin" 0xe000 "C:\Users\Dude\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.0/tools/partitions/boot_app0.bin" 0x10000 "C:\Users\Dude\AppData\Local\arduino\sketches\1D3E20AE83DB7575B388FF445489388D/we2_iic_bootloader_recover.ino.bin" 
esptool.py v4.8.1
Serial port COM16
Connecting...
Chip is ESP32-C3 (QFN32) (revision v0.3)
Features: WiFi, BLE, Embedded Flash 4MB (XMC)
Crystal is 40MHz
MAC: a0:76:4e:3f:a3:88
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00004fff..
...Yada, yada, yada...
Writing at 0x000900ec... (100 %)
Wrote 538384 bytes (303331 compressed) at 0x00010000 in 4.2 seconds (effective 1023.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting with RTC WDT...

now the fun it’s a equivalent to the "Secret handshake " because I couldn’t find it listed anywhere…

Hold the reset button on the GVAI2 and tap the reset of the C3 (mycase)
you get this and it finds the I2C address of the GVAI2


Grove Vision AI (WE2) I2C Bootloader Recovery Tool
Built on Jul  5 2025 21:35:40

Probing Grove Vision AI (WE2) on I2C bus...
Cannot detect target device, please check the I2C wire or power supply

(I let go of the reset)

Probing Grove Vision AI (WE2) on I2C bus...
Detected target device

Press 'enter' to start recover the bootloader (or 'q' to restart)
Recovering WE2 bootloader...

But wait there’s MORE :grin:

I get some Error after pressing enter and it does absoulutly nothing…
the fails with a PPStat -1 error. Back to the beginning.

Probing Grove Vision AI (WE2) on I2C bus...
Detected target device

Press 'enter' to start recover the bootloader (or 'q' to restart)
Recovering WE2 bootloader...
Progress: [                                                                ] - 0.00%

nope stays there …for ever

But then … press the Boot button and the whole thing does a dance across the screen… C’mon man. :face_with_hand_over_mouth:

Probing Grove Vision AI (WE2) on I2C bus...
Detected target device

Press 'enter' to start recover the bootloader (or 'q' to restart)
Recovering WE2 bootloader...

Progress: [                                                                ] - 0.00%

Progress: [                                                                ] - 0.86%

Progress: [#                                                               ] - 1.72%

Progress: [#                                                               ] - 2.59%

Progress: [##                                                              ] - 3.45%

Progress: [##                                                              ] - 4.31%

Progress: [###                                                             ] - 5.17%

Progress: [###                                                             ] - 6.03%

Progress: [####                                                            ] - 6.90%

Progress: [####                                                            ] - 7.76%

Progress: [#####                                                           ] - 8.62%

Progress: [######                                                          ] - 9.48%

Progress: [######                                                          ] - 10.34%

Progress: [#######                                                         ] - 11.21%

Progress: [#######                                                         ] - 12.07%

Progress: [########                                                        ] - 12.93%

Progress: [########                                                        ] - 13.79%

Progress: [#########                                                       ] - 14.66%

Progress: [#########                                                       ] - 15.52%

Progress: [##########                                                      ] - 16.38%

Progress: [###########                                                     ] - 17.24%

Progress: [###########                                                     ] - 18.10%

Progress: [############                                                    ] - 18.97%

Progress: [############                                                    ] - 19.83%

Progress: [#############                                                   ] - 20.69%

Progress: [#############                                                   ] - 21.55%

Progress: [##############                                                  ] - 22.41%

Progress: [##############                                                  ] - 23.28%

Progress: [###############                                                 ] - 24.14%

Progress: [################                                                ] - 25.00%

Progress: [################                                                ] - 25.86%

Progress: [#################                                               ] - 26.72%

Progress: [#################                                               ] - 27.59%

Progress: [##################                                              ] - 28.45%

Progress: [##################                                              ] - 29.31%
Progress: [##################                                              ] - 29.31%

Progress: [###################                                             ] - 30.17%

Progress: [###################                                             ] - 31.03%

Progress: [####################                                            ] - 31.90%

Progress: [####################                                            ] - 32.76%

Progress: [#####################                                           ] - 33.62%

Progress: [######################                                          ] - 34.48%

Progress: [######################                                          ] - 35.34%

Progress: [#######################                                         ] - 36.21%

Progress: [#######################                                         ] - 37.07%

Progress: [########################                                        ] - 37.93%

Progress: [########################                                        ] - 38.79%

Progress: [#########################                                       ] - 39.66%

Progress: [#########################                                       ] - 40.52%

Progress: [##########################                                      ] - 41.38%

Progress: [###########################                                     ] - 42.24%

Progress: [###########################                                     ] - 43.10%

Progress: [############################                                    ] - 43.97%

Progress: [############################                                    ] - 44.83%

Progress: [#############################                                   ] - 45.69%

Progress: [#############################                                   ] - 46.55%

Progress: [##############################                                  ] - 47.41%

Progress: [##############################                                  ] - 48.28%

Progress: [###############################                                 ] - 49.14%

Progress: [################################                                ] - 50.00%

Progress: [################################                                ] - 50.86%

Progress: [#################################                               ] - 51.72%

Progress: [#################################                               ] - 52.59%

Progress: [##################################                              ] - 53.45%

Progress: [##################################                              ] - 54.31%

Progress: [###################################                             ] - 55.17%

Progress: [###################################                             ] - 56.03%

Progress: [####################################                            ] - 56.90%

Progress: [####################################                            ] - 57.76%

Progress: [#####################################                           ] - 58.62%

Progress: [######################################                          ] - 59.48%

Progress: [######################################                          ] - 60.34%

Progress: [#######################################                         ] - 61.21%

Progress: [#######################################                         ] - 62.07%

Progress: [########################################                        ] - 62.93%

Progress: [########################################                        ] - 63.79%
Progress: [#########################################                       ] - 64.66%

Progress: [#########################################                       ] - 65.52%

Progress: [##########################################                      ] - 66.38%

Progress: [###########################################                     ] - 67.24%

Progress: [###########################################                     ] - 68.10%

Progress: [############################################                    ] - 68.97%

Progress: [############################################                    ] - 69.83%

Progress: [#############################################                   ] - 70.69%

Progress: [#############################################                   ] - 71.55%

Progress: [##############################################                  ] - 72.41%

Progress: [##############################################                  ] - 73.28%

Progress: [###############################################                 ] - 74.14%

Progress: [################################################                ] - 75.00%

Progress: [################################################                ] - 75.86%

Progress: [#################################################               ] - 76.72%

Progress: [#################################################               ] - 77.59%

Progress: [##################################################              ] - 78.45%

Progress: [##################################################              ] - 79.31%

Progress: [###################################################             ] - 80.17%

Progress: [###################################################             ] - 81.03%

Progress: [####################################################            ] - 81.90%

Progress: [####################################################            ] - 82.76%

Progress: [#####################################################           ] - 83.62%

Progress: [######################################################          ] - 84.48%

Progress: [######################################################          ] - 85.34%

Progress: [#######################################################         ] - 86.21%

Progress: [#######################################################         ] - 87.07%

Progress: [########################################################        ] - 87.93%

Progress: [########################################################        ] - 88.79%

Progress: [#########################################################       ] - 89.66%

Progress: [#########################################################       ] - 90.52%

Progress: [##########################################################      ] - 91.38%

Progress: [###########################################################     ] - 92.24%

Progress: [###########################################################     ] - 93.10%

Progress: [############################################################    ] - 93.97%

Progress: [############################################################    ] - 94.83%
Progress: [#############################################################   ] - 95.69%

Progress: [#############################################################   ] - 96.55%

Progress: [##############################################################  ] - 97.41%

Progress: [##############################################################  ] - 98.28%

Progress: [############################################################### ] - 99.14%

Progress: [################################################################] - 100.00%

Progress: [################################################################] - 100.00%
Done, the bootloader has been recovered successfully!

Probing Grove Vision AI (WE2) on I2C bus...
Detected target device

Press 'enter' to start recover the bootloader (or 'q' to restart)

Done, the bootloader has been recovered successfully!

message,and Now on Senecraft…I get what you have a blank Device screen , VERIFYING THE ISSUE :grin:

HTH
GL :slight_smile: PJ :v:

STAY TUNED , I’m gonna see if the firmware file in the bl; fix is current I bet it’s not , wouldn’t surprise me if that is what is nedded. Hang tight,
I had 3 as it turns out I won one on the first or second LIVE stream.:+1:
new one needless to say connects up and populates AOK. :sweat_smile:

Tried it this way also…makes it through the process, I’ll check the sensecraft end …

HTH
GL :slight_smile: PJ :v:

Hi there,

So, I Got it…wacky chit but it restored and is working again and I was able to update it after reconnecting to Senscraft AI site.

same stuff applies,
go here :crossed_fingers:
https://seeed-studio.github.io/SenseCraft-Web-Toolkit/#/setup/process

connect and upload a face detection model, after it will al be restored , then go back to sensecraft AI and connect you’ll see it’s restored.

Success…

Do US a solid and mark it as the Solution. :+1:

HTH
GL :slight_smile: PJ :v:

LMK if you get stuck! :grin:

1 Like

Hi there,

and Welcome here…

Where are you stuck at? Turns out there is no UF2 file for restore for the GVAI2 only the V1 version had one for it.
The GVAI2 you load the Examples restore Sketch on a mounted Xiao C3 on the Boards mcu header pins.
Compile and upload the sketch, You press reset on the c3 while pressing the boot button on the GVAI2 and you get the prompt to Hit enter or q to restart.
Hit Enter and tap the boot button on the GVAI2 it will restore the bootloader and bob’s your uncle, after you connect to the tools web site SenseCraft AI
Connect there and Upload the face detector, when it completes ,
disconnect and go back to Senscraft AI site and go again.
connect will show it’s back.


see the red arrows, previously they are blank :+1:

HTH
GL :slight_smile: PJ :v:

Working again…

1 Like

The message jump_addr=0x10000000 and Hello World! suggests that the default firmware (likely a placeholder) is running. If no application is present or the memory mapping is off, model upload will fail.

Try re-uploading the base firmware (we2_model_upload_tool or we2_dfu_update_tool) from Seeed Studio before using SenseCraft again.

@PJ_Glasso SUCCESS! This is quite the torturous path to recover the GV2 and I am both impressed and thankful that you were able to sort it all out! The secret handshake and the sequence of RESET and BOOT presses on the GV2 and XIAO, the use of the older BSP version, disconnect of camera, etc. definitely warrant updating the Seeed docs for the GV2 and highlighting the expected outcomes of each step. My frustration can now end and I can proceed with confidence in developing our application and evaluation of SenseCraft versus Edge Impulse. My Results in the SenseCraft Web Tool kit…Device ID
2cc5f12c
Device Name
Grove Vision AI (V2)
Device Version
2024.08.19
Model Name
Face Detection
Model Version
1.0.0

FYI, I did use the SenseCraft Vision Workspace then to update the GV2 firmware the version 2025.01.02.

1 Like