LinkIt ONE – first impressions

04Dec14

TL;DR – The LinkIt ONE is an awesome Arduino, with a ton of great integrated peripherals, but I fear there’s too much of a gap between Arduino style development and building the next generation of connected things – though hopefully that gets covered by the forthcoming Eclipse based SDK.

Introduction

I was at the Web Summit in Dublin a month ago, and one of the key themes that stood out for me was cellular connectivity for devices. I saw a ton of things that were taking advantage of low end, low cost and low power data services – mainly 1G/2G stuff like SMS and GPRS (not power hungry high bandwidth 3G). The coolest thing I saw at the event was the Brewbot (which doesn’t [yet] have any cellular), but not far away was a stand showing off Mediatek’s LinkIt ONE.

The LinkIt ONE development board is an open source, high performance board for prototyping Wearables and IoT devices

The board

The board has the familiar Arduino form factor, and can be programmed from the Arduino IDE, so it ends up feeling like an Arduino bolted on to a mobile phone. It comes with antennae for cellular (SMS/GPRS), bluetooth/wifi and GPS. There’s also a LiPoly battery in the box meaning that you can straight away make projects that could be put in a tupperware box, left in a field and send data back to base – all for $79 from Seeed Studios (who Mediatek partnered with for distribution).

The system on chip (SoC) used by the LinkIt ONE is Mediatek’s MT2502A. It isn’t actually a cellphone SoC, and (according to the pdf documentation) is intended for wearables.

Installation

After a brief fight with the Mediatek registration wall I found the SDK on github. I then moved on to a fight with Windows 8 to install the drivers[1]. With a fresh install of the IDE in place it was easy to get the blinking LED ‘hello world’ demo going.

Huge memory

One thing that stands out straight away is that the capacity of the LinkIt ONE is huge compared to a more typical ATmega328 based Arduino like the Uno. There’s little risk of running out of memory – my simple projects never reported more that 0% usage!

I build a pager

The project I ended up putting together at the ThingMonk hack day was a pager. It receives SMS messages and displays them on a dot matrix screen. I used a Grove LCD RGB Backlit display, which is part of the excellent Grove Starter Kit (something I’ll write more about another day), so I was able to make the display change colour to red/green/blue/white according to the first letter of the received message.

LinkItONEpager

The code is on GitHub, and makes use of the Seeed Studios Grove LCD RGB libraries.

Great but…

The Arduino form factor and development environment have a very easy on ramp for quick and simple development, but I fear it wouldn’t be long before I’d feel held back by its limitations and want to do something more native. I also wonder how I could take the next step and turn something I developed with this board into a (mass produced) product. Mediatek obviously want to sell more SoCs, but this approach means that I don’t get close enough to the SoC to do much with it. I’d like the SDK better if it also had libraries, demos etc. for C (and maybe a real time OS).

It’s relatively simple to take a project developed on a regular Arduino and move it to an ATmega328 kit (like a Shrimp), and it’s then another easy step to port things onto an ATtiny or similar. That progression is presently missing in the Mediatek environment.

Update 5 Dec 2014 – maybe MediaTek have updated their site, or maybe I just wasn’t playing close enough attention in my rush to get started, but I see a promise of ‘an Eclipse version planned for later this year’, which I think will be pretty much exactly what I’m looking for.

The LinkIt OS is based on an RTOS kernel. On top of this kernel is a set of drivers, middleware, and protocol stacks that expose the features of the chipsets to a Framework.

I can hear the open source zealots bleating from here about proprietary binary blobs, but embedded development sadly remains about a decade behind the mainstream. If the APIs are as easy to consume as the Arduino examples then I’ll be pretty happy.

Conclusion

I’m looking forward to doing more projects with the LinkIt ONE. It’s the best Arduino clone I’ve ever tried, and seems amazing value for money compared to buying a whole bunch of shields for a regular Arduino. Sadly there seems to be a gap between the Arduino style of development and unleashing the full capabilities of the hardware, but hopefully the Eclipse SDK fixes that.

Note

[1] The SDK claims to support Windows 8, but you need to jump through hoops to disable enforcement of driver signing to get the drivers installed. This is sadly all too typical even though Windows 8 has now been out for 2 years.



2 Responses to “LinkIt ONE – first impressions”

  1. I have it too. Mostly I agree with you, but I’d add both the API and the relative docs are poor. For instance, I’d expected at least the HTTP management on a board targeted for IoT.
    However, from the hardware perspective is really awesome.

  2. Looking forward to get my board! I agree on the prototyping nature of it, although there are already sample projects where the unit is meant to run for months, which looks more like a production environment (i.e. https://github.com/snoller/LinkitOne_tracker and http://triembed.org/blog/?page_id=736).

    It would be great if the Seeedstudio guys released a version with Solar+Waterproof capabilities, just like they did with the Seeeduino (http://www.seeedstudio.com/depot/Seeeduino-Stalker-Waterproof-Solar-Kit-p-911.html) I think it would enable many production-ready use cases without the need for custom PCBs and encapsulation.


Leave a reply to Mario Vernari Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.