Archive

Posts Tagged ‘raspberry pi’

Build a Raspberry Pi 2 Minimal Image with The Yocto Project

February 27th, 2015 5 comments

The Yocto Project is a build system that allows developers to make custom Linux distributions matching their exact needs. I’ve already shown how to build a 12MB Compressed image for the Raspberry Pi with Yocto, but the Raspberry Pi 2 has recently been added to the project, so I’ve tried to build it too in a machine running Ubuntu 14.04.

Raspberry_Pi_2_Yocto_ProjectI’ll use poky since it’s the default, but you could also build the system for Angstrom or without distributions (OpenEmbedded Core only). The steps to get the code is just the same as for the Raspberry Pi:

mkdir yocto
cd yocto
git clone git://git.yoctoproject.org/poky.git
cd poky
git clone git://git.yoctoproject.org/meta-raspberrypi
You just need to checkout master, and not any branch (like dizzy) since R-Pi 2 is not yet supported in any release. Initialize some environment variables and the build directory:
. oe-init-build-env build

Now edit conf/local.conf with vim or nano to set the machine to raspberrypi2 instead of qemux86:

MACHINE ??= "raspberrypi2"
GPU_MEM = "16"

There are more Raspberry Pi specific option in the README for setting the GPU memory, overclocking, adding VC-1 or/and MPEG-2 licenses, and so on.

You also need to add the path to meta-raspberrypi in conf/bblayers file, so that it looks like:

BBLAYERS ?= " \
  /home/jaufranc/edev/rpi/yocto/poky/meta \
  /home/jaufranc/edev/rpi/yocto/poky/meta-yocto \
  /home/jaufranc/edev/rpi/yocto/poky/meta-yocto-bsp \
  /home/jaufranc/edev/rpi/yocto/poky/meta-raspberrypi \
  "

Two minimal images are available: rpi-basic-image and rpi-hwup-image. I’ve built rpi-basic-image, which adds ssh-server-dropbear (for ssh server support) and splash (for the splash screen).

bitbake rpi-basic-image

This will take a while, possibly over one or more hours, and upon completion the log shown in the terminal windows should look similar to:

bitbake rpi-basic-image
Loading cache: 100% |###########################################| ETA:  00:00:00
Loaded 1310 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = “1.25.0”
BUILD_SYS         = “x86_64-linux”
NATIVELSBSTRING   = “Ubuntu-14.04″
TARGET_SYS        = “arm-poky-linux-gnueabi”
MACHINE           = “raspberrypi2″
DISTRO            = “poky”
DISTRO_VERSION    = “1.7”
TUNE_FEATURES     = “arm armv7a vfp thumb neon callconvention-hard vfpv4 cortexa7″
TARGET_FPU        = “vfp-vfpv4-neon”
meta
meta-yocto
meta-yocto-bsp    = “master:6d7cf8e9dd00bdff882311fecbadfadc46e9cc03″
meta-raspberrypi  = “master:d8bf60ce6c4a6c6371527c6df2e3243d2771c0cc”

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 1984 tasks of which 1968 didn’t need to be rerun and all succeeded.

The step “0: bcm2835-bootfiles-20150206-r3 do_fetch (pid 25484)” may take a long time as it’s cloning a few gigabytes of data for the firmware stored  github. Just be patient, this step took several hours on my machine.

You can now flash the image to a micro SD card with:

sudo dd if=tmp/deploy/images/raspberrypi2/rpi-basic-image-raspberrypi2.rpi-sdimg | pv | sudo dd of=/dev/sdX bs=16M

Where you need to replace X with the letter of your SD card, which you can check with lsblk. Alternatively, you could also flash the image with Win32DiskImager in Windows. Here’s the compiled image for your reference: rpi-basic-image-raspberrypi2-20150227091441.rootfs.rpi-sdimg (104 MB). You’ll also need to use tools like gparted to expand the ext-4 partition to make use of all the space on your micro SD card.

