Scott Garman, Technical Evangelist

This article was a preview of an upcoming interview in the February issue of Circuit Cellar. The full interview is now available here.

Scott Garman is a Portland, OR-based Linux software engineer. Scott is very involved with the Yocto Project, an open-source collaboration that provides tools for the embedded Linux industry. Scott tells us about how he recently helped Intel launch MinnowBoard, the company’s first open-hardware SBC. The entire interview will be published in Circuit Cellar’s February issue.—Nan Price, Associate Editor

NAN: What is the Yocto Project?

 SCOTT: The Yocto Project is centered on the OpenEmbedded build system, which offers a tremendous amount of flexibility in how you can create embedded Linux distros. It gives you the ability to customize nearly every policy of your embedded Linux system.

I’ve developed training materials for new developers getting started with the Yocto Project, including “Getting Started with the Yocto Project—New Developer Screencast Tutorial.”


Scott was involved with a MinnowBoard robotics and computer vision demo at LinuxCon Japan, May 2013.

NAN: Tell us about Intel’s recently introduced the MinnowBoard SBC.

SCOTT: The MinnowBoard is based on Intel’s Queens Bay platform, which pairs a Tunnel Creek Atom CPU (the E640 running at 1 GHz) with the Topcliff Platform controller hub. The board has 1 GB of RAM and includes PCI Express, which powers our SATA disk support and gigabit Ethernet. It’s an SBC that’s well suited for embedded applications that can use that extra CPU and especially I/O performance.


Scott worked on a MinnowBoard demo built around an OWI Robotic Arm.

The MinnowBoard also has embedded bus standards including GPIO, I2C, SPI, and even CAN (used in automotive applications) support. We have an expansion connector on the board where we route these buses, as well as two lanes of PCI Express for custom high-speed I/O expansion.

NAN: What compelled Intel to make the MinnowBoard open hardware?

SCOTT: The main motivation for the MinnowBoard was to create an affordable Atom-based development platform for the Yocto Project. We also felt it was a great opportunity to try to release the board’s design as open hardware.

Two Campuses, Two Problems, Two Solutions

In some ways, Salish Kootenai College (SKC)  based in Pablo, MT, and Penn State Erie, The Behrend College in Erie, PA, couldn’t be more different

SKC, whose main campus is on the Flathead Reservation, is open to all students but primarily serves Native Americans of the Bitterroot Salish, Kootenai, and Pend d’Orellies tribes. It has an enrollment of approximately 1,400. Penn State Erie has roughly 4,300.

But one thing the schools have in common is enterprising employees and students who recognized a problem on their campuses and came up with technical solutions. Al Anderson, IT director at the SKC, and Chris Coulston, head of the Computer Science and Software Engineering department at Penn State Erie, and his team have written articles about their “campus solutions” to be published in upcoming issues of Circuit Cellar.

In the summer of 2012, Anderson and the IT department he supervises direct-wired the SKC dorms and student housing units with fiber and outdoor CAT-5 cable to provide students better  Ethernet service.

The system is designed around the Raspberry Pi device. The Raspberry Pi queries the TMP102 temperature sensor. The Raspberry Pi is queried via the SNMP protocol.

The system is designed around the Raspberry Pi device. The Raspberry Pi queries the TMP102 temperature sensor. The Raspberry Pi is queried via the SNMP protocol.

“Prior to this, students accessed the Internet via a wireless network that provided very poor service.” Anderson says. “We wired 25 housing units, each with a small unmanaged Ethernet switch. These switches are daisy chained in several different paths back to a central switch.”

To maintain the best service, the IT department needed to monitor the system’s links from Intermapper, a simple network management protocol (SNMP) software. Also, the department had to monitor the temperature inside the utility boxes, because their exposure to the sun could cause the switches to get too hot.

This is the final installation of the Raspberry Pi. The clear acrylic case can be seen along with the TMP102 glued below the air hole drilled into the case. A ribbon cable was modified to connect the various pins of the TMP102 to the Raspberry Pi.

This is the final installation of the Raspberry Pi in the SKC system. The clear acrylic case can be seen along with the TMP102 glued below the air hole drilled into the case. A ribbon cable was modified to connect the various pins of the TMP102 to the Raspberry Pi.

