Archive

Posts Tagged ‘linkit’

Mediatek MT2533D is a Bluetooth 4.2 SiP for Smart Headphones & Hands-Free Systems

January 9th, 2017 3 comments

There used to be a time when most products were based on a general purpose MCU or processor that you would interface to over chips like audio codecs, memory chips, flash storage, etc…, but in order to cut costs, application specific SoCs have become quite common over the year, so we’ve had mobile application processors for several years already, but more recently we got “wearables” SoCs and “Smart Home” SoCs, and Mediatek has launched MT2533D “headphone” SiP (System-in-Package) combining a Cortex-M4 MCU, 4MB PSRAM, an audio codec, and a dual mode Bluetooth subsystem.

mt2533-block-diagramMediatek MT2533D specifications:

  • MCU –  ARM Cortex-M4 @ up to 208MHz with 32KB L1 cache, FPU, MPU, AES 128/192/256 crypto engine and TRNG
  • Memory – 160kB SRAMs, 4MB pseudo SRAM
  • Storage – 4MB flash
  • Wireless Connectivity – Bluetooth 4.2 dual mode (classic and low energy)
  • Audio
    • AAC/SBC for Bluetooth audio
    • CVSD/mSBC for Bluetooth speech
    • PCM playback: 8-48kHz sample rate
    • PCM record: 8kHz and 16kHz sample rate
    • Dual-mic noise suppression and acoustic echo cancellation
  • Display
    • Hardware 2D accelerator
    • DBI serial interface up to 320×320 @ 30 fps
    • 1-lane MIPI DSI interface up to 480×320 @ 30 fps
  • Camera – Mediatek camera serial interface up to VGA resolution @ 30 fps with YUV422 or RGB565
  • Other Peripherals
    • USB 2.0
    • 3x UARTs, 3x I2Cs
    • 6x PWMs, 4x SPI masters, SPI slave
    • I2S
    • SDIO v2.0
    • 5-channel ADC
    • Up to 38 GPIOs
  • Package – 172-ball TFBGA with 0.4mm pitch
  • Dimensions – 6.2 x 5.8 x 1.05 mm
  • Ambient temperature – -40°C to 85°C

There are interfaces for small displays and low resolution cameras, as well as a fair amount of I/Os, so it could certainly be use for audio applications outside of simple headphones, not matter how “smart” they may be.

One interesting part is that I did not get the news from MediaTek, but instead MediaTek Labs, Mediatek’s Internet of Things (IoT) developer program, and MT2533 is supported by the MediaTek LinkIt Development Platform for RTOS based on FreeRTOS. That means the SiP will be available to makers, and not only large companies, and development and debugging can be done in ARM Keil μVision, IAR Embedded Workbench and GCC like other LinkIt platforms. A development board or, like Mediatek calls it, an HDK (Hardware Development Kit), based on MT2533D could also be launched in the near future.

However Mediatek Labs only mentioned that MT2533D will be available to device makers in Q1 2017, and the developer documentation and tools will be released in Q3 2017, so we will have to wait for a while before being able to play with the platform. More details can be found on MT2533D product page.

$20 MediaTek LinkIt 7687 Arduino Compatible WiFi IoT Board Runs FreeRTOS

April 22nd, 2016 1 comment

MediaTek Labs has already launched several WiFi boards for IoT applications starting with LinkIt ONE, and later LinkIt Smart 7688 running OpenWrt, and the company is now about to launch LinkIt 7687 HDK (Hardware Development Kit) powered by Mediatek MT7687F Cortex-M4 SoC,  running FreeRTOS, and developed & produced by Silicon Application Corp (SAC).

LinkIt_7687LinkIt 7687 (WS3489) board specifications:

  • SoC – MediaTek MT7687F ARM Cortex-M4F MCU @ 192MHz with 352 KB SRAM, 64KB ROM, and 2 MB serial flash in package, integrated security engine, and built-in 802.11n WiFi. 8×8 mm 68-pin QFN package
  • Connectivity – 1×1 802.11 b/g/n WiFi with on-module PCB antenna and U.FL connector.
  • USB – 1x micro USB for power, debugging (Coresight Debug Access Port + Virtual COM)
  • Expansion
    • Arduino Uno Rev. 3 headers + an extra 8-pin extension connector.
    • Mass Storage Device (MSD) flash programming interface.
    • Reserved headers for power consumption (current) measurement.
  • Misc – LEDs for UART communication, power, and 6x user customizable; 3x push buttons for reset, RTC interrupt, and external interrupt; configuration jumpers for power source and boot mode (embedded flash or UART)
  • Power supply – 5V via micro USB port, or 1.8 to 3.2V using VIN pin
  • Dimensions – 108.5 x 60.5 mm
  • Weight – 25 grams
  • Temperature Range – Operating: -40 to 85°C
