I got the SenseCap K1100 kit with the Wio Terminal and Grove Vision AI Sensor, but it seems like the vision sensor is not working. When uploading the people detection example to the wio terminal the serial monitor stays empty, and when connecting the vision sensor at SenseCAP Vision AI it says ‘result 0’ with no image. Has anyone else experienced this problem?
Please test the Grove AI sensor with the minimal ARduino setup and code given here:
Please remove any other component that you are using.
Thanks for your answer. However this is the same code I tried, switching to an other microcontroller doesn’t work as well.
Just tried adding a delay after the serial begin and apparently it’s immediately failing when done uploading. Any idea what this could be?
If you encounter the error message “Algo begin failed.” when using the demo, you should first check if the model number is wrong.
You can follow this photo or check the message from the link below to solve your question
Have you tried reset after uploading? Usually a reset will fix the problem of the serial port not printing data.
Change the link into the link below
https://vision-ai-demo.seeed.cn/
Hi, thanks for the answer!
I just checked on the link you sent me, and found out the model list is empty, which might be the reason why the camera view and the tutorial code isn’t working.
this is my INFO_UF2.TXT
TinyUF2 Bootloader v2.0.1 - bouffalolab/bl_mcu_sdk (V1.4.3-8-g8742503a) sfud (heads/master) tinyusb (heads/port-bouffalolab-bl70x)
Model: Seeed Studio Grove Vision AI
Board-ID: Grove Vision AI
Date: Apr 4 2023
When I try to paste my model (firmware.uf2) in the GROVE (E:) the storage closes, but it also doesn’t seem to add the model when I go back to https://vision-ai-demo.seeed.cn/ . I got the model from edge impulse, so I don’t know if that got anything to do with it
Can you try again to use the model we provide?
I used the person_detection_pre_17.uf2 that we provided. It works fine on the page.
Here are the steps I use to get up and running:
Part 1. Check BootLoader Version
( As of September 2023, the latest BootLoader version number should be v2.0.1 .)
Part 2. Update BootLoader
( It is recommended to check the Vision AI version number again to ensure that the latest BootLoader is being used.)
Part 3. Restore Factory Firmware
Please check the wiki for the detailed steps above. i followed the wiki step by step.
The above three parts need to be judged and executed in turn, when the above steps are executed, you can flash person_detection_pre_17.uf2 again and then you can see the image in web
I appreciate your response, I tried erasing the firmware and flashing person_detection_pre_17.uf2, which did the trick.
However when I’m trying to run the demo code, it’s still giving the Algo begin failed error. I’m sure it contains the person detection model (it works on the website), 0x11 should be the right value and I’m on the most recent firmware version.
Here’s the code I tried:
#include “Seeed_Arduino_GroveAI.h”
#include <Wire.h>
GroveAI ai(Wire);
uint8_t state = 0;
void setup()
{
Wire.begin();
Serial.begin(115200);
delay(3000);
Serial.println(“begin”);
if (ai.begin(ALGO_OBJECT_DETECTION, (MODEL_INDEX_T)0x11)) // Object detection and pre-trained model 1 MODEL_PRE_INDEX_1
{
Serial.print(“Version: 0x”);
Serial.println(ai.version(), HEX);
Serial.print(“ID: 0x”);
Serial.println( ai.id(), HEX);
Serial.print("Algo: ");
Serial.println( ai.algo());
Serial.print("Model: ");
Serial.println(ai.model());
Serial.print("Confidence: ");
Serial.println(ai.confidence());
state = 1;
}
else
{
Serial.println(“Algo begin failed.”);
}
}
void loop()
{
if (state == 1)
{
uint32_t tick = millis();
if (ai.invoke()) // begin invoke
{
while (1) // wait for invoking finished
{
CMD_STATE_T ret = ai.state();
if (ret == CMD_STATE_IDLE)
{
break;
}
delay(20);
}
uint8_t len = ai.get_result_len(); // receive how many people detect
if(len)
{
int time1 = millis() - tick;
Serial.print("Time consuming: ");
Serial.println(time1);
Serial.print("Number of people: ");
Serial.println(len);
object_detection_t data; //get data
for (int i = 0; i < len; i++)
{
Serial.println("result:detected");
Serial.print("Detecting and calculating: ");
Serial.println(i+1);
ai.get_result(i, (uint8_t*)&data, sizeof(object_detection_t)); //get result
Serial.print("confidence:");
Serial.print(data.confidence);
Serial.println();
}
}
else
{
Serial.println("No identification");
}
}
else
{
delay(1000);
Serial.println("Invoke Failed.");
}
}
else
{
state == 0;
}
}