google-coral / coralmicro

Source code for Coral Dev Board Micro
Apache License 2.0
106 stars 44 forks source link

What is the intended user of the Coral-Micro? #24

Closed hpssjellis closed 1 year ago

hpssjellis commented 1 year ago

Description

Who is the target audience for the Coral-Micro platform?

Is it primarily for Machine Learning Engineers and Computer Science Graduates or for the wider Maker and Education communities? What does Billy Rutledge, the Director of the Coral Platform, believe the intended user to be?

Based on the example Arduino GPIO code that demonstrates how to blink the 4 GPIO pins (a technology Educator would likely not write code in this manner), and several other issues for the Arduino platform including the new 1.8 V pins (the effect on sensors and actuators), I believe the Coral-micro is designed for Engineers and CS Grads.

If Mr. Rutledge is interested in reaching a wider audience for the Coral-Micro, he can contact Jeremy Ellis.

Like my other Coral-micro Arduino issues, this one is probably ready to be closed @hjonnala

Have a great day!

constexpr int kGpiosToTest[] = {
    D0, D1, D2, D3,
};

bool high = true;

void setup() {
  Serial.begin(115200);
  // Turn on Status LED to show the board is on.
  pinMode(PIN_LED_STATUS, OUTPUT);
  digitalWrite(PIN_LED_STATUS, HIGH);

  Serial.begin(115200);
  Serial.println("Arduino GPIO Example!");

  for (auto pin : kGpiosToTest) {
    pinMode(pin, OUTPUT);
  }

  Serial.println("Periodically toggling header GPIOs...");
}

void loop() {
  for (auto pin : kGpiosToTest) {
    digitalWrite(pin, high ? HIGH : LOW);
  }
  high = !high;
  delay(1000);
}
Click to expand! ### Issue Type _No response_ ### Operating System _No response_ ### Coral Device _No response_ ### Other Devices _No response_ ### Programming Language _No response_ ### Relevant Log Output _No response_
Namburger commented 1 year ago

@hpssjellis Hello Jeremy - Thanks for reaching out!

Excellent question, so we do provide 2 different sets of APIs.

1) microcoral APIs - Everything you see in libs which would provide a wider set of APIs that would let you control the board. With these APIs, you would have a lot more "tools" to explore the board's capabilities. We do have quite a few examples and apps such as this multicore app here that is our flagship demo: https://github.com/google-coral/coralmicro/tree/main/apps/multicore_model_cascade

2) arduino APIs - we provided these APIs, intending to encourage tinkerers and beginners to try out our platform. The thought process for provide these APIs is so that some of the newer users, who already ahve experience with arduino, won't have a learning gap when trying out our boards. So most of the api provided there inteded to be a very close match to the arduino platform (although not 100% due to some limitations). That specific example that you pointed out was a very simple one that we wrote to test the gpios, using an osciloscope after porting stuffs over to arduino. We do have some more useful arduino examples, which are located under each library we provided, such as these examples that uses our arduino tensorflow api: https://github.com/google-coral/coralmicro/tree/796fb5b2a1565a86d0abf367c6b152f216509d6e/arduino/libraries/TensorFlow/examples

google-coral-bot[bot] commented 1 year ago

Are you satisfied with the resolution of your issue? Yes No

hpssjellis commented 1 year ago

While the idea of two API's is appealing, the engineer will likely just use the $20.00 Coral-Chip accelerator module and a combination of I2C connected boards or chips, such as the $5.00 board or $1.14 chip XIAO-esp32, to create their own board and code.

The education and maker communities, which make up a large market, are capable of creating machine learning models as they typically repeat an already perfected solution like how it is done on edgeimpulse.com. The Coral-micro TPU has a huge advantage here, but the real challenge lies in connecting these models to sensors and actuators or the Internet of Things to create practical applications, such as my students' robocars.

rocksetta-robocar

The limited number of pins on the Coral-micro may also pose a problem, as there is currently no Coral-micro breakout board available for 100 pin HD connectors. Even the Arduino Portenta Breakout board missed the mark, as I had to create my own PCB to give full access to its 80 pin HD connectors.

rocksetta-80-pin-hd-board

.

While it's acceptable for Arduino to rely on its extensive user base to create open-source code to enhance its products, it is not fair for Google to expect the same level of free development from the community.

Best wishes to all involved with this board I believe this issue is closed and thanks @Namburger for your specific reply.