The SAMA7G54 is a high-performance, Arm Cortex-A7 CPU-based embedded microprocessor (MPU) running up to 1 GHz. It supports multiple memories such as 16-bit DDR2, DDR3, DDR3L, LPDDR2, LPDDR3 with flexible boot options from octal/quad SPI, SD/eMMC as well as 8-bit SLC/MLC NAND Flash.
The SAMA7G54 integrates complete imaging and audio subsystems with 12-bit parallel and/or MIPI-CSI2 camera interfaces supporting up to 8 Mpixels and 720p @ 60 fps, up to four I2S, one SPDIF transmitter and receiver and a 4-stereo channel audio sample rate converter.
The device also features a large number of connectivity options including Dual Ethernet (one Gigabit Ethernet and one 10/100 Ethernet), six CAN-FD and three high-speed USB. Advanced security functions like secure boot, secure key storage, high-performance crypto accelerators for AES, SHA, RSA and ECC are also supported.
Microchip provides an optimized power management solution for the SAMA7G54. The MCP16502 has been fully tested and optimized to provide the best power vs. performance for the SAMA7G54.
Set these jumpers to the default settings:
Provide power to the board as described in the Microchip documentation.
Use the pre-built image - This has edge-impulse-linux preinstalled
OR
Use Docker & Buildroot to build your own custom image by following the Readme instructions in this repository.
Use BalenaEtcher to flash the .img file to an SD card.
The Microchip Developer Help portal has documentation for serial communications to the SAMA7G54-EK. Once your serial terminal is connected make sure the device has power and press the nStart
button, you should see messages appearing over the serial console.
Login with root
user and edgeimpulse
password.
If you would like to use SSH to connect to the board, some additional steps are necessary:
cd /etc/ssh/
nano sshd_config
Uncomment and change PermitRootLogin prohibit-password
to PermitRootLogin yes
Uncomment PasswordAuthentication yes
CTRL+X
then Y
then Enter
reboot
to restart SSH
ifconfig
to get IP address
On your host machine ssh root@www.xxx.yyy.zzz
With all software set up, connect your web-camera to your operating system and run:
This will start a wizard which will ask you to log in, and choose an Edge Impulse project. If you want to switch projects run the command with --clean
.
That's all! Your machine is now connected to Edge Impulse. To verify this, go to your Edge Impulse project, and click Devices. The device will be listed here.
With everything set up you can now build your first machine learning model with these tutorials:
Looking to connect different sensors? Our Linux SDK lets you easily send data from any sensor and any programming language (with examples in Node.js, Python, Go and C++) into Edge Impulse.
To run your impulse locally run on your Linux platform:
This will automatically compile your model with full hardware acceleration, download the model to your local machine, and then start classifying. Our Linux SDK has examples on how to integrate the model with your favourite programming language.
Another option is to download the .eim file directly from Studio, copy it to the device filesystem and run it with the --model-file argument. In this case chmod +x
will be required to give the .eim executable permissions.
The main route for deploying en Edge Impulse project with SAMA7G54-EK Evaluation Kit is through using .eim. However it is also possible to build example-standalone-inferencing-linux package and run it on the device.
To do that run make menuconfig
Go to Target packages -> Miscellaneous and choose Example Standalone Inferencing Linux package. Paste the project deployment files (edge-impulse-sdk, model-parameters, tflite-model) into buildroot-microchip/buildroot-at91/package/example-standalone-inferencing-linux folder.
Proceed to building the image with make -j $((`nproc` - 1))
You will be able to find custom
application file in /home on your target. Run it with ./custom features.txt
, where features.txt is a file with raw features.
Note: When using the .eim method it's important to ensure the file has appropriate permissions, so use chmod
to set these if needed.