You’d then just have to insert the micro SD card into your Raspberry Pi 2, boot, and login as root without password. I have not tried, since I don’t have a Raspberry Pi 2 yet.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

GroBotz Interactive Robot Project is Made of Easy to Assemble Smart Blocks (Crowdfunding)

February 25th, 2015 No comments

GroBotz makes me think of Lego applied to robotics. The project consists of modules such as motors, sensors, buttons, switches, or cameras that snap together in order to create a robot on wheels, games, toys, a musical instrument, or whatever idea you may have, and the hardware is then programmed using a graphical user interface.

Grobie

GroBie is made for GroBotz Modules

A Raspberry Pi board is used for the brain of the robot, and Microchip PIC MCUs for the smart blocks. The software is programmed in C# using Xamarin, the user interface is based on Unity, OpenCV is used for image processing, and during development a plastic part where printed with Makerbot, and schematics and PCB layout designed with CadSoft EAGLE.

The company has now come up with a number of modules as shown in the picture below.

GroBotz_Smart_Blocks

Your robot can then be controlled over Wi-Fi with GroBotz app which works on Windows, Mac OS, iOs, Android and Linux devices. The software provide a “wire editor” to link up to 127 modules together, and define the robot’s behavior. For example, you can wire a motor module to a joystick module, and easily control the motor with the joystick.

Grobotz_AppGroBotz has just been launched on KickStarter, where the developers look to raise at least $300,000 to go ahead with production. The simplest kit is composed of Light Game Cube and battery with a GroBotz T-Shirt and builders cube (which must be the plastic enclosure for the module), and requires a $50 pledge, but if you want something a bit more fun like the GroBie shown on the first picture, you’ll need to pledge $100 in order to receive 2 DC Motors, a brain  (Raspberry Pi), a battery and charger, a caster, and 2 wheels, and there are other rewards with for example $500 for 30 building blocks. Delivery is scheduled for August to October 2015 depending on the chosen perk. You may also want to visit grobotz.com for a few more details.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Voltera V-One is a Low Cost PCB Printer and Solder Paste Dispenser (Crowdfunding)

February 17th, 2015 1 comment

The traditional hardware development cycle involve sending PCB Gerber files to a manufacturer, wait a few days (or weeks), get the boards back, find and fix bugs, send a new revision of the gerber files to the manufacturer and so on. This wastes a lot of time, so PCB printers capable of handline single and dual layer PCBs have started to see the light of the day, for example with BotFactory Squink. The latter can also do pick and place, but costs over $3,500. Luckily if you’d like something cheaper, Voltera V-One will do many of the same tasks, for but for only $1,500.

Voltera_V-OneVoltera V-One specifications:

  • Minimum Trace Width – 8mil (~0.2mm)
  • Minimum Passive Size – 0603 (0402 for solder paste)
  • Minimum Pin-to-Pin Pitch – 0.8mm (0.5mm for solder paste)
  • Resistance – >12 mOhm/sq @ 70um height
  • Max Heated Bed Temperature – 250C
  • Heated Bed Ramp Rate – ~2C/s
  • PC Connection – USB
  • Print area – 138 x 102 mm
  • Board Substrate – FR4; max thickness: 3mm (~1/8″)
  • Recommended Solder Wire Alloys – Sn62, SAC305
  • Recommended Solder Paste Alloys -Sn42/Bi58, Sn63/Pb37
  • Dimensions – 390 x 257 x 207 mm
  • Weight – ~7kg

So instead of sending the Gerber files to the manufacturer, you’d send them to the printer via USB, and get a board within one hour and a half (exact time depends on actual PCB). Currently, only Gerber files generated with EAGLE, Altium, Upverter, and KiCad are supported. The software only runs on Windows for now, but Linux and OSX version should be available once the PCB printers ship.

If your PCB needs hole, you’ll have to do that manually. The company also plans to provide expansion board templates for popular development boards starting with Arduino UNO and Mega shields, and BeagleBone CAPEs and/or Raspberry Pi HATs may be provided too.

