As described earlier, i want to create a cellular tracker – below you find my considerations regarding the board…
My decision regarding the board was directed into the Arduino direction quickly. Raspberry was out because of power requirements, even the new A+ is known to consume 100-200mA (a standard Arduino takes 50mA) and comes with no significant sleep options to reduce this amount further. Which is not a surprise – it runs a complete Linux-Distribution which anyway is kind of too much for my project. Same applies btw. for the Intel Edison which i would have loved to consider. I needed a Micro-Controller that runs a GSM-Modem, either through an interface like Serial or built in. The GPRS-Shield for Arduino was out because i read bad reviews somewhere, same applies to the Itead Gboard. The modules from Wasp were too expensive for me. So i focussed on three very interesting Options.
Option1: Adafruit Fona
Fona is a fresh approach from Adafruit. It is relatively cheap ($40), has a SIM800L chip for the mobile communication (which is slightly outdated) and comes with Library support and in general nice documentation like all products from Adafruit. It’s also quite small, it has meaningful status-led’s which tell the current status of the module quite well and it can be equipped with speakers and a mike to run as a full blown mobile telephone. Pretty amazing – on the other hand i was a little frightened by the comment “early status” and “under heavy development” on the Adafruit website and on github where the library can be downloaded. For a good reason as you will see later…
Option2: Linkit One
The Linkit One is absolutely impressive – in fact as i first read about the specs and the price i couldn’t believe that this all can be true and functioning. It comes in an Arduino form-factor but with a much stronger processor (mediatek) and more capacity, both in terms of RAM and Flash-Memory. It has GPS, Wifi and Bluetooth + GPRS functionality, all on one board. And the makers (Seeedstudio) are advertising very low power consumption as well. This all comes for less than 80$ which is quite impressive if you add all the single components you would have to buy to get the same functionality with an Arduino + shields for instance, not to mention the integration effort, interfaces etc.
The problem with the Linkit is – it is a chinese product. Don’t get me wrong, i have no problem with products from this country – there are just two issues that became relevant as i was trying to get this module running: Linkit One is also a complex and early stage product – many things can only work with some decent hacks that you have to find in the forums. So what you need is a good support from the manufacturer through a forum + a culture that allows for failure (because it is important that the manufacturer provides critical information like “this function is known to work only if… – we are working on a solution” like Adafruit are doing it for instance). It was hard to find the forum related to the Linkit One – one reason was that it is hard to figure out where to search, at mbed, at Seeedstudio or in other places (mediatek was the right choice, the manufacturer of the processor…). I was not able to find the forum through searching, and it was not properly linked from the Linkit Wiki-Page (because they provide a link to their own forum which was not helpful). I found it in the end through a github Demo-Library where someone pointed to a forum post inside the code – if you want to have a quicker link please go here. And btw – once i found the proper location the responsiveness and quality of the forum was really good. The other issue that created quite a big barrier for this board is that it currently only supports Windows platforms and not Mac or Linux. Which i find quite strange because you program it through the Arduino IDE with some specific drivers included – which should not be too difficult to adopt for Mac…
Option3: SeeedStudio ArchGPRS
This is a pity – the ArchGPRS from Seeedstudio looked like the perfect match for my needs from the beginning. I didn’t need a full blown mobile phone module, and i even didn’t need all the extras the Linkit One brings – the only requirement for my project was GPRS and a controller. Exactly what this board brings. At a good price. But – although it is also from Seeedstudio the ArchGPRS follows a completely different philosophy. Rather than working with the Arduino IDE in some way you have to program the board through the mbed platform which is a strange, browser-based development platform. To cut it short – i got all this up and running and was able to upload some test-code to the board, but nothing more. The lack of documentation and examples created a barrier that was too high for me, so i skipped this option. I think manufacturer sometimes underestimate the effect of these additional ressources, demo-code, good documentation, forum and a responsive support (btw. the same applies for the Intel Edison at the moment).
And – this also applies for Linkit One – for complex devices like these board it is extremely useful to equip them with meaningful status LEDs which show what the board currently is doing – is it connected? Does it get into GPRS-Mode? Does it transfer data at the moment? Adafruit have found a nice and well documented way to do this, i really would recommend other manufacturers to find similar approaches…
The Decision:
As said earlier – i skipped the ArchGPRS quite soon. I braught the LinkitOne up and running after some hazzle and was quite impressed. The library support is very good, the memory and computation power plus is very useful for my application (parsing GPS values and Sensor values and doing a lot of JSON and http communication). It runs very stable. The reason why i did not consider the Linkit One as my production board at the end is the flip-side of it’s amazingly full-blown functionality. It is too big for my needs, comes with too many functions i don’t really need. Which means – size and especially power-consumption is too high. The Linkit One consumed around 50mA in normal operation and went down to 36mA in sleep mode (btw: another example for the good quality of this board – it goes to sleep-model automatically when in delay() – to achieve this you have to do a lot of programming on an Arduino…). If Seeedstudio would offer the Linkit One as a customizable production unit as well (say you could derive your own PCB from it by stripping non-needed features) it could be a very competitive choice for makers in the future – as the company has all the facilities to do this (they offer custom PCBs already and the LinkitOne is Open Hardware) it could be an easy move for the future…
Ok, but i decided to go for Adafruit’s Fona. I must admit – i am an Adafruit Fanboy to some extent, they are a great company and i really trust them to do things in the right way. Their support is excellent, responsive and friendly. And Fona is just the GPRS-module – you have to take care by your own when it comes to the Micro-Controller – which turned out as a big feature in my case, as i could combine Fona with a Low-Power custom built Arduino in the end.
I am not regretting this decision because there was no real choice in my case. But i must say, that Fona also was not an easy path to success for me…
Pingback: Building a cellular tracker: Part0 – Why future IoT Devices might run on GSM and not Wifi | Making connected stuff
We have a small project based in Berlin developing an Arduino based beehive tracking system. Means: weight, temperature, humidity and perhaps other e.g. weather based sensor data. As Hives in the most cases out of Wifi range and as you descibed nicely in post 0 in this series GSM is the way to go I considered also different options. But the most boards are no alternative because of power consumption.
Did you have the chance to to look at the GSMBee? http://www.gprsbee.com/ I will use it with the Seeeduino Stalker because it has a bee socket, RTC on board and also a charger for Lipo and solar panel http://www.seeedstudio.com/wiki/Seeeduino_Stalker_-_Waterproof_Solar_Kit. I had also a bit trouble wit the GSM, lib ist existing but not as good supported as the Fona but the developer have now also a own board the SODAQ Mbili http://mbili.sodaq.net/ and it seems that example code is now better and so your fitting comment “sometimes underestimate the effect of these additional ressources, demo-code, good documentatio” is going better.
LikeLike