Board 3d Model

Board Design

Creating a Custom Single-Board Computer in KiCad

Intro

After spending a lot of time with a wide range of single-board computers, I decided to take a shot at creating my own. I started with the BeagleBone Black as a reference. Based on the TI AM3358 ARM Cortex-A8 CPU, this well-documented board with a familiar CPU architecture was crucial in getting started. Picking up KiCad for the first time and investing dozens of hours in research and trial and error, I created what I feel to be a good first start: a self-contained fully linux-compatible single-board computer with a number of improvements (such as WiFi) packed into a cheap 4-layer board.

Schematic

The schematic was created from scratch, using the Beaglebone (Allegro) schematic as a reference for the AM3358 pinout, a collection of custom libraries, and a few symbols of my own creation. It is divided into 10 sub-schematics, two of which are shown below.

Board Schematic Board Schematic

This first stage was what took the most time. Beyond drawing the schematics themselves, I had to learn the specifications and design criteria for dozens of components. For simplicity I ended up choosing most of the ICs from TI, who provide well-written documentation for each part.

PCB Layout

With the schematic done, I could start the fun part: layout and routing. This proved to be surprisingly intuitive with KiCad. I based most of my design constraints around the specifications of Seeed Studio's 4-layer, 5mil trace option. This would prove to be difficult - using a 6-layer board as a reference, with 5mil traces and 0.3mm drill holes, I had to get creative with a lot of the BGA breakouts for the CPU and RAM.

Board Layout

Parts are steadily being shipped in, and with the routing almost complete, I'm hoping to have it fabricated within the next month. This has been a pretty heavy project to undergo during my Master's degree, however it has been a fun and extremely informative venture for someone with a mechanical engineering background.