Example C Code for Reading ADC Inputs on i.MX28 Based Embedded Systems

Let’s take a quick look at what it takes to read from the ADC inputs of a i.MX28 based embedded system using example C code provided by Technologic Systems. Now, while this can be generically applied to many i.MX28 based embedded systems, we’ll be working with a TS-7680. Right, let’s get started!

Continue reading “Example C Code for Reading ADC Inputs on i.MX28 Based Embedded Systems”

Practical Guide to Getting Started with the TS-7600

This practical guide gives us an opportunity to take a relaxed approach to getting started with the TS-7600 single board computer paired with the TS-ENC750 enclosure with TS-752 baseboard. We’re going to take a look at how to make our first connections, talk about the Linux environment, and setup the network. These are usually the first things we do before starting development. In the grand scheme of things, this is just a friendlier extrapolation from the official TS-7600 manual, so be sure to keep it handy for more advanced topics and specific details. The only assumption being made is that you’ve purchased the TS-7600 with a development kit, including the pre-programmed microSD card and TS-ENC750 and TS-752 baseboard. Right then, let’s get started!

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

Practical Guide to Getting Started with the TS-TPC-7990

Introduction

The goal of this practical guide is to get you through the basic steps of getting your TS-TPC-7990 up and running so you can begin development. It’s mostly an extrapolation of the official TS-TPC-7900 Manual, but provides a more practical and casual approach in setting up connection, networking, and general development environment.    Home

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

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

Introduction

This guide aims to get you through the basic steps of getting your TS-7400-V2 up and running so you can begin development. It’s mostly an extrapolation of the official TS-7400-V2 Manual, but provides a more practical and casual approach in setting up connections, networking, and general environment.

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

How To Compile the Mainline Linux Kernel v4.9 for TS-4900

embedded-linux-ts-board

Here’s a quick how-to guide straight from one of our engineers on how to compile the mainline Linux Kernel v4.9-rc1 and install it on the TS-4900. Support for the TS-4900 in the mainline kernel image (v4.9 and up) is a pretty big deal for us, and we’re excited about it. A big shout out to our friends at Savoir-faire Linux for their hard work in making this happen!

Step 1: Install the Toolchain

We need to install the toolchain from Ubuntu or Debian Jessie by running the following command:              Home

apt-get install gcc-arm-linux-gnueabihf build-essential lzop u-boot-tools libncursesw5-dev -y

Continue reading “How To Compile the Mainline Linux Kernel v4.9 for TS-4900”

Practical Guide to Getting Started with the TS-7680

ts-7680-hooked-up

Introduction

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

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

Practical Guide to Getting Started with the TS-7970

ts-7970-connected

Introduction

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.

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

Building a Yocto Image for NXP i.MX6 Products

yocto-project-thumbdrive

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.

Continue reading “Building a Yocto Image for NXP i.MX6 Products”

Tag Jumping in a Codebase Using ctags and cscope in Vim

Introduction

Tag jumping is immensely helpful when developing in a CLI environment such as Vim or Emacs. Simply place a marker over the function, variable, class, macro, etc. and with a keystroke, jump to the declaration or view other references across multiple files. This productivity tool will help you develop and debug faster and get a better understanding of your codebase.

There are two main solutions for tag jumping: ctags and cscope. Both are very similar in how they function: scan a codebase and index keywords (tags) and their locations. Vim understands the index and provides you with an interface for jumping back and forth between the tags.

The differences between the two are small, but important to distinguish. With ctags, you can use autocomplete (aka omnicomplete) for function and variable names as you type, something cscope doesn’t give you. Also, there’s much less setup to get ctags up and running as it’s generally already installed. The downside is ctags doesn’t do as well as cscope with a conglomerated or mostly unknown codebase. The good news is, they can co-exist!    Home

We’re going to take a look at setting up and basic usage of both in this guide. If you need a diverse codebase to try this out on, try cloning a random trending c repository from GitHub. I settled on grpc/grpc because it was large and varied enough to really put ctags and cscope to the test.

Continue reading “Tag Jumping in a Codebase Using ctags and cscope in Vim”

How to Write an SD Card Image (Linux, Windows, Mac OSX)

sd-card

The question “How do I write a TS Image to an SD card under Linux / Mac OSX / Windows?” comes up quite a bit when dealing with embedded systems or any situation where you want to make an exact, bit-by-bit copy of a removable storage card or disk. While the following guide talks about our products, it can be applied generically. Read through it first to make sure you have a basic, core understanding of the instructions given, and then apply them to your situation. We’ll be looking at how to write to an entire disk and/or a specific partition on that disk using the dd command, a common utility found in most unix systems for low-level operations on hard disks. Jokingly, ‘dd’ stands for “disk destroyer” or “delete data”, so take care!      Home

Continue reading “How to Write an SD Card Image (Linux, Windows, Mac OSX)”