The Summer of OSC

September 11, 2019

I knew when I met you an adventure was going to happen.

—Winnie the Pooh

I just love summer music festivals, whether I'm working on them or just attending, they are a welcome change from my largely indoor profession of designing electronic systems. This year, working stage management at Beloved and other festivals, I noticed a common thread across a variety of stages, which I'll call "the Summer of OSC".


August 11, 2019

Learn to light a candle in the darkest moments of someone’s life. Be the light that helps others see; it is what gives life its deepest significance.

—Roy T. Bennett, The Light in the Heart

There are many ways to synchonize lights and music/sounds, and here is a simple MIDI sound to DMX lighting bridge demonstration using the new PatternAgents MIDI and DMX FeatherWing boards. We'll assign MIDI notes to DMX lighting channels with velocity translating to brightness.

thingSoC CrowdSupply funded and shipped

March 10, 2017

Change your thoughts and you change your world.

—Norman Vincent Peale

Our thingSoC thingSoC CrowdSupply campaign was funded, and we have shipped out boards to all of our backers. Thank You!

thingSoC nears release...

January 10, 2016

Live as if you will die tomorrow. Learn as if you will live forever.

—Mahatma Ganghi

thingSoC defines a physical, hardware socket system for inter-operable printed circuit boards, with a data centric firmware model for automatic device discovery, and a software API for interacting with the system.

Real-Time Location Systems for IoT

August 25, 2015

There is a saying that every nice piece of work needs the right person in the right place at the right time.

—Benoit Mandelbrot

I've worked on a number of Real-Time Location Systems (RTLS) over the years, including Global Positioning Systems (GPS), and Radio Frequency Location Systems (RFLS), and all of them have had their share of problems with accuracy, signal interferance, and signal loss. My friend David just demonstrated a new Real-Time Location System (RTLS) for me this week, based on the the IEEE_802.15.4 standard, using an Ultra-Wide Band (UWB) tranceiver from decaWave, the DW1000. With up to ten centimeter (10cm) indoor position accuracy of moving objects, it's accuracy sets a new standard.

New IoT SoCs

June 19, 2015

We're still in the first minutes of the first day of the internet revolution.

—Scott Cook

There have been a number of purpose built System-on-Chip (SoC) devices intended for connecting to the Internet of Things (IoT). Examples include the ESP8266 (WiFi), the CC2530 (Zigbee), or the Spirit1 (sub-1GHz), for different wireless connection standards. In the Bluetooth & ANT IoT connectivity space, Nordic Semiconductor has been playing a winning hand with their ARM Cortex-M0 based nRF51822 IoT SoC, and they have just seriously upped the ante with their new ARM Cortex-M4F based nRF52832 IoT SoC. It's a multiprotocol RF SoC that supports Bluetooth Smart, ANT, Near Field Communication (NFC), Out-of-Band Pairing (OoB), Ultra-Low Power (ULP), and more.

More DeviceTree Flavors!

June 05, 2015

Variety's the very spice of life, that gives it all its flavor.

—William Cowper

Those of you who have been following what's been happening with hardware platforms like the Android, Beaglebone Black, Raspberry Pi, and several other small Linux systems, have probably noticed a bit of divergence with respect to the Device Tree EEPROM formats used on these platforms. So far, it's not seemed like the simplification or standardization that everyone had hoped for; and what about cross-platform peripherals?

Smart Device Trees meet Smart Objects

May 21, 2015

It’s not in the dreaming, it’s in the doing.

—Mark Cuban

Internet Protocol Smart Objects (ISPO) have the potential to provide much better interoperability for Internet connected devices, by standardizing the data (and the meta-data) exchanged between those devices. While the market has seen an explosion of new IoT devices, the vast majority can not "talk" to each other in any meaningful way, since they don't know each others data formats and device capabilities. Internet Protocol Smart Objects (ISPO) outlines several "Smart Object" classes for sensors and actuators with well known data formats. For the past several articles, I've been discussing Device Trees and their application in describing the hardware capabilities of various embedded platforms, which seems to be exactly what we need to automatically generate the directory of Internet Protocol Smart Objects (ISPO) for IoT devices. I think it's time for Smart Objects to meet Smart Device Trees...

Device Tree Discussions

February 09, 2015

A new word is like a fresh seed sown on the ground of the discussion.

—Ludwig Wittgenstein

There has been considerable progress in the just the past few years with implementing the Device Tree format on embedded platforms, particlarly in the ARM portion of the Linux Kernal. It has been an interesting an interesting time with all the growth and changes, but a little hard to locate all the different efforts underway. I've been working to collect what I can find, and index some of the topics under discussion.

Smart Devicetrees

February 06, 2015

A smart man makes a mistake, learns from it, and never makes that mistake again. But a wise man finds a smart man and learns from him how to avoid the mistake altogether.

—Roy H. Williams

