Monday, June 11, 2012

Fritzing part for BeagleBone

Background

I first discovered Fritzing while working on various Arduino projects. Anybody working around the Arduino community will quickly notice the high quality diagrams found in many tutorials. The diagram below is out of the very basic Arduino Blink tutorial.

Arduino Blink

Since the official Arduino tutorials themselves utilize this tool, it's become quite popular with many people documenting their Arduino projects.

BeagleBone is used in pretty much the same way as an Arduino in terms of people interfacing all kinds of random devices to it, so I quickly found myself lamenting the fact that I didn't have Fritzing BeagleBone part to make diagrams. I'll admit it, I'm a poor artist...I can't stand freehand drawing stuff as it's time consuming and I'm always disappointed in the end product. When I was working on slideware for my SPI framebuffer driver ELC session, it was driving me nuts trying to get a nice slide-worthy diagram showing how the display was interfaced to the BeagleBone.

Creating the Part

Fast forward to a couple months ago, I finally realized that if I was going to retain my sanity while documenting various projects I have on the BeagleBone, I needed a Fritzing part. So I fumbled around learning Inkscape and how line-up the graphical female pin headers with the Fritzing connector nodes and my good friend, Ken Keller, went through the painful iterations of labeling all of the pin-muxed pins very nicely. The end result is I can now quickly create drawings like the BeagleBone SPI display interface used in the ST7735 framebuffer driver.
BeagleBone SPI Display


Both the BeagleBone and Adafruit 1.8" LCD parts seen above are found in my Github fritzing-parts repo.

Getting Started with Fritzing and BeagleBone

I only use Linux and OSX...if you are using Windows, you are out of luck here. Please see the platform-specific installation and starting instructions for your system.

Download and install Fritzing (Linux or OSX please)
Clone the fritzing-parts repo
    cd ~
    git clone git://github.com/ohporter/fritzing-parts.git
    
Link the fritzing-parts repo to the Fritzing user directory's parts directory. This allows one to git pull in updates and/or fork and add your own experimental parts in the user directory so that Fritzing updates do not overwrite your parts.
    ln -sf ~/fritzing-parts/parts ~/.config/Fritzing/parts
Start Fritzing
Click the magnifying glass search tool in the parts pane

Type in beagle and it will search and show the BeagleBone icon

Drag and drop the BeagleBone part into the sketch window. Notice that this is the Fritzing Breadboard View.

We will now interface an LED to a GPIO line on the BeagleBone.

Hover over the bottom connector, P9. Connector P9, pin 27 carries a GPIO signal that can be used.


Notice that the Beaglebone part displays the complete signal information for each pin exposed on the expansion headers. In this case, pin P9-27 carries GPIO3_19 when configured in pinmux Mode 7. This popup reference is very useful when designing or breadboarding an interface.

In order to complete the simple LED interface, an LED and a resistor can be pulled from the core parts bin. These parts are placed on the virtual breadboard and wired as shown below.

LED Breadboard View

Fritzing also supports a schematic view.  Ff we wanted a neatly formatted schematic of our breadboarded LED circuit, we simply switch to schematic view using the view switcher or View menu options. Once in schematic view, each wire connection made in the breadboard view is visible as temporary rats nest wires. The schematic drawing can be completed by converting each rats nest wire to a connection and tidying up the rotation and orientation of  schematic elements with a little drag and drop housecleaning.

LED Schematic View

That's it! For more detailed documentation and tutorials on building up Fritzing sketches see the Learning Fritzing pages.


1 comment: