Good day! I’m currently working on a small school project and the only question I have is that have you guys ever managed before to make the Vision board connect with the Xiao ESP32S3 through SPI? I’ve managed myself to make it work with UART and I2C inside Arduino IDE but the inference and response time from the serial seems to be way slower (~6-7 readings/s) compared to the (almost instant) results I get inside the SenseCraft workspace webpage (device logger).
I was wondering if SPI might be a faster option for this case but the SPI inference example provided doesn’t seem to work or return any detection results on my end.
Any thoughts or suggestions would be greatly appreciated. Thank you!
Hi there,
And Welcome here…
To catch up to the DM,
If you’re only seeing ~6–7 results/sec, that might simply be the model + camera + postprocess rate. The SenseCraft “device logger” feels instant because it’s tightly integrated (and often not printing a ton of text), not necessarily because SPI is magically faster.
The clean way to prove it is to print the module’s perf timing (prep/inference/post). The Seeed SSCMA examples expose that.
If inference time is, say, 120–150 ms, you’re capped at ~6–8 Hz no matter what bus you use.
A lot of people run UART at 115200 and then print long ASCII strings for each detection—this becomes the bottleneck fast.
Seeed’s own guidance for the SSCMA UART link is 921600 baud, 8N1.
So my first recommendation is:
- Set UART to 921600 8N1
- Reduce serial printing (or print only a summary / only on change)
- Use the perf counters to confirm what’s limiting
That alone often gets you “SenseCraft-like” responsiveness.
SPI can be faster — but only if the SPI link is actually correct
SPI is supported, but it’s also the easiest to get “working but returning nothing” if CS/pins are wrong.
Seeed’s doc shows the SSCMA SPI wiring expectations and the exact init pattern:
SPI.begin(SCK, MISO, MOSI, -1);
AI.begin(&SPI, CS, -1, -1);
Key gotchas I’d call out (these cause “SPI example runs, but no detections”):
- Wrong CS pin passed to
AI.begin() (must match the actual CS wire)
- Missing common GND
- SPI pins not matching the board’s SPI bus you’re using
- Module not running the expected SSCMA-Micro firmware that the Arduino SSCMA library talks to (if you reflashed something else, comms can “half work”)
Post the model and what AI.perf times you get we can look and make a recomend, * run UART at 921600 8N1 (Seeed recommends it) and cut down prints.
- Print
AI.perf() and see if inference time itself is ~150 ms (then your 6–7 Hz is normal).
- If you still want SPI, use the Seeed SPI init exactly and triple-check CS wiring/pin mapping.
often the serial port speed alone will improve it. Give it a go and let us know what you get 
What results do you get with AI.perf
and Maybe use the code tags above “</>” paste it in there , we can see were the SPI may be stuck.
HTH
GL
PJ 
I am wondering if the B2B connector is the splution?