FAQ

On this page you can find answers to many of the questions developer frequently ask about the MediaTek LinkIt™ Smart 7688 developer platform. The questions and answers are presented in the following categories:

 

About the development platform

What is the MediaTek LinkIt™ Smart 7688 development platform?

The LinkIt Smart 7688 development platform is designed to enable the prototyping of IoT devices. Based on the OpenWrt Linux distribution it’s ideal for devices such as Wi-Fi security web cameras and sensors for the home or office, real time camera monitor for toddler and seniors as well as cloud-based applications.

The platform provides a generous amount of memory and storage to enable rich application developments. It also offers options to create device applications using Python, Node.js and C.

What can I develop using the LinkIt Smart 7688 development platform?

LinkIt Smart 7688 is essentially a Linux computer with Wi-Fi connectivity. With the OpenWrt Linux distribution and the support of programming languages — Python, Node.js and C — you can create applications including but not limited to gateways, communication bridges, video streaming and home automation.

What’s the difference between the LinkIt Smart 7688 and LinkIt Smart 7688 Duo development boards?

Both development boards run the OpenWrt operating system and provide the same development environment. The difference is in the peripheral controls such as GPIO, I2C, SPI, PWM and alike. On the LinkIt Smart 7688 board, the I/O pins are broken out from MT7688AN directly. But on the LinkIt Smart 7688 Duo board, the I/O functions are broken out from the MCU for better control. This enables developers to use the Arduino development environment to control the MCU in addition to using physical pin to establish communication between MT7688AN and the MCU. For more details, please refer to Chapter 6, “Peripheral Programming on LinkIt Smart 7688 Duo”, of the LinkIt Smart 7688 Developers’ Guide .

What is MediaTek MT7688AN?

MediaTek MT7688AN is a highly integrated SOC with 1T1R 802.11 b/g/n Wi-Fi radio, a 575/580MHz MIPS® 24KEcTM CPU, 1-port fast Ethernet PHY, USB2.0 host, PCIe, SD-XC, I2S/PCM and multiple low-speed Inputs and Outputs such as GPIO, I2C, SPI, PWM and alike. For more details, please refer to the MT7688AN datasheet.

Is Smart Connection supported on the LinkIt Smart 7688 development platform?

No. The Smart Connection feature isn’t included in the OpenWrt release used by LinkIt Smart 7688. If you’d like to get more information on Smart Connection, please contact us.

Is HomeKit supported on the LinkIt Smart 7688 development platform?

No. The HomeKit feature isn’t included in the OpenWrt release used by LinkIt Smart 7688. If you’d like to get more information about HomeKit, please contact us.

What is the MediaTek AP SOC SDK?

The MediaTek AP SOC SDK is a Linux distribution used for the MediaTek MT76xx series and is maintained by MediaTek. LinkIt Smart 7688 uses OpenWrt which provides a newer, standardized Linux kernel.

Is eCos supported on the LinkIt Smart 7688 development platform?

No, the LinkIt Smart 7688 HDKs support OpenWrt only. If you’re a MediaTek customer and require eCos support, please use eService. If your business want to use eCos or other features not supported by the LinkIt Smart 7688 HDKs, please contact us.

What’s the difference between MT7688AN and MT7688A?

They are the same. MT7688AN is the formal name used in the chipset’s datasheet.

What’s MT7688KN and how is it different from MT7688AN?

MT7688KN has different package from MT7688AN. The MT7688KN package contains 8MB DDR1 DRAM and doesn’t support SD card for entry-level router applications. For more details, please refer to the MT7688AN datasheet.

What’s MT7620 and how is it different from MT7688AN?

MT7688 is the successor of MT7620. It provides more peripheral I/O types and is more energy efficient than MT7620.

What’s MT7628 and how is it different from MT7688AN?

The MT7628 series are pin-to-pin compatible with the MT7688 series. However, MT7628 comes with a 2T2R antenna, while MT7688 only supports 1T1R antenna.

What is Ralink?

Ralink Technology was a Wi-Fi chipset provider acquired by MediaTek in 2011. The MT76xx series inherit some architecture from Ralink’s RT2xxx/RT3xxx series.

Can you show me any examples of what other makers/manufacturers have created with LinkIt Smart 7688?

You can find commercial products and example projects and based on LinkIt development boards in our Showcase page. 

Hardware features

What I/O ports does the LinkIt Smart 7688 and 7688 Duo development board provide?

Both development boards provide Ethernet, USB Host, micro SD, I2C, PWM, SPI, GPIO, and UART. In addition, the LinkIt Smart 7688 board also provides I2S while the LinkIt Smart 7688 Duo board provides ADC.

