Saturday, December 12, 2015

Intel Edison v/s Linkit smart 7688

Thanks to Seeed studio, I recently came in possession of their latest Linkit modules, Linkit smart 7688 and Linkit smart 7688 duo.

As soon as I saw these modules, the first question that came to my mind was how they hold up against Intel's Edison. Since both of these modules are advertised as IoT modules with lot of features packed into a single tiny module the comparison was obvious.

tl;dr: While both the boards are great for doing great stuff in their own right, it all comes down to cost v/s features debate. Overall, Edison has better hardware (and in some cases better software support) and has Bluetooth if you need it, but the cost of Edison (+ mini break out board) is 5 to 6 times that of the Linkit smart 7688. If you do not need the processing power of a dual core Atom processor and your application does not have high RAM usage then I suggest, you could go for Linkit 7688 and for more demanding applications (you want to use Real sense tech or advanced image recognition stuff or maybe you need more RAM and flash to run your application) then Intel Edison is a better choice. 

So here are my views on both the modules having used them for some time.

I am not going to rate the boards I am just going to compare boards in terms of what I felt was good and my explanation about them in each of the following sections.

The Linkit smart 7688 and Linkit smart 7688 duo


There are two variants of the Linkit smart 7688 has just the main application processor which is 580 MHz MIPS architecture(MIPS24KEc) based MT7688 chip from Mediatek while the Linkit smart 7688 duo also has the same processor, it also has the Arduino environment compatible Atmega 32u4 MCU on board.

Hardware features


While all the three (Edison, Linkit 7688 and Linkit7688 duo) run Linux, the processor on board are different and they have different amounts of on board memory below table summarizes the main hardware differences:

Screenshot from 2015-12-09 20:37:25

Clearly in this part, the Edison edges out. The amount of flash and RAM on board is much higher than the Linkit 7688 also we have 2 x86 cores running at 500Mhz to do our bidding on Edison as compared to  Linkit 7688 running a single MIPS core at 580 MHz.

Software development support


One neat thing about both of the boards is that they both support programming with C/C++, Python and Javascript using the mraa interface.

mraa is a library that can be used to interface with hardware resources such as GPIO, SPI, I2C etc... It was originally developed by the folks at Intel and they open sourced it. Officially, it supports BeagleBone black, Raspberry pi (and other platforms) along with the Galileo and Edison. Kudos to Intel for creating such a useful stack and making it open source. On part of Mediatek, I think it was right move to support the mraa on the Linkit 7688.

If you plan to do C/C++ development on the Linkit 7688 then you will have to stick with cross compilation since RAM on Linkit 7688 is too little to support compilation. Also the Edison supports running Arduino sketches on the main processor. On Linkit 7688 Duo, you can run Arduino sketches on the Atmega32u that is on the Duo.

The Edison supports running Arduino sketches and also I can easily compile C/C++ programs without actually setting up a cross compiler environment on my host system also Intel provides the XDK for application development on Edison and an Eclipse based IDE can be used for developing and debugging C/C++ application from your host machine. Considering all these factors, this round goes to Edison.

Getting started


Since gaining access to the Linux terminal is required for me to do any kind of development, I am going to consider the method of getting to the Linux console as "getting started". Additionally, putting the board on my network is also important as this allows me to mount the board over network and use any of the editor installed on my PC to be used for developing application.

Edison:

Along with the Edison, you will need one of those break out boards. These boards have connectors on which you can mount the Edison module. Usually these boards provide USB to UART converter chip on board which connects to the UART TX/RX on the Edison to provide the access to the serial console and this is what will be used to configure the Edison.

Once you have access to the console, login using the root credentials and runt the command line utility "configure_edison"with "--wifi"option and follow the onscreen instructions to connect to the network.

Once on the network, run "ifconfig"to know the router assigned IP address. Using this IP address, you can use SSH to mount the board over the network.

