Stufin
Home Quick Cart Profile

Coral USB Accelerator

Buy Now on Stufin

Edge TPU Performance

Up to 4 tera-operations per second (TOPS)

Memory

8GB of on-device storage for model storage and caching

Power Consumption

2W typical, 3W maximum

Operating Temperature

0C to 40C

Dimensions

65mm x 30mm x 10mm

Weight

20g

Applications

The Coral USB Accelerator is suitable for a wide range of applications, including

Edge AI

Accelerate ML inference tasks on edge devices, such as smart cameras, robots, and industrial equipment.

Robotics

Enhance robotic systems with ML-powered perception, navigation, and control capabilities.

IoT Devices

Accelerate ML tasks on resource-constrained IoT devices, such as smart home appliances and wearables.

Prototyping

Rapidly prototype and develop ML-based projects using the Coral USB Accelerator as a proof-of-concept device.

Conclusion

The Coral USB Accelerator is a powerful, compact, and power-efficient device that enables rapid development and deployment of ML models on edge devices. Its open-source software, low power consumption, and compact design make it an ideal solution for a wide range of applications, from edge AI to robotics and IoT devices.

Pin Configuration

  • Coral USB Accelerator Pinout Explanation
  • The Coral USB Accelerator is a compact device that provides a USB interface for edge Tensor Processing Units (TPUs). It features a 40-pin header with various interfaces and signals. Here's a detailed explanation of each pin, point by point:
  • Pins 1-4: Power and Ground
  • 1. VDD_5V (Pin 1): 5V power input from the host system.
  • 2. GND (Pin 2): Ground connection.
  • 3. VDD_3V3 (Pin 3): 3.3V power input from the host system (optional).
  • 4. GND (Pin 4): Ground connection.
  • Pins 5-12: USB Interface
  • 5. USB_DP (Pin 5): USB differential data plus signal.
  • 6. USB_DM (Pin 6): USB differential data minus signal.
  • 7. USB_VBUS (Pin 7): USB bus power.
  • 8. GND (Pin 8): Ground connection.
  • 9. USB_ID (Pin 9): USB device identifier (optional).
  • 10. USB_OC (Pin 10): USB overcurrent detection (optional).
  • 11. USB_RXTX (Pin 11): USB transmit and receive data signals (optional).
  • 12. GND (Pin 12): Ground connection.
  • Pins 13-16: GPIO and Reset
  • 13. GPIO0 (Pin 13): General-purpose input/output pin 0.
  • 14. GPIO1 (Pin 14): General-purpose input/output pin 1.
  • 15. RST_N (Pin 15): Active-low reset signal.
  • 16. GND (Pin 16): Ground connection.
  • Pins 17-24: I2C and SPI Interfaces
  • 17. I2C_SDA (Pin 17): I2C serial data line.
  • 18. I2C_SCL (Pin 18): I2C serial clock line.
  • 19. SPI_MOSI (Pin 19): SPI master output, slave input data line.
  • 20. SPI_MISO (Pin 20): SPI master input, slave output data line.
  • 21. SPI_SCK (Pin 21): SPI serial clock line.
  • 22. SPI_CS (Pin 22): SPI chip select line.
  • 23. GND (Pin 23): Ground connection.
  • 24. VDD_IO (Pin 24): I/O voltage supply (typically 1.8V or 3.3V).
  • Pins 25-32: UART Interface
  • 25. UART_RXD (Pin 25): UART receive data line.
  • 26. UART_TXD (Pin 26): UART transmit data line.
  • 27. UART_CTS (Pin 27): UART clear-to-send signal.
  • 28. UART_RTS (Pin 28): UART request-to-send signal.
  • 29. GND (Pin 29): Ground connection.
  • 30. VDD_IO (Pin 30): I/O voltage supply (typically 1.8V or 3.3V).
  • 31. UART_DTR (Pin 31): UART data terminal ready signal.
  • 32. UART_DSR (Pin 32): UART data set ready signal.
  • Pins 33-40: Miscellaneous
  • 33. GND (Pin 33): Ground connection.
  • 34. VDD_IO (Pin 34): I/O voltage supply (typically 1.8V or 3.3V).
  • 35. TCK (Pin 35): Test clock signal.
  • 36. TMS (Pin 36): Test mode select signal.
  • 37. TDI (Pin 37): Test data input signal.
  • 38. TDO (Pin 38): Test data output signal.
  • 39. GND (Pin 39): Ground connection.
  • 40. NC (Pin 40): No connection.
  • When connecting the pins, ensure that you:
  • Use a compatible USB cable for the USB interface.
  • Connect power and ground pins to a reliable power source.
  • Use suitable connectors or headers for the GPIO, I2C, SPI, and UART interfaces.
  • Consult the Coral USB Accelerator datasheet or documentation for specific connection requirements for your application.
  • Remember to handle the device with care, as it is a sensitive electronic component.

