Alix 2C.3 OpenBSD 4.3

It was time to replace my mid-tower Pentium II soho router running OpenBSD with something smaller.  There has been quite a bit of interest in the community about single board computers, such as soekris and alix  and I decided to dive right in.  Single board computers are just that, everything you need for a basic bare bones machine.  Due to cost I chose an ALIX 2C.3 board and a silver case to go with it.

alix2b3 case1c2u

Hardware:

Item Price
ALIX 2C.3 $137.00
15v/1.2A AC-DC Power Adapter $9.95
Enclosure 3 LAN for Alix.2 $12.95
1GB CF card $10
Targus TG-CRD25 Universal 32-in-1 Memory Card Reader $4.99
Total: $174.89

 

Software:

I chose OpenBSD as the operating system because of it’s simplicity, pf, and I use it everyday.  There is a project by nmedia.net that focuses on building OpenBSD images for single board computers called flashdist but I decided to take a different approach.

 

Installation: Putting OpenBSD on Compact Flash

  1. Connect usb cf reader with memory card inserted to any i386 machine
  2. Insert OpenBSD CD and boot from it
  3. Upon boot my cf card is recognized as /dev/sd0
  4. Follow basic install guide which can be found here
  5. Once you get to the part where you select your disk supply the path to your cf.
  6. Available disks are: sd0.
    Which one is the root disk? (or done) [sd0] 
    Do you want to use *all* of sd0 for OpenBSD? [no] yes
  7. Since the disk is so small I decided just to go ahead and make a single partition which mounts “/”
  8. Configure your networking etc… and select what packages you need (with size concerns in mind)
  9. After the packages are installed go through the rest of the setup criteria and halt the fresh install
  10. Remove the CF card and insert it into your ALIX board and boot.
  11. Your ALIX board should be addressed and running sshd, login and config!

I added wget, pftop, and ntop through pkg_add, configured named for local dns, and configured dhcpd to provide addresses for all hosts on my network.

 

This device is awesome….tiny…silent…low power and does everything I need.

Continue reading » · Rating: · Written on: 05-26-08 · 5 Comments »

LED sign matrix and C#

For Maker Faire I built a LED display using 10 BetaBrite Prism signs.  Everything I used was store bought and nothing custom.  The general idea was to capture motion video using a webcam and display it on this matrix of LED signs.  However, after receiving the hardware this became impossible noting the 3-4 second delay in the time from which transmission to the sign starts, and when the image is displayed.  I also wanted to take advantage of the usb port on each sign but ran into problems connecting more than one BetaBrite Prism via usb at a time.

COMPROMISE–

  • Since the signs where too slow I had to change the direction of this project into a “photo booth” of sorts meaning that I would take timed snapshots via a webcam instead of full motion video.
  • Connecting more than one sign using USB didn’t work so I was stuck buying 10 USB->Serial adaptors
  • The signs support up to 64 colors, however trying to modify the BetaBrite class to handle these colors fell through.

Hardware:

pcms882224035477rt 181796bs  10033386 

  • 10 BetaBrite Prism signs
  • 10 Serial to USB converters
  • 3 USB SQUID
  • 1 USB Xbox Webcam
  • Plywood
  • Drywall Screws

Software:

  • BetaBrite API written by Jeff Atwood, ported by Clint Rutkas
  • DirectShow lib (emphasis on DxSnap application)
  • Code to splice web cam images and send to sign

You can download my source here.

How it works:

A picture (bitmap) is taken by the attached webcam using DirectShowLib, that bitmap is “spliced” meaning divided into 7 pixel by 80 pixel pieces (the LED layout on the sign).  Each of those pictures is analyzed by the BetaBrite API and the pixels are checked one by one and associate a color value to that pixel to be sent to the sign.  Once pixel color information is determined, that information is sent to the correct BetaBrite sign over a RS232 connection.

…hey! that’s simple!… that’s the point!

 

Some Details:

  • In order to aide the “pixel correlation” step I used the webcam property page to adjust the settings so that the webcam was set for high contrast and high saturation.
  • To keep the sending info the sign automated I connected each serial to usb adaptor one at a time making sure they showed up in sequence (i.e. COM6, COM7, COM8) and positioned the signs accordingly on the plywood stand.
  • To compensate for the bezels on the signs I simply “cut out” those pixels when splicing the image

First Picture: Rob Taking his picture (the screen has not updated yet)

Second Pictures: Rob’s picture on the LED screen

n4713141_33421112_5179_2 n4713141_33421113_5499_2

Continue reading » · Rating: · Written on: 05-26-08 · 1 Comment »

Maker Faire and why I was busy.

I was asked to join the Microsoft Coding4Fun team this year at Maker Faire.  The project I came up with was multiplexing several stock store bought signs and display full motion video from a webcam on them… Unfortunately it’s almost impossible to do full motion with stock parts, so it evolved into a “LED photobooth.”

The signs are BetaBrite Prisms, the software is written in c#.

 

The software is driven by many c# examples derived from the web:

 

n4713141_33421108_3895 n4713141_33421107_3577 n4713141_33421109_4218 n4713141_33421110_4541 n4713141_33421111_4857 n4713141_33421112_5179 n4713141_33421113_5499 n4713141_33421130_1154

 

It was two very long days.

Continue reading » · Rating: · Written on: 05-06-08 · 1 Comment »