“We decided to build our own monitoring system using a Raspberry Pi to gather temperature data and monitor the network,” Anderson says. “We installed a Debian Linux distro on the Raspberry Pi, added an I2C Texas Instruments TMP102 temperature sensor…, wrote a small Python program to get the temperature via I2C and convert it to Fahrenheit, installed SNMP server software on the Raspberry Pi, added a custom SNMP rule to display the temperature from the script, and finally wrote a custom SNMP MIB to access the temperature information as a string and integer.”

Anderson, 49, who has a BS in Computer Science, did all this even as he earned his MS in Computer Science, Networking, and Telecommunications through the Johns Hopkins University Engineering Professionals program.

Anderson’s article covers the SNMP server installation; I2C TMP102 temperature integration; Python temperature monitoring script; SNMP extension rule; and accessing the SNMP Extension via a custom MIB.

“It has worked flawlessly, and made it through the hot summer fine,” Anderson said recently. “We designed it with robustness in mind.”

Meanwhile, Chris Coulston, head of the Computer Science and Software Engineering department at Penn State Erie, and his team noticed that the shuttle bus

The mobile unit to be installed in the bus. bus

The mobile unit to be installed in the bus.

introduced as his school expanded had low ridership. Part of cause was the unpredictable timing of the bus, which has seven regular stops but also picks up students who flag it down.

“In order to address the issues of low ridership, a team of engineering students and faculty constructed an automated vehicle locator (AVL), an application to track the campus shuttle and to provide accurate estimates when the shuttle will arrive at each stop,” Coulston says.

The system’s three main hardware components are a user’s smartphone; a base station on campus; and a mobile tracker that stays on the traveling bus.

The base station consists of an XTend 900 MHz wireless modem connected to a Raspberry Pi, Coulston says. The Pi runs a web server to handle requests from the user’s smart phones. The mobile tracker consists of a GPS receiver, a Microchip Technology PIC 18F26K22 and an XTend 900 MHz wireless modem.

Coulston and his team completed a functional prototype by the time classes started in August. As a result, a student can call up a bus locater web page on his smartphone. The browser can load a map of the campus via the Google Maps JavaScript API, and JavaScript code overlays the bus and bus stops. You can see the bus locater page between 7:40 a.m. to 7 p.m. EST Monday through Friday.

“The system works remarkably well, providing reliable, accurate information about our campus bus,” Coulston says. “Best of all, it does this autonomously, with very little supervision on our part.  It has worked so well, we have received additional funding to add another base station to campus to cover an extended route coming next year.”

The base station for the mobile tracker is a sandwich of Raspberry Pi, interface board, and wireless modem.

The base station for the mobile tracker is a sandwich of Raspberry Pi, interface board, and wireless modem.

And while the system has helped Penn State Erie students make it to class on time, what does Coulston and his team’s article about it offer Circuit Cellar readers?

“This article should appeal to readers because it’s a web-enabled embedded application,” Coulston says. “We plan on providing users with enough information so that they can create their own embedded web applications.”

Look for the article in an upcoming issue. In the meantime, if you have a DIY wireless project you’d like to share with Circuit Cellar, please e-mail





Q&A: Krystal Horton, the Raspberry Pi Kid

Eben Upton and Krystal met in October at the Broadcom MASTERS

Krystal Horton is the clever kid behind the blog Raspberry Pi Kid: An 11-Year-Old’s Adventures with Raspberry Pi.  Since starting her blog in January 2013, her entries have covered everything from unpacking her first Pi, to projects she has created with the SBC, to her recent dinner with Eben Upton, founder and trustee of the Raspberry Pi Foundation, and his wife, Liz Upton, who oversees the foundation website.

Krystal met the couple in October 2013 in Washington, D.C., as one of 30 finalists competing in the 2013 Broadcom MASTERS, a national science, technology, engineering, and math competition for middle school students.  (At the competition, Krystal was named one of two Rising Stars students who will represent Broadcom MASTERS at the 2014 International Science and Engineering Fair, the world’s largest international high school science fair competition.)

“They also gave each of the finalists their own Raspberry Pi,” Krystal says in her October 2 blog entry from Washington, D.C.  “I’m hoping to have each of the finalists guest post on my blog after they’ve had a chance to try out the RPi.”

Liz Upton describes Krystal as “brilliant.” Recently, Circuit Cellar Managing Editor Mary Wilson asked the seventh-grader several questions about her interest in the Raspberry Pi and the blog she created to complement it.

