Wednesday, May 13, 2015

When the serial console of a board is using the same UART as an RS232 port.

This is something that happens to me a lot:   I get ARM boards that have their console use one of the RS-232 connectors on the main board,  that in turn also serves as a major peripheral connection.
In some cases it's totally fine,  but when that RS-232 port actually serves a specific purpose,  such as connecting with a Point of sale type of peripheral(Mag-stripe reader , barcode scanner, etc... )  ,  it can be a major PITA.
As soon as testing and integration of the said peripheral begins ,  the trouble is that there is no console available to see debug messages, or to interact with the system.  That leaves developers working in the dark , having to deploy other methods for debugging and effectively slowing them down enormously.

The most common excuse I hear is : "Oh well,  it does save a lot on the cost.".  That is really not true,  especially if you do this in a sample production.  It causes so much overhead for the developers that this in fact increases costs significantly.
Obviously,  after the product is stable and goes to mass production,  changing the console into a couple of soldering pads,  or getting rid of it all together is probably acceptable if cost is really such an issue.

So next time you design a board, make sure there is a dedicated console available at all times, it will save you a lot of time and money.

Monday, October 13, 2014

A List of Industrial PC companies in Taiwan.

A gateway for the "Internet of Things" : what pieces of software should be included ?

WORK IN PROGRESS: In this post I am going to explore what a good IoT gateway should have under the hood. This post is in no means a complete overview of everything available or on the market - it just brainstorming and a short list of some of the nice things I have seen and worked with.

Protocols and Services.


MQTT is a must have, and THE most talked about protocol for the internet of things. 
Mosquito is highly suitable and supports almost everything MQTT should have. At the time of writing web-sockets are not supported yet. 

The Physical Web. 

Google physical web is Google's answer to the IoT. The whole thing seems to be in early stages and still under development, but looking very promising. The concept is really interesting and worth looking at when building an IoT device/gateway.

The way it works is,  a connected IoT device ( or a gateway), can send "beacons" over Bluetooth (BLE) to passers-by. These Bluetooth messages follow the specifications of the already existing Bluetooth advertising specifications. The messages contains URI's that can be just web pages or deep linking URL into applications on a smartphone or tablet.
They have a client applications for Android, and libraries to build your own. To get it up and running on an IoT gateway is very simple, they have reference code for broadcasting beacons just with a simple bash script. For the deep linking there is a sample available using node.js.

Web Control panels.
Many of the control panels, dashboards, and routers I came across where written in the Node.js , a server side JavaScript toolkit which is highly suitable for real time applications in the browser.
Below are some of my favorite ones. 


Node-red is developed by IBM, with the IoT and especially message/topic based communication in mind. 


Freeboard is a dashboard type of application that can show you all kinds of information from the cloud. Technically, it's not really a gateway application, but rather a client display application.
However, displays , large or small sized, can also be considered to be gateways.

Interesting web services. 

This interesting new web service is kind of like twitter, but for things. The free version of it is meant to be a "social" type of service as it doesn't require any authentication or permission. They have a paid service which allows you to "lock" a device so that access is limited to those with the key. 
Check it out here :  !

Silicon vendors and devices.
For the silicon vendors these gateway type of devices are really a nice chance to bring older cpu cores back into fashion. Intel offers their Quark SOC , which is actually 32 bit, TI is bringing OMAP3 (Cortex-A8) back in the game, and Freescale is actually using dual core Cortex-A7. 

Intel has it's own complete hardware and software set of specifications which has caused a lot of Industrial PC manufacturers to bring to the market their own incarnations of those devkits.

Freescale provides a reference design, which will probably be implemented by manufacturers world wide.

Texas instruments proposes the AM3352, complete with reference design.