Voltera V-One can also be used as a solder paste dispenser. Once the paste is down, add the components manually (not pick and place), and click reflow. You can watch the printer in action in the Kickstarter video below.

The company launched a Kickstarter campaign last last, looking to raise at least $70,000, but they’ve already massively overtaken their target, as so far about $330,000 has been pledged. The printer will come with a cartridge of conductive ink, insulating ink, solder paste, solder wire, blank boards in a few sizes, a sample pack of template boards, and all the required cables and tools. Early bird perks are already sold out, and the first few printers should ship in September, but the last available perk for $1,499 is for the second batch that will ship in January 2016, so you’d need to wait about a year (best case) to get the printer. Shipping is not included, and although exact shipping fees has not been provided, they estimate shipping to cost between $20 to $80 depending on your location.

Thank you CSilie!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Raspberry Pi, Banana Pi, and ODROID-C1 Boards Power Consumption

February 12th, 2015 9 comments

Mikronauts has recently reviewed MIPS Creator CI20, ODROID-C1, and Raspberry Pi 2 Model B. R-PI 2 review is especially interesting since this is the last one, and the reviewer goes to compare all Raspberry Pi models (A, A+, B, B+ and 2 B) with Banana Pi, Banana Pro, MIPS Creator CI20, and ODROID-C1 development boards. The benchmark results are good to know, and expected with ODROID-C1 the fastest of the bunch both in terms of CPU and storage performance, but here I’ll just share the results of his power consumptions testing.

Raspberry_PI_ODroid_Banana_Power_ConsumptionSince all platforms are powered by a 5V power supply, I’ve converted the results into watts.

Model Max (W) Avg (W) Off (W)
A 1.07 0.80 0.15
A+ 0.76 0.48 0.125
B 2.45** 2.12 0.62
B+ 1.20 1.15 0.35
2 B 2.25 1.55 0.325
Banana Pi 2 1.25 0
Banana Pro 2.3 1.62 0
Odroid-C1 2.3 1.62 0.735*

* Connecting an ON/OFF switch to ODROID C1’s power header will allow for turning off the board completely (0W).
** Updated with correct value

For battery powered applications, Raspberry Pi A+ is clearly the best choice out of the list, ODROID-C1 and Raspberry Pi 2 Model B+ have quite similar power consumption values with a slight advantage to the latest Raspberry Pi model, except for soft power off where ODROID-C1 power consumption is about double.

The downside of these measurements is that there’s no indication of the program(s) running during measurements. He only shared the following chart for the Raspberry Pi 2 Model B, which made me assume the measurements are made when the board is idled, and after power off.

Raspberry_PI_2_Power_ConsumptionHowever, looking at ODROID-C1 measurements,  the chart looks a bit different with a spike, and the measurement duration is also longer (130 seconds vs 100 seconds), but this should not affect the conclusion that much.

ODROID-C1_Power_ConsumptionThe procedure is also clearly explained with “the chart showing ODROID-C1 powering up, waiting a few seconds, opening the web browser, waiting a few seconds, and shutting down the desktop”.

Thanks to José for the links.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Raspberry Pi Model B+ Can Now Be Purchased for About $30 Shipped

February 9th, 2015 5 comments

The Raspberry Pi maybe promoted as a $35 ARM Linux board, but in reality once you had taxes and shipping the price can be quite higher. For example on Element14 Thailand, I would have to spend 1,300 Baht ($40) + shipping,  or even 1750 Baht ($54) to get the board. But since Raspberry Pi 2 launch, sales numbers for R-Pi model B+ have most likely dwindled, and some sellers are trying to get rid off stock.

Raspberry_Pi_Model_B+_DiscountSome deals I have found or been tipped off:

If you know of other better or similar deal for the Raspberry Pi Model B/B+, feel free to leave a link in comments.

Thanks to Onebir for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Orange Pi Plus Development Board Gets Upgraded to Allwinner H3 Processor