What is the power consumption of the LinkIt Smart 7688 development boards?

Please refer to Section 2.2.6 “USB Power” of the LinkIt Smart 7688 Developer’s Guide for detailed power consumption information.

Can I use an SD Card to boot up the board?

No. MT7688AN doesn’t support boot up from an SD card.

Does the LinkIt Smart 7688 development platform support hardware AES?

Yes. The Wi-Fi driver uses hardware AES engine for data transmission.

Does the LinkIt Smart 7688 have an FPU?

No. MT7688AN doesn't have a floating point unit hardware.

Does the LinkIt Smart 7688 come with headers already soldered on?

Yes. The headers are soldered on LinkIt Smart 7688.

What do the LED (Wi-Fi) blinks represent?

The Wi-Fi LED represents the status of the board including system initialization, firmware upgrade, Wi-Fi connection mode and status. For more details on the LED status, please refer to Figure 15 “Wi-Fi LED Status” and Section 2.2.3 “LEDs” of the LinkIt Smart 7688 Developer’s Guide.

What’s MT7688AN’s IoT device and gateway mode?

The MT7688AN chipset acts as a 5-port Wi-Fi gateway when it’s in gateway mode. Since LinkIt Smart 7688 runs in IoT device mode, MT7688AN is switched to device mode to enable the peripheral I/O pins that are shared with the 5-port Ethernet pins used in the gateway mode.

What is Wi-Fi AP and Station mode?

When the LinkIt Smart 7688 development board is in AP mode, it acts as an AP that allows other devices to connect to it through Wi-Fi. Use Wi-Fi to connect to the board for initial setup and configuration.

When the board is in Station mode, it acts as a Wi-Fi client device that can connect to an existing AP to access external networks such as the Internet.

Can the LinkIt Smart 7688 development board support both AP and Station mode at the same time?

Before the firmware v0.9.4, LinkIt Smart 7688 development boards can only be in either AP or Station mode at a time. From v0.9.4, it can support Repeater mode.

How do I switch between AP and Station modes?

There are two ways to switch between the AP and Station modes on the LinkIt Smart 7688 development boards and they are:

  • From the Web UI.
  • Through the OpenWrt UCI commands. Please refer to Section 4.6.5, "Connecting LinkIt Smart 7688 to a Wi-Fi Access Point to Access the Internet", of the LinkIt Smart 7688 Developer’s Guide for more details.

How do I find the LinkIt Smart 7688 development board’s IP address when it’s in Station mode?

The steps to find the board’s IP address are:

  • Make sure your host PC is within the same network as the development board.
  • Make sure your host PC supports mDNS. Please refer to Section 4.5.2, "Local Domain", of the LinkIt Smart 7688 Developer’s Guide for more details.
  • Open a terminal console and type ;ping mylinkit.local and you’ll see the IP address of the development board.

My virutal machine cannot detect the board with mylinkit.local, why?

In a simulated Linux environment such as virtual machine, mDNS isn’t supported and therefore you need to have the IP address of the board in order for it to be identified. To find the IP address of the board, type ifconfig in the system console. The IP address should show in the first paragraph under apcli0, as shown below. You can also ping mylinkit.local in the host PC to get the IP address when your PC and the board are under the same local network.

I can't connect to URL mylinkit.local using a browser, why is that?

If you’re using Windows 7, please install Bonjour print service (32 or 64 bits), restart your computer and try mylinkit.local on your browser again. Please make sure your PC is within the same local network as LinkIt Smart 7688.

Is the Wi-Fi driver open source?

The MAC802.11implementation for MT7688AN open source Wi-Fi driver is developed by community developers. Please refer to the project page for more information.

SSH access report an error showing "Host Identification Has Change"

If you see an error message similar to below:

It indicates you’ve used a different LinkIt Smart 7688 board or upgraded a new firmware and tried to access system console using SSH. The new firmware or different board creates a new host identification which is different from the previous one, hence the error. To fix this issue, you need to remove the old host entry from the ~/.ssh/known_hosts file, as shown below:

My onboard flash is very slow and seems broken, why?

The SPI NOR flash has limited write cycles (about 100,000 times) and the file system operation is not atomic. So, if the flash writes back too frequently or has been exposed to power cut during file write-back operation, the flash may be damaged as a result. Therefore, it’s recommended to use the temp file system (/tmp) or write to external storages such as USB drive or SD card for data I/O.

The file system seems corrupted / the orange LED is always on during the boot up process and can't work normally, why?