Lately, I've been working on automatic discovery and configuration of devices and peripherals, using Binary Level Objects, like the IPMI FRU, the Devicetree and Devicetree Overlay formats. Typically these have been implemented using just a "dumb" storage device, like an EEPROM, or an SDcard, or perhaps a Dynamic NFC/RFID tag. So, what then, do I mean by a "Smart" Devicetree?

Device Tree on Modbus

February 02, 2015

Education is the most powerful weapon you can use to change the world.

—Nelson Mandela

Unless you've been living under a rock since the late '70's, you've probably heard about Modbus, the communications protocol used for a wide variety of industrial systems, from sensors to programmable logic controllers(PLCs). Modbus can be found in most factories and automated assembly lines. Modbus devices can be quite complicated; but what if we used an embedded Device Tree to describe them?
That would enable the automatic discovery and configuration
of Modbus devices and peripherals, wouldn't it?

Device Tree and Product Life Cycles

February 01, 2015

Why do they always want to do it the hard way?

—Wile E. Coyote, Genius

Imagine that Wile E. Coyote has just finished watching
"Rise of the Drones" on PBS, and he has had a "Eureka!" moment. He immediately dials Acme Corporation and orders several dozen T-4 Aerial Drones. As the new manager of Acme Corporation, you realize that Wile E. Coyote will in all likelyhood crash the majority of them, and you will need a good way to track warranty claims and product repairs;
as he seems to have an unlimited line-of-credit, and he has also
purchased the platinum service plan with every one of those Drones.

Device Tree Overlays

January 29, 2015

If a tree dies, plant another in its place.

—Carl Linnaeus

In my last article, I gave a general overview of the Device Tree format, and some basics on how it is being used for automatically configuring the hardware of embedded computing platforms like the Beaglebone Black, Xilinx Zynq, and many other System-on-Chip (SOC) devices. Device Tree Overlays, originated by Pantelis Antoniou are now being used to support add-on devices and expansion boards, allowing automatic discovery and automatic configuration on several computing platforms. In this article, I'll discuss the Device Tree Overlay and why it is getting adopted for even more computing platforms.

Device Tree Overview

January 28, 2015

In nature, nothing is perfect and everything is perfect. Trees can be contorted, bent in weird ways, and they're still beautiful.

—Alice Walker

Recently, I've been working with the Device Tree format, which is becoming widely used for automatically configuring the hardware of embedded computing platforms like the Beaglebone Black, Xilinx Zynq, Altera Arria, and many other System-on-Chip (SOC) devices. The Device Tree is read during the computing platform boot up sequence, and it describes all the hardware of the embedded computing platform. It contains descriptions of all the platform parameters, like how much memory, what kind of interfaces, how many peripherals, etc. are expected to be present in that make and model of platform. In this article, I'll introduce the Device Tree format, and discuss how it is being used on current embedded computing platforms.

Sense and Sensor Abilities

January 27, 2015

It isn't what we say or think that defines us, but what we do.

—Jane Austen

There are several efforts underway to define and unify sensor abilities and parameters, both for normal (user) applications as well as for standardized (manufacturer) testing. Today it can be quite difficult to change sensor elements (either because newer, better sensor products become available, or because of the obsolescence of older, existing models) due to the amount of software changes involved. In this article, I'll discuss some of the evolving standards efforts underway, and what that means for those of us trying to keep up with the latest sensor technologies, and those of us trying to determine whether or not a particular sensor meets our requirements.

The BLOB - Binary Level OBjects

January 25, 2015

Obstacles are those frightful things you see when you take your eyes off your goal.

—Henry Ford

There are a number of different metadata formats for containing low-level configuration information, some of them are in plain ASCII text, and others are in various encoded binary formats. The encoded binary formats, or Binary Level OBjects, are commonly referred to as "BLOBs". In this article, I will discuss how some of those formats are being used in existing products.

Automatic Configuration Chains

January 23, 2015

There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy.

—Shakespeare - "Hamlet"

In order to design an automatic discovery and configuration mechanism for popular small form factors like Arduino, rfDuino, LaunchPad, and others, we first need to decide on simple connection chain that can connect all the subsystems, one which is already included in each of these form factors. We need to be able to describe the heirarchy of devices, and the connections between them, in order to understand the topology of our embedded system.

Small Form Factor Auto-Configuration

January 22, 2015

Do the difficult things while they are easy and do the great things while they are small. A journey of a thousand miles must begin with a single step.

—Lao Tzu

I spoke at the Portland thingTuesday meeting this week about some of the limitations of currently popular small form factors like Arduino, rfDuino, TI LaunchPad, and others. My personal opinion is that one of the biggest limitations of these small form factors is the lack of an automatic configuration standard.

MinnowBoard Lures Library

December 24, 2013

Give a man a fish and he has food for a day; teach him how to fish and you can get rid of him for the entire weekend.

—Zenna Schaffer

PatternAgents has just released a new library of MinnowBoard Lures (expansion board patterns) for the MinnowBoard project. The library includes Type A, B, and C Lures, with both single board patterns and "stackthru" patterns, which allow multiple Lures to be stacked up on top of each other. If you are thinking about designing your own set of Lures, then this is the place to start.

