Category: Development Platform

PocketBone: The Linux Computer that Fits in a Mini-Altoids Tin – Designed in KiCad – Featuring the OSD3358

This article was guest written by Michael Welling, the developer of the KiCad PocketBone Design.  Michael is an Embedded Design Engineer with over 10 years of experience.  He owns an electronic design consulting firm, QWERTY Embedded Design, LLC.  He has an MS in Electrical Engineering, was an instructor at SIUC and a 12-year member of IEEE.  He is also a mentor for Beagleboard.org Google Summer of Code.

Motivation

As an embedded systems design engineer, I am always on the lookout for the latest technology. When the Octavo Systems OSD3358 was announced I was very excited to see something mainstream using System-In-Package (SiP) technology.

System-In-Package represents a new way to overcome many design challenges in the highly integrated mixed signal system space.   The OSD3358, in particular, piqued my interest because I had done a few designs using the Texas Instruments Sitara® series System on Chips (SoC), the same one at the core of this Octavo SiP. This urged me to design something around the SiP.  I really wanted to compare the design process of the SiP to that of a typical SoC.

The benefits of having the DDR memory integrated into the package are obvious to anyone that has done work with typical SoCs with external RAM. DDR memory routing and design rules are quite complex and require a substantial amount of work at design time. From trace equalization to differential pair routing, the DDR routing process usually has the engineer rolling up their sleeves.

The integration of the power supplies and passives removes many of the SoC design challenges. Most SoCs require several power supplies that must be enabled in a very specific and timed sequence. Typically, integrated power management ICs (PMIC) are used to meet these requirements but they still require sourcing of passives, including the appropriately sized inductors for the embedded switching regulators.

As a bonus, the SiP even integrates the bypass capacitors that are typically sprinkled all over the opposite side of the PCB from the SoC. This leaves more area on the bottom of the PCB for placement when doing highly space-constrained designs. With all of this built into the SiP, I knew the design process was going to be a breeze.

So when I was approached to do a community reference design with the SiP, I knew it was time to step forward.

The History of PocketBone

TPocketBone Done In Eaglehe PocketBone started out as a small reference design in Eagle CAD developed by Jason Kridner of the Beagleboard.org foundation. It was meant to provide a starting point for the community to take and create their own designs. The original board broke out USB, MicroSD, and a few LEDs. The form factor was truly impressive, a Beagleboard in a small Altoids tin.

At the Linux Plumbers Conference, the design was brought to my attention after I expressed interest in doing a design with the Octavo SiP to Drew Fustini. Drew had recently become a board member for Beagleboard.org and said that they were looking to hand off the PocketBone project to someone.

Drew explained the state of the project and the desire to convert the project from Eagle to KiCAD to make the design more accessible to the community. We discussed documenting the design process and the possibility of doing home assembly of the units. Furthermore, the final assembly would be recorded and posted as a reference for aspiring hardware hackers.

Needless to say, I took the challenge and started work soon after returning home from the conference.

The Schematics

The schematic was translated rather quickly from Jason’s design. One thing that accelerated the translation was the existing KiCAD component symbol and footprint provided from a library by Alex Hiam, a fellow Beagleboard.org GSoC mentor.

While pulling the schematic across from Eagle a few errors in the original design were discovered and corrected as necessary. The original design had various issues with the crystals and USB. I also added a 10 pin header which broke out SPI, I2C, and UART0 to add a bit more functionality.

All of the design files were pushed to Github and are publically available at https://github.com/mwelling/pocketbone-kicad

Once I completed the design it was reviewed by some other BeagleBoard.org community members.  The design was so simple there really wasn’t much to review and I moved onto routing.

Routing

For the first pass at routing, I attempted using 2 layers to route the design. Though it was possible to route in 2 layers I wasn’t completely satisfied with my attempt.  First, I had concerns about routing USB traces in 2 layers and not having the proper impedance.  Also, some of the components placements I chose made it difficult to make cases for the PocketBone.

Finally, a request was made that I put all the components on the top side of the board.  I had originally put the MicroSD and expansion header on the bottom.  Moving everything to the top side makes populating the board simpler (and more cost-effective) because it only takes a single pass through the reflow oven.

PocketBone 2 Layer Routing Top Layer
PocketBone 2 Layer Routing – Top Layer

PocketBone 2 Layer Routing Bottom Layer
PocketBone 2 Layer Routing – Bottom Layer

With all of this feedback, I decided to pull up all the routing and completely rework the component placement.  After some shuffling and part swapping, the placement was consolidated to a single side and sent off for approval. As a bonus, the new placement even left enough room for a battery header to be added. Once the component layout was approved, the second pass at routing commenced.

I wanted to route this layout in 2 layers as well. However, it was becoming difficult and I still had concerns about the USB impedance. After a few attempts, I made the executive decision to switch to 4 layers. This calmed my concerns about the USB routing. USB has strict requirements for trace impedance which cannot be easily met with a standard thickness 2 layer PCB.

Switching to 4 layers was not a problem because I was using KiCAD.  Unlike the free version of Eagle CAD, KiCAD has no layer and board size restrictions.

Once the routing was complete, the design was posted for another review.

PocketBone 4 Layer Routing - Top Layer
PocketBone 4 Layer Routing – Top Layer

PocketBone 4 Layer Routing - Bottom Layer
PocketBone 4 Layer Routing – Bottom Layer

PocketBone 4 Layer Routing - Power Layer
PocketBone 4 Layer Routing – Power Layer

PocketBone 4 Layer Routing - Ground Layer
PocketBone 4 Layer Routing – Ground Layer

