Start with Arduino Industrial 101

Arduino Industrial 101 First use:


This guide will show, step by step, how to install and use for the first time your Arduino Industrial 101.

First Connect your Arduino Industrial 101 to the computer through micro-USB connector.

Search your Arduino board between the WiFi networks available on your PC.

Note: 
If you would reset the Arduino’s Wifi you must press the wlan reset button for 5-30 seconds. 

Open a web browser and write the follow address http://linino.local or the ip address http://192.168.240.1 in the address bar. 
After a few moments, a web page will appear asking for a password.

Linino Web panel: Log in  

Enter default password: doghunter  
and click Log In button.

You will find a page with some diagnostic information about the current network connections. The first is your WiFi interface, the second is your ethernet connection. Press the Configuration button to proceed.

Linino Web panel: Configuration setup  

On the new page, you will configure your Industrial 101, giving it a unique name and identifying what network you want to connect to. In the Industrial 101 NAME field, give your Arduino a unique name. You'll use this to refer to it in the future. Choose a password of 8 or more characters for your Arduino. If you leave this field blank, the system retains the default password of arduino. If you wish, you can set the timezone and country. It is recommended to set these options as it may help connecting to local WiFi networks. Setting the local timezone also selects the country's regulatory domain. Enter the name of the wiFi network you wish to connect to. Select the security type, and enter the password. 
Linino Web panel: Configuration setting 1/2  Linino Web panel: Configuration settings 2/2  

At the bottom of the page, you will see toggles for changing the access of Reset API . 
REST is an acronym for "Representational State Transfer". It is a software architecture that exposes various parts of the Arduino hardware through URLs. 
By default, the REST API access is password protected. It is possible to change this to access the services without a password, clicking on Open.

After that you have completed click “Configure & Restart”. 
After few moment, the configuration will be saved and the Arduino Industrial 101 will be restart. 
Linino Web panel: Configuration saved

Guide linino OS upgrade step by step

It is very important follow this guide if you use for first time your board 
Follow these steps to upgrade the latest release of linino OS: 
1) Connect your board via SSH: 
for Linux user using comand Shell: >ssh root@linino.local ; 
for Windows user for example using Putty; 
Putty 
2) Login as "root"; 
Linino login 
3) Insert the password: doghunter (default or the new password if you have changed it); 
Linino password   
4) Insert the command: linup latest or linup specif release ; 
Linino home   
5) Respond "y"; 
Linup latest   
6) Choose the option "2": Upgrade and revert to default settings; 
Choose your upgrade   
7) Wait the end of upgrade. 
PLEASE NOTE: In this case the new root password will be “doghunter” without quotes.

Download the IDE. 

It’s possible to choose ARDUINO STUDIO or ARDUINO IDE 1.7.x choosing the release for your system, from the linkhttp://arduino.org/downloads.

Differences from the Arduino YUN

The Industrial 101 is an evaluation board for industrial LGA module. 
It has a lot of features in common with Arduino Yun: both the boards share the same microcontroller ATmega 32u4 (Clock speed 16MHz, Flash memory 32Kb, SRAM 2.5Kb and EEPROM 1Kb) and support the same Linux distribution based on OpenWRT named Linino OS with Atheros AR9331 processor, Ram 64MB DDR2 and Flash Memory 16MB. 
Also both the boards have a WiFi module and work to 5Volt. 
But the Industrial 101 differs from Yun from the dimension and the pin output. 
The industrial 101 hasn't the Ethernet jack, the USB Host connector and the Micro SD slot but it is possible to use the Doghunter modules for example DogUSB or DogEthernet via twisted pair cables. 
The industrial 101 is prepared to connect the DogOled display. 
Industrial 101 board    
The board has three reset buttons one for 32u4 microcontroller, one for WiFi, and one for AR9331 processor. 
There are six status LEDs on the Industrial101 that indicate: power, WiFi, WAN connection, Led13, TX and RX UART 32u4. 
Industrial 101 pinout  

OpenWrt LininoOS

LininoOS is based on OpenWRT distribution with about 3000 package built and available. LininoOS provides a fully writable filesystem with package management with GPG signature. Integrated with LininoIO it is a complete linux system for IoT space. 
LininoOS features many innovations for your Arduino Industrial101.

  • LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. You can simply write your application using Node.js, Python, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched.
  • Node.js with Ideino Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Ideino is an embedded editor to write and debug your node.js application.
  • All Joyn supported, which is an open source project which provides a universal software framework and core set of system services that enable interoperability among connected products and software applications to create dynamic proximal networks.

Python

An installation of Python 2.7 is included with LininoOS, which you can use to write applications or scripts. 
For more on Python, visit the Python 2.7 documentation pages.

Install additional software on Linux

The Industrial101 comes with several pieces of software pre-installed on LininoOS, including "curl" and "python". You may want to install other software on the Industrial101. On Linux systems, additional software can be installed using a tool called the "opkg". 
You can find pre-compiled packages for LininoOS on their latest version, here.

External modules on Industrial 101

The industrial 101 can mount the DogUSB or DogEthernet connecting them via twisted pair cables. 
Also the industrial 101 is prepared to connect the DogOled display.

Resetting the processors (AR9331, WiFi, and 32U4)