You can reprogram the firmware in the flash to fix it first.

Since the mtd layer is essentially a block device and has no atomic I/O operations, it's possible for the files system to be corrupted if an I/O is cut during its operation (e.g. power off). As a result, when you want to turn off the LinkIt Smart 7688, it's not recommend to turn its power off / unplug the USB cable directly since it may cause the file system corrupted. A recommended process is to issue a reboot or poweroff command* in the system console (via SSH or UART) to force all unsynchronized data to be flushed to the file system. After this is done and when you see the orange LED blinks once and lights up, then it is safe to cut the power to this board.

* there is no shutdown command in OpenWrt and the poweroff command takes the same effect as the reboot command. When the system finishes all clean up tasks and begins to reboot, you can see the orange LED blinks once.

Why did my board failed to start up due to corrupted file system?

It could be that the onboard flash file system is damaged from the same problem as above.

My Wi-Fi SSID shows LinkIt_Smart_7688_E17628 instead of LinkIt_Smart_7688_(MAC address) with last 3 bytes of the real MAC address appended. What happened?

In very rare cases, the default SSID will have a postfix _E17628 instead of the last 3 bytes of the real MAC address. You can perform a factory reset to make it restore back to correct SSID with last 3 bytes of real MAC address appended.

Why is the Wi-Fi MAC address in AP mode different from the one in Station mode?

This is the driver behavior. The driver will treat AP mode and Station mode as two Wi-Fi devices and thus gives two different MAC addresses to them. For details, please refer to the section of MAC address rules for MBSSID.

What can I do if my onboard flash is full?

You can use external storage device for more data storage or extend the root file system onto the external storage devices.

Why is my I2C device not working?

MT7688AN doesn't provide I2C clock stretching and repeated start functions. You may need to check if your I2C device can be configured to disable these two I2C functions.

Why does my board keep rebooting when driving a servo?

Please connect the servo with an external power source instead of using VOUT on LinkIt Smart 7688 to avoid dealing with board insufficient power.

Does LinkIt Smart 7688 support high speed USB host devices?

Yes, from firmware (FW) version v0.9.3 onwards it supports high speed. It can detect USB 2.0 devices connected to the USB host.

How can I get more information about LinkIt Smart 7688 GPIO details?