Krystal and her oak borer beetle infestation science project.

Krystal and her oak borer beetle infestation science project.

MARY: Tell us a little bit about yourself and why you became interested in working with the Raspberry Pi.

KRYSTAL: I am an 11-year-old seventh-grader in Southern California. I have been interested in science and technology ever since I can remember. My cousin got a Raspberry Pi for Christmas and my uncle saw how curious I was. So, he gave me one for New Year’s. He gave me some basic lessons on how to hook it up, turn it on, and type into Vim. That and some YouTube videos, tutorials, and eBooks and I was off and running. I now blog at and sometimes I tweet through @kid_pi.

MARY: Why did you decide to start your blog Raspberry Pi Kid? What type of feedback/comments have you gotten from visitors to your site? Will you rename the blog and keep posting when you’re 12?

KRYSTAL: I’ve learned so much from other people’s blogs, but they’re written for adults and are very hard for a kid to understand. So, I thought that I could put things in kid language and in simple steps so that other kids would be inspired and learn from what I’ve done. I want to give back to the Raspberry Pi and blogging communities.

On my blog, I’m often talking about problems that I’m having (I still haven’t figured out analog to digital conversion) and a lot of people offer to help me out. Others congratulate me and wish that they’d had an RPi when they were my age. I’ve also heard from other kids my age who are learning to code. I put my dad’s email address on the account and he gets invitations for me to Skype with CoderDojos and to guest blog for people. I have over 52,000 views to my blog right now. I hadn’t even thought about whether the name would change when I turn 12, but I’ll definitely keep blogging.

MARY:  Was the SBC difficult to set up? What was the first project you worked on with it?

KRYSTAL: The only hard thing about setting it up is all of the accessories that you need. It doesn’t even come with a power supply, keyboard, or mouse. My uncle gave me some of the stuff (power supply, wireless keyboard/mouse, breadboard), I had some stuff at home (memory card, network cable), and I bought some stuff from Adafruit’s very useful website (wireless adapter, ADC chip, breadboard accessories).

I really like the idea of programming the computer to do things. So, the first thing I did was start programming in Python through Vim and IDLE. I got a book from the library, read tutorials online, and emailed my uncle questions.

MARY: Can you tell me about some other Pi-based projects you have finished or are working on? Do you have something you would like to do next? Where do you get your ideas? Where do you go for guidance?

Krystal and her robot

Krystal and her robot

KRYSTAL: I love playing Minecraft, so when I saw that there’s a Pi version, I installed it and blogged about it. I’ve also used the Scratch programming language to create games and blink LEDs. I’ve used RPi as a Linux computer with the Wheezy version. I just wish that Midori would play YouTube videos so that I could watch Pi tutorials on my Pi. I have also installed OpenELEC (Open Embedded Linux Entertainment Center) so that I can stream HD video to my TV. I’ve also used PuTTY to control the Pi with a laptop (my uncle showed me that one).

In the future, I want to keep working with Scratch, a free visual programming language for kids from MIT (where I want to go to college). I want to figure out analog to digital so that I can connect sensors. And I want to use the RPi to do a science fair project. I really, really want to get a 3-D printer and connect it to the Pi.  I’m planning to order a MakiBOX soon, but it’ll take six-10 weeks to arrive and then I have to build it and learn how to use it.

When I don’t know how to do something, my dad helps me find answers on YouTube or other people’s blogs. He’s a scientist, not a programmer, so he learns with me sometimes. If he can’t help me, I email my uncle who does know how to program. He has automated his house with a RasPi. If I can’t get in touch with him, then I post a question on a forum and wait for answers.

Close up view of the credit-card sized Pi

Close up view of the credit-card sized Pi

MARY: What were some of the challenges you had to overcome with the Pi? What, if anything, would you change about it?

KRYSTAL: One of the problems I’ve had is when things don’t work for me as the blogs say they should. I had a really hard time getting Wi-Fi to work even though I followed the instructions exactly.

If I could change anything, I’d label the GPIO pins right on the board. I’ve had to look up that diagram soooo many times. There are several versions now, so I’d recommend marking them to make it easier to tell which one it is when getting a case for it. I’ve read stories about people breaking off the connector where the memory card goes. That’s scary, I hope they fix that if they can.

MARY: What do you think are the SBC’s best features?

KRYSTAL: Everyone says that the price and size are the Pi’s best features and I agree. But I also like that it’s so open to let me put any kind of Linux I want on it. Some people have even put the Android Operating System on it. Not me… yet.

MARY: What new skills/tools have you learned about through your Pi?

KRYSTAL: Some of the things I’ve learned through using my Pi are: coding in Python and Scratch, basic electronics (how to use a breadboard, multimeter, LEDs, etc.), and using Linux and all of the absolutely free software for it. These are very valuable skills for anyone to learn. I’ve learned about IP addresses and using a computer without the graphical interface at times also.

MARY: What advice would you give to another kid (or adult tinkerer) who is interested in getting started with the Raspberry Pi?

KRYSTAL: The advice that I’d give is to work on fun projects. This shouldn’t feel like boring work. Also, don’t get frustrated if things don’t work right the first time. That’s just part of coding. Most big cities also have groups of computer users. Find one and connect with them.

MARY: How many other 11-year-old girls do you know who are drawn to the Raspberry Pi? Any thoughts about that?

KRYSTAL: I’ve met online several kids who are using Pi. I spoke through Skype with a group in Washington, D.C., one Saturday morning. There were probably 15 kids and many were girls. I watched a video of a girl who tests all of the Raspberry Pis that get sent back as broken.

I think that computers and technology are going to be incredibly important to my generation. It is very scary that so few (girls or boys) are learning how technology works and how to code. Coders are going to rule the future, and I want be a part of that. All kids should. And their parents need to encourage it.  Websites like and and devices like Raspberry Pi are helping.

CC279: What’s Ahead in the October Issue

Although we’re still in September, it’s not too early to be looking forward to the October issue already available online.

The theme of the issue is signal processing, and contributor Devlin Gualtieri offers an interesting take on that topic.

Gualtieiri, who writes a science and technology blog, looks at how to improve Improvig Microprocessor Audio microprocessor audio.

“We’re immersed in a world of beeps and boops,” Gualtieri says. “Every digital knick-knack we own, from cell phones to microwave ovens, seeks to attract our attention.”

“Many simple microprocessor circuits need to generate one, or several, audio alert signals,” he adds. “The designer usually uses an easily programmed square wave voltage as an output pin that feeds a simple piezoelectric speaker element. It works, but it sounds awful. How can microprocessor audio be improved in some simple ways?”

Gualtieri’s article explains how analog circuitry and sine waves are often a better option than digital circuitry and square waves for audio alert signals.

Another article that touches on signal processing is columnist Colin Flynn’s look at advanced methods of debugging an FPGA design. It’s the debut of his new column Programmable Logic in Practice.

“This first article introduces the use of integrated logic analyzers, which provide an internal view of your running hardware,” O’Flynn says. “My next article will continue this topic and show you how hardware co-simulation enables you to seamlessly split the verification between real hardware interfacing to external devices and simulated hardware on your computer.”

You can find videos and other material that complement Colin’s articles on his website.

Another October issue highlight is a real prize-winner. The issue features the first installment of a two-part series on the SunSeeker Solar Array Tracker, which won third SunSeekerplace in the 2012 DesignSpark chipKit challenge overseen by Circuit Cellar.

The SunSeeker, designed by Canadian Graig Pearen, uses a Microchip Technology chipKIT Max32 and tracks, monitors, and adjusts PV arrays based on weather and sky conditions. It measures PV and air temperature, compiles statistics, and communicates with a local server that enables the SunSeeker to facilitate software algorithm development. Diagnostic software monitors the design’s motors to show both movement and position.

Pearen, semi-retired from the telecommunications industry and a part-time solar technician, is still refining his original design.

“Over the next two to three years of development and field testing, I plan for it to evolve into a full-featured ‘bells-and-whistles’ solar array tracker,” Pearen says. “I added a few enhancements as the software evolved, but I will develop most of the additional features later.”

Walter Krawec, a PhD student studying Computer Science at the Stevens Institute of Technology in Hoboken, NJ, wraps up his two-part series on “Experiments in Developmental Robotics.”

In Part 1, he introduced readers to the basics of artificial neural networks (ANNs) in robots and outlined an architecture for a robot’s evolving neural network, short-term memory system, and simple reflexes and instincts. In Part 2, Krawec discusses the reflex and instinct system that rewards an ENN.

