Showing posts with label dragonboard. Show all posts
Showing posts with label dragonboard. Show all posts

Thursday, December 7, 2017

AutoBSP Gets Your Geppetto Board Booted

What is AutoBSP

AutoBSP is a new service offered to Geppetto designers that accelerates board bring-up by customizing a boot configuration file -- a device tree -- for every design.

Quick, What Is a Device Tree?

Device trees are logical maps of the hardware connected to a processor. Linux bootloaders can make use of them to help multiplex GPIO pins, assign addresses to external devices, deliver device settings to kernel modules, and control the SoC’s power-up sequence.

Device tree source (DTS) code is compiled into binaries -- or device tree blobs (DTBs) -- and added to the boot partition of a device’s disk image. The bootloader then reads this DTB and configures the SoC and the operating system with help from its contents.

The SoC, its application-specific processors, programmable power systems, and connected devices are broken down into a tree of nodes. Each node contains vital information about its configuration, voltage levels, GPIO assignments and interrupt vectors. These are used by the kernel and drivers to bring up, operate and expose them to the userspace.

Why Should You Care?

One SoC, many devices: Just a few NXP i.MX 6 boards

In an ecosystem where, for any given SoC, there may be tens of SBCs, compute modules, or expansion boards, board bring-up can be an incredibly difficult challenge. The inclusion of device tree support in the Linux kernel facilitates the process by adding a flexible abstraction layer between the firmware and the hardware, removing the hardware description from the kernel.

Device drivers can be written to glean variables, parameters, and logical addresses for the various hardware components and chip features it needs to operate from the device tree; Regulators can be programmed and sequenced; Chip features can be activated and disabled.

Your Geppetto Board is Unique to You

Let’s say you’ve just designed and ordered a custom board using the Geppetto interface. You have included a Linux-ready COM and a particular collection of sensors, ports and devices that suit your application. That board will be in your hands in a few weeks, tested and ready to go. Gumstix will offer our own flavour of Yocto Linux through our storefront, as well as developer documentation, spec sheets, and other helpful resources.

With almost 200 modules available in the Geppetto library and more added regularly, there are endless possible arrangements that your design might take and it’s possible that you’ll want it running some flavour of Linux. It’s our goal to offer you as much support and information as possible to help get your platform up and running as fast as we can get it in your hands.

AutoBSP is Unique to Your Geppetto Board

Normally, someone would have to manually create a device tree to bring up the components on your board, meticulously adding, tweaking and debugging each node until all of the devices work as expected. AutoBSP delivers a working, compiled device tree specific to your design on demand.

This means that, as soon as the product is in your hands it will be ready to run, saving hours of development and testing. AutoBSP is one more way that Gumstix is accelerating your time to market by getting your prototype designs ready for development as fast as we can deliver the hardware.

SoC and Compute Module Support

Most Linux-ready COM connector and Processor modules are supported by AutoBSP, and the rest are on their way. Here’s some detail:

What AutoBSP Can Do:

AutoBSP will currently build DTBs for boards designed for the majority of platforms available in Geppetto. The following COMs and SoCs are currently supported:

  • Gumstix Overo and Overo STORM COMs
  • Gumstix DuoVero COMs
  • Toradex Colibri iMX6 COMs
  • Toradex Colibri iMX7 COMs
  • TechNexion PICO iMX6 COMs
  • Raspberry Pi 2/3 and Raspberry Pi CM/CM3
  • AM335x (Pepper) SBCs
  • AM437x (Poblano) SBCs
  • SCM-iMX6 (Cobalt) SBCs

What AutoBSP Will Do:

Just like Geppetto, AutoBSP is constantly expanding to accommodate the needs of its users. Expect support to grow as new SoC modules are added to Geppetto. Some additions are already underway.

  • BeagleBone Black
  • Arduino-supported MCUs
  • 96Boards CE (Dragonboard 410C)

Wait, Did You Say Raspberry Pi?

That’s right. When you design a Raspberry Pi HAT, or an RPCM expansion board, AutoBSP will deliver a DTB overlay specific to your board. That’s one file to configure I2C devices, assign GPIOs, and activate SoC features. If you’ve gone and purchased a Gumstix Pi HAT and you’re looking to get started quickly on your next maker project, the AutoBSP-generated dt-overlay will help you skip much of the trial-and-error setup procedure you deal with for other HATs and get you coding as fast as possible.

Copy AutoBSP’s DTBO file to your Raspberry Pi boot partition’s ‘overlays’ directory and change the ‘dtoverlay=’ string in ‘config.txt’ to match and the Linux kernel will ‘see’ your board and its devices when it starts up.


