Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Introduction
What were the biggest problems encountered?: Nothing was encountered that the user documentation and google could not quickly resolve. There was a version inconsistency between the firmware and the PC (VM based) development software but this is to be expected given that products ship at different times to software releases. The issue was small, easily resolved and I prefer that the board was immediately plug-and-go even if the firmware had to be subsequently updated by the user.
The mangOH project is a collaborative exercise between many organizations; element14, Sierra Wireless, Texas Instruments, Freescale (NXP), Linear Technology, Renfell Innovation and Talon Communications. The resultant first board, the is open source hardware intended to allow prototyping of IoT solutions.
The mangOH project is great if you need to run Linux based applications and may also have a requirement to connect to mobile data networks and have GPS/GLONASS capabilities.
Using mangOH Green introduces one to a whole lot more than just the hardware platform and Linux though. The mangOH Green is open source and comes with software, APIs, a development environment and cloud connectivity for an ultra-smooth road to IoT. It is possible to write and deploy applications within a day.
At the heart of the board is a 3D packaged module (in a form-factor known as CF3) that contains an ARM applications processor, Flash memory, RAM, a modem (2G to 4G/LTE depending on the particular model) and GPS/GLONASS receiver within a tiny (less than an inch square) footprint. It is basically a 4 gram mobile phone. The particular model supplied with the mangOH Green is the WP8548 which has 3G worldwide capability but not 4G/LTE.
The WP8548 module is also available separately so that it can be embedded in your own circuits without requiring the mangOH Green development platform. The form-factor is a Sierra Wireless design known as CF3 (short for Compact and Flexible Form-Factor).
Looking more deeply at the WP8548, it contains a 550MHz ARM Cortex-A5 (this has ARM NEON capability) for running Linux and applications, on Qualcomm silicon. To get an idea of performance, that’s essentially more powerful than the original Raspberry Pi for most applications. The chip inside also contains two DSP cores (known as Qualcomm QDSP6 cores) which together handle all the telecoms protocol stacks and radio firmware. The WP8548 also contains a Qualcomm power management integrated circuit (PMIC) which allows operation from a battery (and can charge it) and radio chips for handling the mobile air interface and navigation satellite radio reception.
There is about 150Mbyes of usable RAM for Linux and user applications which might seem small in comparison to a PC but bearing in mind that this module is intended for use in wireless nodes, it is actually a very usable amount. Typically more than 80Mbytes is available for user applications once Linux has started running.
There is 256Mbytes of usable Flash for storing the OS and applications. This too might seem low but can be augmented by a microSD card file system (the mangOH development board has a microSD card slot). There is no need to use the Flash space for the development environment and compiler because that runs off-board; more on that later.
The module looks like a permanent sandwich of maybe three multi-layer PCBs with a sticker-labelled shield on top. I didn’t take it apart since I only have one. The module can be reflow soldered onto custom PCBs in the usual manner or it can be plugged into a socket. To repeat the earlier observation, the module is extremely tiny yet packs a processor, mobile connectivity and navigation receiver (GPS/GLONASS/Galileo). The photo shows the comparison with a Lego brick.
The underside of the module is unusual; it is similar to an LGA or QFN style package, with pins arranged in a square and then another set of pins inside a concentric square. The center area consists of all ground connections. The pins are on a 0.8mm pitch so it would not be overly difficult to create a prototype board for it.
The mangOH Green development board has two similar on-board sockets, one is for the primary module and the other one is for future use (the second CF3 module can be fitted for redundant WAN).
To work more conveniently with mangOH it can be fitted into an enclosure (it is a standard Euro card width to fit some Hammond cases) however I preferred to cut up some plastic to create a base with and .
The hardware has a good practical design that can be easily fitted in an enclosure because the interfaces are all on the ends.
Compared to other boards which require some set-up and OS install, the mangOH is virtually plug-and-go. USB drivers from Sierra Wireless do need to be installed though, and they are part of the download (scroll to Downloads on the Getting Started page at mangoh.io) which contains the development environment.
Once the USB drivers are installed on the PC, the WP8548 module is inserted by dropping it into place (don’t apply any force) and then pressing the screening-can-like module cover until it clips into place. The module cover exerts enough pressure on the WP8548 to make contact with the socket.
Next, the mobile antenna and the GPN/GLONASS antenna are connected. These have the awkwardly-tiny U.FL connectors which are push-fit. With a small bit of effort (some soldering and moving a component) larger side-entry SMA or SMB type connectors can be used and there are pads for that on the PCB edge.
I used a Vodafone UK SIM card (mini-SIM format) into the first SIM socket. This was a typical consumer mobile broadband data contract SIM from them.
The board is connected via a USB cable to the PC. There is a supplied mains adapter (9V 2A) that powers the board. After a short while a virtual network connection over USB is available and it is possible to ping the WP8548 at 192.168.2.2.
There is no need to install any additional software provided you have an SSH client. By SSH’ing as root user (no password) to 192.168.2.2 you’ll have access to a Linux shell straight into the WP8548 module.
From here it is possible to connect to the mobile network if desired! Here are the commands needed to do that, and be able to ping a host on the Internet. Change the text ‘internet’ to suit your mobile operator requirement (google will help here; the text is ‘internet’ for Vodafone UK data contract).
cm info cm radio cm data cm sim info cm data apn internet cm data connect & cm data ping bbc.co.uk
Scroll through to see the example output here:
root@swi-mdm9x15:~# cm info Device: WP8548 IMEI: 125398435385854 FSN: LL856209265842 Firmware: SWI9X15Y_07.08.02.00 r31088 CARMD-EV-FRMWR1 2016/02/05 23:29:29 Bootloader: SWI9X15Y_07.08.02.00 r31088 CARMD-EV-FRMWR1 2016/02/05 23:29:29 root@swi-mdm9x15:~# cm radio Current Network Operator: vodafone UK RAT: UMTS network (LE_MRC_RAT_UMTS) Status: Registered, home network (LE_MRC_REG_HOME) Signal: Strong signal strength (4) root@swi-mdm9x15:~# cm data Index: 1 APN: PDP Type: IPV4V6 Connected: no root@swi-mdm9x15:~# cm sim info Type: EXTERNAL_SLOT_1 ICCID: 38562945285462309581 Home Network Operator: vodafone UK IMSI: 102139421023906 Phone Number: root@swi-mdm9x15:~# cm data apn internet root@swi-mdm9x15:~# root@swi-mdm9x15:~# cm data Index: 1 APN: internet PDP Type: IPV4V6 Connected: no root@swi-mdm9x15:~# ping bbc.co.uk ping: bad address 'bbc.co.uk' root@swi-mdm9x15:~# cm data connect & root@swi-mdm9x15:~# Connected through interface 'rmnet0' root@swi-mdm9x15:~# ping bbc.co.uk PING bbc.co.uk (220.127.116.11): 56 data bytes 64 bytes from 18.104.22.168: seq=0 ttl=48 time=378.544 ms 64 bytes from 22.214.171.124: seq=1 ttl=48 time=237.998 ms
There is a wealth of additional functionality on the board.
There is a full Arduino on-board; it communicates to the CF3-based processor using a serial interface. This means that any Arduino shield can be plugged on top. There is a separate USB connector on the mangOH Green which can be used to program the Arduino.
More interesting is that the mangOH Green also has three unusual looking expansion slots. These are intended for modules such as 802.11 (Wi-Fi) or industrial bus interfaces. This expansion system is particularly attractive because it is robust, cost-effective and is an open standard devised by Sierra Wireless. It reuses connectors designed for networking gear. There is also an RS232 interface, audio capability, on-board real-time clock (RTC) and some on-board sensors. Although a 9V power supply comes in the box the board actually operates from anything from 4.5V to 17V. A single LiPo cell can be connected (there is a JST ‘PH’ connector for that, pin 1 on the board silkscreen is for the positive terminal) and it means that there is a backup power source if the main supply fails.
A key part of mangOH is the application and development environment. It is called ‘Legato’ and it is an amalgamation of a cross-compiler, an application management system and middleware to support logging, message passing and access to APIs for input/output, GPS, SMS and so on.
Getting going with Legato was straightforward because the entire development environment is available pre-installed in a virtual machine image (VM) which can be run using VirtualBox. If you’ve not used a VM before it is much the same as the manufacturer supplying a PC to you (virtually of course in this case) with everything already installed so that almost nothing can go wrong. More manufacturers should do that! It almost guarantees that users will get immediate successful results and saves users the headache of installing the development tools themselves.
There are sample applications supplied and building and pushing them to the target mangOH platform can be done in a couple of command lines (or with zero command lines! – see further below).
Building applications can be done using an IDE or on the command line; I chose the latter and it was made easier by copying one of the sample applications and then modifying it. The IDE is Eclipse-based so it should be familiar to most developers and easy to use (I didn’t try the IDE though).
The two commands show here are all that are required to build the application and transfer it across to the mangOH board. This is for the supplied sample helloWorld application.
make wp85 instapp helloWorld.wp85.update 192.168.2.2
It is always worthwhile examining the folder structure and build output to understand how it all works. This is the output for a fictitious application called ‘myapp’:
Note that since Legato also includes APIs, it is important that the development environment Legato framework version matches the run-time framework running on the mangOH board. I had to upgrade them both to the latest in order to get some of the sample applications to work (if you see the text “disagrees with server” in the log file (type logread -f in a shell on the mangOH board and then run the application) then this is the symptom that there is a version inconsistency).
To upgrade the run-time framework I followed the instructions for upgrading on the very helpful mangOH forum.
I upgraded the development environment by downloading the latest zip file onto the development environment and following the step 2, Installing the Legato Environment instruction here.
Since the underlying OS running on the WP8548 is Linux there is actually no need to use the Legato environment if desired. GCC can be used to compile any application although the app would need to be compiled on a PC and not on the target platform. The Legato SDK comes with the appropriate GCC cross-compiler to use.
It is good to know that the flexibility is there to just resort to Linux if desired but It is strongly advised to use the Legato environment since it will simplify building and deploying applications.
An account was created on AirVantage which is Sierra Wireless’ IoT cloud platform offering. It allows for the mangOH Green to be monitored and managed remotely as well as device data to be collected and reports generated. Then, if desired additional functionality can be implemented by the developer by using a northbound HTTP-based API from AirVantage.
Once an AirVantage account has been created the mangOH board can be registered online using the information from the ‘cm info’ command as typed earlier.
Next, the mangOH needs to be configured to connect to the AirVantage cloud service (see the mangOH Fundamentals PDF downloadable here in the ‘Connect to the IoT Cloud’ section for details on how to do all of this).
Once this was done it was possible to see on the AirVantage portal that the device had successfully connected:
It is possible to configure from the web interface the frequency of heartbeats from mangOH. I set it to 15 minutes. It is also possible to fully deploy and manage applications on the mangOH board directly from the AirVantage web page. This is great if you have a fleet of devices and you wish to update or launch an application on them. In AirVantage terminology it refers to the application launch steps as Releasing, Publishing and Installing applications. Releasing an app means to upload it to AirVantage from the PC. Publishing the app makes it potentially deployable on devices (e.g. some or all mangOH boards in your fleet that you’ve previously registered and connected as mentioned earlier). The Install step refers to the actual upload to your chosen devices.
To release an application the built output is combined with a manifest file (in XML format) into a single zip file which is then uploaded into AirVantage. This is described in the extremely comprehensive (more than 800 pages!) Legato Reference Manual (PDF, login required) in the Use AirVantage -> Install apps section.
As a test it was decided to build a simple app in C that would report the GPS location of the mangOH board to Airvantage. It is possible from the code to advertise ‘assets’ which are variables that can be collected by AirVantage. For a GPS application I published longitude and latitude assets as an example. When the application runs it periodically retrieves the co-ordinates from the in-built GPS receiver and updates the two asset values using a Legato API. From the AirVantage portal the asset names appear and it is possible to create a report that will retrieve the latest values and display them.
To create the application Legato’s APIs were used for performing location queries and for writing the asset data. There is a good level of online help for the APIs. The GPS application used the Positioning Control API (to activate and disable GPS), the Positioning Service API (to get the GPS co-ordinates) and the AirVantage Data API to create and manage the assets (variables) that are reported to the cloud based service. In the background these APIs are provided by Legato services running on the mangOH board.
Once the application was built (using the make wp85 command) it was packaged into the zip file mentioned earlier and then uploaded (i.e. 'released' in AirVantage terminology) to the cloud service and then published. On the device’s monitor page in AirVantage it was possible to set it to install the new application. When the device communicated its heartbeat, AirVantage uploaded the application to the mangOH board. A report was created (using the Configure->Reports selection in the AirVantage portal) and a widget installed on the dashboard to show the values for the ‘lat’ and ‘lon’ assets.
It is hard to find many faults with the mangOH Green. The development platform is really well executed and the development environment and cloud offering are easy to use. This is a fantastic development board to use if you want to design an end-to-end solution with great ease.
AirVantage looks very comprehensive and nothing in the portal looked like it would not scale gracefully as more devices are added.
The Sierra Wireless and MangOH forums are fairly active and the support is very good. I never felt lost using this platform because everything is there and the documentation is good. The complexity of the mobile network is taken care of by the Qualcomm DSP cores and supplied firmware so users do not need to worry about any of this level of detail; they can concentrate on the application. Deploying and managing applications is taken care of with the Legato framework and AirVantage, again simplifying things.
I was very impressed that the WP8548 is tiny, contains a powerful Cortex-A5 and is easy to use and anyone can prototype up a solution with it at low cost. The entire process from hardware prototyping with mangOH to rolling out a complete solution at scale with AirVantage has been made really easy.
The MangOH Green with Legato and AirVantage is worth experiencing so one knows just how smooth IoT development can be.