Arduino TIAN Development Workshop - Agus Kurniawan PDF
Arduino TIAN Development Workshop - Agus Kurniawan PDF
Arduino TIAN Development Workshop - Agus Kurniawan PDF
Agus Kurniawan
This book was written to help anyone want to get started with Arduino TIAN. It describes the basic elements of the
Arduino TIAN operations and development.
Agus Kurniawan
The Arduino Tian has also a build in 4GB eMMC memory that will can be helpful to build your projects. It is possible to
Switch ON/OFF the Linux port from the MCU to reduce the power consumption.
Further information about Arduino TIAN, you can visit the official website on this
site, http://www.arduino.org/products/boards/arduino-tian.
Microcontroller: SAMD21G18
Architecture: ARM Cortex-M0+
Operating Voltage: 3.3 V
Flash memory: 256 KB
SRAM: 32 KB
Clock Speed: 48 MHz
Analog I/O Pins: 6
DC Current per I/O Pins: 7mA (I/O Pins)
Input Voltage: 5 V
Digital I/O Pins: 20
PWM Output: 12
Power Consumption: 470 mA
PCB Size: 53 x 68.5 mm
Bluetooth: CSR8510, Bluetooth with EDR / BLE 4.0
Weight: 36 g
The following is a form of Arduino TIAN.
You can buy this product on your local electronic store. You also can order it by online. Find it
on http://world.arduino.org/en. You can also buy this board on your favourite online store.
1.2 Electronic Components
We need electronic components to build our testing, for instance, Resistor, LED, sensor devices and etc. I recommend you
can buy electronic component kit.
1.2.2 Fritzing
Store website: http://shop.fritzing.org/ .
You can buy Fritzing Starter Kit with Arduino UNO or Fritzing Starter Kit with Arduino Mega.
1.2.3 Cooking-Hacks: Arduino Starter Kit
Store website: http://www.cooking-hacks.com/index.php/shop/arduino/starter-kits/arduino-starter-kit.html
1.2.4 Arduino Sidekick Basic kit
Store website: http://www.seeedstudio.com/depot/arduino-sidekick-basic-kit-p-775.html
http://www.amazon.com/Arduino-Sidekick-Basic-Kit-Version/dp/B007B14HM8/
http://www.exp-tech.de/Zubehoer/Arduino-Sidekick-Basic-Kit.html
1.3 Unboxing
If you buy Arduino TIAN, you should get this package.
After opened, you should see Arduino TIAN board, shown in Figure below.
This case we still the following items:
For electronics component, I user Arduino Sidekick Basic kit and Linker kit, http://store.linksprite.com/linker-kit/, for
electronic components. Other additional electronic components are also welcomed.
2. Getting Started with Arduino TIAN
Let's start.
From your computer, open your Wifi manager, you can see the SSID Arduino-Tian-XXXXXX, for instance, you can see it
in Figure below.
After that, open a browser and navigate tp http://arduino.local . If success, you see this page.
By default, the board password is arduino. Click Login button to authenticate.
Fill Arduino name, Timezone, the password of Arduino. If done, click Next button.
Now we configure our Arduino to connect the existing WiFi. Select your SSID included SSID key if it's available.
You also configure for REST API setting. You can set 1 to enable it.
Click Next button if finished. Your Arduino should be restarted.
Please wait for a minute. Arduino will connect to existing WiFi that you have configured it.
Now your computer should connect to existing WiFi in order to communicate with your Arduino.
2.5 SSH
Arduino TIAN has installed SSH so we can connect to Arduino TIAN via SSH. Firstly, your computer already connect to
Arduino TIAN or both your computer and Arduino TIAN connect to the same Wifi or one IP segment (Wired).
You can use SSH client to connect Arduino TIAN. For Windows users, you can use PuTTY,
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html .
Run your SSH client application. Fill hostname of Arduino TIAN is arduino.local or IP Address of Arduino TIAN and
port 22.
Now you get SSH Terminal. Entry user: root. Password is your Arduino password. By default is arduino.
2.6 SFTP
Arduino TIAN has instaled SSH and SFTP for you. Using SFTP client app, for instance, FileZilla, https://filezilla-
project.org, we can access SFTP on Arduino TIAN. Fill Arduino TIAN IP address, username and password.
After connected, you can see files and directories on Arduino TIAN.
2.7 Restart and Shutdown
We can restart Arduino TIAN using two methods. You can restart by press Linux reset, shown in Figure below.
You also can restart Arduino TIAN via SSH. You can type this command on your Terminal.
$ reboot
To turn off your Arduino TIAN, you can plug out power adapter from the board. You also can turn off Arduino TIAN via
SSH and type this command.
$ poweroff
2.8 Updating Linino for Arduino TIAN
In this section, we try to update Arduino TIAN firmware. When we buy Arduino TIAN, the board firmware may has old
version so we need to update. We can update Arduino TIAN easily while this board is connecting to Internet.
The latest of Arduino TIAN firmware can be found on http://download.linino.org/linino_distro/linino-2.0/samd/. Make sure
your Arduino connected to Internet. Open Terminal and connect to Arudino TIAN via SSH. Then, type this command.
$ cd /tmp
$ wget http://download.linino.org/linino_distro/linino-2.0/samd/latest/lininoIO-generic-linino-tian-squash
$ sysupgrade -v lininoIO-generic-linino-tian-squashfs-sysupgrade.bin
This takes several minutes. After completed, your board will reboot. You can verify by checking the Linux version using
uname.
2.9 Expanding Storage
Arduino TIAN has internal storage, eMMC, about 4 GB. You should extend this storage to use the extra space. To work
this step, you should reset your configuration (default configuration). If you have configured any setting, you will lose all
settings. If not, you get error.
You can restore to default configuration by pressing and holding Linux Reset. You also perform to reset your Arduino
TIAN via web panel. Just open Arduino Luci setting. Then, select System -> Backup / Flash Firmaware. You should
Perform reset button which is shown in Figure below,
To verify your current disk size, you can type this command.
$ df -h
$ overlay-only -i
Now your Arduino TIAN has additional storage. In my case, my Arduino TIAN has 2.5 GB free spaces on rootfs.
3. Arduino TIAN Sketch Programming
In this chapter I'm going to explain how to write program for Arduino TIAN using Arduino Sketch.
Digital I/O
Serial Communication
Analog I/O
SPI
I2C/PWI
Let's go!.
In Windows platform, you will see Arduino TIAN board on Device Manager. In Linux, you can see it as /dev/ttyACM* .
On OSX/macOS, you see it as /dev/cu* which is shown in Figure below.
Run Arduino Sketch software. You will see Arduino TIAN board connected. You can verify it by clicking menu Tools ->
Port -> COMx for Windows. On macOS, my Arduino TIAN is detected as /dev/tty.SLAB_USBtoUART* which is shown
in Figure below.
Now your Arduino Sketch is ready to develop app.
3.4.1 Wiring
There is no configuration on your board. We use a built-in LED, (Digital pin 13).
LED
Push button
Cables
Let's start.
3.5.1 Wiring
The demo wiring is simple. Connect your LED to digital pin 8 and push button to digital pin 9. A sample of hardware
implementation is shown in Figure below.
3.5.2 Writing Program
Now we can write program. Run Arduino Sketch and write this code.
int led = 8;
int button = 9;
int val = 0;
void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
void loop() {
val = digitalRead(button);
digitalWrite(led, val);
}
3.5.3 Testing
After written program, you can compile and deploy the program to the board.
For testing, you press that push button. Then, you can see LED is ON.
3.6 Serial Communication
We can access Serial Port (UART) from Arduino Sketch using Serial
object, http://www.arduino.org/learning/reference/Serial.
void setup()
{
counter = 0;
Serial.begin(9600);
}
void loop()
{
Serial.println(counter);
delay(1000);
counter++;
if(counter>=100)
counter = 0;
}
Save this code with name SerialDemo. Now you can compile and deploy this program to board.
To verify this program, you can use Serial Monitor. It can be called by clicking menu Tools -> Serial Monitor.
For Analog output, it's called PWM. You obtain PWM pins easily but if you have Arduino TIAN, it writes DIGITAL
(PWM ~). It means your PWM pins can be found on DIGITAL pins which pin with ~, for instance, ~3,~5,~6,~9, ~10, ~11.
3.7.1.1 Wiring
We use Potentiometer as analog input source. Connect Potentiometer pins to VCC and Vout to Analog input A0 on
Arduino TIAN.
To read analog input, we use analogRead(), http://arduino.cc/en/Reference/AnalogRead . Open Arduino Sketch and write
this code.
int val = 0;
int pot = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = analogRead(pot);
Serial.print("A0=");
Serial.println(val);
delay(500);
}
Save this code, called PotDemo.
3.7.1.3 Testing
Compile and deploy the program to the board. To see analog input value, open Serial Monitor. It can get it by clicking menu
Tools -> Serial Monitor.
Try to change value on Potentiometer and see it on Serial Monitor. A sample output can be seen in Figure below.
In this scenario we build Arduino Sketch application to control RGB LED color using Arduino Analog output (PWM).
RGB LED has 4 pins that you can see it on Figure below.
To understand these pins, you can see the following Figure.
Note:
Pin 1: Red
Pin 2: Common pin
Pin 3: Green
Pin 4: Blue
Now we can start to build an Arduino application and hardware implementation.
3.7.2.1 Wiring
Firstly we implement RGB LED hardware. The following is a hardware schema with Arduino TIAN.
Now we implement our RGB LED controller in Arduino. This is for testing. Open Firstly, we define our RGB LED pins.
The following is RGB LED pins for Arduino TIAN.
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
}
We define a function, called setColor(). This function aims to write RGB values on PWM pins. We can use
analogWrite(), http://www.arduino.org/learning/reference/AnalogWrite.
Now we control RGB values on RGB LED, for instance, Red, Green, Blue, Yellow, Purple, Aqua.
void loop()
{
setColor(255, 0, 0); // red
Serial.println("red");
delay(1000);
setColor(0, 255, 0); // green
Serial.println("green");
delay(1000);
setColor(0, 0, 255); // blue
Serial.println("blue");
delay(1000);
setColor(255, 255, 0); // yellow
Serial.println("yellow");
delay(1000);
setColor(80, 0, 80); // purple
Serial.println("purple");
delay(1000);
setColor(0, 255, 255); // aqua
Serial.println("aqua");
delay(1000);
}
Compile and verify this code. If success, you can upload it to Arduino board.
3.7.2.3 Testing
If success, you can see RGB LED blinking with different colors. Here is a sample output of RGB LED with Arduino
TIAN.
If you open Serial Monitor, you will get the following output.
3.8 SPI
The Serial Peripheral Interface (SPI) is a communication bus that is used to interface one or more slave peripheral
integrated circuits (ICs) to a single master SPI device; usually a microcontroller or microprocessor of some sort. Note that
the SPI pins are not connected to any of the digital I/O pins as they are on the Uno, They are only available on the ICSP
connector.
You can see ICSP pins for Arduino TIAN in Figure below.
The following is a schema of ICSP connector.
(source: http://arduino.cc/en/Reference/SPI)
Further information about SPI on Arduino TIAN, you can read it on http://www.arduino.org/learning/reference/SPI.
For illustration, we build a program to write and read data to/from Arduino TIAN SPI. We build a SPI loopback which
ICSP MOSI pin is be connected to ICSP MISO. Hardware implementation can be seen in Figure below.
Now we can write program. Open Arduino Sketch and write this code.
#include "SPI.h"
int val = 0;
void setup() {
SPI.begin();
Serial.begin(9600);
val = 0;
}
void loop() {
int ret = SPI.transfer(val);
Serial.print("send=");
Serial.print(val);
Serial.print(", recv=");
Serial.println(ret);
delay(1000);
val++;
if(val>=100)
val = 0;
}
This code send a counter number using SPI.Transfer() and return reading value from SPI. Because we connect MOSI to
MISO, we get the same data from sending and receiving.
Compile and deploy this program to the board. Open Serial Monitor to see SPI communication.
3.9 I2C
The I2C (Inter-Integrated Circuit) bus was designed by Philips in the early '80s to allow easy communication between
components which reside on the same circuit board. TWI stands for Two Wire Interface and for most marts this bus is
identical to I²C. The name TWI was introduced by Atmel and other companies to avoid conflicts with trademark issues
related to I²C.
I2C bus consists of two wires, SDA (Serial Data Line) and SCL (Serial Clock Line). Arduino TIAN has I2C/TWI on SDA
and SCL pins directly.
For testing, I used PCF8591 AD/DA Converter module with sensor and actuator devices. You can find it on the following
online store:
Amazon, http://www.amazon.com/PCF8591-Converter-Module-Digital-Conversion/dp/B00BXX4UWC/
eBay, http://www.ebay.com
Dealextreme, http://www.dx.com/p/pcf8591-ad-da-analog-to-digital-digital-to-analog-converter-module-w-dupont-
cable-deep-blue-336384
Aliexpress, http://www.aliexpress.com/
In addition, you can find this device on your local electronics store/online store.
This module has mini form model too, for instance, you can find it on Amazon, http://www.amazon.com/WaveShare-
PCF8591T-Converter-Evaluation-Development/dp/B00KM6X2OI/ .
This module use PCF8591 IC and you can read the datasheet on the following URLs.
http://www.electrodragon.com/w/images/e/ed/PCF8591.pdf
http://www.nxp.com/documents/data_sheet/PCF8591.pdf
Now you can write the program. We use Wire library to access I2C. You can read Wire library
on http://www.arduino.org/learning/reference/Wire.
byte adc_value;
byte getADC(byte config)
{
Wire.beginTransmission(PCF8591);
Wire.write(config);
Wire.endTransmission();
Wire.requestFrom((int) PCF8591,2);
while (Wire.available())
{
adc_value = Wire.read(); //This needs two reads to get the value.
adc_value = Wire.read();
}
return adc_value;
}
void setup()
{
Serial.begin(9600);
Wire.begin();
Serial.println("ADC Test");
}
void loop()
{
adc_value = getADC(PCF8591_ADC_CH0);
Serial.println("thermistor: ");
Serial.println(adc_value);
delay(500);
adc_value = getADC(PCF8591_ADC_CH1);
Serial.println("photo-voltaic cell: ");
Serial.println(adc_value);
delay(500);
adc_value = getADC(PCF8591_ADC_CH3);
Serial.println("potentiometer: ");
Serial.println(adc_value);
delay(500);
}
Compile and deploy this program to the board. To see I2C output, you can open Serial Monitor, shown in Figure below.
4. Arduino TIAN Linux Programming
This chapter explains how to work with Arduino TIAN Linux and then write programs for Arduino TIAN.
Let's explore!
After Arduino TIAN connected to Internet network, you can update Arduino TIAN package by typing this command on
SSH Terminal.
$ opkg update
Further information about opkg, you can read it on this site, http://wiki.openwrt.org/doc/techref/opkg .
4.3 C/C++
By default, Arduino TIAN Linux doesn't install gcc yet. You should install it manually.
Before installed gcc, you should expand your 4GB eMMC storage on Arduino TIAN. You can install gcc by typing
commands.
$ opkg update
$ opkg install gcc
If finished, you can verify its GCC version. Type this command.
$ gcc -v
$ touch hello.c
$ vi hello.c
You can use any text editor to write program. Then, we write this program.
#include<stdio.h>
main()
{
printf("Hello World");
}
Save this and quit from vi.
$ python
>>> a = 3
>>> b = 5
>>> c = a*b
>>> c
>>> quit()
If you want to install Python pip, you can type these commands.
$ opkg update
$ opkg install distribute
$ opkg install python-openssl
$ easy_install pip
4.5 Node.js
We can develop Node.js program. Further information about Node.js, I recommend to read the official
website, https://nodejs.org/.
$ opkg update
$ opkg install node
$ node -v
Now we can write the program using vi.
$ touch hello.js
$ vi hello.js
console.log("hello world");
Save and quit from vi.
$ node hello.js
4.6 Introduce Ciao Library
Arduino Ciao is a easy-to-use and powerful technology that enables Arduino sketches to communicate intuitively with the
"outside World". It aims to simplify interaction between microcontroller and Linino OS allowing a variety of connections
with most common protocols, social networks, third-party services and applications.
$ opkg update
$ rm /etc/udev/udev.conf
$ opkg upgrade arduinoos udev python-base python-light
$ opkg install ciao
$ reboot
Ciao communicates between Sketch and Linux via connector. You should enable one connector at least.
You can see all Ciao connector files on /usr/lib/python2.7/ciao/conf folder. You can see them in Figure below.
For instance, we enable a file connector.
$ cd /usr/lib/python2.7/ciao/conf
$ vi file.ciao.json.conf
Please make sure enabled value is true which is shown Figure below.
If completed, please save all changes. Then, you should reboot your Arduino board.
$ touch hello.txt
$ vi hello.txt
To work Ciao library in Arduino Sketch, you should install Arduino Ciao library. Download and install it
on https://github.com/arduino-org/arduino-library-ciao/releases.
#include <Ciao.h>
void setup() {
Ciao.begin();
Serial.println("Ciao started");
Serial.begin(9600);
}
void loop() {
delay(500);
Serial.println("reading..");
Compile and upload this program to Arduino TIAN. Open Serial Monitor to see program.
5. Working with Bluetooth on Arduino TIAN
Let's explore!
$ opkg update
$ opkg install kmod-bluetooth bluez-libs bluez-utils kmod-usb-core kmod-usb-uhci kmod-usb2 usbutils
$ hciconfig
If you see hci0 down, you can turn on by typing this command.
$ hciconfig hci0 up
$ hciconfig
To scan all Bluetooth beacons, you can type this command.
$ hcitool scan
If you have devices with installed Bluetooth, that command will show all Bluetooth around the device.
5.3 iBeacon
In this section, we learn to work with iBeacon on Arduino TIAN.
$ hciconfig hci0 up
$ hciconfig hci0 leadv 3
$ hciconfig hci0 noscan
$ hciconfig
To send iBeacon message, you can use this command.
To test your iBeacon message, you can use iBeacon client app such as Beacon Scan. You can also find another iBeacon
client apps on mobile platform.
For testing, we send two iBeacon messages.
The first step is to setup REST server connector. You should see restserver.json.conf file on
/usr/lib/python2.7/connectors/restserver/ folder.
After finished, please reboot your Arduino TIAN by typing this command.
$ reboot
Now we deploy CiaoRestServer sketch program into Arduino TIAN so the board can serve REST request.
Open Arduino Sketch. Click menu File -> Examples -> Ciao -> CiaoRestServer. You will get a CiaoRestServer code.
Compile and deploy to Arduino TIAN.
In this scenario, we turn on/off on LED 13. Firstly, we send value 1 to digital output 13. Navigate this URL:
http://arduino.local/arduino/digital/13/1
You should see a lighting LED on digital pin 13. To turn off LED 13, you can type this URL.
http://arduino.local/arduino/digital/13/0
http://arduino.local/arduino/analog/1
7. Energy Saving and RTC Libraries
In this chapter I'm going to explain how to work with Energy saving and RTC libraries on Arduino TIAN.
Let's start!.
For demo, we try to sleep MIPS and MCU. They will wake up after triggered by external power. We use energy saving
library, EnergySaving. You use two constants WAKE_EXT_INTERRUPT and WAKE_RTC_ALARM to wake up our
board.
#include <EnergySaving.h>
EnergySaving nrgSave;
#define MIPS_PIN 32 //PA28 PIN 32
#define WAKE_UP_PIN 8 // wake up pin
int led = 13;
void setup() {
pinMode(MIPS_PIN,OUTPUT);
digitalWrite(MIPS_PIN,HIGH);
void loop() {
perform();// perform something
sleep_system();// sleep MIPS and MCU
}
void perform() {
//blink for 10 seconds
for(int i=0; i<10; i++)
{
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
}
}
void sleep_system(void){
// MCU and MIPS go in standby mode
digitalWrite(MIPS_PIN, LOW);
nrgSave.standby(); //now mcu goes in standby mode
}
void wakeUp(void) {
//mcu is waked-up by the interrupt
//wake up mips
digitalWrite(MIPS_PIN,HIGH);
}
Save this program as EnergySaving. Compile and upload the program to Arduino TIAN.
You should see blinking LED for 10 seconds. Then, the board is sleep.
To wake up the board, you should connect digital pin 8 to GND using a jumper cable. If the board is already wake up, you
should release a jumper cable from Arduino TIAN.
7.3 RTC
In this section, we work with RTC on Arduino TIAN. We use RTCInt library. You can the source of RTCInt library
on https://github.com/arduino-org/brackets-arduino/tree/master/libraries/RTC. This library has already installed. You can
read RTC API on this site, http://www.arduino.org/learning/reference/rtc-alarmmatch.
For demo, we set a specific date and time on Arduino. Then, we retrieve current date and time.
#include <RTCInt.h>
RTCInt rtc;
void setup() {
while (!Serial);
Serial.begin(9600);
void loop() {
rtc.getDate();
rtc.getTime();
To see the program output, run Serial Monitor tool. A sample of program output can be seen in Figure below.
Source Code
If you have question related to this book, please contact me at [email protected] . My blog:
http://blog.aguskurniawan.net
Table of Contents
Copyright 2
Preface 6
1. Preparing Development Environment 7
1.1 Arduino TIAN 7
1.2 Electronic Components 9
1.2.1 Arduino Starter Kit 9
1.2.2 Fritzing 9
1.2.3 Cooking-Hacks: Arduino Starter Kit 10
1.2.4 Arduino Sidekick Basic kit 11
1.3 Unboxing 11
2. Getting Started with Arduino TIAN 15
2.1 Getting Started 15
2.2 Setting up Arduino TIAN for the first time 15
2.3 Exploring Arduino TIAN Web 22
2.4 Reseting Wifi Settings 27
2.5 SSH 28
2.6 SFTP 29
2.7 Restart and Shutdown 31
2.8 Updating Linino for Arduino TIAN 33
2.9 Expanding Storage 36
3. Arduino TIAN Sketch Programming 42
3.1 Getting Started 42
3.2 Arduino Software and Driver 42
3.3 Connecting Arduino IDE Sketch to Arduino TIAN 45
3.3.1 Serial Port 46
3.3.2 Remote via WiFi and Ethernet 47
3.4 Hello World: Blinking LED 48
3.4.1 Wiring 48
3.4.2 Writing Blinking LED Program 48
3.4.3 Deploying and Testing via Serial Port 50
3.4.4 Deploying and Testing via Remote WiFi/Ethernet 54
3.5 Digital I/O 58
3.5.1 Wiring 58
3.5.2 Writing Program 59
3.5.3 Testing 59
3.6 Serial Communication 60
3.7 Analog I/O 62
3.7.1 Analog Input Demo: Potentiometer 62
3.7.1.1 Wiring 62
3.7.1.2 Writing Program 63
3.7.1.3 Testing 64
3.7.2 Analog Output/PWM: RGB LED 64
3.7.2.1 Wiring 66
3.7.2.2 Writing Program 67
3.7.2.3 Testing 68
3.8 SPI 72
3.9 I2C 75
4. Arduino TIAN Linux Programming 81
4.1 Getting Started 81
4.2 Arduino TIAN Package Manager 81
4.3 C/C++ 82
4.4 Python 87
4.5 Node.js 88
4.6 Introduce Ciao Library 91
5. Working with Bluetooth on Arduino TIAN 97
5.1 Getting Started 97
5.2 Working with Bluetooth on Arduino TIAN 97
5.3 iBeacon 99
6. Building IoT Program for Arduino TIAN 104
6.1 Getting Started 104
6.2 Deploy REST Server for Arduino TIAN 104
6.3 Testing Digital I/O 107
6.4 Testing Analog I/O 109
7. Energy Saving and RTC Libraries 111
7.1 Getting Started 111
7.2 Energy Saving 111
7.3 RTC 113
Source Code 117
Contact 118