Introduction to intel galileo board gen2

19,618 views 51 slides Oct 16, 2015
Slide 1
Slide 1 of 51
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51

About This Presentation

This presentation gives you an overview of how galileo board work with case of improvement and rigorous analysis of working with it.


Slide Content

Introduction to Intel Galileo
Board Gen2
By: Harshit
10/16/2015 1

Outline
•Introduction
•Block Diagram of Board
•Simplified Schematic View of Board
•Features and Comparison with same category board
•Tools to implement IOT
•Problems
•Conclusion
10/16/2015 2

Introduction
•Targeting at wearable devices
and IoT, Intel developed
Galileo board.
•Intel Galileo is basically a
developer board designed to
have powerful functionality
with low power consumption.
•As a developer board, it has
many peripherals for various
application.
10/16/2015 3

Block Diagram of Intel Galileo Board
10/16/2015 4
Intel 400MHz 32-bit 16 KBytes
of L1 cache, 512 KByte
embedded SRAM
Real Time Clock (RTC)
integrated. To keep it
permanently active
Standard JTAG connector
with10-pin for debugging
A 8 MB Legacy SPI Flash memory
where is stored the GNU / Linux
bootloader and the last sketch
loaded.
For the sketch could be reserved
from 256Kbyte to 512KByte
memory.

Architecture Explanation
•Intel Galileo board is mainly classified through 2 levels, legacy controlled and
through advanced micro buses.
•The legacy controlled blocks are dedicated for definite set of function, through
dedicated channel allocation for each.
•The board runs at 400 MHz, and is synchronized by real time clock with the help
of 32.58 Hz oscillator.
•The board has dedicated point to point connection in PCIe.
•The RAM on board is double data type rate 3 synchronous type with max. transfer
rate of 6400MB/sec.
•Although it is not utilizing full transfer rates dedicated channel, as the load on cpu
will increase drastically, resulting in high power consumption.
•The other important part is AMB, as it is the way to have high speed connectivity
in respect of cpuand peripherals.
•This basically divided into 2 parts as system bus and peripheral bus connecting
each other through bridge.
10/16/2015 5

Legacy Controlled Blocks
•Legacy controlled blocks are known for their dedicated
functionality.
•Every component inside these controlled atmosphere
has there own functions.
•8254: It is known as program interval timers, which performs
timing and counting function.
•8259: Programmable interrupt controller, it can combine multiple
interrupt sources into single interrupt output to host processor.
time synchronized to current time.
•ROM: Read only Memory (eEPROM)
•RTC: It is a computer clock that keeps computer synchronized
10/16/2015 6
8253/8254
architecture
These can be
programmed and
known as channels

10/16/2015 7
•DDR3: It is known as double data rate type 3 synchronous dynamic random
access memory, with high bandwidth interface.(DRAM)
•RAMS, are generally work as an intermediator between software location and
processor,
•In general, code is installed on some location whose position is loaded on RAM,
which is accessed by processor.
•Then after, instruction from processor, RAM loads the program on its memory
interface for desired time,
•SRAM: It is known as static random access memory, which is faster than
DRAM, and is generally used to store data but loses data as soon as power
is off, but in galileo, it acts like a cache memory.
•PCIe: Peripheral Component Interconnect expressway.
•As it provide lower latency and higher data transfer than parallel buses(Dedicated
point to point connection)
•Clock: TheCPU requires a fixed number ofclock ticks(orclock cycles) to
execute each instruction. The faster the clock, the more instructions the
CPU can execute per second.
•It is generally termed as clock rate, or speed at which the processor executes
instruction.

Advanced Micro Bus Architecture
•Is a standard bus devised by ARM with aim
to support efficient on chip/SOC
communication.
•System Bus: ASB/AHB
•Peripheral bus
•Mutually connected by bridge that buffers
data and operation between them.
•AMB can be designed according to need
which suits the application.
ASB is used for simple cost effective design for burst transfer, pipelined transfer operation, and
multiple bus masters.
AHB is known for high performance and high clock synthesizable design, providing high bandwidth
channel between processor and peripherals ( SRAM, Memory ).
APB is known for connecting general peripheral components of low speed and power, it is a static
bus that provides simple addressing with latched addresses and control signal
10/16/2015 8

