SparkFun Edge Development Board - Apollo3 Blue

Added to your shopping cart

Edge computing is here! You've probably heard of this latest entry to the long lineage of tech buzzwords like "IoT," "LoRa," and "cloud" before it, but what is “the edge” and why does it matter? The cloud is impressively powerful but all-the-time connection requires power and connectivity that may not be available. Edge computing handles discrete tasks such as determining if someone said "yes" and responds accordingly. The audio analysis is done at the edge rather than on the web. This dramatically reduces costs and complexity while limiting potential data privacy leaks.

In collaboration with Google and Ambiq, SparkFun's Edge Development Board is based around the newest edge technology and is perfect for getting your feet wet with voice and even gesture recognition without relying on the distant services of other companies. The truly special feature is in the utilization of Ambiq Micro's latest Apollo3 Blue microcontroller, whose ultra-efficient ARM Cortex-M4F 48MHz (with 96MHz burst mode) processor, is spec’d to run TensorFlow Lite using only 6uA/MHz. The SparkFun Edge board currently measures ~1.6mA@3V and 48MHz and can run solely on a CR2032 coin cell battery for up to 10 days. Apollo3 Blue sports all the cutting edge features expected of modern microcontrollers including six configurable I2C/SPI masters, two UARTs, one I2C/SPI slave, a 15-channel 14-bit ADC, and a dedicated Bluetooth processor that supports BLE5. On top of all that the Apollo3 Blue has 1MB of flash and 384KB of SRAM memory - plenty for the vast majority of applications.

On the Edge you'll have built-in access to sensors, Bluetooth, I2C expansion, and GPIO inputs/outputs. To support edge computing cases like voice recognition the Edge board features two MEMS microphones, an ST LIS2DH12 3-axis accelerometer on its own I2C bus, and a connector to interface to an OV7670 camera (sold separately & functionality coming soon). As TensorFlow updates their algorithms more and more features will open up for the SparkFun Edge. An onboard Bluetooth antenna gives the Edge out-of-the-box connectivity. Also available on the board is a Qwiic connector to add I2C sensors/devices, four LEDs, and four GPIO pins. To boast the low-power capabilities of the board we've outfitted it with battery operation from the CR2032 coin cell holder. Programming the board is taken care of with an external USB-serial adapter like the Serial Basic Breakout via a serial bootloader, but for more advanced users we've also made available the JTAG programming and debugger port.

As a brave explorer of this new technology, you'll have to use some advanced concepts but don't worry. Between Ambiq Micro's Software Development Kit and our SDK Setup Guide you'll have access to plenty of examples to begin working with your hardware.

Now get out there and make something amazing with the latest machine learning technology at your very own fingertips!

Microcontroller

  • 32-bit ARM Cortex-M4F processor with Direct Memory Access
  • 48MHz CPU clock, 96MHz with TurboSPOT™
  • Extremely low-power usage: 6uA/MHz
  • 1MB Flash
  • 384KB SRAM
  • Dedicated Bluetooth processor with BLE 5

Onboard

  • ST LIS2DH12 3-axis accelerometer
  • 2x MEMS microphones with operational amplifier
  • OV7670 camera connector
  • Qwiic connector
  • 4 x GPIO connections
  • 4 x user LEDs
  • 1 x user button
  • FTDI-style serial header for programming
  • Bluetooth antenna
  • CR2032 coin cell holder for battery operation

What It Does

  • High processing to current consumption ratio enables machine learning applications on the 'Edge' of networks, without the need for a central computer or web connection.
  • Voice, gesture, or image recognition possible with TensorFlow Lite. (Note: Voice examples are provided. Gesture and image examples hope to be released by TensorFlow soon)

General

  • 1.8V - 3.6V supply voltage range
  • Small 1.6in x 1.6in x 0.35in (40.6mm x 40.6mm x 8.9mm) form factor

SparkFun Edge Development Board - Apollo3 Blue Product Help and Resources

Using SparkFun Edge Board with Ambiq Apollo3 SDK

March 28, 2019

We will demonstrate how to get started with your SparkFun Edge Board by setting up the toolchain on your computer, examining an example program, and using the serial uploader tool to flash the chip.

ARM Programming

May 23, 2019

How to program SAMD21 or SAMD51 boards (or other ARM processors).

SparkFun Edge Hookup Guide

September 26, 2019

Get to know your Edge board, including both the hardware features for you to utilize as well as how to get talking to it.

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

4 Programming