Mediatek MT7687F Block Diagram

Mediatek MT7687F Block Diagram

This is the first board for MediaTek LinkIt Development Platform for RTOS, which is said to provide “the convenience of a single toolset and common APIs implemented over a popular RTOS”, in this case, FreeRTOS with additional components such as TCP/IP, SSL/TLS, HTTP (client and server), SNTP, DHCP daemon, MQTT, XML and JSON. You can download MediaTek LinkIt SDK v3.0, compatible with Windows and Linux operating systems, to work on it.

LinkIt_for_RTOS

Documentation for the board, including datasheets, a user’s guide, and the hardware reference files, can be found on Hardware Development Kits for the MediaTek LinkIt Development Platform for RTOS page.

Mediatek MT7687 HDK and MT7687 WiFi module are shown to be “coming so” for respectively $19.99 and $4.99.

Via HackerBoards (previously LinuxGizmos)

Quick Start Guide for LinkIt Smart 7688 (Duo) Board

December 1st, 2015 2 comments

Mediatek Labs has announced LinkIt Smart 7688 development boards powered by Mediatek MT7688 WiSoC earlier today, but I was selected for a close beta several weeks before the launch, and I’ve had time to play a little with the boards, so today I’ll report my experience getting started with LinkIt Smart 7688 amd 7688 Duo by writing a Quick Start Guide showing how to setup the boards, upgrade firmware, access the serial console, run “Blink LED” sample applications with Python and JavaScript, as well as the Arduino IDE, and connect to the Internet.

Initial Setup

You’ll only need a micro USB cable and a computer with WiFi and USB ports to get started with the board. The green LED (top) for the MCU will turn on immediately, while the red LED (bottom) for WiFI will blink once, and only turn on continuously after 5 seconds, and within 30 seconds after that you should get WiFi connectivity.

LinkIt_Smart_7688_USB_Power

Since you just need a web browser any operating system will do, and at first I used a desktop computer running Ubuntu 14.04 without WiFi (and not working WiFi dongle left), so I wondered if I could access the serial console via the USB connection, and ran dmesg:

The device is recognized as a USB modem, so it was not an option, and instead I fired up my Ubuntu laptop instead. You can still access the serial console over UART with your own USB to serial debug board by connecting TX and Rx to P8 and P9 pins of Smart Link 7688 (DUO) board. I’ll show that a little later in this guide.

The next step is to connect to LinkIt_Smart_7688_XXXXXX access point with your computer, where XXXXXX is your board’s MAC address suffix. Once you’ve connected to this open WiFi network, simply open a web browser, and type mylinkit.local to access LinkIt Smart 7688 webUI and input a root password of your choice.

linkit_smart_7688_setup

Click to Enlarge

This step will work out of the box with Linux, Windows 8.1/10 and Mac OS X operating systems, but you’ll need to install Bonjour Print Service in Windows 7. If you don’t want mDNS, you can also use the default address: 192.168.100.1.

SDK and Firmware Upgrade

Before upgrading the firmware, you’ll need to download the SDK, which Mediatek calls “LinkIt Smart 7688 SDT” from MediaTek Labs website which will contains the bootloader and firmware directories, documentation including a Getting Stated Guide and a developer’s guide, as well as the toolchain.

After signing to the web UI, you should find the “Software information” section where you can see the bootloader and firmware version, and an “Upgrade firmware” button.

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Once you click Upgrade Firmware button, you’ll be able to browse for the lks7688.img file in firmware directory of the SDT, and click on Upgrade & Restart to complete the installation.

If for some reasons you can’t access your board anymore, you can also perform the upgrade by copying lks7688.img file to a USB flash drive and connect it via a USB OTG adapter.

LinkIt_Smart_7688_Serial_Console_USB_OTG

LinkIt Smart 7688 Board with USB Flash and USB to TTL Board (Click to Enlarge)

While the board is running, keep pressing the WiFi button, while pressing the MPU button for a short time, and only release the WiFi button after it becomes solid after around 5 seconds, and the firmware update should start with the red WiFi LED blinking slowly until the update is complete (2 to 3 minutes).