Simplified Schematic View
10/16/2015 9

In this board there are 5 main interface input output connection, with 4 level shifters
and 4 port expanders, which are used to expand the limited number of pins to
multiple functionality by using multiplexing feature.
•GPIO
•General Purpose I/O controlled by user runtime.
•SPI
•Serial Peripheral Interface bus, used for synchronous communication, in a full
duplex mode. It uses master and slave feature
•LEVEL SHIFTER
•Level shifter is used for converting digital signals from one logic to another(for
E.g.. Translates “High” to “Low” or vice-versa), as it works like a translator. It
works in respect to source current, as it does not translates or provide power.
10/16/2015 10
Schematic View Component Explanation

•Digital Input / Output
•These are used to control single digital singles & can be set to either output a signal or receive a signal.
•Uses –reading input signals like switches, controlling outputs LEDs, Motors, Relays
•Analogue Digital Converter
•12 bit accuracy, 6 channels available through Arduino pins
•ADC sampling at 5kHz-take a ‘snapshot’ of the voltage level every 200uS
•PWM –Pseudo Analogue Outputs
•PWM stands for Pulse Width Modulation
•Used to get analogue results by digital means
•Sends pulses of power to simulate voltage
•The duration of high power is known as the ‘Pulse Width
Schematic controlling of Input/output

•UART
•UART stands for Universal Asynchronous Receiver/Transmitter (UART)
•It is a piece ofcomputer hardwarethat translates data between parallel and serial forms.
•Theuniversaldesignation indicates that the data format and transmission speeds are configurable.
•It takes bytes of data and transmits the individual bits in a sequential fashion.
•At the destination, a second UART re-assembles the bits into complete bytes.
•Second UART available Arduino pins
•I2C
•I²C stands for Inter-Integrated Circuit
•It is a bus used for attaching low-speed peripherals to computer motherboardsandembedded systems.
•Low speed data communication
•Collecting data from sensors and other devices.
•Available through Arduino pins
Controlling the I/O

Comparison of normal PC System to Galileo
10/16/2015 13

Comparison in respect of Routing Part
•If we will look initially in normal pc system the cpuhas dedicated channel
assigned for 2 or more RAM, where as Galileo has one channel only
assigned for 2 RAMs
•Then CPU in PC is directly connected to (PCH)Peripheral Controller Hub,
which interfaces different kind of peripherals, whereas is Galileo, there is
no peripheral controller hub, as peripherals are either connected directly
or through multiplexers.
•This explains that in PC PCH is used to control certain data paths and support
functions without giving CPU direct access to it, which reduces load on CPU directly,
in extreme and normal scenario.
•But, in Galileo the peripherals generally have direct and point to point connection, as
it has not many functions and pins of processor can be utilized directly for legacy
purpose.
•This also helps to reduce latency in accessing data from memory with reduced power
consumption.
10/16/2015 14

Intel Galileo Board is also known for its backward
compatibility with Arduino. So, what is Arduino?
* it does not mean in respect of hardware, but it
means in respect of drivers(Shields)

•An open-source hardware and software platform for building electronics projects
•A physical programmable circuit board (often referred to as a microcontroller)
•A piece of software, or IDE (Integrated Development Environment) that runs on your
computer, used to write and upload computer code to the physical board (supports
Mac/Windows/Linux)
What is Arduino?

Normal Arduino Hardware Board/Software
•Arduino boards are specially designed
circuit board for programming and
prototyping with Atmel microcontrollers.
•It is compatible with combination of
software's like (Eclipse, AVR, IDE etc.) with
many peripherals.
•The best thing is, its hardware comp ability
is changeable and controller dependent
•On normal boards still there is no dedicated OS installed,
but there is a dedicated sketch storage space to boot
board.
•Specialty is that we can change the bootloaders
according to need.
•Arduino uses it own c language with core java byte code
which burned on controller.
•This can make microcontroller burn more power, as
machine cycles are used for same arithmetic operation.
10/16/2015 17