At Gumstix, we are constantly looking for ways to make our lives easier. The benefit is that we pass these helper services, or their benefits, along to our clients. It started with the COM. Gumstix pioneered the idea in 2003 with the Verdex and Verdex Pro - a Linux-ready compute device the size of a stick of gum. This enabled hardware developers to test, prototype and deploy their designs more easily, encapsulating the compute power in a single, replaceable module.

We carried the idea forward ten years later when Geppetto was born. We further modularized the concept of the computer by introducing hardware as feature modules on a virtual board. Start with a COM connector, drop in USB, Ethernet, and any of the ~150 modules in the Geppetto library to build your own development board, prototype or production device. Click 'Complete Design' and Geppetto generates the CAD files for you and sends them to our engineers for review.

Geppetto now takes advantage of all of the back-end data that Geppetto uses to render your board as well, providing extra resources for engineers and developers. Through the 3D preview feature, users can export the 3D rendering of their device to an STL file.

AutoDoc delivers valuable signal and connection data on the fly before your design is even ordered. It includes links to reference manuals, feature outlines, signal descriptions and their associations, and much more.

Now, AutoBSP goes a step further and gives you the files you need to get Linux up and running. With a featured Yocto image from Gumstix and an AutoBSP DTB, you will have your board running in minutes instead of days.

You can expect to see more of these types of services to crop up from time to time as we discover new ways of making your life easier.

Just One More Reason

AutoBSP is just one more reason why Geppetto is THE design-to-order tool for IoT, embedded, and robotics hardware. Test-drive Geppetto today at and create your next innovation.

Wednesday, February 15, 2017

There is Nodana...


For those of you who don't know about the 96Boards open-specification hardware platform, it's a design spec for single-board computers (SBCs) that enables SoC vendors to provide their hardware in a standard form factor for increased compatibility.  It's also an engaged community working together to develop applications, software, and mezzanine cards for this ecosystem.

96Boards now has 3 different specifications for 3 classes of application.  There's Consumer Edition (CE), with standardized breakouts for both high-speed and low-speed signals, USB ports, HDMI, and so on.  There's also the Enterprise Edition (EE), which is more for server and networking applications.  It's a larger and more free-form design, with a low-speed header, USB and Ethernet, minimum 1 GB DRAM or expandable SODIMM slots, and optional 1 - 16 x PICe.  Finally there's the brand new IoT Edition (IE) spec.  It's designed to be tiny in order to fit anywhere.

All of these specifications have variants that allow hardware developers to add extra bits to their boards, making this a very flexible way of standardizing the important parts of SBCs.

The big benefit is that you can unite developer communities accross platforms.  The mezzanine card or maker project developed for board A will be compatible with board B, and vice versa.  With support from Linaro, providing a common Linux ecosystem for these boards, not even software compatibility should get in your way.

My honest opinion is that this open specification is very cool.

Gumstix is a 96Boards Partner

Yep, we're in cahoots with the folks at 96Boards and Linaro to bring you compliant hardware.  The release of the AeroCore 2 for Dragonboard 410C was only the start.  At the same time, we added the 96Boards Mezzanine Connector module to Geppetto D2O's library so that users can design their own mezzos for other applications.  If you don't know what Geppetto is, you can learn more by going to the Meet Geppetto page, read my earlier posts, or go straight to and give it a try.

I did a demo for 96Boards OpenHours, hosted by Mr. Robert Wolff (@sdrobertw) and actually flew my MAV, using a Dragonboard and the AeroCore 2 live in my office -- complete with a visit from the "demo demon".  The whole thing's on YouTube.

...Only Joule

So for those of you who don't know, a little compute module was released last year with quite a lot of juice hidden under its heat dissipator. The Intel® Joule™ module delivers unprecedented compute power in a tiny package.  From its two 100-pin Hirose connectors pour USB 3.0, MIPI LVDS,  PCI Express, HDMI, and a lot of what you already expect from COMs and SoCs.  It also houses its own WiFi and Bluetooth hardware.  All with the power of a quad-core processor akin to the Core-I7s you find in your desktop PCs.

Surprise, surprise, Geppetto's got that too!  You can go in and build your own host board using the Intel module and harness most of what it has to offer.

So a Square Peg and a Round Hole Walk Into a Bar...

On one hand you have this fantastic open spec hardware platform [round hole].  In the other, this epic compute module [square peg].  "those will never fit together," you might say (in fact, one 96Boards community member did).  Well, we gumstixians are very resourceful.  And the spec doesn't restrict the SoC's architecture to ARM, that's just the expectation.  So what did we do?  We took all of the components that make the 96Boards Consumer Edition spec great, we wired it up to the Joule connectors, (tested it), gave it a name, and unleashed it on the unsuspecting masses.

And that is how the Nodana 96Boards Consumer Edition (96BCE) for the Intel Joule module came to be.  Here it is:

Gumstix Nodana Features

The Black Sheep

That's right, all you doubters.  Now you can test your 96Boards projects on a powerful 64-bit multi-core Intel chip.  It's the first of its kind -- the first non-ARM 96Boards device.  Take it for a spin and tell me about what you do with it.  You can order it at

x86 IoT Fun

Psst!  We are also taking the IE spec to this dimension.  Our Radium 96BIE board complies with the 96Boards IoT Edition specification and runs the Intel® Curie™ module.  A 32-bit Quark processor  in bed with an ARCv2 MCU, a 6-axis internal measurement unit (IMU) and an independently programmable Bluetooth controller. Check it out at

Wednesday, August 24, 2016

Make Your Own 96Boards CE Mezzanine Board
96Boards is really gaining some traction in the embedded world. Its open specification, software support, and community make it an appealing platform for hardware developers, programmers and makers alike.  Part of the specification for the Consumer Edition boards is a mezzanine connector.  This allows users to expand the hardware capabilities of their 96Boards-compiant SBC.  So where do these mezzanine boards come from?

Commercial Mezzanine Boards

Several expansion boards already exist and are available for purchase from online vendors such as ARROW.  These boards are meticulously crafted by hand by a team of engineers and can take a considerable amount of time from conception to market and may not be ideal for your needs.  It would be good to be able to design your own board to meet your project specifications.  For example Gumstix has released the AeroCore 2 for Dragonboard 410C.  But what if you need additional sensors or another UART port or two?  Soldering in wires and adding breadboards is one way of doing this, but it's messy and cumbersome... Especially for drone applications.

Enter Geppetto D2O

What if I told you that you could just take the board, stretch it out and drop in some new hardware?  That would be nice, wouldn't it?  Well, when you import a design into your workspace from our existing ones, that's exactly what you can do.  And, of course, you can always start a design from scratch.

Geppetto D2O (Design to Order) allows you to design or customise an expansion board with a familiar-feeling drag-and-drop interface.  A long list of modules can be placed wherever you need them on your design and
connecting them to the other modules on your board is easy with Geppetto's context menu system.

The Geppetto workspace
Gumstix will even build and test your board for you, ensuring that your design is mechanically sound and ready to go.  A $1999 set-up fee and a few weeks later and your design is in your hands.

Aside from Gumstix's own Overo and DuoVero COMs, connectors for many 3rd party COMs and some on-board SOCs and microcontrollers are available as well.  Alongside the release of the new AeroCore 2 board, which, by the way, was itself designed in Geppetto, we have added a 96Boards-compliant mezzanine connector to the Geppetto module library.

It has never been easier to create your own expansion boards.  If you're looking for the shortest path to market or just want to design your "ultimate IoT development board," make sure you check this out.

Making the AeroCore 2 for 96Boards

Like I said earlier, the Aerocore 2 for Dragonboard 410C was designed in Geppetto by our engineers. All of the hardware on the board comes from the modules in Geppetto's library and the process is easily reproduced.  In fact, I think I'll just walk you through it right now.  How about I make my own version of the design from scratch?  It won't take long.

Step 1: Go to Geppetto

Geppetto is entirely online.  There is no need to install any software, configure settings, or hassle with any of the plethora of problems that CAD software can cause.  If your browser works, Geppetto works.

When Geppetto finishes loading, which only takes a few seconds, your workspace comes up.  This is where you design your board.  There are a few tutorial videos if you want a detailed look at the Geppetto interface.  For now I'm going to focus on building my own AeroCore 2 for 96Boards.

Step 2: Add the Connector

Grab the mezzanine connector for 96Boards from the "COM Connectors" tab in the column to the right.  It snaps to the bottom edge of the board.  This makes sure that the USB and HDMI ports on the host board are accessible.  The default board size is a little small for the module and can be resized as you would a window on your desktop.  Once the connector fits on the board you will notice that the board outline and the connector module are  both red.  That is because there are unmet reqirements.

Step 3: Satisfy Requirements

Almost every module that you place on the board will either require or provide certain signals and
buses.  The only exceptions to this rule are mechanical elements, such as mounting holes.
When you hover over a module, its requirements are displayed in a menu that pops up beside the module.  If you click on it, a list of modules that will satisfy that reqirement will appear in the library. Once you've placed a compatible module on the board, you can connect the modules by clicking on them in turn.  As soon as the requires are satisfied, the board and modules turn green.

Yes, it's a big game of "red light, green light." My kids love that one.  Make everything green and the board will work.  So far, all we can do is boot the board with a 16V battery for power.  Time to add some features.

Step 4: A Microcontroller

Some boards require a microcontroller to, say, manage sensor output or control some servos.  In the case of the AeroCore 2,  an ARM Cortex-M4 MC does more than that.  It actually runs a PX4 compatible autopilot software suite for drone control.