Touch Widgets - Best Practices

December 02, 2013

In theory there is no difference between theory and practice. In practice there is.

—Yogi Berra

In this post we'll discuss some of the "best practices" for implementing capacitance sensing widgets and control surfaces on your printed circuit boards. We've done a mash-up of several tasty tracks from different vendors and technologies to give you a mastered mix-down...

Touch Widgets How-To/Instructions

November 29, 2013

I think that things happen individually first, and then collectively. It's not the other way around.

—Neale Donald Walsch

Pattern​Agents has been developing open source parts libraries for the Eagle CAD package, and we have now developed a library of Capacitive Touch Widgets to provide a number of different control surfaces for your projects. This How-To will cover instructions for using them in your own projects.

Touch Widgets Library for Eagle

November 24, 2013

You feel touched and honored and alive when you give to someone.

—Daphne Zuniga (Princess Vespa)

The PatternAgents Touch Widgets Library for Eagle is a schematic and layout library that provides the symbols and layouts for commonly used capacitive sensing control surface widgets, such as Buttons, Linear Sliders, Radial Sliders, X-Y Touchpads and more.

Capacitance Sensing Introduction

November 20, 2013

When we are touched by something it's as if we're being brushed by an angel's wings.

—Rita Dove

Capacitive Sensing is ubiquitous now, from your smartphone screen, or your Apple iPod, to the "buttons" on your new TV remote control. Today we'll be talking about how capacitive sensing works and how you can use it on your next project.

Building Your New Widget

November 14, 2013

When I write, I disturb. When I show a film, I disturb. When I exhibit my painting, I disturb, and I disturb if I don't. I have a knack for disturbing.

—Jean Cocteau

It is a wonderful time for makers, we have terrific resources for getting things built now, with new resources appearing every day. Today we're going to talk about a few of the resources available to you, no matter where you live (almost).

EagleCAD Libraries

November 11, 2013

A library is the delivery room for the birth of ideas, a place where history comes to life.

—Norman Cousins

We have several man-years of effort invested in developing professional grade parts libraries for Eagle, and now we've made them available to you, our user community, on our Github Repo. The PatternAgents EagleCAD Libraries are schematic and PCB layout libraries for various electronic components and systems for use within the Eagle CAD program.

Quattrocycle Lighting Update

November 09, 2013

Life is like riding a bicycle. To keep your balance you must keep moving.

—Albert Einstein

This week we've been working on a custom lighting System for the Quattrocycle, a four wheeled, family quad-cycle with independent gearing and suspension.

Portland Mini-Maker Faire

September 13, 2013

Write it. Shoot it. Publish it. Crochet it, Saute it, whatever. MAKE.

—Josh Whedon

Thank You to everyone who stopped in at Booth 18 and said hello! We were very pleased that we had visitors from Canada to Mexico stop in, as well as many old and new friends from all over the Portland/Vancouver area.

Arduino Y'un - The Next Generation

July 09, 2013

Clouds come floating into my life, no longer to carry rain or usher storm, but to add color to my sunset sky...

—Rabindranath Tagore

Y'un means “Cloud” in Chinese, and the latest small form factor board from Arduino is clearly intended for “cloud applications”, and enabling the “Internet of Things”. The Y'un includes an Atheros/Qualcomm AR9331 System-on-Chip device that includes a MIPS processor with a Wi-Fi radio, as well as wired USB and Ethernet connections. In order to maintain backward compatibility with the Arduino IDE tools, it also includes a legacy ATMega324 for running standard Arduino sketches.

The Minnow Board - A New Small Form Factor

July 08, 2013

Many men go fishing all of their lives without knowing that it is not fish they are after...

—Henry David Thoreau

We attended an "Internet of Things" meeting here this week, and Scott Garman introduced us to a new small form factor, the MinnowBoard. The MinnowBoard is very high performance single board computer (SBC) using a 1Ghz Intel Atom processor, but unlike most SBC's it has the General Purpose I/O (GPIO) expansion connections needed to expand the system using low cost peripherals. More akin to SBC's like the Raspberry Pi, it runs the Angstrom Linux Distribution and is compatible with the Yocto project. This looks to be a very nice high-end SBC for embedded work that requires the power of an Intel CPU.

Small Form Factors for Embedded Devices

July 07, 2013

Success is the sum of small efforts, repeated day in and day out...

—Robert J. Collier

There are dozens of different Small Form Factors in use today. The largest volume of those being used in Embedded Personal Computers (PC's), such as the Mini-ITX, Nano-ITX and Pico-ITX form factors. However, what we're going to talk about today are even smaller form factors, typically those used for embedded microcontrollers in application specific uses, such as smart devices and process controllers. Today we're talking about form factors for processors, and in upcoming segments we'll also be covering those used for adding small peripherals and interfaces to other (larger) form factors.

Featured Projects