Arduino Uno Board Architecture Explanation
•The Arduino board architecture can be seen to three parts divided by
8 bit of data bus.
•The Arduino board shares the 8bit data bus with every peripheral and
cpu.
•It has the dedicated path allocation with data SRAM
•The watch dog time has definite functionality in the board, that must
be activated for the use.
•Whereas, in intel board, watch dog timer, is the core part of processor
and is activated whenever a sketch is uploaded.
•Flash memory has a multiplexed path for DRAM for addressing and
data fetching.
10/16/2015 18

Raspberry Pi Board layout Comparison
10/16/2015 19

Raspberry Pi Architecture Explanation
•Raspberry pi architecture is also based on legacy and AMB based.
•But, this have additional capability of GPU with ARM based BCM2835
processor of 700 MHz.
•This have direct TV output and dedicated channel allocation for
external memory access by processor.
•The AMB architecture connects various system required devices like
RAM and SRAM through system bus, with peripheral bus for HDMI
and USB, GPIO outputs
10/16/2015 20

General explanation of Raspberry Pi
•In laymen terms if we compare raspberry pi , we can directly say it is way
different machine than Galileo.
•This is a proper computer with dedicated operating system.
•It does not comes with a microcontroller ability like Galileo, we need to
install OS in raspberry pi to use it, whereas Galileo can be used out of the
box.
•We can plug into keyboard, mouse, monitor and run web browser on it. It
has 700-900 MHz processor with lots of memory.
•But it takes longer time to boot around 10 sec.
•It cannot be used in IoTapplication as it does not have EPROM/EEPROM
nor has flash memory.
•As, all data is accessed through external memory, which increases latency
and resum-ability.
10/16/2015 21

OS and Software in Raspberry Pi
•Around 18 OS can run in raspberry pi board starting from
Linux(Pidora, Archlinuxand specifically raspian( debianbased )).
•Raspianis the OS which are basically widely used in the board and has
wide support.
•Retro Pi, Open Elec and XBMC(used in Xbox media center), RISC OS
which has GUI environment designed by ARM processor, Firefox OS,
Plan9 OS, pipboy, Pibang, opensuse, google chromium OS, WebOS
(used by LG smart TV), FreeBSD, NetBSD, Windows CE, Windows 10.
•Plus you can install android on it.
10/16/2015 22

Comparison in Features
Board DimensionOn Board Features of Galileo Features on
Competitor(Raspberry pi)
Processor Intel Quark X1000-SC Broadcom BCM2835-SC
Description X86 based, low power for IoT ARMbased ARM1176
Speed 400MHz 700MHz
Width 32-bit 32-bit
Real TimeClock Yes, needs a 3.3v coin cell No
Cache 16KB L1 Cahe 32KBL1 and 128KB L2, shared
with CPU and GPU
RAM 512KB,256 SRAM and SDRAM 512 SDRAM(Shared-GPU)
Flash Memory 8MBNOR Flash No permanent on Board
EEPROM 11KB NO
GPU No BroadcomDual Core Vcore
Video Support No HDMI,RCAand DSI
Compatibility Arduino Shields Arduinoconnects through USB
10/16/2015 23

Comparison of Peripheral/Utilities
Galileo Raspberry Pi
Ethernet 10/100Mbps Support viausb
Wi-Fi No, can use PCI slotNo, with usb
PCIe Yes No
TwoWire Interface Yes No
SPI Yes, nativeControllerYes
Reset Button Yes No
DSI No Yes
CAN Bus No No
GPU No Yes
EEPROM Yes 11KB
HDMI NO Yes
On-Board ADC Yes No
Clock Internal (on board RTC)
Camera No ExpansionAccessory
10/16/2015 24

Applications
Application SpaceTechnology Galileo Raspberry Pi
Multimedia Video No Yes
Audio No Yes
Camera No Yes
Industrial/AutomotiveCAN Bus No No
LIN Bus No No
Networking Wi-Fi Yes Can Support
Ethernet Yes Can Support
SmartDevices DSI InterfaceNO Yes
Connectivity USB 2.0 Yes Yes
1394 No No
ArduinoShieldsYes Yes
Additional
Board
Accessories
No Yes(Extended)
10/16/2015 25

