Tuesday, October 29, 2013

Linux technology platforms

In the previous posting I mentioned 3rd and 4th generation Linux technology platforms, thus I decided to open up the concept a little bit.

Jhumar, 4th generation Linux technology platform.


In custom product development, it does not make sense to make everything from scratch every time. Use of reference design (technology platform) does not only reduce development costs, but essentially minimizes project schedule and technology risks from customer point of view. Verified CPU design with known characteristics combined with the flexibility of full custom electronics design is the way selected by Espotel.

The 3rd generation Linux plaform was called Jive, and is based on Atmel's AT91SAM926x CPU w/ARM926 architecture running at 240 MHz. The platform is not in production use anymore (no new designs), thus no more word about that.

The 4th generation Linux platform is called Jhumar, it has Freescale i.MX287 CPU w/ARM926 core, running at 450 MHz. 256 MB RAM and 1GB Flash expandable with micro-SD card provides sufficient memory reserves. The i.MX28 CPU is included in Freescale's product longevity program with 15 years support, dedicated for medical and automotive applications. The product was released in 2010, thus it has guaranteed availability until year 2025.

The base design supports 4,3" and 7" displays with WVGA resolution (limited by the integrated graphics controller of the CPU). What differentiates Jhumar from COTS tablets is the selection of wired and wireless interfaces: Ethernet, CAN, USB host+device, serial, WiFi, Bluetooth, Bluetooth LE, Zigbee and 868MHz RF. Sub-set of interfaces is always selected upon requirements of the specific application.

The 5th generation Linux platform is based on Cortex-A8 and the 6th generation has Cortex-A9 multi-core CPU.

Sunday, October 27, 2013

Long live the ARM9


ARM9 architecture is not the high-end of embedded, but it's still feasible for many applications. The latest Lego Mindstorms is a good example, which I wrote about in my previous posting. ARM9 processors are inexpensive, low power and well available from many vendors. Capacity and performance is good enough to run smooth graphical UI and to provide state of the art remote connectivity.

I have collected here some examples of products which are in production at the moment, with ARM926 core similar to the Mindstorms EV3 Brick. How do I know? Well, they are all designed in my company for our customers. All the mentioned projects have benefited from our 3rd and 4th generation Linux technology platforms, which have been used as reference design for the custom electronics.

Consumer electronics: Central unit of building automation.
Industrial automation: Quality control tool of welding machine.
Medical device: Remote controllerfor
hospital operation room.
Vehicle automation: Operation panel of
integrated wheel loader scale.
Industrial automation: High accuracy field calibrator
Medical diagnostics: CRP analyzer
Industrial automation: Configuration tool and data logger
for process industry flow measurement sensor.




Friday, October 25, 2013

ARM + Linux + LabView = Mindstorms

Lego released EV3, third generation of Mindstorms programmable robotic kits on September 2013, which is referred as the most hackable Lego ever. Core technologies of the concept include ARM CPU, Linux operating system and LabView based programming environment. What a cool toy!

My first Mindstorms robot design.
Programmable Brick, the central unit of EV3 is actually pretty advanced embedded system. The heard of the Brick is Texas Instrument's Sitara AM1808 SoC CPU w/ARM9 core, running at 300 MHz. The device has 64 MB RAM and 16 MB of integrated Flash, expandable up to 32GB with SD memory card. Connectivity is provided via USB device interface for programming, Bluetooth for mobile apps (Android, iOS), and USB host port for Wifi dongles.

The programming environment of Mindstroms is based on LabView, with nice graphical frontend. Programming is intuitive and easy. There are some program flow elements like loop and switch, but many advanced techniques are missing including synchronization of parallel execution flows, event handling, and message passing. Well, after all it's a toy intended for youngster.

EV3 runs stripped down version of Ångström distribution. Source code of the Linux is of course published as open source. There are instructions in Github how to build the firmware of the Brick by yourself.

The previous generation NXT version of Mindstorms is well supported by many programming languages, list of languages is available in Wikipedia. As the EV3 was released just recently, there are only few language ports available yet. One of the few is Java, with help of leJOS project (Java for Lego Minsdstorms). C# based Monobrick provides also communication interface to PC. Support in official LabView is expected during first half of 2014.