The suggested way for using GPIO is by using the sysfs (https://www.kernel.org/doc/Documentation/gpio/sysfs.txt).

If you prefer to use API calls, libmraa provided in LinkIt Smart 7688 is also a recommended mechanism. 

And if you're interested in the register level information, you can have some code tracing on GPIO related patches under /openwrt/target/linux/ramips/patches-3.18 after you clone the OpenWrt sources. Through these patches, you can find information about where those GPIO related files are in the Linux kernel and how to make the Linux kernel support MT7688 GPIO functions and the corresponding register information.

Another good starting point is from our pinmux switch command implementation: https://github.com/MediaTek-Labs/linkit-smart-7688...master/mtk-linkit/src/pinmux.c. There is an example showing a 7.4Mhz toggle rates of GPIO control.

For more information, check out the MT7688 datasheet available at LinkIt Smart 7688 Resources.

How do I scan for available Wi-Fi networks?

You can use the below command in the console to scan for Wi-Fi networks: iwinfo ra0 scan.

How can I use channel 13 (ch13)?

For countries which support Wi-Fi channel 13, please modify the /etc/config/wireless file to set 'country' and 'region' options to proper values. For example, if the country is France, the configuration would be:

config wifi-device 'radio0'
...
option country 'FR'
option region 1
...

Then save this file and reboot the platform. The support for channel 13 would then be available. Two-letter country code is used and the region-code-to-channel mapping is listed below:

Region Channels
0 1-11
1 1-13
2 10-11
3 10-13
4 14
5 1-14
6 3-9
7 5-13

Software development

What do I need to start using the LinkIt Smart 7688 development boards?

To start using one of the boards you’ll need the following:

  • A laptop or smartphone with Wi-Fi connectivity, to connect to a LinkIt Smart 7688 board so you can use the Web UI to configure the board.
  • A micro-USB type-B cable and a USB power source to power the board.
  • A Wi-Fi network, to provide Internet access to the board.

In addition, it’s recommended that a micro SD card is used to expand the on-board flash storage. This is because the on-board flash has limited storage and write-cycle.

You may also find the following useful:

  • An OTG (On the Go) cable, to connect devices with USB Type A connector to the LinkIt Smart 7688 board’s USB host (micro B type).
  • A USB drive, as an alternative method to upgrade the system firmware and boot loader.
  • A UART to USB cable, to access the Linux console.

Where can I download the software and tools for LinkIt Smart 7688?

You can download the latest firmware, boot loader and OpenWrt SDK and tool chain from the LinkIt Smart 7688 Downloads page.

Why does the LinkIt Smart 7688 Duo COM port change frequently in Arduino IDE 1.6.5?

This is a known issue when using Arduino IDE 1.6.5. This issue is discussed in the Arduino issue Serial Port selected disconnects after upload.

You can use Arduino IDE 1.6.4 to avoid this issue, or program a new version of the Arduino boot loader. Please refer to Section 6.6.8, 6.6.9 or 6.6.10 of the LinkIt Smart 7688 Developer’s Guide for information on programming the boot loader.

Where can I get the system firmware and boot loader source code?

For the system firmware source code, please refer to the linkit-smart-7688-feed repository on GitHub.

For the boot loader source code, please refer to: linkit-smart-7688-uboot repository on GitHub.

How do I install COM port driver for LinkIt Smart 7688 Duo on Windows 8?

You need to disable driver signature verification to install the driver on Windows 8.

What programming languages and environment can I use to develop applications for LinkIt Smart 7688?

You can use Python, Node.js and C languages to develop your programs or applications on LinkIt Smart 7688. To compile the C programs, you need to cross compile under a Linux or Mac OS X environment. Windows isn’t supported by the current tool chain, therefore a virtual machine needs to be installed on a Windows platform for C program cross compilations.

Can I program in C/C++? Are there any limitations?

Yes you can program in C/C++. For Windows operating system users, you need to install a virtual machine to run the cross compile tool chain, which supports Linux and Mac OS X only at the time of writing.

What are UPM and MRAA?

MRAA is an open source project which provides C/C++ library with bindings to Python and Node.js to interface with the I/O on Linux platforms. It supports a structured API, where the port names/numbers match the board that you are using.

UPM is a repository that holds a collection of sensor and module drivers written in MRAA. Please refer to the official project pages for more details:

What is Firmata?

Firmata is a communication protocol operating between an MCU and MPU. Many Firmata implementations have been used to date due to its flexibility. Therefore, developers who are familiar with MPU programming in Python, Node.js or C can choose a language they prefer and use Firmata to run the communication between the MPU and MCU rather than having to program the MCU to implement UART commands.

What is Bridge Library?

Bridge Library is the mechanism used in Arduino Yún for communication between an MPU and MCU. LinkIt Smart 7688 Duo supports the Arduino Yún Bridge library implementation to enable developers build their projects in the way they’re familiar with. For more information, please refer to Bridge Library for Arduino Yún on the Arduino website.

Where can I find more information or help on issues I encounter during development?

If you encounter issues during development, the MediaTek LinkIt Smart 7688 Developer’s Guide includes a Troubleshooting section that describes how to identify and correct issues.

If the guide doesn’t help solve your issue then there are forums for LinkIt Smart 7688. Here you may be able to find (by searching for relevant words related to your issue) that others have encountered and solved the same issue. If you cannot find a solution then you can use the forum to pose a question to the Labs community.

Can I create custom OpenWrt images for the LinkIt Smart 7688 and Duo?

Yes. Please follow the instructions here : Build the firmware from a source code.

How do I change the default debug baud rate?

You can use the below command to change the debug baud rate: 

stty -F /dev/ttyS2 115200 

Please refer to the OpenWrt WiKi for more information.

Change the baud rate in firmware (Linux side) :

Get the firmware source code and modify the file intarget/linux/ramips/dts/LINKIT7688.dts. 

Find the line as follows: bootargs = "console=ttyS2, 57600"; 

Modify the baud rate value and rebuild the firmware. 

Change the baud rate in bootloader :

Get the source codes of the boot loader and then open include/configs/rt2880.h file. Next, find the below definition: 

#define CONFIG_BAUDRATE 57600 

Modify the baud rate and rebuild the boot loader and upgrade the boot loader on the board. WARNING: before upgrading the boot loader, make sure you've read the manual thoroughly because a failed upgrade process on boot loader will brick the board permanently.

How can I do cross compilation for LinkIt Smart 7688?

Building C/C++ binaries for LinkIt Smart 7688 requires cross-compilation and it's provided in our OpenWrt SDK. 
Follow the steps to build an example C/C++ ipk file that can be installed with the opkg command. 

Check out the tutorial for details: C/C++ Programming.

What can I do when the Wi-Fi driver binary mismatched the current version of the Linux kernel in OpenWrt when building the firmware from sources?

Only selected Linux kernel versions on OpenWrt Chaos Calmer are supported by the Wi-Fi driver binary (3.18.21 ~ 3.18.44). For configuring the build flow to have a successful build, please refer to the discussion on the forum.

When I compile the source, it complains about "mt_wifi.ko_3.18.xx No such file or directory". What happened?

LinkIt Smart 7688 uses the MediaTek proprietary Wi-Fi driver. While OpenWrt Chaos Calmer is evolving, only selected Linux kernel versions of it are supported by the Wi-Fi driver (3.18.21 ~ 3.18.44). If you are looking for a non-proprietary Wi-Fi driver, the mt76 project would be a reference of the choice.

Hardware development

Can I design my own hardware to use LinkIt Smart 7688?

Yes, schematic and layout design for the development boards are available for download as part of the hardware references designs for LinkIt Smart 7688 and LinkIt Smart 7688 Duo. A datasheet for the chipset is also available.the development boards

How do I upgrade the boards’ firmware?

Download the latest firmware and use the LinkIt Smart 7688 Web UI or a USB drive to upgrade the firmware. For more details, please refer to Section 4.6.1, "Upgrading Firmware", of the LinkIt Smart 7688 Developer’s Guide.

Should I backup my data before upgrading the firmware?

Yes, because all user data and system configuration details will be erased from the board when performing a firmware upgrade.

Why do I get a "Cannot satisfy the following dependencies for kmod-XXXXXX" error when doing the opkg install kmod-XXXXXX operation?

This is due to the Linux kernel mismatch between the firmware and the package repository. It mostly happened when you are using a self-built firmware instead of a firmware released from MediaTek Labs. At the time of this writing (Feb/2016), the Linux kernel version of the v0.9.2 firmware is 3.18.21 and so is the package repository (http://mirror2.openwrt.org/mt7688_v0.9/) applicable to this firmware.

If you clone sources from git.openwrt.org/15.05 and build the firmware, you will get a firmware with Linux kernel 3.18.23. As a result, if an opkg install kmod-XXXXXX command is issued, a kernel dependency error will then be reported because it will try to install kernel module built with kernel 3.18.21 (from http://mirror2.openwrt.org/mt7688_v0.9/) on the target system with kernel 3.18.23.

You can rebuild the kernel modules to resolve this issue.

How do I use a USB drive to flash firmware to the LinkIt Smart 7688 development board?

The steps to flash firmware on the LinkIt Smart 7688 development boards are:

  • Save the firmware file (lks7688.img) to the root directory of a USB drive.
  • Plug the USB drive to the development board.
  • Press the Wi-Fi and MPU (Reset) buttons, then release the MPU Reset button only while holding the Wi-Fi button for at least 5 seconds and release when the Wi-Fi LED turns off, see below for detailed LED status. Do not press the Wi-Fi button for longer than 20s or the development board will enter boot loader mode and erase all user data.


Flash firmware LED Status

Purchasing the LinkIt Smart 7688 development board

Where can I purchase the LinkIt Smart 7688 HDKs?

You can purchase the following HDKs from Seeed Studio’s website:

Going to market with LinkIt Smart 7688-based IoT devices

Where can I find the certificates for LinkIt Smart 7688?

The FCC(US), CE(Europe) and NCC(Taiwan) certificates for LinkIt Smart 7688 and LinkIt Smart 7688 Duo can be found on the Documentation page.

LinkIt Smart 7688 Development Troubleshooting

Devices connected using LinkIt Smart 7688 can’t communicate with each other, why?

This feature is not supported in firmware v0.9.3.

Where can I find more information or help on issues I encounter during development?

If you encounter issues during development, the MediaTek LinkIt Smart 7688 Developer’s Guide includes a Troubleshooting section that describes how to identify and correct issues. If the guide doesn’t help solve your issue then there are SDK and HDK forums for LinkIt Smart 7688. Here you may be able to find (by searching for relevant words related to your issue) that others have encountered and solve the same issue. If you cannot find a solution then you can use the forum to pose a question to the Labs community.

I'm having problems while mounting root FS on an SD card, why?

MT7688 doesn't support boot up from an SD card directly. But OpenWrt supports a feature (extroot) for mounting the root fs on an external storage. On LinkIt Smart 7688, you can use a USB drive or an SD card for that. If you are having issues while mounting root fs, make sure your SD card is  not  in NTFS file format.

Check out the tutorial "How to mount root FS on an SD card": Mounting the root FS on an SD card for details.