Intel Galileo OS/Programming Language
•The Intel board comes with default loaded Linux OS on SPI Memory like other boards
which is usually used to boot the board.
•This Linux OS generally is not rich in features and drivers.
•This can not restore it self after the power failure.
•To compensate this a feature, memory extension through SD-card is given on which
other operating system can be installed.
•These operating system are been reconfigured for embedded use by layering down there
user interface.
•Out of the box, Galileo boots a Linux kernel which runs one process: an Arduino
emulator. Intel provides a IDE to write sketches for their arduino. (Intel's IDE is
proprietary software!).
•Currently, Intel provides the OS support by Yoctoproject on Linux.
•Microsoft, also provides support, but have stopped support for board after a new intel
device is launched.
10/16/2015 26

Comparison of Software and Development
Tools
Galileo Competitor
Operating System for the
Target
Arduino Linux
Distribution for Galileo
Linux
Integrated Development
Environment(IDE)
X86 based Linux distros
without Arduino
Python IDE, ARM
compilers and etc.
Supported Host-resident
OS
Windows 7,8 and 10,
Ubuntu, Mac
Linux(bestway to deal)
Programming LanguagesSupports GCC and ICC
compilers
Python, C, C++, Java,
Scratch Rubyetc.
Drivers Neededfor Extending
Functionality
Neededfor Extending
Functionality
Boots On-board firmware SD card with bootable
image
10/16/2015 27

Tools to Implement IOT projects
10/16/2015 28

Node Red
http://nodered.org/
Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.
Node-RED provides a browser-based flow editor that makes it easy to wire together flows using the wide range
nodes in the palette. Flows can be then deployed to the runtime in a single-click.
JavaScript functions can be created within the editor using the a rich text editor.
A built-in library allows you to save useful functions, templates or flows for re-use.
The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This
makes it ideal to run at the edge of the network on low-cost hardware

Wyliodrin
https://www.wyliodrin.com/
https://projects.wyliodrin.com/wiki/boards_setup/arduinogalileo
Wyliodrinis a service that allows you to
visually create applications for your board and
control it directly from the browser.
With the Wyliodrinservice you can create
applications for your board without having to:
Connect your board to a monitor, keyboard
and mouse
Use SSH to connect to it, know a programming
language (C, Java or Python) in detail, search
for drivers of sensors etc
Visual Programming allows you to create
applications without having to write the code
yourself.
You just drag and drop your desired pre-
defined application components (blocks) to
create the application you want.

Let’s see how it works…….

Adding a Sensor
#defineA_PIN0//analog pin for LDR
#defineD_PIN6//digital pin for LED
intvalue;
voidsetup() {
pinMode(D_PIN, OUTPUT);
}
voidloop() {
value=map(analogRead(A_PIN), 0, 1023, 0,
255);
analogWrite(D_PIN, value);
}
Great breadboardingtool –fritzing
http://fritzing.org/home/
Light
Distance
Temperature
Acceleration
Vibration
Motion
Touch
Gas
Sound
Etc….

•Using Galileo’s WiFicapability
•IBM BluemixCloud service
•–http://datafest.mybluemix.net/?cm_mmc=IBMEcoDNA-_-IICSVL-_-outbound-_-Datafest2015
•https://console.ng.bluemix.net/home
•Portal uses MQTT Broker to communicate to devices -http://mqtt.com/
•Note :-Arduino native MQTT library needs to be modified to work on Galileo.
•For testing purposes, there is a test portal to validate that data is being sent.
•https://quickstart.internetofthings.ibmcloud.com/#/
How does this get communicated ???

•Setup Temperature Sensor input to A0 of Galileo
•Sample Arduino Sketch provided –GalileoTemp.ino
•Notes :-
1.Setup WiFiconnection
1.All you need is SSID & Passphrase
2.Configure MQTT Session
1.Client Name format
1.d:quickstart:<name>:mac
2.Max length 34 characters
3.WiFiMAC address used as a unique Identifier -found inside PCIeBox
4.MAC address is case sensitive
Let’s look at a simple MQTT Test

