The MAX78000 is an Arm Cortex M4F microcontroller with a Convolutional Neural Network (CNN) accelerator unit. The unique energy-efficient architecture of the MAX78000 enables battery-powered AI for at the edge applications such as face identification and keyword spotting. The MAXREFDES178 is a cube camera reference design based on the MAX78000 and MAX32666 microcontrollers to help AI at the edge device designers to accelerate their proof-of-concept to the market phase.
The MAXREFDES178 hardware consists of a connectivity board based on the MAX32666 and AI board based on two MAX78000 chips. A short 33-position flex cable connects the boards to each other.
- Two MAX78000 ARM Cortex M4F Microcontrollers with CNN Accelerator
- BLE5 Wireless Connectivity
- Li-Ion Battery Powered
- Color Image Sensor
- Digital Microphone
- Multiple audio codecs with stereo audio input and output
- Color TFT Capacitive Touch LCD
- Micro SD Connector
- On-Board QSPI FLASH and QSPI SRAM
The MAXREFDES178 camera cube is supported by an Android app available at the Google Play Store.
MAXREFDES178 Box Contents
Contains the MAXREFDES178_CONNECTIVITY_BOARD, MAXREFDES178_AI_BOARD, Enclosure, LCD, Battery and Buttons.
USB Type-C Based DAPLink Debugger, Programmer.
DAPLink Debugger with 10-Pin SWD Ribbon Cable.
|USB Type-A to Micro USB Type-B USB Cable.||
Figures 1 and 2 show the main components, inputs, and outputs of the MAXREFDES178.
Figure 1. MAXREFDES178 front view.
The front of the device has a microphone, image sensor (camera), and flash LED windows. There are two flash LEDs on both sides of the image sensor.
Figure 2. MAXREFDES178 right side view.
There are three 2.5 mm audio connectors on the right side of the device.
Table 1. Audio Connector Functions of the MAXREFDES178
|Headset (MAX78000)||This is a stereo audio output connector with a mono microphone input. It is connected to the MAX9867 (U5) Low-Power Stereo Audio Codec IC on the MAXREFDES178_AI_BOARD. The MAX9867 (U5) is controlled by the MAX78000 (U6), which is dedicated for audio processing applications.
Regular headsets with 2.5 mm jack can be directly connected to this connector. The wiring of this connector follows the Open Mobile Terminal Platform (OMTP) standard.
For 3.5mm headsets, a 2.5mm to 3.5mm adapter is needed.
|Line-in (MAX78000)||Line input for external audio. This connector is connected to the MAX9867 (U5) Low-Power Stereo Audio Codec IC on the MAXREFDES178_AI_BOARD. The MAX9867 (U5) is controlled by the MAX78000 (U6), which is dedicated for audio processing applications.
For 3.5mm audio cables, a 2.5mm to 3.5mm adapter is needed
|Headset (MAX32666)||This is a stereo audio output connector with a mono microphone input. It is connected to the MAX9867 (U13) Low-Power Stereo Audio Codec IC on the MAXREFDES178_CONNECTIVITY_BOARD. The MAX9867 (U13) is controlled by the MAX32666 (U5) microcontroller.
Regular headsets with 2.5 mm jack can be directly connected to this connector. The wiring of this connector follows the OMTP standard.
For 3.5mm headsets, a 2.5mm to 3.5mm adapter is needed.
Figure 3. MAXREFDES178 left side view.
There is a USB Type-C connector for powering, charging, programming, and debugging on the left side of the device.
There is also a Micro-SD card slot to store data, neural network models, etc.
The main power button of the device is connected to the MAX20303 (U2) PMIC IC. This button can be used as both power on/off function and user button. Under the button cap, there is also an RGB LED connected to the MAX20303 PMIC LED outputs. This RGB LED can be controlled by PMIC or user firmware through I2C commands sent to the MAX20303 PMIC.
Table 2. Power Button and RGB LED Functions
|Power button and user-programmable button.
Connected to the MAX20303 PFN1 input.
The MAX20303 PFN2 is the buffered version of this button line and it is connected to MAX32666 P1.9. Internal pullup of this GPIO pin on MAX32666 must be enabled to read the status of this button.
|MAX20303 LED0 Output: Blue
MAX20303 LED1 Output: Red
MAX20303 LED2 Output: Green
Figure 4. MAXREFDES178 top view.
There are four user-programmable buttons on the top side of the MAXREFDE178. All buttons are connected through MAX6817 ESD Protected Switch Debouncer ICs.
Table 3. Function Buttons of the MAXREFDES178
Connected to MAX32666 P1.6.
Connected to the MAX7325 I2C IO Expander IC P7. The MAX32666 microcontroller can read the status of this button through the I2C bus.
Connected to the MAX78000 Image (U4) P0.2
Connected to the MAX78000 Audio (U6) P0.2.
There are user-programmable RGB LEDs under button A and button B caps.
|D1||A (SW2)||RED: MAX78000 Image (U4) P2.0
GREEN: MAX78000 Image (U4) P2.1
BLUE: MAX78000 Image (U4) P2.2
|D2||B (SW3)||RED: MAX78000 Audio (U6) P2.0
GREEN: MAX78000 Audio (U6) P2.1
BLUE: MAX78000 Audio (U6) P2.2
Figure 5. Bottom view of the MAXREFDES178.
There is circular general purpose mounting hole at the bottom side of the MAXREFDES178. The diameter of the hole is 5.40mm. There are no screw threads on this hole.
There is also a rectangular window at this side to assemble the enclosure and boards. This window is normally covered with a sticker.
Figure 6. MAXREFDES178 block diagram.
The connectivity board allows wired/wireless communication and interaction with the user through the capacitive touch LCD screen. There is a Power Management Integrated Circuit (PMIC) with a battery charger on this board to power the entire hardware. Audio input and output are available through the MAX9867 stereo audio codec. There is a Micro-SD card slot and on-board Quad Serial Peripheral Interface (QSPI) flash memory to store data such as images, AI networks, and audio clips. There is also an accelerometer and gyroscope on this board. The entire board is controlled by the MAX326666 microcontroller.
The MAX32666 is a dual-core microcontroller and the MAXREFDES178 firmware utilizes both cores. The Core0 of the MAX32666 handles Bluetooth Low Energy (BLE ) and USB software stacks. The Core1 is responsible for controlling the main application logic, transferring image, audio, control data among various components such as the TFT LCD, memories, audio codec, USB, and on-chip BLE radio.
A ceramic antenna is connected to the MAX32666 antenna pin to enable communication with a computer, tablet, or mobile phone.
The MAX20303 power management IC charges the battery of the camera when the USB cable is plugged. When there is no USB cable connected, it generates necessary voltages using LDOs, buck and boost converters. The boost converter output is set to 9.6V to drive the LCD LED backlight at power-up. The MAX20303 also has an integrated fuel-gauge to read the remaining battery life percentage.
The MAX32666 microcontroller is connected to the MAX20303 power management IC through the I2C bus. The MAX32666 sets buck and boost converter levels at power-up. Table 4 lists the voltage levels and functions of the integrated regulators of the MAX20303 power management IC.
Table 4 . Regulator Functions of the MAX20303
|Buck1||1.8V||Connectivity board digital supply voltage.|
|Buck2||2.8V||Power supply for MAX78000 ICs and image sensor.|
|LDO1||1.8V||LDO1 is configured as a 1.8V load switch. This switch controls digital supply voltage of the AI board.|
|LDO2||3.3V||Analog power supply for the AI board power accumulator.|
|Boost||9.6V||LCD backlight driver.|
|SafeOut||3.3V||This output powers onboard analog switches and comparators for the Serial Wire Debug (SWD) interface when the USB cable is plugged.|
|SYS_OUT||Smart Power Switch||An internal MOSFET connects BAT to SYS when no voltage source is available on CHGIN, which is the USB supply. When the USB cable is plugged, this switch opens, and SYS is powered from the input source through the input current limiter.|
The MAXREFDES178 is powered with a Lithium-Ion battery. The MAX20303 manages battery charging and gauges remaining battery capacity. The battery charge rate is set to 0.4C for 500mA battery with a resistor connected to the SET pin of the MAX20303.
An RGB LED is connected to the MAX20303 LED0, LED1, and LED2 pins. The function of this LED can be controlled through the I2C. Each color of the LED can be controlled by the MAX32666 microcontroller or the MAX20303 can be programmed to control the LED to indicate the charger status automatically.
A power button has the power on/off control of the camera. This button is connected to the MAX20303 power management IC. A short press of the button in the off state turns on the PMIC. The SYS_OUT also gets turned on and the MAX38643 buck converter IC generates a 2.8V supply for the MAX32666 microcontroller. The MAX32666 has an internal Singe Inductor Multiple Output (SIMO) power supply to generate peripheral, core, and BLE radio rails. The MAX38643 generates the input voltage of the SIMO when the camera is powered on. A long press of the power-button (> 12s) in the on state turns off the PMIC and functions as a hard shutdown.
There are two function buttons available on the Connectivity Board connected to the MAX32666 GPIO pins. The MAX20303 power button is also internally buffered and connected to the MAX32666 microcontroller called PMIC_PFN2. This allows using the power button as a third function button.
The USB connection is used to transfer data, charge and power the camera. It is also possible to debug and flash the MAX32666 and both the MAX78000 ICs through the USB connector using the MAXDAP-TYPE-C debug adapter, which is included in the MAXREFDES178 box contents. The analog comparators on the Connectivity Board sense the presence of the MAXDAP-TYPE-C board and connect the SWD and UART pins of one of the microcontrollers through the analog switches. When the MAXDAP-TYPE-C board components are aligned with the Connectivity Board, the MAX32666 microcontroller Core0 SWD interface gets connected to the DAPLink interface on the MAXDAP*TYPE-C board. If MAXDAP-TYPE-C is connected in reversed alignment, one of the MAX78000 ICs or MAX32666 Core1 gets connected to the DAPLink. The MAX32666 can select which MAX78000 IC gets connected to the DAPLink using the SLAVE_DEBUG_SEL on the MAX7325 port extender IC.
Figure 7. MAXREFDES178 connectivity board.
There are two identical MAX78000 ICs on the AI board. One of them is intended for image and video applications, and it is connected to an image sensor. The other MAX78000 ICs are intended for voice and audio applications. There is a low-power stereo audio codec and an onboard digital microphone connected to it. This configuration allows the MAXREFDES178 to run two different AI models concurrently; face identification and keyword spotting in parallel, for instance.
The image sensor is configured through the Serial Camera Control Bus (SCCB) and image acquisition is done through the Parallel Camera Interface (PCIF) peripheral of the MAX78000.
There are one RGB LED and one function button connected to each MAX78000 IC. The functions of the LEDs and buttons can be programmed by the user.
Figure 8. MAXREFDES178 AI board.
Both the MAX9867 audio codec and digital microphone use an I2S interface. An external oscillator with 12.288MHz frequency generates the audio clock. The audio codec has one standard OMTP headset with microphone jack and one stereo line-in jack to process external analog signals. All audio connectors on the MAXREFDES178 are compatible with 2.5mm miniature audio jacks.
The MAX78000 ICs are also equipped with SIMO regulators. The inputs of the SIMO regulators are supplied by the Buck2 regulator output of the MAX20303 power management IC on the Connectivity Board.
Programming and Debugging
The MAXREFDES178 uses the MAXDAP-Type-C DAPLink based debugger for debugging and programming. The OpenOCD tool gets installed among the development toolchain.
The MAXDAP-TYPE-C board has two Micro USB connectors. One Micro USB connector is directly connected to MAX32666 Microcontroller on the MAXREFDES178 Connectivity Board. This connector can be used for data transfer with the MAX32666 Microcontroller. The other Micro USB connector is present on the MAX32625PICO sub-board of MAXDAP-TYPE-C board. This connector is dedicated for debugging/programming operations. In Figure 9, the white Micro-USB cable is connected for debugging/programming and the black cable allows data transfer with MAX32666 Microcontroller.
Both cables can power the MAXREFDES178 and charge the battery. If there is no data transfer needed, connecting only the DAPLink Micro USB cable is sufficient.
Figure 9. MAXREFDES178 and MAXDAP-Type-C connection.
The MAXDAP-TYPE-C board is a carrier board for the MAX32625PICO. It interfaces SWD interface to program/debug the MAX32666 Microcontroller and MAX78000 ICs using USB Type-C pins. The MAXREFDES178 uses several pins to physically carry SWD and UART signals. Figure 10 shows the interface diagram of MAXDAP-TYPE-C when connected to the MAXREFDES178 Connectivity Board.
Figure 10. MAXDAP-TYPE-C interfaces.
If there is no programming and debugging needed, for data transfer or powering the MAX78000, a regular USB Type C cable can be used (Figure11).
Figure 11. MAXREFDES178 with USB Type-C cable.
a. Programming and Debugging the MAX32666 Microcontroller
The MAX32666 Microcontroller on the Connectivity Board can be programmed through the MAXDAP-TYPE-C board. Connect MAXDAP-TYPE-C to MAXREFDES178 (Figure 12).
There are two Micro-USB connectors on the MAXDAP-TYPE-C board. One connector is for the on-board MAX32625PICO board for programming and debugging. The other Micro-USB connector connects the MAX32666 USB peripheral to a host.
For programming and debugging, the on-board MAX32625PICO board (embedded into the MAXDAP-TYPE-C board) must be connected.
Figure 12. Programming the MAX32666 microcontroller on the connectivity board.
To start programming, the Maxim Integrated MSDK programming and debugging, on-board MAX32625PICO board (embedded into MAXDAP-TYPE-C board) must be connected.
b. Programming and Debugging MAX78000 ICs
The MAX78000 ICs on the MAXREFDES178 AI Board can also be programmed using the MAXDAP-TYPE-C board through the USB Type-C connector. To access the SWD interface of MAX78000 ICs instead of programming/debugging the MAX32666 microcontroller, plug the MAXDAP-TYPE-C board in reverse alignment Figure 13.
Figure 13. MAXDAP-TYPE-C connection for MAX78000 ICs.
There are two MAX78000 ICs on the MAXREFDES178 AI Board and only one of them can be connected to MAXDAP-TYPE-C through the SWD interface at once. The MAX32666 can control the analog switches on the MAXREFDES178 AI Board using the SLAVE_DEBUG_SEL signal.
The MAX32666 can set the state of this signal by accessing the MAX7325 I2C IO expander. Table 5 describes the SLAVE_DEBUG_SEL signal to select and which MAX78000 IC to connect to the MAXDAP-TYPE-C board through the SWD interface.
Table 5. SLAVE_DEBUG_SEL Signal
|0||MAX78000 Video is connected to SWD|
|1||MAX78000 Audio is connected to SWD|
Running the Preloaded Demo
The MAXREFDES178 is shipped with preloaded face identification and keyword spotting demos. The source code and binaries of this demo can also be found on the MAXREFDES178 product page
The face identification demo can recognize celebrity faces mentioned in the Face Identification Using MAX78000 application note:
The keyword spotting function is also executed in parallel to celebrity face identification in the second MAX78000 IC on the AI board.
Use the following steps to run the demo:
- Plug a USB-C cable to charge the device (Figure 11).
- Press power button for one second to turn on the device.
- Power LED starts blinking blue.
- Maxim Integrated logo, BLE MAC, serial number, and firmware version appear on the LCD.
- Device starts with:
- Video and FaceID disabled state.
- Audio and KWS20 (keyword spotting) enabled state.
- KWS20 classification results appear on top of the LCD.
- KWS20 keywords are: ['up', 'down', 'left', 'right', 'stop', 'go', 'yes', 'no', 'on', 'off', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'zero'].
- KWS20 classification result text changes color according to KWS20 classification confidence:
- Red → Unknown keyword.
- Yellow → Keyword detected with low confidence.
- Green → Keyword detected with high confidence.
- 'On' and 'Off' voice commands (high confidence) enable and disable LCD.
- Click 'Start Video' on LCD to start video capturing.
- 'Go' and 'Stop' voice commands (high confidence) enable and disable FaceID.
- FaceID frame appears in the center of the LCD when FaceID is enabled.
- FaceID classification results appear on bottom of the LCD.
- Celebrity FaceID database is the default FaceID database.
- Celebrity FaceID database subjects are: ['AshtonKutcher', 'BradPitt', 'CharlizeTheron', 'ChrisHemsworth', 'MilaKunis', 'ScarlettJohansson']
- FaceID classification result text, FaceID frame, and Video LED (LED A) changes color according to FaceID classification confidence:
- Red → Unknown subject.
- Yellow → Subject detected with low confidence.
- Green → Subject detected with high confidence.
- Point camera to any celebrity photo and center FaceID frame to celebrity's face.
- Battery State of Charge (SOC) is shown in right top corner of the LCD. SOC changes color according to charge state:
- Red → SOC is below 10%.
- Green → SOC is above 10%.
- Orange → USB-C is connected and battery is charging.
- Button behavior:
- Short press (one second) on power button disables video and navigates to startup screen.
- Long press (four seconds) on power button turns off the device.
- Button X enables and disables device statistics on LCD. Device statistics are:
- LCD frame per second.
- FaceID duration (MAX78000 Video CNN + embeddings calculation) in millisecond.
- KWS20 duration (MAX78000 Audio CNN) in microsecond.
- Video camera (frame) capture duration in millisecond.
- Video communication duration (frame transfer from MAX78000 to MAX32666 over QSPI).
- MAX78000 Video power in milliwatt.
- MAX78000 Audio power in milliwatt.
- FaceID embeddings database subject names.
- Button Y changes second debug channel target of Type-C connector. Second debug channel targets are:
- MAX32666 Core1
- MAX78000 Video
- MAX78000 Audio
- Button A enables/disables video Flash LED.
- Button B is unused.
- If inactivity timer is enabled (enabled by default):
- After one minute of inactivity, LCD backlight is dim automatically.
- After two minutes of inactivity, LCD and MAX78000 Video are disabled automatically.
- Inactivity timer is reset when:
- Motion (accelerometer) is detected.
- KWS20 classification is detected.
- FaceID classification is detected.
- Any button is pressed.
- LCD is touched.
- USB connection event.
- BLE connection event or any BLE command is received.
- Power LED turns solid blue when BLE peer is connected
The App-Switcher is a utility program that allows the user to select and load a variety of MAX78000 demos from a micro SD card and run them on the MRD178. The App-Switcher is supported on firmware versions V1.1.67 and higher.
Firmware Updating and SD Card Preparation
The firmware version is displayed on the LCD at power up. If the revision is below V1.1.67, see the README.MD on GitHub here for information on updating the MRD178 firmware.
Demos available for use with the App-Switcher include: FaceID, CatsDogs, UNet and WildLife. Firmware for these is available in a zip file here on the releases page. Future demos will be added to the the releases page. First, use the instructions on GitHub here to prepare and load the demo firmware to a microSD card (32GB maximum).
Activating And Operating the App-Switcher
Activating the App-Switcher
- Turn off the device by pressing power button.
- Insert micro SD card
- While pressing button X, press power button to turn on the device.
- The device will start in App-Switcher mode, showing a list of available demos
- Use the X button to cycle through the list of demos, highlighting them one at a time in green font.
- With the desired demo highlighted, press the Y button to begin updating the firmware to each of the MAX78000's and the MAX32666 devices.
Selecting and loading a demo
If the SD car is not inserted, the App-Switcher displays an error message waits for the user to restart the MRD178. Press and holding the power button until the display turns off (12-15 seconds!). Insert the SD Card, then press the power button momentarily to restart.
Complete instructions on the updating firmware, using the App-Switcher and troubleshooting, as well as the demo firmware files, are available on our MRD178 GitHub project here: refdes/README.md at main · MaximIntegratedAI/refdes (github.com)
Order NowMAXREFDES178 and Artificial Intelligence Applications
|Part Number||Buy from Maxim or Third Party|
Maxim Devices (2)
|Part Number||Name||Product Family||Order||Design kits and evaluation modules|
|MAX78000||Artificial Intelligence Microcontroller with Ultra-Low-Power Convolutional Neural Network Accelerator||MCU - Microcontroller||Buy Now|
|MAX32666||Low-Power ARM Cortex-M4 with FPU-Based Microcontroller with Bluetooth 5 for Wearables||MCU - Microcontroller||Buy Now|
Maxim Devices (2)
Design Files (8)