A few key things to know is that majority of peripherals, including sensors with I2C and SPI interfaces are connected to the ATmega32U4 microcontroller on LinkIt Smart 7688 Duo development board. The on-board microcontroller is preloaded with a bootloader that supports development in Arduino IDE.
The following sections will describe the basic ideas of communicating between MT7688AN and ATmega32U4, followed by examples of different programming models that can be used to develop the application logic.
MT7688AN is in charge of Wi-Fi communication, USB device control and SD card access. As for sensor and peripheral module connections, ATmega32U4 is used for better responsiveness in real-time control. The programming model for the MCU control is based on Arduino IDE.
The application development depends on different connectivity and peripheral interfaces. You could apply the following use cases as a reference to design and develop your own applications.
UART connectivity support
Since MT7688AN and ATmega32U4 are connected through a UART port, you can issue commands through the UART from an application written in Python, Node.js or C channel to the MCU, as shown below. On the MCU side, implement the codes to interpret commands from the MPU and perform corresponding actions by accessing sensor drivers.
Firmata protocol support
Uart connectivity support is the most general, flexible and powerful way to implement the interaction between MPU and MCU. However, this also means you need to do the programming on both MPU and MCU, which might increase the complexity of the software development.
In order to reduce the complexity of the UART command implementation, Firmata protocol is proposed as a solution. Firmata is a communication protocol between MCU and MPU. Therefore, those who are familiar with MPU programming in Python, Node.js and C can choose a language they prefer to use Firmata to run the MPU and the MCU communication without having to deal with details of the UART command implementation and MCU programming, as shown below. For example, Cylon.js is a popular Node.js framework for Robotics applications. It uses Firmata to implement the communication between MPU and MCU and thus alleviates Node.js developers from low level UART and MCU programming.
Arduino Yun Bridge library support
For Arduino Yun developers, the MPU Linux side acts as a black box for simply providing Wi-Fi connectivity and USB / SD peripheral accessibility. LinkIt Smart 7688 Duo development board also provides Arduino Yun Bridge library implementation for developers to build their projects. This gives developers not only a familiar way for development but also access to a more stable, powerful and energy efficient platform that MT7688AN can deliver.