A simple Example

Wireless Sensor Network Implementation Scenario

Sensor Layer
•consistsofsensorsthatinteractwiththeenvironment.
•Meshnetworkandsendtheinformationgatheredbythesensors
totheCoordinatorLayerthroughthesinknodecalledthebase
station.
•Galileomodulehasthecapabilitytodirectlygathersensordata
andtransmititwithouttheuseofanexternalmicrocontroller.
•theoverallsizeofthenodesarereduced.
•minimizesweight
•reducespowerconsumption
•cheaper
10/16/2015 37

Sensor Network Topology
•Network topology selection is a critical issue, as for inter
communication natural choices available for WSN are star
and mesh topologies.
•Star Topology implies that each module can communicate
with main.
•This means that sensors and sensor device controllers are
far away, so this may increase power to overcome the signal
attenuation and loses and at the same time drains more
energy
•But if we have less point to point connection then less
transmission and lower collision.
•Where as in Mesh topology every sensor would be
dependent on its neighbor to relay its message, so
transmission power can be kept less.
•But, has one disadvantage, that device which is near to
coordinator will always be selected, and will loose its energy
faster.
10/16/2015 38

Coordination Layer
•responsibleforthemanagementofthedatareceived
fromthesensornetwork.
•temporarilystoresthegathereddataintobufferand
sendsittotheSupervisionlayeratpredefinedintervals.
•servesasamobileminiapplicationserverbetweenthe
wirelesssensorsandthededicatednetworkandhas
moreadvancedcomputationalresourcescomparedto
theEndDevicesfoundinSensorLayer.
10/16/2015 39

Supervision Layer
•storesthesensordatainadatabaseandalso
offersaWebinterfacefortheendusersto
managethesensordataandgeneratestatistics.
•offersagraphicalinterfaceforreal-time
monitoringofsystems
•Automaticalertandnotificationtotheuser
•Email
•Twitter
•SMS
10/16/2015 40

Example Illustrates
FlexiblearchitectureforintegrationofWirelessSensorNetworks
totheCloudforsensordatacollectionandsharing.
Embeddedintelligenceatdifferentarchitecturallayersto
accommodateforthediverserequirementsofpossibleapplication
scenarioswithminimumredesignandrecoding.
Itillustratethatthesensordatacanbeaccessedbytheusers
anywhereandonanymobiledevicewithinternetaccess.
10/16/2015 41

Problems in Schematic Designs
•There is less multiplexing functions of any kind, Galileo Schematics
(DOC G87171) shows SD/MMC card only has 4 data lines used.
•That’s four critical lines on such a low pin count IC that are wasted,
those could been multiplexed to anything like CAN-BUS.
•SD_LED, another wasted pin.
•SUI0_* lines are completely wasted, could have multiplexed it to I2S.
•MAC1, great we have 2 Ethernets, but if only 1 is there, so now
another 8 pins wasted.
10/16/2015 42

Probable Problems and Weakness
•The GPIO is connected via I2C bridge, which operates at 100kHz, so
with in crease in load through kernel, it can reduce the GPIO 250KHz
link speed.
•Intel Galileo uses 8 MB legacy SPI flash, main purpose is to store
firmware(or bootloader) and the latest sketch. Between 256KB and
512KB is dedicated for sketch storage.
•So, rest of the memory is just used for booting up the device, which is nearly
10 times more than the normal memory in its competitor, without having
driver support an resume-ability.
•Intel says it is still CISC based processor, so the cycle per instructions
are still high so it will consume power.
•Power consumption due to Ethernet is high around 500mA at idle
state, as it is adding load on SOC, therefore, sleep mode functionality
on connection to Ethernet should be added when it is not in use.
10/16/2015 43

Intel Galileo is the highest power consumption Comparisons
44
To compare the power usage [4], nbenchtool was used.
Current usage is measured using an INA290 breakout.
Each board was connected to minimum peripherals, the
beagle-bone black, raspberry pi and Galileo was
connected to network Ethernet port.
Arduino Yun was connected to WIFI, whereas Raspberry
pi A was connected to USB instead of network with
HDMI.
In this we can observe that Intel Galileo board
consumed power when the system is in idle mode i.e
above 500 mA, where as raspberry pi consume lowest
power while others consumed over 250-380 mA.
This shows that Ethernet port consumes power at idle
stage also
10/16/2015

