As you may have seen in my TS-7970 Home Security Systems video on YouTube, I took a TS-7970 quad core single board computer and built it into my very own home security system using the open source software Zoneminder. This product works very well for the two camera system that I have hooked up. In case you didn’t get a chance to see the video, I wanted a security system that was cost effective and still worked well with the capability to expand if I so desired. I was referred to Zoneminder by a good friend and coworker of mine. Since I work at Technologic Systems I thought it would be cool to be able to use one of our boards to build up this camera system. After getting approval to use one of our boards my journey began on making my very own security system a reality.
Let’s take a look at what it takes to read sensor data from an I2C interface (aka I2C, IIC, TwoWire, TWI). In particular, we’ll be reading data from the NXP MPL3115A2 Altimeter/Barometer/Temperature sensor. The principles found in this guide can also be applied generically, even to your ambifacient lunar waneshaft positioning sensor of your turboencabulator.
Print Your Own Baseplate for Development and Prototyping
A new development baseplate and accessories for the TS-7670, TS-7680, and TS-7970 are now available for 3D printing. The main baseplate features standoffs for securing the single board computer (SBC), clip mounts for cable management, and tabs for attaching accessory boards. The accessory boards include a full sized breadboard mounting plate, and two (vertical and horizontal) half-sized breadboard mounting plates with compartments for organizing resistors and components. Two different sized cable clips are also included. You can download the STL files for 3D printing by referring to the product webpage in the resources tab, or directly here:
Embedded Computing author Brandon Lewis, Technology Editor, interviewed our own Mark Featherston, Embedded Engineer, on Ubuntu Core. Be sure to take a look! Pages 18 and 19.
Nuts and Volts has published the article “Working with I2C Sensor Devices” in the July 2017 issue. It walks you through how to interface with an I2C device using a single board computer. Be sure to visit your local bookstore and pick up a copy while they’re available!
In a joint press release between partners Canonical and Technologic Systems, the pairing of Ubuntu Core and TS-4900 was officially announced.
We couldn’t be more excited!
We feel that Ubuntu Core is going to make a big splash in the IoT world for its security, ease of management, and flexibility. Combine that with our rock-solid, industrial TS-4900 and you have yourself a reliable, production-ready IoT device.
We’re very honored to be featured in the Ubuntu booth at the Mobile World Congress in 2017. For more information, please take a look at the press release, Bringing Ubuntu Core to the i.MX6 Based TS-4900. If that isn’t enough to quench your thirst, take a look at our Ubuntu Core Powered Embedded Systems page.
This guide will walk you through the basic steps of getting your TS-7970 up and running. It’s mostly an extrapolation from the official TS-7970 Manual, but provides a more practical and casual approach in setting up common connections, networking, and environments to begin development.
Things to Know
We’re going to be walking through how to prepare a Yocto build for use with our i.MX6 products, specifically the TS-4900 which we have a special build recipe for. A build recipe is a friendly term to describe the scripts and environment variables required to build a Yocto distribution. There are many other build recipes available which work on a more generic level as well, so this guide can be applied generally as well. This guide is both an echo and extension of the TS-4900 Build Yocto Distribution wiki page. I’ll be mostly echoing (aka copy/pasting) the steps, but I’ll also add a few notes along the way. I’m going to assume you’ve landed here because you’re using search terms that make you at least familiar with what Yocto is and the terminology that surrounds a basic software development environment. If you have questions, I’m happy to try and answer them in the comments that follow.
Let’s take a quick look at an example C++ program which reads CPU temperature and controls an LED using sysfs. This example is a bit specific in that it’s only been tested on our NXP i.MX6 powered TS-4900 or TS-7970 running Yocto Linux, but the principles could be applied to other embedded systems as well. If you’re interested in the nitty gritty details about sysfs, take a look at The sysfs Filesystem by Patrick Mochel. Suffice it to say for our purposes, sysfs makes it easy for us to interact with system hardware using plain text files located in the /sys/ directory. The file to control the red LED is /sys/class/leds/red-led/brightness. The file to read the CPU temperature is /sys/class/thermal/thermal_zone0/temp. If we want to turn the red LED on, we simply write a ‘1’ to the file, and not surprisingly, writing a ‘0’ will turn it off. If you’ve booted up your TS-4900 or TS-7970, you can see this by running the shell commands: