1. Getting Started
Introducing the ARTIK Family
Samsung ARTIK is all about versatility. Providing the computing power of a UNIX workstation in a form factor as compact as this will revolutionize the way that smartness is engineered into your products. With computing power delivered as a commodity, ARTIK can make everything smarter.
The Samsung ARTIK platform is designed to jumpstart the development of products that exploit the potential of the Internet of Things (IoT). IoT is a structured way by which all kinds of devices from tiny wearable items to entire homes and factories can communicate with each other. Then they can autonomously adjust their behavior to accommodate real-time changes in their interactions with peers or human operators.
Products like the ARTIK modules are only possible due to the prior success of mobile phone technology. As phones have become smarter and smaller, the integration of memory and computing power into ever-smaller packages can be leveraged to create a general-purpose computer. The further reduction in device size results in technologies such as the ARTIK modules. As these modules become increasingly popular, the economies of scale reduce the unit cost and they can be deployed everywhere.
Reinventing the Engineering Process
Samsung expects ARTIK to be integrated into products, devices, and appliances that the general public will deploy in homes and factories in huge numbers. The SAMI or Temboo ecosystems and others like them will take this integration even further and distribute the smartness across many devices so they work together as a single larger system.
You can retrofit the ARTIK into existing products to make them smarter or include an ARTIK module in the core of a revolutionary new product or service. The ARTIK solution is versatile enough to be deployed in a huge range of scenarios. By developing a base platform, ARTIK helps you leverage all of that technology and concentrate on your value-added innovation. Fundamental capabilities such as communications, media services, sensor integration, security, and compute engines are already up and running. This saves a lot of time when you begin a new design.
Using a well-integrated hardware and software solution such as the ARTIK module helps you avoid years of engineering design and development work. Simply add your control interfaces, sensors, and software and let ARTIK take care of the heavy lifting. Because the ARTIK module is built with a lot of well-known open-source technologies , your learning curve can exploit the things you already know. Just fill in the gaps.
About This Book
This is a beginners guide that will introduce you to developing prototype applications on a Samsung ARTIK module. If you are already an experienced UNIX developer you should feel at home working on ARTIK through the command-line user interface . If you are new to UNIX and the Internet of Things industry, this book will provide useful references to other source material to facilitate your learning experience.
This book will show you how to work with the hardware developer reference board that carries an ARTIK module. The developer board makes access to the pinout connectors on the ARTIK module more convenient for prototyping. The board also provides enhanced hardware debugging connectivity for JTAG probes .
The programming examples in this book are intended to illustrate how to use the application building and deployment commands. They are not very complex, but they do show you in a very brief format how to interact with the hardware from inside your own applications.
The companion Apress ARTIK Reference Guide book has more reference material and deeper coverage of the ARTIK internals, along with more extensive coding examples. It will help you move on to more advanced topics and prepare your prototype design for deployment to production.
Finding Out About ARTIK
When a product like ARTIK is so new, the available information about it is scarce. As a developer you need to apply forensic techniques to research-related topics and reverse engineer them to understand what to look for inside the ARTIK module. Once you absorb that knowledge and understand the technology, you are ready to experiment with an idea. It is not always easy, but it is great fun and very satisfying when you get something to work. The Temboo tools are a huge help, because they generate working code that you can learn from. Their code shows you how to access the Arduino compatible pins in your ARTIK module directly from C language or Node.js and other languages.
I was inspired to cover some topics by the posts in the discussion forum, which suggested things that readers would like to know more about. Other content was suggested by reading blogs and tutorials elsewhere on the Internet. Then I concentrated on finding things out by experimentation and documented what I discovered in a logical narrative. The fruits of my own forensic research and experimentation are distilled into this book so you can quickly move on to more advanced things.
I hope this book helps to support developers by answering some of the questions they have asked so far. There will be new questions to answer as we get to know the ARTIK modules better. The Samsung materials are excellent starting points for your learning process. While I have used them as a starting point for my own tutorials, I have added a lot of additional background supporting material around the basic coverage.
Provenance
The book was initially written around the Alpha prototype version of the ARTIK 5 and then upgraded with the information found in the Beta documentation and by testing on a Beta prototype of the ARTIK 5. If you are trying to use the examples in this book on an Alpha prototype ARTIK module, a lot of things had not yet been developed at that point. Some functionality was also not yet available for the Beta prototype, and you will probably observe some functionality differences when you work on the production model.
You might find a practical use for your old Alpha and Beta prototype modules and developer reference boards, but upgrading to a production model ARTIK module when they are available is a good idea. That will ensure a trouble-free development process going forward, and any future software upgrades will be compatible with your prototyping system.
The initial group of ARTIK modules shipped in the spring of 2016 are Commercial Beta version 0.5.0 products. The shipping models will be updated later to production versions as they feed through the manufacturing pipeline. The Commercial Beta is perfectly capable of supporting your prototype product development process. Later on, you may want to risk-manage any potential functional changes by upgrading your ARTIK development systems from time to time as they evolve.
It is natural that things will change inside the ARTIK modules as their design evolves. Where locations within the virtual file system are described, pay special attention to checking these against your own ARTIK module. The fundamental file system organization is dictated by the base operating system (either Nucleus or Fedora). Further changes to the Fedora core are configured by a Yocto profile. There is a possibility that Samsung will move virtual file system locations or change the file names to accommodate new hardware and drivers as they are introduced. It is impossible to predict whether this will happen or when, so you should run some basic checks whenever you upgrade the operating system. Using some intuition and a little forensic research based on what is covered by this book will reveal what you need to know when things move aroundas they inevitably will.