To restart the AR9331, which reboots LininoOS, press the "AR9331 Reset" button that is close to the analog inputs pins and the LEDs of the board. 
To restart the 32U4 and restart the currently installed Arduino sketch, tap the button "32u4 Reset" two times. 
To reset Wifi there is a button and when you press the "WiFi Reset" button, the WLAN LED will flash. 
Industrial 101 board description    
If you move to a different network and can no longer wirelessly access the Industrial 101 through its web interface, you can reset the Industrial's network configuration by pressing the WiFi reset button (WLAN RST) for longer longer than 5 seconds, but less than 30, the AR9331 processor will reboot. The WiFi configuration will be reset and the Industrial 101 will start its own WiFi network Linino-XXXXXXXXXXXX. Any other modification/configuration will be retained.

To reset the LininoOS distribution to its default state, press the WiFi reset button (WLAN RST) for at least 30 seconds. The board reverts to the original settings: like just taken out of the box or to the latest update of the LininoOS image you have reflashed before. Among other things, this removes all installed files and network settings.

Resetting the password

The webpanel password can be reset and changed. Connect the Arduino Industrial 101 to your computer with an USB cable and upload the SerialTerminal sketch. It can be found in the Bridge examples in the Arduino IDE. When the Industrial 101 boot is completed, open the serial monitor, select New Line character in the dropdown menu and press Enter. Something like this should appear in your serial monitor:

Linino


Now you have to execute the passwd command to change the password. Type passwd into the serial monitor input and press enter. You will be asked to type the new password, and re-type it to confirm. If you want, you can ignore the weak password error. If both passwords you typed match, the system password will be changed and you will be able to access to the webpanel with the new password.

Serial re-enumeration on reset.

Since the Industrial 101 does not have a dedicated chip to handle serial communication, it means that the serial port is virtual — it's a software routine, both on your operating system, and on the board itself. Just as your computer creates an instance of the serial port driver when you plug in any Arduino, the 32u4 creates a serial instance whenever it runs its bootloader. The board is an instance of USB's Connected Device Class (CDC) driver. 
This means that every time you reset the 32U4 processor, the USB serial connection will be broken and re-established. The board will disappear from the list of serial ports, and the list will re-enumerate. Any program that has an open serial connection to the Industrial 101 will lose its connection. This is in contrast to the Arduino Uno, with which you can reset the main processor (the ATmega328P) without closing the USB connection (which is maintained by the secondary ATmega8U2 or ATmega16U2 processor). This difference has implications for driver installation, uploading, and communication.

No reset when you open the serial port.

The Industrial 101 won't restart your sketch when you open a serial port on the computer. That means you won't see serial data that's already been sent to the computer by the board, including, for example, most data sent in setup(). 
This also applies to the Console, described below.

This means that if you're using any Serial or Console print(), println() or write() statements in setup(), they won't show up when you open the serial monitor or Console connection. To work around this, you can check to see if the port is open like so:
//stops the program until Serial Monitor is opened   while (!Serial) ;
or
// stops the program until Console is opened   while (!Console) ;

Configuring the onboard WiFi

Programming the 32U4 over WiFi 
If you Industrial101 is in your computer's same network, you can upload a sketch using the Wireless Connection. 
After configuring your board, connect it to the network that you have specified in the configuration settings. Open the Arduino IDE. 
Under the Tools > Port menu, you should see an entry that lists your Industrial's name and its IP address. Under the Board menu, select Arduino Industrial 101. 
Open the Blink example (File > Examples > 01Basics > Blink) and upload the sketch to the board. You will be prompted for the administrator password. Use the one you entered in the configuration screen. 
Once the program is uploaded, the 32U4 processor will restart. You should see the LED connected to pin 13 blinking. 
Using the onboard Ethernet (via dogEthernet) 
When you connect the Industrial101 to a wired network with an ethernet cable, it will try to connect automatically via DHCP. The board will show up on the ports menu just as it would over WiFi. 
If you want to connect the Industrial101 directly to your computer, either configure the computer's interfaces to have a static IP address, or act as a DHCP server.

NB: the ethernet interface is eth1, not eth0

What is LininoIO?

LininoIO is a software framework able to integrate microcontroller features inside the microprocessor environment. 
You can simply write your application using Node.js, Python, Bash, etc., on linux side using LininoOS to control completely the board and all the devices attacched.

How works LininoIO Start and Stop?

Once rebooted and logged again in by means of SSH, you have to perform the final step by running the lininoio script to fully enable the lininoIO functionalities :
$ lininoio -h USAGE : lininoio <-f> <start/stop> - enables/disable the LininoIO features with the optional `force` switch       lininoio -v : prints out the versioning details of the LininoIO operating system       lininoio -s : shows the current status of the LininoIO features (ENABLED/DISABLED)       lininoio -h : prints out this HELP
please also pay attention to the fact that you have to run this script when logged in by means of SSH otherwise you might damage your board. So once gained root access at the shell type :
$ lininoio start
and a disclaimer will appear :
WARNING ! Please be sure to run lininoio when connected by means of SSH to your board, otherwise you could damage your board !Do you want to proceed ? y/n
then answer YES (y) and another question will pop-up before starting the actual process :
Do you want to enable the LininoIO OS features ? y/n
and answer YES (y) again. At the end of the process you will be asked to reboot your board, just answer YES (y) one more time and then wait a couple of minutes before logging in again.

Why use LininoIO Start and Stop?

When you want to use your board as a "classic Arduino user", use the Stop command. This you need, if you want to upload your sketch with your IDE. You can, however, use the Linux, using the library Bridge.

When you do not want to program the MCU via sketches, but want to use the board from Linux, then starts to LininoIO with the Start command.