The SparkFun Artemis is a high-performance, low-power compute module aimed at machine learning (ML) applications. The Artemis contains an Ambiq Micro Apollo 3 processor, which implements a power-efficient ARM Cortex-M4F core. It can run up to 96 MHz, with a power consumption of 6uA per MHz under load. The target application for Artemis is executing TensorFlow Lite machine learning models. The idea is that you can train a model on a more powerful computer, then deploy it to the Artemis. The Artemis also provides BLE 5.0 connectivity.
SparkFun has put Artemis on a MicroMod board to integrate with their MicroMod system of carrier boards. SparkFun currently offers six different microcontroller chips on MicroMod boards. The boards attach via an M.2 socket to your choice of one of eight carrier boards, each having different forms and on-board peripherals.
The MicroMod Artemis board itself contains a few devices to support the Artemis chip. On the top side we find an antenna for the BLE transmitter, a status LED, and a crystal for the real-time clock. On the bottom we find a USB to UART converter to allow programming of the chip by USB. We also find an op-amp that maps a 0–3.3V input signal into the smaller voltage range the ADC on the Artemis supports.
SparkFun provides a Hookup Guide that walks through the hardware and the programming of the board. The natural choice for testing out the MicroMod Artemis is to pair it with the MicroMod Machine Learning Carrier Board. This particular carrier board sports a digital microphone, 3-axis accelerometer, and a connector for a camera (sold separately). The guide shows how to install the MicroMod Artemis to the carrier board.
Programming for the MicroMod Artemis is in Arduino IDE. The hookup guide shows how to install support for the board. Once you have chosen “SparkFun Artemis MicroMod” as your board type, a number of example sketches for “Artemis MicroMod” will appear in the File menu. The first example program the guide walks you through uses the digital microphone on the Machine Learning Carrier Board. It simply puts some output to the serial monitor indicating the loudest frequency the microphone detects. I had no problem getting this example up and running. Most of the other examples focus on tasks that would be useful on any Artemis platform, like using the real time clock or watchdog timers. There is a software serial example that shows how to make serial connections on any available port.
The Machine Learning Carrier Board has its very own Hookup Guide that will walk you through using the accelerometer. Note that while SparkFun links to their github repositories when listing the libraries used in their examples, these libraries can be installed via the library manager and don’t have to be installed by hand. It was good to see that the accelerometer library “just worked” with the Artemis MicroMod. Remember that the Machine Learning Carrier Board is designed to work with any of the very different microcontrollers available in MicroMod packaging. Compatibility of any particular library is not a given when moving to a new microcontroller architecture, but SparkFun appears to have done the work of ensuring compatibility.
What is missing from the Hookup Guides is any example of using TensorFlow Lite on the Artemis. I found an introduction to running the Arduino_TensorFlowLite examples on the SparkFun Edge, a predecessor that used the same microcontroller, but I could not get the code to compile for the Artemis MicroMod. You may be able to get TensorFlow Lite working on Artemis in Arduino IDE, but it seems for now you will be on your own to adapt any example code. Early work on TensorFlow Lite for the SparkFun Edge was done in Ambiq Micro’s IDE, so you may want to explore that avenue.
- Low-power microcontroller should be battery-power friendly
- MicroMod form factor gives you instant access to several carrier boards