Serial Console on LinkIt Smart 7688 (DUO)

If you don’t get any issues, the easiest way to connect to the board is via SSH:

or

But in case you encounter some problems with the configuration, and want to find out what’s going on you’ll need to connect a USB to TTL board as shown in the picture above. You’ll need to connect GND, Tx to P9 pin and Tx to P8 pin, and configure you favorite console program be it minicom, screen or putty to 57600 8N1.

Here’s the full boot log in LinkIt Smart 7688 board:

Running Sample Code in LinkIt Smart 7688

So now that you should have access the terminal either via SSH or UART, you can run some pre-loaded JavaScripts or Python sample in /IOT/examples/ directory:

Let’s blink the WiFi LED with the Python script:

The red LED should blink around twice per second. Press Ctrl+C to interrupt the program. So what’s the code like?

If Python is not your thing, but you’re quite happy coding with JavaScript (node.js), you can blink the LED too:

The program takes a little longer to start, but it works, and the LED blinks once a second. Here’s the code:

Running Sample Code in LinkIt Smart 7688 DUO

If you have a LinkIt Smart 7688 DUO, you’ll have want to install Arduino IDE. I could not perform this step fully, as I had troubles to connect and upgrade the firmware to the beta board. But here are the main steps:

  1. Download and install Arduino 1.6.5
  2. Start Arduino, and go to File->Preferences and add http://download.labs.mediatek.com/package_mtk_linkit_smart_7688_test_index.json to Additional Boards Manager URLs.
    LinkIt_Smart_7688_DUO_Arduino_BSP
  3. Click OK, and go to Tools->Boards->Board Manager, and scroll down to install Mediatek LinkIT Smart Boards by Seeed Studio and MediaTek Labs.

    Click to Enlarge

    Click to Enlarge

  4. Now select LinkIt Smart 7688 Duo in Tools->Boards, and the serial interface for LinkIt Smart 7688 in Tools->Serial. (It was /dev/ttyACM0 with my old firmware)
  5. Write a short sketch to blink D13 LED on the board:
  6. Click on verify, click on upload, but it’s not done yet as you have to run a python program to send command over the serial interface between MediaTek MT7688 and the Atmel AVR MCU. So connect to the board and write blink_on_duo.py Python script using vi / vim:
  7. And now you can blink the LED with the script:

So LinkIt Smart 7688 Duo is more versatile thanks to its MCU, but it takes some efforts to blink a simple LED.

Connecting to the Internet and OpenWRT Configuration

So far we’ve done everything in the local network using the board as an access point, but many application will require some connection to the Internet. To connect your board to your WiFi router login to the webUI again, and select Network.

Mediatek_LinkIt_Smart_7688_AP_Configuration

Now switch to Station mode, and click refresh.Mediatek_LinkIt_Smart_7688_Station_ConfigurationNothing will happen, but if you click again on the zone right above the Refresh button a list of access point will show up. LinkIt_Smart_7688 is listed here, as I had a LinkIt Smart 7688 DUO running at the same time. Select the access point you want to use, input the password, and click on Configure & Restart.

Now make you sure computer is connected to the same access point or at least is one the same subnet, and go again to linkit.local in your browser to access the webUI, or SSH to the board. In my case I had changed the device name to CNXSoft_linkit and neither mylinkit.local or CNXSoft_linkit.local, or cnxsoft_linkit.local would work, so there may still be a bug here… So instead I check the new IP address via the serial terminal: 192.168.0.105 to make sure the connection was fine, but you can do so with your WiFi router client list too. I also pinged the Internet from the serial console:

Success!

If you want more control of your network configuration you can click on OpenWRT in the webUI, or go directly to http://IP_address/cgi-bin/luci to access LuCI’s web interface for OpenWRT.

Click to Enlarge

Click to Enlarge

That concludes this getting started guide for LinkIt Smart 7688 and Linkit Smart 7688 Duo boards, to go further you may want to read LinkIt Smart 7688 Developer’s Guide, and tutorials found in the SDT, and build your own OpenWRT image from source code. You can purchase the LinkIt Smart 7688 and 7688 DUO boards for respectively $12.90 and $15.90 on Seeed Studio.

Mediatek LinkIt Smart 7688 and Smart 7688 DUO Boards Run OpenWRT for IoT Applications

December 1st, 2015 1 comment