February 8th, 2015 8 comments

Orange Pi boards were recently launched with a form factor similar to the Raspberry Pi Model B+, and featuring Allwinner A20 and A31s processors. Orange Pi Plus was initially fitted with Allwinner A31s processor, but Shenzhen Xunlong Software has now decided to use the latest Allwinner H3 quad core processor instead for this model, adding better CPU performance, and H.265 video decoding up to 4K @ 30 fps, likely at the cost of a slower Mali- 400MP2 GPU against the PowerVR SGX544MP used in Allwinner A31s.

Orange_Pi_Plus_Allwinner_H3_640px

Click to Enlarge

New Orange Pi Plus specifications:

  • SoC – Allwinner H3 quad core Cortex A7 @ 1.6 GHz with ARM Mali-400MP2 GPU up to 600 MHz
  • System Memory – 1GB DDR3
  • Storage – micro SD card slot, SATA interface (via a USB to SATA chip), unpopulated  8GB eMMC on the back of the board (despite picture, see comments section)
  • Video Output – HDMI, AV port
  • Audio I/O – HDMI, AV port, on-board microphone
  • Connectivity – 10/100/1000M Ethernet, 802.11 b/g/n Wi-Fi
  • USB – 4x USB 2.0 host ports, 1x micro USB OTG port
  • Camera – CSI Interface
  • Expansions – 40-pin Raspberry Pi Model A+/B+ (mostly) compatible header with 28 GPIOs, UART, I2C, SPI, PWM, CAN, I2S, SPDIF, LRADC, ADC, LINE-IN, FM-IN, and HP-IN
  • Debugging – 3-pin UART header for serial console
  • Misc – IR receiver; Power, reset, and u-boot buttons; Power and Ethernet LEDs
  • Power Supply – 5V/2A via barrel jack or micro USB OTG
  • Dimensions – 112 x 60 mm
  • Weight – 60 grams

Orange_Pi_Plus_Allwinner_H3_Back

I would not put too much faith in the Gigabit Ethenet claims, as Allwinner H3 SoC only supports 100M Ethernet.

The board is said to support Android 4.4 , Lubuntu, Debian, and “Raspberry Pi” image. However when I visit the Download section of Orange Pi website, I can only see the Android image for Orange Pi Plus, and the file name reads “sun6i_android_mars-a31s.rar”, which clearly is for the older board based on Allwinner A31s. Orange Pi also has a github account, but it’s empty. That’s OK, as there must be something in the Wiki… but unfortunately all documentation is about Orange Pi’s Allwinner A20 board. There’s nothing about the new Orange Pi Plus in the forums either. All that to say the hardware might be ready, but there’s nothing yet with regards to documentation and firmware images.

Orange Pi Plus sells on Aliexpress for $59 including shipping, but I would not rush to purchase the board yet based on the lack of documentation and software, because as it stands you’ll just get a pretty brick. Further information should eventually be published on Orange Pi Plus product page.

Thanks to Freire for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Raspberry Pi 2 / ODROID C1 Development Boards Comparison

February 2nd, 2015 106 comments

Raspberry Pi 2 Model B board has just been released, and although it’s not a direct answer to ODROID-C1, as Broadcom started the design for BCM2836 SoC for RPI2 a long time ago, both low cost development boards have similar specifications, with a quad core processor, 1GB RAM, Ethernet, and four USB ports, as well as the exact same price: $35. So I’ve decided to compare both in details to find out the actual differences, and which one may be more suitable to a particular application.

Raspberry_Pi_2_vs_ODROID-C1
Let’s get straight to the comparison table.