I just purchased an EV3 and constructed my first Mindstorms robot. My intention is to include EV3 robot as a part of my web technology demonstration at Embedded Conference Scandinavia, November 5-6 2013, in Stockholm. The robot will wave couple of Freescale Freedom evaluation boards, in order to generate non-static accelerometer data to be transmitted to cloud and further to mobile user interface. (In the picture above, there are Arduino boards, as I didn't had FRDMs in hand at the time).

Why Mindstorms? Well, in fact the EV3 utilizes all the same core technologies which are de-facto key technology choices of my company: ARM, Linux and LabView. Well, LabView is not used for application programming a top of Linux, but in implementation of production test systems.

Thursday, October 24, 2013

QR vs. RFID

Why to use QR code as RFID can do all the same and much more? That's true, but it does not mean QR code would be obsolete. There are couple of arguments pro QR.

First of all, number of devices capable of reading QR codes exceeds multi-fold the number of devices capable of reading RFID or do NFC. Potentially every smart phone, tablet, laptop and any device with camera can do QR reading. Only very limited number of mobiles or specific devices can do RFID/NFC communication.

QR code is also ultimately cheap. Even if RFID tags are inexpensive nowadays, I haven't seen any newspaper having RFIDs embedded on pages. But I have seen many magazines having QR codes printed on pages. Sticker with QR codes printed are and will be cheaper than stickers with RFID chip embedded.

QR code is static and one way. Thus there is and will be rationale for both technologies to exists side by side.

Wednesday, October 16, 2013

Uses of QR code

Everyone knows QR code, possibly most of often at the context of advertisements, a link that leads to a company web site for more information. QR code can do much more than that. In addition to URL, the code can store other information like visiting card, SMS of free text. There are couple of handy use cases in system design of embedded stuff.

URL of the blog. Try it with your smart phone.
Deployment
Let's  assume we need to install a number of sensors or actuators, wired or wireless, into a building or outdoor environment. We don't want to pair the nodes in advance, as then we must pay close attention in which unit to install where. All units are equal as long as they are in the box. Only at installation time they get the association to the place and possible role. How to do that in most convenient matter?

There may be a serial number printed in every unit. Then the installation guy must manually copy the serial number to paper or electronic device. Manual and error prone process. If we put a 1D bar code into each unit, then the process of identification can be automated, but a specific tool with laser bar code reader unit is needed.

Let's stick a QR code with a unique identifier into each unit. The installation person can then use his or her smart phone or tablet to read the code, and immediately associate the specific sensor into the installation location and deliver the info in the system database with help of the mobile data connection of the device. In case of outdoor environment, GPS data can be combined to create geospatial mapping of the installation.

Authorization
Let's consider building automation, for example some sort of equipment installed inside of a building, like heat pump, ventilation unit or A/C. Those are rather sophisticated devices nowadays, with capability to offer remote connectivity, possibly with help of cloud solution. Use of such remote user interface should be as easy as possible, simultaneously providing adequate security and confidentiality.

If a person has physical access next to the device, then we may assume he or she has right to access and control that equipment, at least in some extend - not a completely outsider. If there is a QR printed at the side of the device, that information may tell to the cloud or even to the device itself that the person operating the mobile terminal which delivered the code has access right to the device.

Encryption
In case of asymmetric cryptography, the QR code may contain the public key of the server side. If it is printed and mounted at the assembly line, it most probably is authentic and not altered. With help of the public key, terminal unit may then send it's own public key in encrypted format to the server, and then they can communicate in completely secured fashion, and no cryptographic credentials was ever exchanged in plain text format.

Sunday, October 6, 2013

What makes Jolla so special?

Jolla rises from the ashes of Nokia Meego, having second pre-order round ongoing. Jolla differentiates itself from other brand mobile manufacturers in many ways.

First of all, Sailfish, the operating system based on Mer is 100% open source. No proprietary binary code included. If you doubt what the device do, you can always check it from the original source - the source code. That makes it difficult to hide any call-back-home or other nasty features among functionality of the software.

Secondly, as Jolla states they have no operations or servers physically located in the US, and as such they are not oblicated to disclose any user information to NSA. In the past, technical intelligence programs like Echelon were dedicated to listen to trunk networks. As all traffic is nowadays more or less encrypted, it's easier to access the data at  the end-point of communication, where the data is available in decrypted format, and that's where PRISM hits.

Third, Sailfish will provide superior compatibility with applications from different platforms with little or no modifications, including Meego, Android, Unix, Linux and HTML5. That's not only because Jolla-sailors think they can do it, but especially to gain the ecosystem fast. Jolla targets to 500K+ apps at the beginning.

There are many appealing aspects in the Sailfish concept, like support for many programming technologies including Qt, HTML5, Android and many more, and the unique software development and emulation environment, which makes it possible to develop and test Sailfish applications prior existence of the actual hardware, and in any host OS.

From the history we know that technical superiority by itself is not always defining the winning solution. The concept needs much more, like believable and creditable story, the ecosystem, and of course, paying customers. Jolla has still long way to go, but according to some analysts, Sailfish has good chance to beat the market share of Windows Phone. The growth is expected to happen especially in the China and other Asia, where Jolla provides a non-US alternative at the mobile market.