Code Examples

Coral USB Accelerator Documentation
Overview
The Coral USB Accelerator is a compact, low-power USB peripheral that enables efficient machine learning (ML) inference at the edge. It is designed to accelerate TensorFlow Lite (TFLite) models, allowing developers to integrate AI capabilities into various IoT projects.
Technical Specifications
USB 2.0 interface
 Supports TensorFlow Lite (TFLite) models
 Peak performance: 4 trillion operations per second (TOPS)
 Power consumption: <2W
 Operating temperature: 0C to 50C
 Dimensions: 45mm x 17.5mm x 9.5mm
Getting Started
To use the Coral USB Accelerator, you'll need:
1. A Coral USB Accelerator module
2. A USB-enabled device (e.g., PC, Raspberry Pi, or Android device)
3. TensorFlow Lite (TFLite) model files
4. Coral API and libraries (available for various platforms)
Code Examples
### Example 1: Image Classification using Python on Raspberry Pi
This example demonstrates how to use the Coral USB Accelerator with Python on a Raspberry Pi to classify images using a TFLite model.
Hardware Requirements:
Raspberry Pi (any version)
 Coral USB Accelerator module
 USB cable
 Camera module (e.g., Raspberry Pi Camera v2)
Software Requirements:
Raspbian OS
 Coral API and libraries for Python
 TensorFlow Lite (TFLite) model file (e.g., mobilenet_v1_1.0_224.tflite)
Code:
```python
import numpy as np
import cv2
from edgetpu.detection_engine import DetectionEngine
# Load the TFLite model
model_path = 'path/to/mobilenet_v1_1.0_224.tflite'
engine = DetectionEngine(model_path)
# Load the image
img = cv2.imread('image.jpg')
# Preprocess the image
input_data = np.expand_dims(img, axis=0)
# Run inference on the Coral USB Accelerator
output = engine.RunInference(input_data)
# Get the classification results
scores = output[0][0]['scores']
classes = output[0][0]['classes']
print('Classification results:')
for i in range(5):
    print(f'  {classes[i]}: {scores[i]}')
```
### Example 2: Object Detection using C++ on Ubuntu
This example demonstrates how to use the Coral USB Accelerator with C++ on Ubuntu to perform object detection using a TFLite model.
Hardware Requirements:
Ubuntu-enabled PC
 Coral USB Accelerator module
 USB cable
Software Requirements:
Coral API and libraries for C++
 TensorFlow Lite (TFLite) model file (e.g., ssd_mobilenet_v2_coco.tflite)
Code:
```c
#include <edgetpu_api.h>
#include <image_data.h>
int main() {
    // Load the TFLite model
    std::string model_path = "path/to/ssd_mobilenet_v2_coco.tflite";
    edgetpu::EdgeTpuContext ctx;
    ctx.LoadModel(model_path);
// Load the image
    cv::Mat img = cv::imread("image.jpg");
// Preprocess the image
    edgetpu::ImageData input_data;
    input_data.set_from_mat(img);
// Run inference on the Coral USB Accelerator
    edgetpu::InferenceResult output;
    ctx.RunInference(input_data, &output);
// Get the object detection results
    const auto& detections = output.detections();
    for (const auto& detection : detections) {
        std::cout << "  Detected object: " << detection.label() << std::endl;
        std::cout << "    Score: " << detection.score() << std::endl;
        std::cout << "    Bounding box: (" << detection.x_min() << ", " << detection.y_min() << ", " << detection.x_max() << ", " << detection.y_max() << ")" << std::endl;
    }
return 0;
}
```
These examples demonstrate the basic usage of the Coral USB Accelerator for image classification and object detection tasks. For more advanced use cases and customization, please refer to the Coral API documentation and TensorFlow Lite guides.