Hardkernel ODROID C1
Raspberry Pi 2 Model B
Comment
Processor Amlogic S805 quad core Cortex A5 @ 1.5 GHz (Overclockable to 1.7 GHz or more) Broadcom BCM2836 quad core Cortex A7 @ 900 MHz
(Overclockable to 1.1GHz or more)
Despite the architecture advantage for Cortex A7 (1.9 DMIPS/MHz)  against Cortex A5 (1.57 DMIPS/MHz), the frequency difference means ODROID-C1 has the edge here
GPU Quad core ARM Mali-450MP2 VideoCore IV I don’t have data for comparison here, but Mali-450MP2 is much more recent.
Video Decoder Unknown IP.
1080p (60Hz??) video decoding for H.264, H.265, MPEG2, MPEG4, VC1, Xvid, Dvix. 720p decoding for RealMedia1080p video encoding
VideoCore IV
1080p30 video decoding for H.264, MPEG2* and VC1*
1080p video encoding (H.264)* Extra license required
ODROID-C1 supports more codecs, and codec licenses are included
RAM 1GB DDR3 @ 792MHz 1GB LPDDR2 @ 400 MHz
Same amount of RAM, but ODROID-C1 is clocked at twice the speed.. However, LPDDR2 will consume less power than DDR3.
Storage eMMC module socket for  8GB/64GB Toshiba eMMC, or 16GB/32GB Sandisk iNAND Extreme, and micro SD slot (UHS-1 SD models supported) micro SD card slot At equivalent cost, ODROID-C1 and RPI 2 should have the same performance, but ODROID-C1 also supports higher performance SD cards, and eMMC modules
Ethernet Gigabit Ethernet (Realtek RTL8211F) 10/100M (USB to Ethernet chipset) Gigabit Ethernet vs Fast Ethernet, and the R PI does so via USB, so the USB bandwidth is shared with USB storage and Ethernet.
USB 4x USB 2.0 host ports, 1x micro USB OTG (that cannot be used for power) 4x USB 2.0 host ports, 1x micro USB for power Draw. If you need OTG, ODROID-C1 is the winner. If you’d rather use a USB power adapter, RPI 2 is better.
[Update: ODROID-C1 can also be powered via a USB adapter, but this requires some soldering]
Video micro HDMI (without CEC) HDMI (with CEC), Composite (AV)
RPI2 adds composite, and standard HDMI ports may make it more convenient to use (no special micro HDMI cable needed)
Audio Via HDMI Via HDMI and
AV jack
ODROID-C1 lacks a stereo output jack
I/Os and other peripherals 19 GPIOs, 2x I2C, 1x SPI,  2x UART, 2x ADC.
Extra debug port. (UART)
RTC clock
IR Receiver
26 –GPIOs, 1x UART (debugging), 1x SPI, 2x I2C, PCM/I2S, 2x PWM CSI (camera serial interface) and DSI (display serial interface). I’ll give the win to RPI 2 here, as it features more I/Os, but if you need ADC then ODROID-C1 is better, or you need an add-on board for RPI 2
Power 5V via DC jack.
Typical power consumption:  0.5A @ 5V
5V via micro USB
Typical power consumption: 0.8A @ 5V
Typical power consumption may not mean much, but from the numbers released by each company, ODROID-C1 might consume less power.  We’ll need people to test power consumption independently to find out.
Linux Support

Ubuntu 14.04 with XBMC/Kodi

Raspbian, Snappy Ubuntu Core, OpenELEC, RaspBMC, Pidora I’ve just listed Linux distributions listed on the download sections of R-Pi and Hardkernel.  RPI 2 has more choices, but both support hardware video decoding and 3D graphics acceleration.Other unofficial distributions are also supported. For example Snappy Ubuntu Core for ODROID-C1 is coming.
Android Support

Android 4.4.2

N/A. At least no image worth talking about. For Android go with ODROID-C1, at least for now. I’m sure Android for RPI 2 will be released soon-ish. [Update: R-Pi foundation is not interested at all in Android]
Windows Support

N/A

