Getting Current Voltage Input (VIN) on TS-7670 or TS-7400-V2

Here’s an example program our engineers might find useful. Kris Bahnsen, a long time engineer for Technologic Systems, wrote this simple program to get the voltage input (Vin) on the 8 – 28 VDC power rail on the TS-7670 (Rev. D or later) or TS-7400-V2 (Rev. B or later). Without going into too much detail about implementation of the on-board supervisory microcontroller, there is a register which is used to store various ADC values, including Vin. This example program basically polls this 4 byte register via I2C interface, accounts for the voltage divider (see TS-7670 schematic or TS-7400-V2 schematic), and spits out the Vin value. So, without further ado, here’s the code:

Continue reading “Getting Current Voltage Input (VIN) on TS-7670 or TS-7400-V2”

Develop a Simple Qt Quick Interface for HMI/SCADA Applications

Introduction

We’re graduating from our Getting Started with Qt Creator on the TS-TPC-8390-4900 guide, where we ran an example program which came preloaded with Qt Creator on our TS-TPC-8390-4900, and moving into a more real world situation. This guide builds upon the foundations that we set up in the getting started guide and will walk you through building a simple human machine interface (HMI) for supervisory control and data acquisition (SCADA) applications. We’ll be controlling a register connected to a red LED as well as reading a temperature sensor connected to our CPU. This is about as basic as you can get to demonstrate both system control and data acquisition, and it’s not far from a basic real world use case. In the real world, you’d be toggling DIO or relays instead of toggling an LED. As an end user of the touch panel computer (TPC), you’d be transferring control signals or other data via RS-232 or Ethernet with the press of a button. Once you complete this tutorial it’s a small jump to toggle DIO and relays to control a remote system.

For this guide, a project file containing TS-TPC-8390-4900 specific code written in C++ called “HeatLaser” will be provided for you. It reads CPU temperature every second and toggles the red LED. You’ll simply download it and open the project within Qt Creator. By the end of this guide, you’ll be able to run and have a basic understanding of a Qt Quick Controls application. When you’re comfortable, you can make some edits to the project file to implement other similar tasks that may be more relevant to your needs.

Continue reading “Develop a Simple Qt Quick Interface for HMI/SCADA Applications”

Reading CPU Temperature and Controlling LED with C++ via sysfs

thermometer

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:

Continue reading “Reading CPU Temperature and Controlling LED with C++ via sysfs”

Getting Started with Qt Creator on the TS-TPC-8390-4900 or TS-TPC-7990

Introduction

In this getting started guide, we’re going to look at what it takes to get an example Qt Creator project running on the TS-TPC-8390-4900 or TS-TPC-7990. This will help pave the way for developing a human machine interface (HMI) for supervisory control and data acquisition (SCADA). We’ll start out by talking about the expected workflow and specific versions compatible with our chosen hardware, TS-TPC-8390-4900 or TS-TPC-7990. Next the TS-TPC-8390-4900 and Qt Creator will need to be prepared to work together. Finally, we’ll test our environment by running an example Qt Quick Controls Application. In a follow up guide, titled Develop a Simple Qt Quick Interface for HMI/SCADA Applications, we’ll look into what it takes to gather some system data and control DIO.

Continue reading “Getting Started with Qt Creator on the TS-TPC-8390-4900 or TS-TPC-7990”

Practical Guide to Getting Started with the TS-TPC-8390-4900

Introduction

This guide will walk you through the basic steps of getting your TS-TPC-8390-4900 touch panel computer (TPC) up and running. It’s mostly an extrapolation from the official TS-TPC-8390-4900 Manual, but provides a more practical approach in setting up common connections, networking, and environments to begin development. We’ll assume you’ve already gone through the excitement of unboxing, and we’ll pick up from there.

TS-TPC-8390-4900 Out of the Box with PSU and Serial Adapter

Connections

Let’s get our TS-TPC-8390-4900 hooked up! This includes our very basic connections we’ll need for most any development or project: power, serial console, Ethernet, and optionally a keyboard and mouse.

Continue reading “Practical Guide to Getting Started with the TS-TPC-8390-4900”

Creating a Human-Machine Interface (HMI) Web Application

Simple Embedded Monitor and Control Dashboard

Final HMI Web Application
Final HMI Web Application

In this guide, we’re going to learn how to create a very simple PHP web application that will read and display real-time CPU temperature data and control an LED using javascript AJAX calls from a web browser anywhere in the world. In the real world, you’d want to monitor something more interesting, like equipment or sensors connected to ADC, CAN, RS-485, RS-232 ports and other GPIO pins. Or how about monitoring voltage input? You’d also want to be able to control your connected equipment using digital output signals. This guide provides an introduction to the concepts that will help get you started in the right direction. All source code is available in the tarball hmi-example-web-app.tar.

Continue reading “Creating a Human-Machine Interface (HMI) Web Application”

Getting Current Voltage Input (VIN) on TS-7250-V2

Here’s an example program our engineers might find useful. Jesse Off, our lead engineer, wrote this simple program to get the voltage input (Vin) on the 8 – 28 VDC power rail on the TS-7250-V2 (Rev. B only). Without going into too much detail about implementation of the SiLabs microcontroller, there is a register which is used to store various ADC values, including Vin. This example program basically polls this 19 byte register via I2C interface, accounts for the voltage divider (see TS-7250-V2 schematic), and spits out the Vin value. So, without further ado, here’s the code:

Continue reading “Getting Current Voltage Input (VIN) on TS-7250-V2”

Practical Guide to Getting Started with the TS-7250-V2

Introduction

This guide will walk you through the basic steps of getting your TS-7250-V2 up and running. It’s mostly an extrapolation from the official TS-7250-V2 Manual, but provides a more practical approach in setting up common connections, networking, and environments to begin development.

Connections

Let’s get our TS-7250-V2 hooked up! This includes our very basic connections we’ll need for most any development or project: power, serial console, and Ethernet.

TS-7250-V2 with power, console, and Ethernet
TS-7250-V2 with power, console, and Ethernet

Continue reading “Practical Guide to Getting Started with the TS-7250-V2”

The Time for Industrial IoT is Now

The Time for Industrial IoT is Now

While home automation first put the Internet of Things concept into the technology mainstream, industrial IoT is where this nascent high-tech sector’s growth truly lies. Companies of all sizes, spanning many different industries, hope to gain a competitive advantage using a variety of IoT applications.

A typical industrial IoT scenario involves data from sensors embedded inside equipment that communicates with a small gateway computer connected to the Internet. A remote data analyst or engineer uses this information in a myriad of ways. The ultimate goal of the application could be optimizing performance by detecting either hardware breakdowns or simply inefficient operation.

Frankly, this is only one of many different possibilities. Let’s dive into some reasons why the time for industrial IoT is today.

Continue reading “The Time for Industrial IoT is Now”

Improving PC/104 Bandwidth using FPGA Microcontroller

The TS-ADC24 can provide up to 8 MB/s of ADC data, but the ISA (PC/104) bus on most systems is limited to 2 MB/s bandwidth or less. So one might conclude that the TS-ADC24 is over-designed. However, the TS-ADC24 itself does not require the long ISA strobe times that typical PC/104 systems use, and a well-designed PC/104 system such as the TS-8100-4740 featuring a Spartan 6 FPGA can actually exceed 2MB/s for sustained bursts. This translates into sampling 4 ADC channels at 250 kHz or even 500 kHz. This is possible due to standard functionality in the FPGA including customizable bus timing, user DMA, and an embedded processor. With extra engineering, 1000 kHz would be possible, but this article explores what can be accomplished by a typical C programmer who does not want to venture into the realm of FPGA development.

Continue reading “Improving PC/104 Bandwidth using FPGA Microcontroller”