Using Google Coral mPCIe Card into a Compact Marvell Octeon TX Linux SBC

Google launched Coral mPCIe and M.2 cards at the very beginning of the year. The cards integrate the company’s 4 TOPS Edge TPU used for low power edge AI applications to bring the solutions to boards with mPCIe or M.2 sockets.

Those are just hardware sockets that are optionally connected to USB, PCIe, I2C, etc… so you have to make sure the socket on your board exposes PCIe Gen2 x1. If you worry about compatibility, it’s good to get a board that’s known to work, and one of those is Gateworks Newport GW6903 SBC that offers two mPCIe sockets and features Marvell Octeon TX dual or quad-core Armv8 processor coupled with up to 4GB RAM.

Google Coral mPCIe connected to Gateworks Newport GW6903 SBC

Besides the mini PCIe Coral card and Newport SBC, you’ll also need a Linux host and optionally a USB webcam for inference. The rest of the instructions are explained in the Wiki with the following steps required:

  1. Recompile the Linux kernel with support for video devices and specifically USB UVC webcams
  2. Building and installing the Gasket and Apex modules (PCIe drivers for Coral modules) part of Coral source code.
  3. Installing Python 3.7
  4. Installing the TPU runtime

At this stage, you should be able to run some of the samples in the Linux SBC:

Wants to see how the latter performs? Check out the video below. The photo samples start at the 1:39 mark.

You should be able to reproduce the same setup in any Linux SBC running 64-bit (Aarch64) Linux and equipped with a mini PCIe or M.2 socket with PCIe Gen2 x1 signals.

Support CNX Software - Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples
Subscribe
Notify of
guest
1 Comment
oldest
newest most voted
Advertisements