Edison now supports a web based UI (if AP mode is enabled) to setup the wifi. Using this setup it is fairly easy to put Edsion on the network. If you are looking for complete getting started guide for Edison, you can find one here.

Linkit smart 7688:

You will need a USB to TTL UART converter. The RX line has to be connected Pin8 on Linkit 7688, TX line is to be connected to Pin9 and Gnd to Gnd on Linkit smart 7688. By default, the Linkit 7688 is in station mode, when it is powered up, it should be visible to your host OS as an router to which you can connect. Once connected, you will have to navigate to http://mylinkit.local where you need to set the password to proceed. In the page that appears next, you can switch the Linkit to station mode and scan for all the available router and ask the Linkit to connect any one of them by providing the right pass word. Once the changes are saved, the Linkit needs to reboot. Now using the serial console, you can get the IP address assigned to your board using the command "ifconfig".

Once on network, use the IP address discovered using "ifconfig"to mount the device using windows share.

You can access the link http://board_ip/cgi-bin/luci/ for more stats on the board and for more configuration information.

Overall, the procedure for both the boards are same  but on Edison  you need to hold PWR button on "for more than 2 seconds but no longer than 7 seconds. Around 4 seconds is sufficient". The advantage here is you do not have to reboot the Edison and it is not part of the official getting started guide. The official getting started guide involves an command line tool to configure the wifi.

This round goes to Linkit 7688 for it's minimalistic web GUI approach and ease of getting started in connecting to a wifi network.

Real time programming


Having a micro controller unit on board let's you code your application in a deterministic way. This can be useful in embedded system with real time requirement.

While the Linkit smart 7688 does not have an MCU on board, the Linkit smart 7688 has an ATmegea32U and the Edison has an Quark SOC.

Linkit smart 7688 Duo let's you code for the ATmega32U using the familiar Arduino interface while Edison requires you to use the Viper RTOS and different toolchain set to code your realtime application which might be more involved than coding for the ATmega using the Arduino.

While it's easier to code for MCU on the Linkit smart 7688 Duo, the SOC on Edison is more powerful and is clocked at 100MHz while the ATmega32 is running at 8 MHz. This round is a tie for me.

If you are to decide which board to use for your realtime programming requirements then that would be dependent on the application you are targeting. If the constraints dictate that you need higher throughputs on your realtime application then Edison could be used but if you have reasonable timing requirements then Linkit 7688 Duo could be used. Also consider the fact that you will have to learn a new RTOS and setup the tool chain for developing the code for the Quark. While on the DUO, it uses the well established Arduino interface.

Cost


Now we come to the all critical cost part.

To make this comparison fair, the pricing I am going to mention here are taken from Seeed studio at the time of writing since both Linkit smart 7688 and Edison are available on Seeed. The Edison module costs $49.95. This is the cost for the Edison itself we will need a breakout board on which the Edison has to be mounted. This one is minimalistic and the one with lowest cost on the Seeed and it costs $72.50. The Linkit smart 7688 costs $12.50 and the Duo costs $15.90. Needless to say the Linkit smart beats Edison soundly in this round.

Conclusion


I think both the boards make a good addition to any serious developer who wants to get into and start developing IoT application. To their advantage both the boards have Linux system installed on them. Having Linux not only let's develop in your favorite language, it also comes with a robust networking stack and host of applications and programs that you can install and grow your IoT application on top of it.

As I have stated in the tl;dr section, it all comes down to the cost v/s performance metric. It all depends on the problem area you are tackling. At the current price listing, the Linkit smart 7688 looks like a steal. I must say that I am very impressed by the features and the pricing of the Linkit Smart 7688.

While I think Linkit smart 7688 serves most of your low compute and RAM intensive applications, the Edison should serve you well when the requirements are on the higher side.  The overall software support is better on Edison it just provides more options for your application development but it could get better on Linkit smart 7688 as well in coming days. Also not to forget, the Edison also comes with a free account for Intel's cloud analytics.

No comments:

Post a Comment