The COM connections for 96Boards are mounted on the underside of the board so modules can be placed within its shadow, as long as they don't overlap with the green footprint.  So in order to save space, I'm going to squeeze the M4 in there.  I can rotate the module by right-clicking it and selecting "rotate" from the context menu.  Double-clicking modules also rotates them.

The M4 requres 3.3V so we need to add a regulator in order to power it from the battery.  The regulator could also take 5V from the host board, but we'll be multiplexing that source with the battery later.

Step 5: The Meat

Now that the compute devices are placed, it's time to add the sensors, headers and connectors that make up the AeroCore 2.  If you watch the animation to the left, you can see the board come to life.  With each module added, all of the requires are provided and all of the modules turn green.  This only took me about 30 minutes to do, and with a little extra time and patience, I could re-arrange the board to match the design for the AeroCore 2 for Dragonboard exactly.  The only thing my design lacks is the LTE modem.  That one we added in after the Geppetto design was completed, squeezing it in over other module footprints.
You can see from the pictures below that my design (below) is pretty good, compared to the original design (above).
The Gumstix Aerocore 2 for Dragonboard 410C

My Aerocore 2 for 96Boards

But don't take my word for it, get started now! Go to and start designing your own board for free.

Wednesday, June 29, 2016

AeroCore 2 for Dragonboard 410C: DragonDrones?

I'm taking a bit of a break from RTK and robots today because I'm pretty excited about a board we recently released.  I've always been interested in UAVs and drones, and have wanted to build one out of the derelict UAV frames we have lying around the office here.  Well, I may get my chance in the near future.  The AeroCore 2 expansion board for the Dragonboard 410C is now available and is a major upgrade from its Overo and DuoVero counterparts.

AeroCore 2

Innovation in UAV Flight Control

The AeroCore 2 was originally released Fall 2015 for the Gumstix Overo and DuoVero COMs to replace the original AeroCore, adding Spektrum DSM-2 RC connectivity, more communication headers, and GPIOs, and moving GPS off-board with Gumstix the Pre-GO family of boards (which I am currently playing with in my other posts).  The AeroCore family of expansion boards were developed in conjunction with graduate students from Stanford University's Aero/Astro program.  Its small dimensions make it ideal for micro aerial vehicles.

On-Board Autopilot

The AeroCore 2 design includes an on-board ARM Cortex-M4 microcontroller running NuttX RTOS.  It not only manages I/O data in real time, it's also compatible with PX4 autopilot software for fully automated flight.

Higher Level Thinking

The inclusion of a powerful processor in a drone allows for in-flight decision-making, such as low-latency obstacle avoidance, computer vision-based navigation, or swarm applications.  AeroCore 2 boards are designed to connect to Overo and DuoVero COMs, with ARM Cortex-A9 processors capable of these compute-intensive tasks.

Now for Dragonboard 410C

The new AeroCore 2 for Dragonboard 410C, as I mentioned earlier, adds some really cool features to an already spectacular platform.

A New SBC 

The Dragonboard 410C from Arrow is more than a COM, it's a single-board computer that has been built to match the 96Boards CE specs.  With a Qualcomm Snapdragon 410 processor, 1GB RAM and on-board eMMC storage, this credit card-sized SBC is a force to be reckoned with.

The Dragonboard is designed to connect to expansion boards.  Much like the BeagleBone Black has capes and the Arduino has shields, Any board designed to mate with the 96Boards spec can be connected to the Dragonboard.

A compatible connector module has been added to our repertoire of COM
connectors and we've begun designing boards for the 410C.

We started with the AeroCore 2 design.

What's New For AeroCore 2

As good as any design may be, there's always room for improvement.  This includes the tried and true AeroCore 2.  Two exciting new features were added to this iteration that continue to expand the board's functionality.

First, a CSI-2 camera connector was added.  This is a fast communication channel capable of driving HD cameras like the Raspberry Pi camera.

The other big deal is the NimbeLink Skywire 4G LTE modem connector.  Remote control doesn't get much more remote than that.

Designed by Gumstix in Geppetto

Even though you could order the board from the Gumstix store for around $150, your startup/research project/product may require different or additional features. Geppetto is an amazing tool for creating your own custom boards, or for modifying existing ones.  It's a drag-and-drop web interface that allows you to place hardware, from an ever-growing library of headers, connectors, ports, sensors and more, on your design, order it from Gumstix (for a $1999 set-up fee) and receive the final, tested, board in about three weeks.  For more information, go to:

Board designs from Gumstix engineers are freely available and you can clone them to your workspace and change them however you want.  You can get started with the AeroCore 2 for Dragonboard 410C by following this link.