what is needed more from board.
•A dedicated open source environment.
•Reprogrammable facility in bootloader, as it will help to reduce
power consumption, in respect of functionality/features.
•An open source knowledge of about processor, as still, the
architecture of processor is not been described in full terms.
•There is No graphics, No video outputs of any kind, that’s an
immediate show stopper on putting this thing in android
market.
•We, have a PCIe, but if we look into those we will observe how
much they cost and amount of power is used, these external
GPUs.
•PCIe-can consume max. 25 Watts power
•There is only one low power PCIeGPU available in open market
of 1W, it’s XGI VolariZ11 and closest alternative is 8W very old
GPU which needs 256 MB DDR RAM.
10/16/2015 45

So, what can be done
•To put this into future perspective, they need to get ultra low power
PCIebased GPUs.
•If Intel can make a similar companion IC based PCIewith built in
MPEG and video decoding, then that can be desirable product.
•But need to be careful in power consumption as single lane PCIepush
up the power.
•The board has many pins which are doing only single functions or are
wasted, those pins can be used or multiplexed to increase the
functions of board in respect of CAN bus and RAM.
10/16/2015 46

Result and Improvement/Conclusion
•Intel Galileo can be used in many application
scenarios
•But, Intel Galileo has no advantage on price,
performance and power consumption.
•Reason
•Low speed and small main memory
•Backward compatibility make the hardware much
more complicated, as it is not needed in the current
scenario.
•Improvement in respect of increasing the memory
size and functionality to change or update SPI based
OS by default drivers in it, can be more useful.
4710/16/2015

•Thank you
10/16/2015 48

References
[1] Product Brief IntelsGalileo Board
[2] Datasheet of Intel Galileo Gen 2 Development Board
[3] Intel quark hardware reference manual
[4] Embedded linuxboard comparison https://learn.adafruit.com/embedded-linux-board-comparison/summary
[5] Noergaard, Tammy.Embedded systems architecture: a comprehensive guide for engineers and programmers. Newnes, 2012.
[6] Embedded Linux Board Comparison https://learn.adafruit.com/embedded-linux-board-comparison/overview
[7] https://en.wikipedia.org/wiki/Embedded_system
[8] http://forum.arduino.cc/index.php?topic=167304.0
[9] https://www.raspberrypi.org/documentation/usage/gpio/
[10] http://people.engr.ncsu.edu/efg/506/s03/lectures/annotation/lec2/index.html
[11] http://arstechnica.com/information-technology/2013/03/how-two-volunteers-built-the-raspberry-pis-operating-system/
[12] http://datafest.mybluemix.net/?cm_mmc=IBMEcoDNA-_-IICSVL-_-outbound-_-Datafest2015
[13] https://console.ng.bluemix.net/home
[14] http://fritzing.org/home/
[15] https://www.wyliodrin.com/
[16] https://projects.wyliodrin.com/wiki/boards_setup/arduinogalileo
[17]http://nodered.org/
10/16/2015 49

Extra Slides
10/16/2015 50

What is BUS? •A communication pathway
connecting two or more devices.
•Usually Broadcast
•Often grouped
•No. of channels in one bus
•Eg. 32bit bus acts as 32 separate
single bit channels
•Address Bus identifies the source or destination of
data.
•Width defines the maximum memory capacity eg.
8080 has 16 bit address given 64K address space.
•Control Bus is used for control and timing information.
•Memory read write
•Interrupt request
•Clock signals
•Data Bus Carries data.
•Width is the key determinant for performance eg.
8,16,32,64 bit
Single Bus Problems
•Lots of devices on one bus leads to:
•Propagation delays
•Long data paths mean that co-ordination of
bus use can adversely affect performance
•If aggregate data transfer approaches bus
capacity
•Most systems use multiple buses to
overcome these problems
10/16/2015 51