“I’ll also explain the ‘decision path’ system, which rewards/penalizes chains of actions,” he says. “Finally, I’ll describe the experiments we’ve run demonstrating this architecture in a simulated environment.”

Videos of some of Krawec’s robot simulations can be found on his website.

Speaking of robotics, in this issue columnist Jeff Bachiochi introduces readers to the free robot control programming language RobotBASIC and explains how to use it with an integrated simulator for robot communication.

Other columnists also take on a number of very practical subjects. Robert Lacoste explains how inexpensive bipolar junction transistors (BJTs) can be helpful in many designs and outlines how to use one to build an amplifier.

George Novacek, who has found that the cost of battery packs account for half the DIY Battery Chargerpurchase price of his equipment, explains how to build a back-up power source with a lead-acid battery and a charger.

“Building a good battery charger is easy these days because there are many ICs specifically designed for battery chargers,” he says.

Columnist Bob Japenga begins a new series looking at file systems available on Linux for embedded systems.

“Although you could build a Linux system without a file system, most Linux systems will have some sort of file system,” Japenga says. “And there are various types. There are files systems that do not retain their data (volatile) across power outages (i.e., RAM drives). There are nonvolatile read-only file systems that cannot be changed (e.g., CRAMFS). And there are nonvolatile read/write file systems.”

Linux provides all three types of file systems, Japenga says, and his series will address all of them.

Finally, the magazine offers some special features, including an interview with Alenka Zajić, who teaches signal processing and electromagnetics at Georgia Institute of Technology’s School of Electrical and Computer Engineering. Also, two North Carolina State University researchers write about advances in 3-D liquid metal printing and possible applications such as electrical wires that can “heal” themselves after being severed.

For more, check out the Circuit Cellar’s October issue.



CC 277: Using Files in Concurrent Linux Designs

In the August issue of Circuit Cellar, columnist Robert Japenga, who has been designing embedded systems since 1973, wraps up his eight-part series on the benefits and challenges of designing concurrency into your systems and some of the specific tools Linux provides for IPC.

His final installment discusses file usage. It also recounts how the development of read/write nonvolatile memory (i.e., flash technology) enabled embedded systems to contain cost-competitive file systems.

“Disk drives in the early days were too big and weren’t reliable enough for embedded systems. The first real disk drive I used in 1975 was a Digital Equipment RK-05 for a PDP-11 that held an amazing 2.5 MB of data,” Japenga says in his column. “The RK-05 was released in 1972. It initially weighed 100 lbs. The $74 monthly maintenance cost would buy a 1-TB drive today or 12 per year.

In 1972, a Digital Equipment RK-05 disk drive held only 2.5 MB of data. (Photo courtesy of Mark Csele)

“In 1977, a friend from Bell Labs carried an RK-05 with a copy of Unix onto a plane. At the gate, the inspector opened the lid and put his finger on the magnetic platter. Whoops. The disk gloriously crashed when inserted into my disk drive. It seemed I would have to wait for my first copy of Unix.

“”For a time, companies produced hardened disk drives. The cost was very prohibitive and the reliability was questionable. Then in 2001, the iPod changed all that when Apple used Toshiba’s 1.8” hard drive, which is only 0.2” thick. As a consumer product, it had to be extremely rugged. Very small embedded systems now had hard drives.

“But not all of us built millions of systems, nor could we afford to put a hard disk in our temperature controllers, motion-control devices, or avionics boxes. However, with the advent of read/write nonvolatile memory (i.e., flash technology), embedded systems now had a way to contain cost-competitive file systems. This paved the way for putting real OSes into embedded systems. In the late 1990s and later, we were putting DOS on a flash card. Well, not everything was a real OS! And that is where Linux comes into the picture.”

Japenga’s column goes on to discuss file systems and the mechanisms to create concurrent systems, including nonvolatile flag files, volatile flag files, data sharing, and event triggering. It concludes with a thorough discussion of some of the risks of using a file system in a concurrent system.

“Modern embedded systems are doing more than I ever imagined when I started out,” Japenga says. “Adding a file system to your design can provide significant advantages to improve your product. As with all OS functions, we need to understand how our file system works if we are going to use it properly—especially in systems with concurrency.”

For more, check out  Japenga’s column, Embedded in Thin Slices, in Circuit Cellar‘s August issue.