Skill Level: Experienced - You will require a firm understanding of programming, the programming toolchain, and may have to make decisions on programming software or language. You may need to decipher a proprietary or specialized communication protocol. A logic analyzer might be necessary.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Is "Yes" the only word that the device understands? Can more words be learned or will there be updates in the future?

    • The Edge ships with a TensorFlow model that understands the word 'Yes' but it can be changed by creating and loading a new model. Checkout danoved's links above namely Creating your own model.

  • Can you teach it the words to recognize or you have to use preset commands? If so, how many commands it can handle?

  • Got the board and played with it a little. Also wish there were more GPIOs broken out.

    I have one remark/question: with all LEDs off and the CPU in deep sleep mode, the board draws approx. 1mA. From what I gathered from the schematic, I think it should draw in the order of ~400-500uA instead (the opamp and the 2 microphones making up most of that). Where do the extra 500uA come from? Are the microphones mounted on the board different from those shown on the schematic? (which by the way are not PW2430xx but SPW2430xx, much easier to find them this way ;D )

    As a side note, that would have been nice to be able to disconnect the microphones/opamp to lower power draw when not used.

    Regarding the 6uA/MHz figure, that's in the most favorable condition (see datasheet) with many things off. Expect something closer to 16uA/MHz in a more realistic condition with a couple peripherals on, at 48MHz, and close to twice that (~30uA/MHz) at 96MHz...

  • I got the board and followed the directions to load the Tensorflow example. I get the floowing error when I try to flash the code on the board. (Using latest Ubuntu)

    wst17@wst17-MacBook:~/tensorflow$ BAUD_RATE=921600 wst17@wst17-MacBook:~/tensorflow$ DEVICENAME=/dev/ttyUSB0 wst17@wst17-MacBook:~/tensorflow$ python3 tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py -b ${BAUD_RATE} ${DEVICENAME} -r 1 -f main_nonsecure_wire.bin -i 6 Traceback (most recent call last): File "tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py", line 5, in <module> import serial ModuleNotFoundError: No module named 'serial'

    • I hit this probably too when I first started with the Ambiq SDK. You need to install pyserial (and probably pycrypto). Checkout the bootloader docs:

      \AmbiqSuite-Rel2.x.x\docs\secure_bootloader\Apollo3-Blue_Getting-Started.pdf
      

  • I wish I had read the datasheet closer before buying. Ill still play with it, but the problem is 6uA/MHz but MHz is either 24 or 48 not Khz. so 144 or 288ua. Where the competition can get down to 6-10uA total with slower clocks at 1.8V the closest for this part on the datasheet is 80uA but that is with more stuff off than the competition. So a design with a CR2032 should last single digits of time times the length of time this part runs. Now if you get into the very deep sleep modes, without I/O (so how do you wake up gotta read more), then sure you can get a long run on a CR2032. The description says ~1.6mA. So at ~10ua that would be 160 times longer?

  • Has anyone tried to use the SWD Cortex-M debug port of this board ?. I tried using my JLink (which supports this Ambiq Apollo 3 CPU) and by soldering a non polarized 10-pin header. Couldn't get it to communicate. Upon further investigation I came to the conclusion that the two rows on the board are swapped. To correct this externally the adjacent lines of the ribbon cable need to be swapped and it's not easy to do that. Please investigate.

    • Based on the outline and the polarity markings on the bottom of the board, this header is designed to be used from the bottom of the board.

      • Please add this info to the hookup guide. It's easy to make this mistake.

        • FYI. If anyone is facing a similar situation and does not want to desolder the header a row swapping adapter could be easily built connecting two of the following breakout boards back to back.

          https://www.adafruit.com/product/2743

    • If you place the debug connector at the bottom of the board it should resolve this issue right ?.

      • Yes the SWD connector must be mounted on the bottom side (same side where the battery holder lies) (can be infered from the Eagle layout and the Cortex debug connector pin-out...)

  • Hi, I followed the instruction for example1, and did "Now to flash your code to the Edge hold down Button 14, press and release reset, and type make bootload into your Bash shell. .." the compiling went for awhile error-ed out the following error. What to do? I used the Dev 09873 serial connection on COM19.

    "... Traceback (most recent call last): File "../../../../../tools/apollo3_scripts/create_cust_image_blob.py", line 6, in <module> from Crypto.Cipher import AES ModuleNotFoundError: No module named 'Crypto' make: *** [bootload] Error 1 bash-3.1$

  • I see that DEV-15096 breakout board is on back order. I have another serial to USB, DEV-09873. Can it work with the Apollo 3 to connect to USB?

    • Yep! The FTDI based DEV-09873 is 3.3V by default so you'll be fine. We just don't want folks accidentally sending 5V to this board. (FWIW, we're building more USB Serial Basics; should be posted within a day.)

  • I received two boards a few days ago, and was expecting (based on the video) to be able to pop a CR2032 in and see some action (or at least a glowing LED or two). Nada. Was the yes/no demo not actually loaded on the boards? Or am I missing something obvious? I do intend to set up the toolchain, but was hoping for some early indication that the hardware worked as expected.

    • Michael

    • Yep! All units ship with the voice recognition demo pre-loaded. If you're having issues, double check that the battery is making contact/powering the board. If that's not the issue, please contact customer service and we'll get it fixed.

      • Working! The problem appears to be that the negative battery contact (the PCB land) needed to be abraded just a bit before it made contact. Removing and inserting the batteries half a dozen times or so and Voila! All is working now. They both behaved this way, by the way. Batch number 119107 if that is of interest.

  • Amazing. Would have been better with more GPIOs...

    • Agreed. Checkout the schematic. A lot of the IOs went to camera interface and dedicated I2C but for accel. But I like the idea of a board with more IO. Let me think about it...

  • Does the BLE transceiver have an FCC-ID? Is this a prequalified module or would I need to go through certification using this in my design?

    • There is no FCC cert for this device but Ambiq provides a variety of demos in their SDK to get the BLE up and running.

  • Does this board have inbuilt WiFi or is there any provision to connect any external WiFi shield or module ?

  • Looks amazing! Do you stock a camera that would work with this ?

  • This looks cool, but I wish it exposed more than 4 GPIOs, especially since the underlying processor seems to have so many.

    • Indeed. It was a lot of fun routing the BGA and with 4-layers and buried vias, there was only so many GPIO we could get to.

  • What kind of camera would work well with this?

    • I'm not 100% sure since it isn't supported yet, but it looks like the thin camera ribbon that works on a Pi Zero fits.

  • The link to the SDK Setup Guide (https://learn.sparkfun.com/tutorials/using-sparkfun-edge-board-with-ambiq-apollo3-sdk) doesn't work.

    • Correct, it isn't ready yet but it will be when we start shipping the Edge at the end of the month.

Customer Reviews

2.7 out of 5

Based on 10 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

Needs a lot of work

I tried the default program (yes, no) and it worked about 3 times out of 200. I even tried building it from scratch via the tensorflow sites tutorial. This product is essentially unusable in its current state.

1 of 1 found this helpful:

Do not buy! Not ready for market!

Preloaded demo doesn't work well... Getting started is basically impossible due to poor documentation at the moment. Needs a lot of TLC to become a product you can actually ask money for. Very disappointed.

1 of 1 found this helpful:

How to amuse an idiot for an hour

So I was sitting at my desk, repeatedly saying "yes" in the vain hope that the yellow LED would blink (it did, 3 times out of 50) when my wife came in looking very puzzled and wondering just what I was up to. So I told her and gave her the board so that she could try it. With 1 success out of 20 tries, she gave this review its title.

If this is as good as it gets with a professionally developed and supplied application, then we should plan on ignoring the deep learning features and just use it as a low power Arduino replacement.

2 of 2 found this helpful:

Apollo3

Well, demo sketch on the board only works 5% of the time. Kinda disappointing.

2 of 2 found this helpful:

Nice idea but disappointed

The demo of the Voice regognition is not working and no help from the forum.

Without Tensorflow feature working, this board has no interest

I have done some debugging and I think I have found a workaround. Waiting for confirmation. more details here:

https://github.com/tensorflow/tensorflow/issues/28516

https://forum.sparkfun.com/viewtopic.php?f=153&t=49735

2 of 2 found this helpful:

Quite disapointed

Great price. The promise is nice. But when i put battery in it is difficult to make blink the leds. And no much doc about how to use it. I'd like to use Bluetooth but nothing about that.

Yes... Yes... Yes... Nope

Great little innovation, but functionality? Near zero, as many other customers describe. What annoys me is also that you have to take the battery out. I'm just not playing with toys all day, so ON/OFF switch is just basics like water.

0 of 1 found this helpful:

Awesome device for offline inference!

This chip is literally the future of AI, it lets you run vocal inference on a chip which isn't even that expensive. Amazing!

Device is good, but default firmware is buggy.

The ML has lots of room to be improved. Maybe there is bugs in the firmware?

I will work it out the bugs and upload my own model to it, but if you don't have the skills to read the code and create your own Tensorflow lite model, then I don't think this device is for you.

Interesting

Had some startup issues with the battery holder not making contact on two boards, resolved by multiple insertions/removals. Initial operation has the yes/no accuracy and sensitivity are pretty low. Have not explored the toolchain yet, that sounds like a very interesting area to poke at.