I’m working on a project using edge impulse on a seed studios grove vision.ai version1. The object detection model has been working amazing when I run the live inference through the serial daemon. However, I now need to integrate the hardware(vision.ai module)with a microcontroller. The vision.ai board has a programmable i/o that I’d like to make an output that is 1 when the object detection is true and 0 anytime else. I’ve been digging in the firmware from github, but could use any advice on where to attempt to make these coding changes and how to build the new firmware once I’ve made them.
This is for a senior project for my ee degree, thanks!
Rather than trying to decipher the Edge Impulse-created pre-compiled firmware source code, I might recommend one of the following approaches:
Would using the serial AT commands be similar to using I2C? I had seen that that was the advertised serial connection. I think I’d prefer to just run the edge impulse firmware and communicate with the board via i2c serial if that is an option, my microcontroller(MSP430) has i2c.
The AT commands use serial (e.g. UART) connection, not I2C. Your MSP430 should have a UART peripheral you can use.
This is perfect, thanks!
Where can i find documentation on which pins are for the UART on my hardware? Would it be from the maker of the hardware or is it specific to the edge impulse firmware that is running on the board?
I recommend looking for the datasheet or documentation for the board that you purchased. That will provide you with the pinout and how to use the UART peripheral.
You have two options to achieve your goal:
- Modify the firmware on your own.Here is the firmware source code together with build instructions. Around our firmware, there is a whole SDK from Synopsys (unfortunately, it is partially closed, so only headers are available to figure out how to use it). You can use it as a base for your firmware and add a custom GPIO operation. I’ve never used GPIO on this board, so I can’t help directly. But the source code is your friend
- Our standalone firmware exposes two interfaces, UART (over USB) and I2C, which you can use to connect Vision AI to another board (master). That way, you can control the inference process (start/stop) and get inference results.
a. Edge Impulse makes UART protocol and its full documentation can be found here
b. I2C protocol is a Seeed invention. Its documentation is here. There is also an example of how to connect the Vision AI to XIAO and control the Vision AI over I2C.
I hope it will help you!