MediaTek LinkIt is a collection of development platforms designed for the prototyping of wearables and Internet of Things (IoT) devices, and last year they started with LinkIt ONE board based on Mediatek MT2501 “Aster” micro-controller and featuring WiFi, Bluetooth, GPSD and GSM/GPRS connectivity. Mediatek Labs has now launched two new LinkIt board, namely LinkIt Smart 7688 and LinkIt Smart 7688 DUO, both powered by Mediatek MT7688 MIPS processor and running OpenWRT, with the latter also adding an Atmel ATmega32U4 for Arduino compatibility.

LinkIt_Smart_7688

LinkIt Smart 7688 (Left) and Smart 7688 DUO (Right) Boards are Breadboard-Friendly Too

LinkIt Smart 7688 Board

LinkIt Smart 7688 Board (Click to Enlarge)

LinkIt Smart 7688 Board (Click to Enlarge)

LinkIt Smart 7688 is then the simpler of the two with the following specifications:

  • Processor – Mediatek MT7688AN MIPS24KEc processor @ 580 MHz with WiFi
  • System Memory – 128MB DDR2 RAM.
  • Storage – 32MB flash + micro SD slot
  • Connectivity – 1T1R Wi-Fi 802.11 b/g/n with chip antenna and I-PEX conector
  • USB – 1x micro USB host port, 1x micro USB port for power
  • Expansion – 2x 18-pin headers with GPIOs, I2C, I2S, SPI, UART, PWM and Ethernet Port.
  • Misc – MPU reset and WiFi reset buttons, MPU EJTAG solder pads
  • Power Supply – 5V via micro USB port, or 3.3V via header
  • Dimensions – 55.7 x 26 mm
Bottom of Smart 7688 Board (Click to Enlarge)

Bottom of Smart 7688 Board (Click to Enlarge)

CL245A on the back of the board is a switch IC to “bypass MT7688AN bootstrap behavior”.

LinkIt Smart 7688 DUO

LinkIt Smart 7688 Duo (Click to Enlarge)

LinkIt Smart 7688 Duo (Click to Enlarge)

The DUO board is pretty similar, and adds Atmel MCU and reset button, 4 more I/O pins, and is slightly longer:

  • Processor – Mediatek MT7688AN MIPS processor @ 580 MHz with 64 KB I-cache, 32 KB D-cache
  • System Memory – 128MB DDR2 RAM.
  • Storage – 32MB flash + micro SD slot
  • MCU – Atmel ATmega32U4 AVR @ 8 MHz
  • Connectivity – 1T1R Wi-Fi 802.11 b/g/n with chip antenna and I-PEX conector
  • USB – 1x micro USB host port, 1x micro USB port for power
  • Expansion – 2x 20-pin headers with GPIOs, I2C, I2S, SPI, UART, PWM and Ethernet Port.
  • Misc – MPU reset, MCU reset, and WiFi reset buttons, MPU EJTAG solder pads
  • Power Supply – 5V via micro USB port, or 3.3V via header
  • Dimensions – 60.8 x 26 mm
Bottom of Duo Board (Click to Enlarge)

Bottom of Duo Board (Click to Enlarge)

The I/Os pin are however connected quite differently on 7688 and 7688 DUO, as the latter has most IOs connected to the AVR MCU, with only 3 GPIOs directly connected to the MIPS processor.

7688 DUO Pintout Chart (Click to Enlarge)

LinkIt Smart 7688 DUO Pinout Chart (Click to Enlarge)

7688 Pinout Chart (Click to Enlarge)

LinkIt Smart 7688 Pinout Chart (Click to Enlarge)

Documentation for both board is pretty extensive with Getting Started Guides, a developer’s guide, tutorials, and information about the HDK (Hardware Developer Kit) , which is simply call “board”, including schematics and PCB layout (PDF only). The company also released the bootloader and firmware binary files, as well as an OpenWRT SDK. The boards support both Linux and OS X for development with C/C++, while Python, and Node.js are also supported on Windows. Arduino IDE is also available for the DUO version, and by default MT7688 MPU and Atmel MCU communicate over UART with applications code on the former, and I/Os and sensors managed by the latter. You can access all these resources on LinkIt Smart 7688 page on MediaTek Labs, with some code also found on Mediatek Labs’ Github account, and Seeed Studio’s Wiki. You could also read my own little Linkit Smart 7688 Getting Started Guide.

LinkIt Smart 7688 boards are distributed by Seeed Studio, and you can purchase Mediatek LinkIt Smart 7688 for $12.90 and LinkIt Smart 7688 DUO for $15.90.