Somewhere in the middle of the process of routing the board, I created a Hackaday.io page to document the design in progress and get more community feedback. Hackaday.io is a relatively new forum for aspiring hackers to share projects that they are working on. Hackaday.io is hosted by Hackaday.com, known for its daily hacker blog started in 2004. The PocketBone Hackaday.io page is a good place to find the latest status of the project.

Building The Board

With the routing completed, I started working with Drew Fustini to get the PCB’s from OSH Park, a low-cost batch PCB manufacturer. Drew works at OSH Park and the got me the first PCBs free of charge. In exchange, I created a special edition with the OSH Park logo on it. OSH Park is known for their high-quality purple PCBs and reasonable low volume pricing. While in Portland for the Embedded Linux Conference I had the pleasure of visiting OSH Park to pick up the boards in person.

First PocketBone PCB courtesy of OSH Park
First PocketBone PCB courtesy of OSH Park

The original and OSH Park version of the design were posted publicly to OSH Park’s site for anyone who would like to order the boards and attempt assembly.

Meanwhile, Jason Kridner took initiative and put in a turn-key order of the PCBs assembly with Circuithub. He sent me one so I could finish testing everything out.

PocketBone Assembled - Top Side
PocketBone Assembled – Top Side

PocketBone Assembled - Bottom Side
PocketBone Assembled – Bottom Side
PocketBone Assembled - Cool Side View
PocketBone Assembled – Cool Side View

Board Bring Up

The first prototype assemblies worked without issue! The latest Debian image from Beagleboard.org supports the PocketBone thanks to the work done by Robert C. Nelson and Jason. Robert, another Beagleboard.org board member, is the driving force behind the Debian images provided on all of the Beagleboard products.

All that was required was the initial EEPROM programming and the board was ready to go.  Once the EEPROM was programmed I plugged it in and voilà!

PocketBone - It's Alive!
PocketBone – It’s Alive!

That is it.  A Linux PC the size of a Mini-Altoids tin.  All of the board designs are freely shared on the Circuithub site for anyone to order.

What’s Next

In the upcoming weeks, I will be attempting to hand-assemble one of these. Stay tuned for another installment detailing the procedure for home prototype assembly.

I would like to thank Jason, Drew, and Alex for the idea and support along the way.

New OSD3358 Development Platforms from GHI Electronics

 

It has been a busy couple of weeks around here lately with a lot of exciting news.  First we had the announcement of the BeagleBone® Black Wireless which features the OSD3358-512M-BAS instead of the discrete TI AM3358.  Then we went to World Maker Faire at the New York Hall of Science.  Now we have a couple more announcements.

We are happy to let everybody know that GHI Electronics has released two development platforms for the OSD3358.  Both boards utilize the OSD3358-512M-BAS which integrates the TI Sitara™ AM3358 ARM® Cortex® A8 processor running at 1GHz, 512MB of DDR3, 2 power supplies, and passives into a single IC package.  The boards are available to order today from the GHI Electronics website.  Their status is listed as preview.  This means there are some things that haven’t been completely tested yet (all of which are outlined).  It also means there could be some minor changes when the production versions are released.

The GHI OSD3358 BeagleBone® Dev Board

GHI OSD3358 Development BoardThe first platform is the GHI OSD3358 BeagleBone® Dev Board.  This is a full featured development board that includes a capacitive touch screen display and features popular industrial interfaces like RS232 and CAN.  It also has a single 10/100 Mbit Ethernet, USB Host, and USB Client ports. For nonvolatile memory, the board has 4GB EMMC and a SD Card Slot for expansion.  The GHI OSD3358 BeagleBone® Dev Board also boasts an expansion header that allows access to the ADC channels and the remaining GPIOs of the OSD3358 System-In-Package.

With all of the features and connection options, the GHI OSD3358 BeagleBone® Dev Board is the best way to explore the full capabilities of the OSD3358.

 

The GHI OSD33558 BeagleBone® TH Module

GHI OSD3358 TH ModuleThe next platform is the GHI OSD3358 BeagleBone® TH Module.  This is a bare bones system that allows you to easily start integrating the OSD3358 into your designs.  It adds 4GB of EMMC, a MicoSD slot, and USB to the OSD3358 System-In-Package.  It also brings the GPIO, Analog, LCD, and Ethernet pins to a 100mil header footprint making it extremely easy to connect your custom circuitry.

This board is designed to be the next step after the Dev Board.  It provides a natural progression to integrating the OSD3358 into your system.  It has just what you need to boot Linux and start controlling your custom circuitry.

GHI Electronics

We are really excited to release these boards to the community.  We have been working with GHI Electronics for over a year on them to ensure the best possible experience.  GHI’s vision and customer knowledge combined with their in-house, US based, hardware design, software services, and manufacturing allowed us to ensure the best possible quality.  We are proud GHI Electronics is part of our partner network and look forward to working with them to continue supporting the needs of our customers.

BeagleBoard Compatible

beaglecomp_200pxAs the names might suggest, both development platforms are BeagleBoard Compatible, just like the OSD3358 itself.  This means both boards are capable of running the well supported Linux distributions provided by BeagleBoard.org®.  By leveraging the BeagleBoard community and software you can get Linux running in matter of minutes.

Also since the OSD3358 and the development platforms are all BeagleBoard Compatible you can rest assured whatever you build on the platforms will perform the same when you go to an OSD3358 only design.

 

 

We hope these platforms will provide designers an easy way to start developing around the OSD3358 System-In-Package.  As you start designing please give us your feedback on the platforms.  We really want to continue to improve the experience.  Let us know what you think here.