Windows 10 IoT will be available for RPI 2 For Windows go with RPI 2. This is a special version of Windows for Internet of Things applications, not the “full Windows 10 desktop experience” without desktop environment  (This part is not clear)
Community Very active community on ODROID-C1 forums and #odroid IRC channel. Largest community so far for a development board. Mostly on Raspberry Pi Forums. Both boards are pretty good in that area, but RPI (2) is much more popular.
Documentation, source code and hardware files. Documentation can be found on ODROID-C1 Wiki. Schematics are available in PDF format, autocad files too, as well as Amlogic S805 datasheet. No PCB layout or gerber files. Documentation is available via eLinux RPI Wiki. The schematics are available in PDF format only, and, AFAIK, the PCB layout and gerber files are not available. Broadcom BCM2835 datasheet has been release, and should be nearly identical to BCM2836, except the CPU part. -

It’s possible I’ve made some mistakes in the table above, so feel free to comment for corrections.

Nevertheless, the takeaways are that ODROID-C1 board still have more CPU processing power than RPI 2, it will perform much better to move data between a USB drive to the network (probably 2 to 3 times faster) thanks to Gigabit Ethernet, and is the only board to currently support Android. If you need ADC inputs, ODROID-C1 will be preferable, although you can also add an add-on board to RPI 2. ODROID-C1 is potentially better as a media player, as it supports more codecs (with license fees already paid), including H.265, and I understand it also support 1080p60 video decoding, while BCM2836 is limited to 1080p30. The latter point is not that critical as many videos are recorded at 24 to 30 fps.

The Raspberry Pi 2 on the other hand has a larger community, officially supports Windows 10 (and it’s free), features more I/Os and connectors including  I2S and MIPI CSI and DSI connectors, as well as an AV jack with composite and stereo audio signals which are missing on ODROID-C1.

The board with the lower power consumption could be ODROID-C1, as per the power consumption figures released by both companies but more testing is certainly needed.

In conclusion, I can’t give an overall winner, since both boards have their pros and cons, and you have to think about your particular application(s) to select the board that matches your requirements the best.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Raspberry Pi 2 Model B Features Broadcom BCM2836 Quad Core Processor

February 2nd, 2015 48 comments

The Raspberry Pi foundation has finally released an upgraded version of the Raspberry Pi. Raspberry Pi 2 model B features much of the same ports and form factor as Raspberry Pi Model B+, by replaces Broadcom BCM2835 ARM11 processor  @ 700 MHz with a much faster Broadcom BCM2836 quad core ARMv7 processor @ 900 MHz, and with an upgrade to 1GB RAM.

Raspberry_Pi_2_Model_BRaspberry Pi 2 Model B specifications:

  • SoC – Broadcom BCM2836 quad core Cortex A7 processor @ 900MHz with VideoCore IV GPU
  • System Memory – 1GB LPDDR2 (PoP)
  • Storage – micro SD card slot (push release type)
  • Video & Audio Output – HDMI and AV via 3.5mm jack.
  • Connectivity – 10/100M Ethernet
  • USB – 4x USB 2.0 ports, 1x micro USB for power
  • Expansion
    • 2×20 pin header for GPIOs
    • Camera header
    • Display header
  • Power – 5V via micro USB port.
  • Dimensions – 85 x 56 mm

Raspberry_Pi_2_ELPIDA_RAM

I could not find anything about BCM2836, except it’s quite similar to BCM2835, but with 4 Cortex A7 cores @ 900 MHz (overclockable @ 1.1 GHz), the same VideoCore GPU, and 6 times faster according to Sysbench. Raspberry Pi 2 Model B is also mechanically and electrically compatible with Raspberry Pi Model B+, so enclosure, and add-ons board should still work, although the latter may require some software works. The other implicit good news is that the Raspberry Pi should be finally properly support Android and Ubuntu thanks to its more powerful and recent processor.

Price is really what made the original Raspberry Pi popular, and the large community around it came about thanks to its affordability. So how much more will it cost compare to older boards? Answer: $0 more. Yep, Raspberry Pi 2 Model B will just costs the same $35 plus shipping and taxes according The Register. It should soon show up for sale on Element14, RS Components, and other distributors.

Via Raspberry Pi Australia (Little Bird Electronics)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter