The following examples are provided to get started quickly with the NixCore X1 processor. Most examples are in C and some have a HTTP CGI component to dynamically generate a web page.
InitialState IoT Platform Library
The InitialState IoT platform is an server platform designed to visualize data from embedded systems and IoT devices. The InitialState platform communicates via RESTful API calls and thus can be used with curl and libcurl on the NixCore X1. We have developed a C library that wraps libcurl in user friendly functions related to InitialState to rel ated buckets and
transfer data. We have also provided a command line tool that can be run on the NixCore and called from bash scripts, providing a fast and flexible way of getting your data from the world into the cloud. In fact since this library uses libcurl it can be run on many Linux systems with a simple apt-get install libcurl-dev or yum install libcurl-devel.
Like the MODE SDK, libcurl uses public key authentication to connect to the InitialState servers. The current 0.5 firmware builds of NixCore do not have the required public keys. The solution to connecting via HTTPS is to download a certification file to /etc/ssl/certs/. CA certificates can be found here, here or in your Linux system /etc/ssl/certs folder as ca-certificates.crt
Interface with MODE IoT Platform
The MODE IoT platform from tinkermode.com is an server platform designed to bridge the gap between phone applications and embedded systems. The MODE SDK can be built for the NixCore X1 and linked to any C program using the NixCore toolchain. This example provides a Makefile to build the MODE Sample application found in the SDK git repository. There is one change required to the SDK to get this working on the NixCore, the SDK assumes that a DigiCert public key file is located at a fixed location not found on the NixCore. Two options exist to solve this problem, first is modify the SDK file ModeSSL.cc on line 46 to point to a new location for the provided key, second is to copy the provided key to /etc/ssl/certs/ on the NixCore. CA certificates
can be found here, here or in your Linux system /etc/ssl/certs folder as ca-certificates.crt
Sparkfun Data & Analog.io Library
data.sparkfun.com is a data server that collects information and can then provide it in a number of formats as well as export it to Analog.io, a service that visualizes IoT data. We have developed a C library that wraps libcurl in user friendly functions related to how data.sparkfun.com wants to receive data. In fact since this library uses libcurl it can be run on many Linux systems with a simple apt-get install libcurl-dev or yum install libcurl-devel.
Control a USB based rocket launcher
As part of NoCo Mini Maker Faire we demoed a USB rocket launcher controlled by a NixCore. Here is the code used to control the USB device. Since our rocket launcher came broken we only implemented the firing command.
Example serial port control
Here is an example program that will open a serial port for reading and writing. This is useful to determine if serial data is being sent or received. This code is the basis for the serial_nix.bin application on the NixCore X1.