<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/api.php?action=feedcontributions&amp;user=Yoder&amp;feedformat=atom</id>
		<title>eLinux.org - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/api.php?action=feedcontributions&amp;user=Yoder&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/Special:Contributions/Yoder"/>
		<updated>2013-05-22T08:41:14Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.21alpha</generator>

	<entry>
		<id>http://elinux.org/ECE497_Beagle_Bone_WiFi</id>
		<title>ECE497 Beagle Bone WiFi</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Beagle_Bone_WiFi"/>
				<updated>2013-05-18T17:12:34Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
This wiki is for anyone trying to use a WiFi adapter on the Beagle Bone. It is originally created by Michael Junge, EE senior at Rose-Hulman Institute of Technology, class of 2012. As new information is discovered please feel free to edit this wiki.&lt;br /&gt;
&lt;br /&gt;
== Required Hardware ==&lt;br /&gt;
You will need a [http://www.adafruit.com/products/814 WiFi adapter] from Adafruit. (I had to buy mine, however as the class expands Dr. Yoder pay potentially have a few to hand out for experimentation.) &lt;br /&gt;
&lt;br /&gt;
You will also need the A6 hardware version of the BeagleBone. This does not work with the A5 version. (again at a later date this may not be an issue)&lt;br /&gt;
&lt;br /&gt;
You will finally need the A5 software version of Angstrom found from [http://elinux.org/EBC_Exercise_03_Installing_a_Beagle_OS EBC Exercise 03 Installing a Beagle OS]. Again make sure it is the A5 software, this does not work with the A6 Rev.&lt;br /&gt;
&lt;br /&gt;
Finally you will need a 5V BeagleBone power supply. The power supply that comes with the Beagle XM Board is suffient as well.&lt;br /&gt;
&lt;br /&gt;
== Required Package Updates ==&lt;br /&gt;
When installing packages do not have the WiFi adapter plugged in.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opkg install linux-firmware-rtl8192cu'''&lt;br /&gt;
 bealge$ '''opkg install wireless-tools'''&lt;br /&gt;
&lt;br /&gt;
== Procedure for running WiFi ==&lt;br /&gt;
You must follow this procedure for enabling the WiFi.&lt;br /&gt;
&lt;br /&gt;
1) Plug in the WiFi adapter (do not plug in an Ethernet cable, it may not work properly)&lt;br /&gt;
&lt;br /&gt;
2) Plug in the usb and connect the BeagleBone to your laptop.&lt;br /&gt;
&lt;br /&gt;
3) Plug in the power adapter for the BeagleBone&lt;br /&gt;
&lt;br /&gt;
4) Connect to the BeagleBone either through screen command or the LAN set up by the usb&lt;br /&gt;
(for connecting through screen or LAN refer to: [http://elinux.org/EBC_Exercise_02_Out-of-the-Box,_Bone EBC Exercise 02 Out-of-the-Box, Bone])&lt;br /&gt;
&lt;br /&gt;
5) Run these lines of code:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''ifconfig wlan0'''                 to see what wlan0 currently displays&lt;br /&gt;
 beagle$ '''iwconfig wlan0'''                 to see if wlan0 is configured properly  &lt;br /&gt;
 beagle$ '''iwconfig wlan0 essid x'''         x-your own personal ID&lt;br /&gt;
 beagle$ '''iwconfig wlan0 password y'''      y- your own personal password&lt;br /&gt;
 beagle$ '''iwconfig wlan0'''                 to check if your essid and password are correct&lt;br /&gt;
 beagle$ '''ifconfig wlan0 up'''              to enable wlan0&lt;br /&gt;
 beagle$ '''ifconfig wlan0 xxx.xxx.x.x'''     set to your own private network, usually 192.168.1,x&lt;br /&gt;
 beagle$ '''ping xxx.xxx.x.1'''               to check if your wireless is working correctly&lt;br /&gt;
 beagle$ '''ping google.com'''                to check DNS and Ethernet, because of campus security I have not been able to access DNS&lt;br /&gt;
&lt;br /&gt;
Here is my personal screenshot of being connected to my wireless router as noted by ''wlan0'' instead of ''eth0''. The BeagleBone code is in the white box. My laptop is in red. This screenshot shows WiFi works, however it can be a pain to set up.&lt;br /&gt;
[[File:ECE497 Bone WiFi.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Closing Remarks ==&lt;br /&gt;
I have not been able to figure out how to connect to the campus network. I know it has to deal with wpa supplicant. However at this time, I have not done enough research into wpa supplicant to connect successfully.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Modifying_Kernel_Command_Line_Parameters</id>
		<title>ECE497 Modifying Kernel Command Line Parameters</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Modifying_Kernel_Command_Line_Parameters"/>
				<updated>2013-05-18T17:11:01Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Spring2011]]&lt;br /&gt;
The Linux kernel is booted with a series of parameters known as the ''kernel command line''. On the BeagleBoard, the uBoot bootloader handles both the booting and the passing of parameters. A typical command line on the BeagleBoard might look something like this: &lt;br /&gt;
&lt;br /&gt;
 #console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
&lt;br /&gt;
Modification of the kernel command line is necessary for things like:&lt;br /&gt;
&lt;br /&gt;
[[ECE497_Tips_and_Tricks#Using_u-boot_to_specify_a_MAC_address_at_boot | Static MAC Addresses]] or&lt;br /&gt;
&lt;br /&gt;
[[ECE497 Pico Projector | Using the TI Pico Projector]]&lt;br /&gt;
&lt;br /&gt;
In order to edit the command line, we need to edit a few uBoot files.&lt;br /&gt;
&lt;br /&gt;
== Modifying Boot.scr ==&lt;br /&gt;
When uBoot finishes its initilization phase, it looks for a file called boot.scr&lt;br /&gt;
This is a binary file which is read by uBoot before it loads uImage which allows us to modify environment variables such as  'bootargs' (the kernel command-line) before we boot. &lt;br /&gt;
&lt;br /&gt;
=== Boot.cmd ===&lt;br /&gt;
Boot.cmd is the plain text, uncompiled version of boot.scr. A standard BeagleBoard boot.cmd might look like:&lt;br /&gt;
 &lt;br /&gt;
 if fatload mmc 0 80200000 uImage&lt;br /&gt;
 then&lt;br /&gt;
 \techo ***** Kernel: /dev/mmcblk0p1/uImage *****&lt;br /&gt;
 else&lt;br /&gt;
 echo ***** Kernel: /dev/mtd3 *****&lt;br /&gt;
 nand read 80200000 280000 400000&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 echo ***** RootFS: /dev/mmcblk0p2 *****&lt;br /&gt;
 setenv bootargs 'console=ttyS2,115200n8 console=tty0 ethaddr=01:2b:03:01:23:45 g_ether.host_addr=00:dc:c8:f7:75:05  g_ether.dev_addr=00:dd:dc:eb:6d:f1 root=/dev/mmcblk0p2 rw rootwait'&lt;br /&gt;
 &lt;br /&gt;
 bootm 80200000 &lt;br /&gt;
&lt;br /&gt;
The key part of this file is the line &lt;br /&gt;
 setenv bootargs 'console=ttyS2,115200n8 console=tty0 ...'&lt;br /&gt;
&lt;br /&gt;
This is the kernel command line, any additional parameters added on this line will be passed to the kernel when it is booted.&lt;br /&gt;
&lt;br /&gt;
=== Compiling with mkimage ===&lt;br /&gt;
Once the boot.cmd file has been authored, we need to compile it to produce a boot.scr file. This is done with the mkimage program.&lt;br /&gt;
On Ubuntu, this program is available through the package 'uboot-mkimage'. It should be similarly available for most distributions.&lt;br /&gt;
&lt;br /&gt;
Once mkimage is installed, you'll want to run it on boot.cmd to create boot.scr:&lt;br /&gt;
 mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Execute uImage' -d boot.cmd boot.scr&lt;br /&gt;
&lt;br /&gt;
=== Replacing the old boot.scr ===&lt;br /&gt;
Once the new boot.scr file has been created, place it in the root directory of the BeagleBoard's SD card (the same directory as uImage).&lt;br /&gt;
&lt;br /&gt;
Next time you boot, the kernel will be passed your newly added parameters!&lt;br /&gt;
&lt;br /&gt;
If you have ssh access to your BeagleBoard, you can install your newly created boot.scr with the following command:&lt;br /&gt;
 scp boot.scr root@beagleboard:/media/mmcblk0p1/&lt;br /&gt;
just be sure to replace 'beagleboard' with your BeagleBoard's hostname or IP address&lt;br /&gt;
&lt;br /&gt;
== User.scr ==&lt;br /&gt;
If the USER button is held while the BeagleBoard boots, uBoot will look for the file user.scr instead of boot.scr. This gives us the chance to boot the kernel with two different command lines (or even boot another kernel all together). &lt;br /&gt;
&lt;br /&gt;
The process for modifying or creating a user.scr file is the same as boot.scr, just change the filename.&lt;br /&gt;
&lt;br /&gt;
== Makefile version ==&lt;br /&gt;
In order to simplify this overly complex process, we can use a Makefile like the one below:&lt;br /&gt;
&lt;br /&gt;
 # Makefile to create boot.scr and user.scr for uBoot &lt;br /&gt;
 #&lt;br /&gt;
 # Author: Michael Lester&lt;br /&gt;
 &lt;br /&gt;
 all: boot.scr user.scr&lt;br /&gt;
 &lt;br /&gt;
 boot.scr: boot.cmd&lt;br /&gt;
 	mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Execute uImage' -d boot.cmd boot.scr&lt;br /&gt;
 &lt;br /&gt;
 user.scr: user.cmd&lt;br /&gt;
 	mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot Ramdisk' -d user.cmd user.scr&lt;br /&gt;
 &lt;br /&gt;
 install: boot.scr user.scr&lt;br /&gt;
 	scp *.scr root@beagleboard:/media/mmcblk0p1/&lt;br /&gt;
&lt;br /&gt;
So, in order to compile both boot.cmd and user.cmd into .scr files and install them on the BeagleBoard, just run:&lt;br /&gt;
 make &amp;amp;&amp;amp; make install&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Networking_over_USB</id>
		<title>ECE497 Networking over USB</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Networking_over_USB"/>
				<updated>2013-05-18T17:09:46Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: This page was never finished&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RemoveMe]]&lt;br /&gt;
The Angstrom demo image for the beagleboard comes with USB networking support. The only thing you have to do is to enable it by issuing the following commands on your beagleboard via the terminal. Note: you can use your own MAC and IP addresses, but maintain consistency.&lt;br /&gt;
&lt;br /&gt;
== Loading the Necessary Module ==&lt;br /&gt;
&lt;br /&gt;
The 'g_ether' module handles networking over USB support. This module can be loaded in two different ways:&lt;br /&gt;
&lt;br /&gt;
'''TODO''' fix the following note to point to the actual configuration option (use default configs)&lt;br /&gt;
&lt;br /&gt;
'''Note''' make sure that the configuration option for the g_ether module is selected (either M or Y) &lt;br /&gt;
&lt;br /&gt;
=== Compile the Module into the Kernel ===&lt;br /&gt;
&lt;br /&gt;
=== Load the Module Dynamically ===&lt;br /&gt;
'''Optional''' if g_ether module not compiled into the kernel, we can load it dynamically as an external module:&lt;br /&gt;
&lt;br /&gt;
 #cd /lib/modules/2.6.29-omap1/kernel/drivers/usb/gadget&lt;br /&gt;
 #modprobe g_ether host_addr=16:0F:15:5A:E1:21 dev_addr=16:0F:15:5A:E1:20&lt;br /&gt;
&lt;br /&gt;
= Bringing Up the Interface =&lt;br /&gt;
== On the BeagleBoard ==&lt;br /&gt;
== On the Host ==&lt;br /&gt;
&lt;br /&gt;
= Making it Better =&lt;br /&gt;
== Automatic SSH login ==&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497:_How_to_edit_the_Matrix_GUI</id>
		<title>ECE497: How to edit the Matrix GUI</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497:_How_to_edit_the_Matrix_GUI"/>
				<updated>2013-05-18T17:07:59Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Winter1112]]&lt;br /&gt;
&lt;br /&gt;
On the SPEd image, there is a launcher on the desktop that runs the Matrix GUI program, which is similar to the iPhone app chooser interface. It turns out that this program is just written in HTML, and is very easy to edit.&lt;br /&gt;
&lt;br /&gt;
The matrix folder is located in /usr/share/matrix/. It has 3 subfolders: html, images, and xml. menu_main.html is the first screen you see when starting up, so is the logical place to start editing. The actual editing is very straightforward, even if you have no previous HTML experience. Just a couple tips: if you want your icon to link to another menu page, then I would suggest using menu_comingsoon.html as a template. If you just use your own HTML, and have no back button, or exit button, you will have to kill the application from the serial cable (which, by the way, can be done with: pkill matrix). Also, all the other icons are 96x96, but as far as I can tell, any size image works just fine - just keep in mind it will be squished into a 96x96 size space.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Goals_and_Needs</id>
		<title>EBC Goals and Needs</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Goals_and_Needs"/>
				<updated>2013-05-18T17:06:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: I no longer need this page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:RemoveMe]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
== Class goals ==&lt;br /&gt;
&lt;br /&gt;
* Understand how to work with the community&lt;br /&gt;
* What is different in embedded?&lt;br /&gt;
* Know how to use it like a microcontroller&lt;br /&gt;
** GPIO interrupts via blocking&lt;br /&gt;
* Various places where things get initialized and understanding the boot/run process&lt;br /&gt;
* Rebuild bootloader and kernel&lt;br /&gt;
* Create a minimal kernel module&lt;br /&gt;
* Do a project&lt;br /&gt;
&lt;br /&gt;
== Class needs ==&lt;br /&gt;
&lt;br /&gt;
* xM SD card image that's up to date with Bone A6 image.&lt;br /&gt;
* USB audio output via hub at same time as USB audio input via webcam&lt;br /&gt;
* I2C library for 8x8 LED display with good perfomance&lt;br /&gt;
* PRU examples&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_SPI_Project</id>
		<title>ECE497 SPI Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_SPI_Project"/>
				<updated>2013-05-18T16:21:36Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
Team members: [[user:Richarsm|Sean Richardson]], [[user:larmorgs|Greg Larmore]]&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
For this project we wanted to further improve documentation available for sysfs kernel drivers with the Beagle Bone. To do this we have interfaced an [http://adafruit.com/products/306 LED light strand] by Adafruit with a sysfs kernel driver utilizing SPI. In doing so we have created an easy to use interface to the light strand while also maximizing data throughput.&lt;br /&gt;
&lt;br /&gt;
== Good Websites ==&lt;br /&gt;
&lt;br /&gt;
[http://elinux.org/BeagleBoard/SPI BeagleBoard and SPI]&lt;br /&gt;
&lt;br /&gt;
[http://www.xml.com/ldd/chapter/book/ O'Reilly Book on Linux Device Drivers]&lt;br /&gt;
&lt;br /&gt;
[http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/samples/kobject/kset-example.c Kset example for sysfs driver]&lt;br /&gt;
&lt;br /&gt;
[http://elk.informatik.fh-augsburg.de/pub/elinux/ngw100-docs/AVR32743/spi/spi_example.c Example SPI device driver]&lt;br /&gt;
&lt;br /&gt;
[http://www.jumpnowtek.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=57&amp;amp;Itemid=62 Another example SPI device driver]&lt;br /&gt;
&lt;br /&gt;
== More Good Websites ==&lt;br /&gt;
&lt;br /&gt;
[http://www.loadyourself.com/linux/sample-linux-driver/ Example Kernel Driver (ioctl, no sysfs)]&lt;br /&gt;
&lt;br /&gt;
[http://www.freesoftwaremagazine.com/articles/drivers_linux Kernel Driver Tutorial (no sysfs/ioctl)]&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
All of these instructions are meant for the A6A BeagleBone running version 3.2.25+ of the kernel. Scripts and Makefiles expect that the kernel be located at &amp;lt;code&amp;gt;~/BeagleBoard/kernel/kernel&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start by cloning the [https://github.com/larmoreg/FinalProject github] repository on both the bone and the host machine by running the following:&lt;br /&gt;
&lt;br /&gt;
 both$ '''git clone git@github.com:larmoreg/FinalProject'''&lt;br /&gt;
&lt;br /&gt;
On the host machine, run the following:&lt;br /&gt;
&lt;br /&gt;
 host$ '''cd ~/FinalProject'''&lt;br /&gt;
 host$ '''./setup.sh'''&lt;br /&gt;
&lt;br /&gt;
Make sure you only do this &amp;lt;b&amp;gt;once&amp;lt;/b&amp;gt; because it is adding on our modules to the Kconfig and Makefile in &amp;lt;code&amp;gt;~/BeagleBoard/kernel/kernel/driver/char&amp;lt;/code&amp;gt;. The files are backed up in the same folder with &amp;lt;code&amp;gt;.orig&amp;lt;/code&amp;gt; appended.&lt;br /&gt;
&lt;br /&gt;
Next run the following on the host machine:&lt;br /&gt;
&lt;br /&gt;
 host$ '''make kernel'''&lt;br /&gt;
&lt;br /&gt;
This will copy the files &amp;lt;code&amp;gt;example.c&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;lpd8806.c&amp;lt;/code&amp;gt; into the &amp;lt;code&amp;gt;~/BeagleBoard/kernel/kernel/driver/char&amp;lt;/code&amp;gt; directory, make the kernel, and then scp the files to the bone.&lt;br /&gt;
&lt;br /&gt;
Moving over to the bone, run the following:&lt;br /&gt;
&lt;br /&gt;
 bone$ '''cd /lib/modules/3.2.25+'''&lt;br /&gt;
 bone$ '''mv modules.dep.bin modules.dep.bin.orig'''&lt;br /&gt;
&lt;br /&gt;
Next modify &amp;lt;code&amp;gt;modules.dep&amp;lt;/code&amp;gt; to include &amp;lt;code&amp;gt;kernel/drivers/char/example.ko:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kernel/drivers/char/lpd8806.ko:&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upon successful completion, you should be able to run the following:&lt;br /&gt;
&lt;br /&gt;
 bone$ '''modprobe example'''&lt;br /&gt;
 bone$ '''modprobe lpd8806'''&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lsmod&amp;lt;/code&amp;gt; to make sure the modules have loaded properly. You should now find two folders inside &amp;lt;code&amp;gt;/sys/firmware&amp;lt;/code&amp;gt; called &amp;lt;code&amp;gt;example&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;lpd8806&amp;lt;/code&amp;gt;. Feel free to play around in the example folder. If you go into this folder and then one folder further into device, you will find two files. The &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; file holds an unsigned integer, while the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; file holds a string of length 10 (initially empty). You can read and write from these files as you would any other sysfs file.&lt;br /&gt;
&lt;br /&gt;
Next we will hook up the LED strand. &amp;lt;b&amp;gt;For this make sure the beagle is powered externally&amp;lt;/b&amp;gt;. The USB power supply does not have enough current to run the 5m strand at full brightness.&lt;br /&gt;
&lt;br /&gt;
To get started hook up pins 30 (D12/SPI1_D1) and 31 (A13/SPI1_SCLK) to SPI data and SPI clock on the strand (see the silkscreen for guidance. Hook up the ground to ground (obviously), and the 5V wire on the strand to the &amp;lt;b&amp;gt;3.3V&amp;lt;/b&amp;gt; pin on the bone. &amp;lt;b&amp;gt;Do not use the 5V pin on the bone or the suggested Adafruit 5V power supply directly connected to the strand without also adding logic level voltage shifters to the data and clock lines&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Bone_P9_pinout.jpg]]&lt;br /&gt;
&lt;br /&gt;
You may need to modify your muxes (if they have been changed from the default). If so, do the following:&lt;br /&gt;
 beagle$ '''echo 0 &amp;gt; /sys/kernel/debug/omap_mux/spi0_d1'''&lt;br /&gt;
 beagle$ '''echo 0 &amp;gt; /sys/kernel/debug/omap_mux/spi0_scl'''&lt;br /&gt;
&lt;br /&gt;
Now that the strand is hooked up, we can run the following:&lt;br /&gt;
&lt;br /&gt;
 bone$ '''cd /sys/firmware/lpd8806/device/'''&lt;br /&gt;
 bone$ '''echo &amp;quot;127 127 127&amp;quot; &amp;gt; grb'''&lt;br /&gt;
&lt;br /&gt;
You should see the first LED (closest to the bone) light up bright white. You can also do something like the following:&lt;br /&gt;
&lt;br /&gt;
 bone$ '''echo &amp;quot;127 0 0 0 127 0 0 0 127&amp;quot; &amp;gt; data'''&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; file is written directly out to the strand while the &amp;lt;code&amp;gt;grb&amp;lt;/code&amp;gt; file treats the strand like a big shift register. &amp;lt;b&amp;gt;Be careful with using &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;. Buffering problems can cause the kernel to seg fault or crash completely (see Future Work).&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
We have created a simple C example that uses this sysfs driver. You can run it by doing the following:&lt;br /&gt;
&lt;br /&gt;
 bone$ '''cd ~/FinalProject'''&lt;br /&gt;
 bone$ '''make'''&lt;br /&gt;
 bone$ '''./test'''&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|8d9n5QUyH38}}&lt;br /&gt;
&lt;br /&gt;
The program shows the capabilities of the strand running in shift mode. Because of the nature of the strand's construction, it would be very simple to daisy chain many chains end to end. Also, the kset implementation means that we can have as many separate strands as there are SPI buses. Normally you could have even more, but the strand only runs 3 wire SPI (no chip select).&lt;br /&gt;
&lt;br /&gt;
The speed is increased greatly when the strand is running in direct access mode by using the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; file instead of the &amp;lt;code&amp;gt;grb&amp;lt;/code&amp;gt; file. However, due to time limitations we were unable to debug the buffering issues. A good place for future work would be to figure out how the buffering problem can be alleviated.&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
There are many layers to the implementation, so we will break them out into subsections.&lt;br /&gt;
&lt;br /&gt;
=== Light Strand ===&lt;br /&gt;
&lt;br /&gt;
The light strand uses the LPD8806 controller chip. Each chip controls the brightness of two 3 color GRB LEDs using PWM running at 1.2 MHz. SPI is used to communicate with the controller chips. The controller has its SPI bus rated somewhere around 20 MHz, but we are only running at 10 MHz. Each LED is 21-bit color, which leaves three bits available for latch control.&lt;br /&gt;
&lt;br /&gt;
So, as you write color values out on the SPI, the first chip receives them. If the chip hasn't written a color to one of its to LEDs, it does so and thus ends the transmission. However, if it has already assigned a color to each LED then it passes the SPI along on a separate bus to the next chip. This is how the strand is able to be 5m and still run at 10 MHz.&lt;br /&gt;
&lt;br /&gt;
It is still unknown how exactly the 3 latch bits are used (because the chip manufacturer has kept the interface a secret). However, if you write 6 bytes of &amp;quot;latch&amp;quot; the strand restarts at the beginning. Perhaps less bytes of &amp;quot;latch&amp;quot; can be sent and get the same effect, but due to time limitations we were unable to debug this completely. This is a simple place to start for future work.&lt;br /&gt;
&lt;br /&gt;
=== SPI Bus ===&lt;br /&gt;
&lt;br /&gt;
We use the default SPI controller to control the SPI lines. All we had to do is find what master is controlling the bus (2 in our case) and add a device. Initially, the SPI bus we want is being used by the default configuration of spidev. So, all we do is unregister the device from spidev and reregister it for our driver. There are a few things that go into the configuration of the device like speed, number of bits, chip select, and mode. Once these are set, you can add the device and it will then be associated with your driver.&lt;br /&gt;
&lt;br /&gt;
=== Sysfs Kernel Driver ===&lt;br /&gt;
&lt;br /&gt;
The sysfs kernel driver is based on the references above. It uses a kset to store kobjects (the basic building block of the kernel). Each kobject has associated with it certain attributes. These attributes are brought out to the user as files. When the files are read from or written to, the kernel calls back into the kobject's read/write routines. Here, we are able to decide which attribute is being addressed and manipulate the buffer as we see fit.&lt;br /&gt;
&lt;br /&gt;
There are some alternative implementations to this that were looked into in addition to kset. The driver could have been implemented as a sysfs device driver instead of a kernel driver so that it shows up in &amp;lt;code&amp;gt;/sys/class&amp;lt;/code&amp;gt; with everything else. Another option is that it could be implemented as a straight up device/kernel driver making it show up in &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; instead. There doesn't seem to be much of a difference though between these implementations as far as performance is concerned. However, finding where this driver fits best is another good place for future work. &lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
=== Sean Richardson ===&lt;br /&gt;
* Researched using SPI on the BeagleBone&lt;br /&gt;
* Debugged the LED strand (the first one we received was broken)&lt;br /&gt;
* Wrote code to interface with the strand using spidev&lt;br /&gt;
* Helped integrate the SPI interface into the sysfs driver&lt;br /&gt;
&lt;br /&gt;
=== Greg Larmore ===&lt;br /&gt;
* Researched kernel drivers and sysfs&lt;br /&gt;
* Helped debug the LED strand&lt;br /&gt;
* Wrote example sysfs driver&lt;br /&gt;
* Integrated the SPI interface into the sysfs driver&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
While the strand works well as it is, there are some things that we would like to see looked into if there is future work on this project.&lt;br /&gt;
&lt;br /&gt;
=== Latching and Controller Interface ===&lt;br /&gt;
&lt;br /&gt;
According to Adafruit, the interface to this part has been reverse engineered. The one part that really remains unknown is how exactly the 3-bit control interface works for each LED. We were able to achieve a latching effect by sending 6 empty transmissions. The code in [github.com/adafruit/lpd8806 Adafruit's github] doesn't seem to be using this many latch transmissions.&lt;br /&gt;
&lt;br /&gt;
=== Buffering Problem ===&lt;br /&gt;
&lt;br /&gt;
There is a problem with buffered output going into the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; file (because it is so big). When the output buffers it causes 2 sequential writes which weren't being handled well by the attribute's store function. This could be alleviated with a circular buffer and an index that can be controlled by the user, but really the driver should be able to handle this condition.&lt;br /&gt;
&lt;br /&gt;
=== Sysfs File Location ===&lt;br /&gt;
&lt;br /&gt;
The decision to have these drivers located in &amp;lt;code&amp;gt;/lib/modules/3.2.25+/kernel/drivers/char&amp;lt;/code&amp;gt; and run out of &amp;lt;code&amp;gt;/sys/firmware&amp;lt;/code&amp;gt; was pretty much arbitrary. It would be nice to do some research into how the kernel is supposed to be structured so that we can match it. This also applies to the example driver included in this project.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
In this project, we were able to get SPI (a lesser used interface on the bone) to work well with our LED strand. More impressively, we were able to interface with the SPI through a sysfs interface. In the process of developing this sysfs interface to the LED strand, we developed an example sysfs driver that can be used in future ECE497 classes. Lastly, we developed a sample application that uses this sysfs interface for our LED strand to show off the results.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_SLAM_via_ROS</id>
		<title>ECE497 SLAM via ROS</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_SLAM_via_ROS"/>
				<updated>2013-05-18T16:21:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
Team members: [[user:whiteer|Elias White]]&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give two sentence intro to the project.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;(This is a big project for one person.  Let's talk about your progress today.)&amp;lt;/span&amp;gt;&lt;br /&gt;
In autonomous navigation understanding the robot's surrounding environment, as well as its position in this environment, is of paramount importance.  This project attempts to leverage the open-source efforts resulting in simultaneous localization and mapping (SLAM) algorithms and use them, in collaboration with the Beagleboard -xm, to develop a 3-D model of the world surrounding the board as it moves through space.  Obviously the more (quality) sensory data used in a SLAM algorithm the better the results, but at this time a camera will be the only sensor device, although there is the possibility of incorporating a gyroscope.  A primary objective of this project is to test the feasibility of using the Beagleboard -xm as the &amp;quot;brain&amp;quot; for an autonomous quad-copter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give two sentences telling what works.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
An Embedded version of Ubuntu has been successfully installed, and ROS has been installed on top of it.  While I make my final SLAM algorithm decision there is nothing else that works.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give two sentences telling what isn't working.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Building the world model and localizing my self in it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
End with a two sentence conclusion.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this project I hope to provide a example for my Aerial-robotics team members to follow and a starting point that leads them to increasingly awesome aerial robotics projects.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give step by step instructions on how to install your project on the SPEd2 image.  &lt;br /&gt;
&lt;br /&gt;
* Include your [https://github.com/ github] path as a link like this:  [https://github.com/MarkAYoder/gitLearn https://github.com/MarkAYoder/gitLearn].  &lt;br /&gt;
* Include any additional packages installed via '''opkg'''.&lt;br /&gt;
* Include kernel mods.&lt;br /&gt;
* If there is extra hardware needed, include links to where it can be obtained.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a few fairly large installs (embedded Ubuntu, ROS) required.  I'll pretty up the procedure and put throw it up here when I think it is at its most painless.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;(Do you have a git repository?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Once everything is installed, how do you use the program?  Give details here, so if you have a long user manual, link to it here.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Pending...&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Here is where you brag about what your project can do.&lt;br /&gt;
Include a [http://www.youtube.com/ YouTube] demo.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While there are currently no highlights, this [http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=IMSozUpFFkU video] provides an idea of what I would like to do, although the quality of their results is much higher than I am expecting to achieve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;(How much of what's in the video comes with ROS?)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give a high level overview of the structure of your software.  Are you using GStreamer?  Show a diagram of the pipeline.  Are you running multiple tasks?  Show what they do and how they interact.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The operating system running on the -xm is an embedded version of Ubuntu 12.04.  ROS (Robotic Operating System) is installed within this OS, providing hardware abstraction, device drivers, libraries, et cetera, that provide simplified control of the robot platform.  OpenCV is embedded in ROS and is responsible for the robot's interpreting the data provided by the camera and constructing an accurate representation of the world.  While I haven't yet made my final decision on which SLAM algorithm to use, I am leaning towards [http://www.openslam.org/gmapping.html GMapping].&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
List the major tasks in your project and who did what.&lt;br /&gt;
&lt;br /&gt;
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a solo group I'll be the only one working on this project.&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Suggest addition things that could be done with this project.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
In order to improve performance once could bolster the sensory profile of the platform.  Useful sensors include:&lt;br /&gt;
#Laser scanning range-finder&lt;br /&gt;
#IMU (Inertial measurement unit)   &lt;br /&gt;
#Digital Compass&lt;br /&gt;
#GPS&lt;br /&gt;
&lt;br /&gt;
The incorporation of the data gathered from these sensors will improve the robot's model of the world and decrease the uncertainty it has about its location in the model.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nothing yet.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_XBee</id>
		<title>ECE497 Project: XBee</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_XBee"/>
				<updated>2013-05-18T16:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Team members: [[User:Shinnsm|Stephen Shinn]], [[User:Mmoravec|Matt Moravec]], [[User:Duganje|Josh Dugan]].&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
The XBee project involves taking two series-one XBee modules &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;(Include a link to these)&amp;lt;/span&amp;gt; and interfacing them with the various sensors that have been documented in our ECE497 group. Our goal was to create wiki sections which expand on the sensors to include sample wireless communication documentation and source code.&lt;br /&gt;
&lt;br /&gt;
We have successfully connected to the XBee radios from the Bones and sent data using the &amp;lt;code&amp;gt;/dev/ttyO&amp;lt;/code&amp;gt; file system. We have also successfully done wireless implementations of the force sensitive resistor, the magnetometer, and the joystick alone a set of functions for expanding this to any sensor.&lt;br /&gt;
&lt;br /&gt;
In conclusion, we're using XBee modules to communicate from one Bone to another. We have successfully communicated wirelessly with three sensors: the force sensitive resistor, magnetometer, and joystick. We hope that these instructions and code libraries are useful to hobbyists who wish to implement their own wireless solutions with the BeagleBone.&lt;br /&gt;
&lt;br /&gt;
== General Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
The very first step is to solder your XBee module, see [http://www.ladyada.net/make/xbee/solder.html the instructions here]. Once the module is assembled, you may wire-up the XBee module to the BeagleBone's serial ports. The table below describes how to hook up the module to UART2 on the Bone:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; width=300px&lt;br /&gt;
! align=&amp;quot;center&amp;quot;| XBee&lt;br /&gt;
! Bone, P9 header&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|Ground, port 1&lt;br /&gt;
|-&lt;br /&gt;
|3V&lt;br /&gt;
|3.3V, port 3&lt;br /&gt;
|-&lt;br /&gt;
|TX&lt;br /&gt;
|RX, port 22&lt;br /&gt;
|-&lt;br /&gt;
|RX&lt;br /&gt;
|TX, port 21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The image below shows the configuration:&lt;br /&gt;
&lt;br /&gt;
[[File:XBeeBoneConnection.jpg|450px|XBee module connected to a BeagleBone.]]&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
Our git repo for this project is available here: [https://github.com/duganje/ECE497_XBEE.git https://github.com/duganje/ECE497_XBEE.git]. To begin, run &lt;br /&gt;
 beagle$ git clone https://github.com/duganje/ECE497_XBEE.git&lt;br /&gt;
to clone the repository. This contains three folders with examples of XBee implementation for specific sensors and &amp;lt;code&amp;gt;XBee.c&amp;lt;/code&amp;gt;, which contains helper functions for using the XBee. You are now able to send data wirelessly using the &amp;lt;code&amp;gt;SendIntXbee()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ReceiveIntXbee()&amp;lt;/code&amp;gt; functions after running &amp;lt;code&amp;gt;initializeXbee()&amp;lt;/code&amp;gt;. Clone the repository on a separate BeagleBone and use the same functions to receive and reply data.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Give step by step instructions on how to install your project on the SPEd2 image.  &lt;br /&gt;
&lt;br /&gt;
* Include your [https://github.com/ github] path as a link like this:  [https://github.com/MarkAYoder/gitLearn https://github.com/MarkAYoder/gitLearn].  &lt;br /&gt;
* Include any additional packages installed via '''opkg'''.&lt;br /&gt;
* Include kernel mods.&lt;br /&gt;
* If there is extra hardware needed, include links to where it can be obtained.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 0.5&amp;quot; Force Sensitive Resistor ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for interfacing the [[SparkFun: 0.5&amp;quot; Force Sensitive Resistor|0.5&amp;quot; Force Sensitive Resistor]] with the XBee.&lt;br /&gt;
&lt;br /&gt;
=== Required Items ===&lt;br /&gt;
&lt;br /&gt;
*2 x [http://adafruit.com/products/513 BeagleBone]&lt;br /&gt;
*2 x [http://www.adafruit.com/products/128 XBee Module]&lt;br /&gt;
*2 x [http://www.adafruit.com/products/126 XBee Adaptor Kit]&lt;br /&gt;
*1 x [https://www.sparkfun.com/products/9375 0.5&amp;quot; Force Sensitive Resistor]&lt;br /&gt;
*1 x 27kΩ resistor&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
First we will connect the force-sensitive resistor to the Bone (P9 header). A 27kΩ resistor is used to connect the 3.3V source (pin 3) from the Bone to one pin of the force-sensitive resistor. Then, the other pin of the force-sensitive resistor is connected to ground (pin 1). An analog pin (AIN) on the Bone connects to the node containing both resistors, and values can be read off of that AIN. AIN5 (pin 36) is being used to read values on the Bone.&lt;br /&gt;
&lt;br /&gt;
Next we will connect the XBee module to the Bone. The table below describes the necessary wiring.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; width=300px&lt;br /&gt;
! align=&amp;quot;center&amp;quot;| XBee&lt;br /&gt;
! Bone, P9 header&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|Ground, port 1&lt;br /&gt;
|-&lt;br /&gt;
|3V&lt;br /&gt;
|3.3V, port 3&lt;br /&gt;
|-&lt;br /&gt;
|TX&lt;br /&gt;
|RX, port 22&lt;br /&gt;
|-&lt;br /&gt;
|RX&lt;br /&gt;
|TX, port 21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With everything wired-up, your connections should match the image below. Click on the image to view the full resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:ForceResistorXBee.jpg|600px|Picture of connection|link=http://elinux.org/images/3/3b/ForceResistorXBee.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
We're going to start with these two pieces of code as a reference and combine them:&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/shinnsm/ECE497/blob/master/MiniProject02/miniProj2.c Code to interface with the force sensitive resistor]&lt;br /&gt;
*[https://github.com/duganje/ECE497_XBEE/blob/master/XBee.c Code to interface with the XBee module]&lt;br /&gt;
&lt;br /&gt;
Running the code for the force sensitive resistor produces a value from 0 to 4096 depending on how much pressure is applied to the resistor. The harder the resistor is squeezed, the lower this value is. On line 46 of the force sensitive resistor code, &amp;lt;code&amp;gt;analogValue&amp;lt;/code&amp;gt; is constantly updated and stores this number.&lt;br /&gt;
&lt;br /&gt;
The instructions now fork depending on whether you're setting up the sending XBee code or the receiving XBee code. When you're done you will have two C programs, one running on each Bone.&lt;br /&gt;
&lt;br /&gt;
==== Sending ====&lt;br /&gt;
&lt;br /&gt;
Start with the [https://github.com/shinnsm/ECE497/blob/master/MiniProject02/miniProj2.c resistor code] as a base and add the following include to the top of the file to add our XBee library (available [https://github.com/duganje/ECE497_XBEE here]):&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;XBee.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Next, add a call to &amp;lt;code&amp;gt;initializeXbee()&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; of the resistor code before the while loop begins.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop after the value of &amp;lt;code&amp;gt;analogValue&amp;lt;/code&amp;gt; is updated, add this line:&lt;br /&gt;
&lt;br /&gt;
 sendIntXbee(analogValue);&lt;br /&gt;
&lt;br /&gt;
This will send the integer analog value to the receiving XBee. Now the number is constantly being sent in the while loop.&lt;br /&gt;
&lt;br /&gt;
==== Receiving ====&lt;br /&gt;
&lt;br /&gt;
Start with the [https://github.com/duganje/ECE497_XBEE/blob/master/XBee.c XBee code] as a base and create a &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; function. First in &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, add a call to &amp;lt;code&amp;gt;initializeXbee()&amp;lt;/code&amp;gt; to setup the Bone to use the module.&lt;br /&gt;
&lt;br /&gt;
Next, add a while loop to &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; which continuously receives the integer analog value from the other Bone using the &amp;lt;code&amp;gt;receiveIntXbee()&amp;lt;/code&amp;gt; function. Once the integer value is received, you're free to use that information for whatever purpose you wish. The example code below should give you an idea of how this is done:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;void main(int argc, char **argv, char **envp) {&lt;br /&gt;
	// Initialize XBee&lt;br /&gt;
	initializeXbee();&lt;br /&gt;
&lt;br /&gt;
	// Keep going&lt;br /&gt;
	while (1) {&lt;br /&gt;
	int analogValue = receiveIntXbee();&lt;br /&gt;
&lt;br /&gt;
	// Do anything based on analog value&lt;br /&gt;
	if (analogValue &amp;lt; 1000)&lt;br /&gt;
		ButtonPressedFunction();&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Sample ====&lt;br /&gt;
&lt;br /&gt;
===== Required Items =====&lt;br /&gt;
&lt;br /&gt;
* LED&lt;br /&gt;
* 220Ω resistor&lt;br /&gt;
&lt;br /&gt;
===== Instructions =====&lt;br /&gt;
&lt;br /&gt;
Based on the instructions above, I've created a sample set of programs. Using two Bones, the send program runs on one and the receive program runs on another. The &amp;quot;send&amp;quot; Bone includes an XBee module and the force sensitive resistor, [[ECE497 Project: XBee#Hardware 2|hooked-up as described here]]. The second Bone includes the XBee module hooked-up in the same way with the addition of an LED connected to pin 12 (GPIO1_28) of the Bone. Connect the ground pin of the LED to the Bone's ground (pin 1) using a 220Ω resistor.&lt;br /&gt;
&lt;br /&gt;
Running both programs emulates the original function of the [https://github.com/shinnsm/ECE497/blob/master/MiniProject02/miniProj2.c force resistor sample code], the only difference being that the data is now sent wirelessly from one Bone to another.&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/duganje/ECE497_XBEE/blob/master/ForceResistor/sendResistor.c Send Program]&lt;br /&gt;
*[https://github.com/duganje/ECE497_XBEE/blob/master/ForceResistor/receiveResistor.c Receive Program]&lt;br /&gt;
&lt;br /&gt;
To easily run the programs, follow these steps (you can skip the first step if you have already clone the repository):&lt;br /&gt;
 beagle$ git clone https://github.com/duganje/ECE497_XBEE.git&lt;br /&gt;
 beagle$ cd ECE497_XBEE&lt;br /&gt;
 beagle$ cd ForceResistor&lt;br /&gt;
 beagle$ make&lt;br /&gt;
&lt;br /&gt;
This will create 2 executables: '''sendResistor''' and '''receiveResistor'''. Run the programs by running:&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./sendResistor&lt;br /&gt;
&lt;br /&gt;
on the Bone connected to the XBee and the force sensitive resistor and&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./receiveResistor&lt;br /&gt;
&lt;br /&gt;
on the Bone connected to the XBee and the LED.&lt;br /&gt;
&lt;br /&gt;
You will then be able to squeeze the force sensitive resistor and see the LED light up on the other BeagleBone. We've created a [[ECE497 Project: XBee#Force Sensitive Resistor YouTube Demo|YouTube demo]] of this program in action.&lt;br /&gt;
&lt;br /&gt;
== Wireless 2-Axis Thumb Joystick ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for interfacing the [[Adafruit: 2-Axis Thumb Joystick|2-Axis Thumb Joystick]] with the XBee. This application could be useful in a wireless controller setting. &lt;br /&gt;
&lt;br /&gt;
=== Required Items ===&lt;br /&gt;
&lt;br /&gt;
*2 X [http://adafruit.com/products/513 BeagleBone]&lt;br /&gt;
*2 X [http://www.adafruit.com/products/128 XBee Module]&lt;br /&gt;
*2 X [http://www.adafruit.com/products/126 XBee Adaptor Kit]&lt;br /&gt;
*1 X [[Adafruit: 2-Axis Thumb Joystick|2-Axis Thumb Joystick]]&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone Wiring Instructions ===&lt;br /&gt;
&lt;br /&gt;
On your first BeagleBone, wire pins 36 and 38 to your two analog inputs. Wire the Beagle's 1.8V VCC output, pin 32, to the VCC input of the Joystick. Finally, wire the select GPIO signal to the GPIO_7 pin or pin 42.&lt;br /&gt;
&lt;br /&gt;
Wire the XBee as shown in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; width=300px&lt;br /&gt;
! align=&amp;quot;center&amp;quot;| XBee&lt;br /&gt;
! Bone, P9 header&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|Ground, port 1&lt;br /&gt;
|-&lt;br /&gt;
|3V&lt;br /&gt;
|3.3V, port 3&lt;br /&gt;
|-&lt;br /&gt;
|TX&lt;br /&gt;
|RX, port 22&lt;br /&gt;
|-&lt;br /&gt;
|RX&lt;br /&gt;
|TX, port 21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pinout and visual implementation are shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:Bone_P9_pinout.jpg|x400px]] [[File:XBee_and_Adafruit_Joystick.jpg|x400px]]&lt;br /&gt;
&lt;br /&gt;
On the second BeagleBone, wire the XBee exactly as the first XBee (as described in the table above).&lt;br /&gt;
&lt;br /&gt;
Don't hook up any other hardware to the second XBee as it will be acting as an information hub.&lt;br /&gt;
&lt;br /&gt;
=== Usage Instructions ===&lt;br /&gt;
&lt;br /&gt;
On both BeagleBones, clone this repository: https://github.com/duganje/ECE497_XBEE.git&lt;br /&gt;
Use the following to run the joystick code (you can skip the first step if you have already cloned the repository):&lt;br /&gt;
&lt;br /&gt;
 beagle$ git clone https://github.com/duganje/ECE497_XBEE.git&lt;br /&gt;
 beagle$ cd ECE497_XBEE&lt;br /&gt;
 beagle$ cd 2AxisJoystick&lt;br /&gt;
 beagle$ make&lt;br /&gt;
&lt;br /&gt;
This will create 2 executables: '''joystickSend''' and '''joystickReceive'''. Run the code by doing:&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./joystickSend&lt;br /&gt;
&lt;br /&gt;
on the Bone connected to the XBee and the joystick and:&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./joystickReceive&lt;br /&gt;
&lt;br /&gt;
on the Bone connected to just the XBee.&lt;br /&gt;
&lt;br /&gt;
== Magnetometer ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for interfacing the [[Sparkfun: HMC5883L Magnetometer|HMC5883L Magnetometer]] with the XBee.&lt;br /&gt;
&lt;br /&gt;
=== Required Items ===&lt;br /&gt;
&lt;br /&gt;
*2 x [http://adafruit.com/products/513 BeagleBone]&lt;br /&gt;
*2 x [http://www.adafruit.com/products/128 XBee Module]&lt;br /&gt;
*2 x [http://www.adafruit.com/products/126 XBee Adaptor Kit]&lt;br /&gt;
*1 x [https://www.sparkfun.com/products/10530? Magnetometer Breakout Board]&lt;br /&gt;
*2 x 4.7kΩ resistor&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
&lt;br /&gt;
The XBee radios should be connected to both Beagles as shown in the table below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; width=300px&lt;br /&gt;
! align=&amp;quot;center&amp;quot;| XBee&lt;br /&gt;
! Bone, P9 header&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|Ground, port 1&lt;br /&gt;
|-&lt;br /&gt;
|3V&lt;br /&gt;
|3.3V, port 3&lt;br /&gt;
|-&lt;br /&gt;
|TX&lt;br /&gt;
|RX, port 22&lt;br /&gt;
|-&lt;br /&gt;
|RX&lt;br /&gt;
|TX, port 21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Magnetometer should be connected to one BeagleBone as described in the [[Sparkfun: HMC5883L Magnetometer|hardware]] section of the Magnetometer page. Ground and Vcc on the Magnetometer should be connected to pins 1 and 3 respectively on header P9 of the bone. SCL and SDA on the Magnetometer should be connected to pins 19 and 20 on P9 to use I2C bus 3. Two 4.7kΩ resistors should also be connected between SCL and Vcc and between SDA and Vcc. Below is a picture of the Beagle connected to the Magnetometer and the XBee.&lt;br /&gt;
&lt;br /&gt;
[[File:XBEE_MAG.jpg|600px|Picture of connections]]&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
The goal is to have the two BeagleBones attached to XBee radios with the one connected to the Magnetometer taking data and transmitting this data to the other Bone which will print the measured data.&lt;br /&gt;
&lt;br /&gt;
I started with the code to collect data from the Magnetometer and the code to send data using the XBee radios. Here are the links to these two programs:&lt;br /&gt;
*[https://github.com/duganje/ECE497_duganje/blob/master/MiniProject02/miniproject02.c Code to gather magnetometer data]&lt;br /&gt;
*[https://github.com/duganje/ECE497_XBEE/blob/master/XBee.c Code to interface with the XBee module]&lt;br /&gt;
&lt;br /&gt;
The code for the magnetometer uses I2C to read the values for the X, Y and Z-Axes and print these values to the terminal. The XBee code contains helper functions to transmit data wirelessly. I have written two programs: one to collect and transmit the magnetometer data and the other to receive and display this data.&lt;br /&gt;
&lt;br /&gt;
====Sending====&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/duganje/ECE497_XBEE/blob/master/Magnetometer/sendMag.c Tranmitting Magnetometer Data Code]&lt;br /&gt;
&lt;br /&gt;
The code uses  [https://github.com/MarkAYoder/BeagleBoard-exercises/tree/master/i2c I2C code] from [[EBC Exercise 12 I2C]] and helper functions from [https://github.com/duganje/ECE497_XBEE/blob/master/XBee.c XBee.c].&lt;br /&gt;
&lt;br /&gt;
The program uses:&lt;br /&gt;
&lt;br /&gt;
 i2cget(i2cbus, address, daddress);&lt;br /&gt;
&lt;br /&gt;
to get the data from the magnetometer and &lt;br /&gt;
&lt;br /&gt;
 sendShortXbee(val);&lt;br /&gt;
&lt;br /&gt;
to send these values to the receiving XBee.&lt;br /&gt;
&lt;br /&gt;
====Receiving====&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/duganje/ECE497_XBEE/blob/master/Magnetometer/receiveMag.c Receiving Magnetometer Data Code]&lt;br /&gt;
&lt;br /&gt;
The receiving code uses:&lt;br /&gt;
&lt;br /&gt;
 receiveShortXbee();&lt;br /&gt;
&lt;br /&gt;
to read the values for each axis.&lt;br /&gt;
&lt;br /&gt;
Because we do not have a way to synchronize the two XBees, the receiving program must be started first to ensure the data is receive in the correct order.&lt;br /&gt;
&lt;br /&gt;
In the Highlights section, there is a video demo of the complete program.&lt;br /&gt;
&lt;br /&gt;
===Running the Code===&lt;br /&gt;
Use the following to run the magnetometer code (you can skip the first step if you have already clone the repository):&lt;br /&gt;
&lt;br /&gt;
 beagle$ git clone https://github.com/duganje/ECE497_XBEE.git&lt;br /&gt;
 beagle$ cd ECE497_XBEE&lt;br /&gt;
 beagle$ cd Magnetometer&lt;br /&gt;
 beagle$ make&lt;br /&gt;
&lt;br /&gt;
This will create 2 executables: '''receiveMag''' and '''sendMag'''. Run the code by doing:&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./sendMag&lt;br /&gt;
&lt;br /&gt;
on the Bone connected to the XBee and the magnetometer and:&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./receiveMag&lt;br /&gt;
&lt;br /&gt;
on the Bone connected to just the XBee.&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
&lt;br /&gt;
These instructions are a general how-to for using the XBee with any sensor.&lt;br /&gt;
&lt;br /&gt;
After cloning our repository to your favorite location, include the necessary header file, &amp;lt;code&amp;gt;XBee.h&amp;lt;/code&amp;gt;. In your &amp;lt;code&amp;gt;main.c&amp;lt;/code&amp;gt; file or your program, first run: &amp;lt;pre&amp;gt;initializeXbee();&amp;lt;/pre&amp;gt; which sets the pins we will need to communicate with the XBee using UART 2. Then in your &amp;lt;code&amp;gt;main.c&amp;lt;/code&amp;gt; file, call: &amp;lt;pre&amp;gt;sendIntXbee(yourInt);&amp;lt;/pre&amp;gt; with &amp;lt;code&amp;gt;yourInt&amp;lt;/code&amp;gt; being any integer data you would like to transmit. On your 2nd BeagleBone, call: &amp;lt;pre&amp;gt;receiveIntXbee();&amp;lt;/pre&amp;gt; which will return the integer which was sent through &amp;lt;code&amp;gt;sendIntXbee(int yourInt)&amp;lt;/code&amp;gt; on the 1st board.&lt;br /&gt;
&lt;br /&gt;
The send and receive functions can be easily modified to send any data type, as shown in &amp;lt;code&amp;gt;XBee.c&amp;lt;/code&amp;gt; with the following functions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sendShortXbee(short yourShort);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;receiveShortXbee();&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
Our project is able to send and receive wireless data for a whole range of possible implementations. We've created YouTube demos for the three sensor implementations we've described so far:&lt;br /&gt;
&lt;br /&gt;
=== Force Sensitive Resistor YouTube Demo ===&lt;br /&gt;
{{#ev:youtube|Ds_BWsrvy1I}}&lt;br /&gt;
&lt;br /&gt;
=== 2-Axis Thumb Joystick YouTube Demo ===&lt;br /&gt;
{{#ev:youtube|9t1MQGYNOt4}}&lt;br /&gt;
&lt;br /&gt;
=== Magnetometer YouTube Demo ===&lt;br /&gt;
{{#ev:youtube|99bFqE54UHM}}&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
The main theory of operation is based on Linux's use of files. UART files on the Bone represent serial connections. With an XBee connected to the Bone's UART 2 as shown above, sent and received messages are written to &amp;lt;code&amp;gt;/dev/ttyO2&amp;lt;/code&amp;gt; (the O is an uppercase O, not a zero). The BeagleBone's UARTs are accessed through &amp;lt;code&amp;gt;/dev/ttyO'''x'''&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;'''x'''&amp;lt;/code&amp;gt; is the UART number. Our code uses this and reads the file to receive a message and writes to the file to send a message. Any XBee's on the same network wil receive the message and we can do anything we want with it.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
=== Milestones ===&lt;br /&gt;
&lt;br /&gt;
*Monday, 10/29 - XBee hardware received. (done)&lt;br /&gt;
*Thursday, 11/1 - XBee Bones are connected and commands can be sent. (done)&lt;br /&gt;
*Monday, 11/5 - Initial sensor implementation. (done)&lt;br /&gt;
*Thursday, 11/8 - Package language implemented between Bones. (done)&lt;br /&gt;
*Sunday, 11/11 - YouTube demo uploaded. (done)&lt;br /&gt;
*Monday, 11/12 - All documentation complete. (done)&lt;br /&gt;
*Tuesday, 11/13 - Everything complete &amp;amp; all code ''makes''. (done)&lt;br /&gt;
&lt;br /&gt;
=== Completed Work ===&lt;br /&gt;
&lt;br /&gt;
* Soldering XBee's - Matt Moravec&lt;br /&gt;
* Initial communication methods - Stephen Shinn&lt;br /&gt;
* Expanded communication methods - Josh Dugan&lt;br /&gt;
* Initialization method - Josh Dugan&lt;br /&gt;
* Force Sensitive Resistor implementation and demo - Stephen Shinn&lt;br /&gt;
* Magnetometer implementation and demo - Josh Dugan&lt;br /&gt;
* 2-Axis Thumb Joystick implementation and demo - Matt Moravec&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
The following are some additional things that could be done with this project:&lt;br /&gt;
&lt;br /&gt;
* Create and document interfaces for more sensors&lt;br /&gt;
* Back-and-forth 2-sensor communication&lt;br /&gt;
* Create a practical application such as a wireless doorbell&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
In conclusion, we created an XBee wireless communication library for BeagleBone and adapted three sensors to use it. We've also documented general usage instructions for adapting XBee to use any type of sensor. We have not found a comprehensive source for how to use XBee modules with the BeagleBone, so our code and instructions are online with the intention that others use them as a reference.&lt;br /&gt;
&lt;br /&gt;
We were unable to get a working program with 2-way communication with 2 XBees each sending and receiving data because of synchronization problems. Addressing this would require the development of a communication protocol to prevent deadlocks and to ensure the receiving program knows what the data is when it receives it. This would be a logical next step in terms of future work for this project.&lt;br /&gt;
&lt;br /&gt;
Using the wireless modules is interesting, and there is a number of things you can do with them. We've listed a few ideas above which could be done in the future. One interesting idea would be to create a practical XBee application that someone could actually use in their home or work life. With a few XBees around the house, one could have a small network for sending data and using a sensor to control Christmas lights or something.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect</id>
		<title>ECE497 Project: Kinect</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect"/>
				<updated>2013-05-18T16:20:33Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Astroricks|Yue Zhang]], [[user:Xinyu1991|Xinyu Cheng]], [[user:Lix|Xia Li]].&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
I believe that almost every college students have played a game called &amp;quot;Greedy Snake&amp;quot; in our childhood. At that time, we played it on the cellphone, on the computer or on the PSP. However, we are always using the keyboard to control the games we played. Now, our final project could bring you something new, that is a &amp;quot;Gesture Controlled Greedy Snake&amp;quot;. It means that, using the gesture, the keyboard is never required to play the game. Amazing? Read the following wiki to know how we make it happens!&lt;br /&gt;
&lt;br /&gt;
Basically, we are using the Kinect from Microsoft and the Beagle Board XM from Texas Instrument to accomplish our gesture game. The program for the game is programmed on the QT-Linux. Besides, we use the cross compiling to compile the program to make the game run on the beagle board.&lt;br /&gt;
&lt;br /&gt;
After our previous work, our &amp;quot;Gesture Greedy Snake&amp;quot; is completed, and works pretty good. The snake can be controlled by our gestures smoothly. The game reminds us a different style of childhood memory.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
1 x [http://www.microsoftstore.com/store/msstore/en_US/pd/ThemeID.27509700/Kinect-for-Xbox-360/productID.216507400 Kinect]&lt;br /&gt;
&lt;br /&gt;
1 x [http://www.digikey.com/product-highlights/us/en/texas-instruments-beagleboard/685 BeagleBoard xM]&lt;br /&gt;
&lt;br /&gt;
1 x DVI to HDMI wire&lt;br /&gt;
&lt;br /&gt;
1 x Monitor&lt;br /&gt;
&lt;br /&gt;
1 x Keyboard&lt;br /&gt;
&lt;br /&gt;
1 x Mouse&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
The source files for the project can be downloaded from https://github.com/Astroricks/Snake-Game-with-Kinect-on-BeagleBoard-xM . Once you have set up the developing environment as in the following instructions, you can download the files, playing with the game or making changes.  &lt;br /&gt;
&lt;br /&gt;
We are using the drivers provided by [http://www.omekinteractive.com/ Omek]. The driver files can be found at the Beckon™ SDK 2.4 – BeagleBoard-xM Edition [http://support.omekinteractive.com/index.php?/TI/managedownloads/Download/View/32/11/installation installation] page, and a developer's guide is provided at the [http://support.omekinteractive.com/index.php?/TI/managedownloads/Download/View/34/11/documentation documentation] page. (You may need to register first.) Instructions in this [http://treyweaver.blogspot.com/2010/10/setting-up-qt-development-environment.html blog] are also very useful.&lt;br /&gt;
&lt;br /&gt;
Although the developer's guide introduces how to do the installation and configuration, we have found that it takes much longer than we originally thought, and errors came out occasionally. It seems that the developer's guide is not very well organized and not detailed enought anyway. So we arranged our instruction and configuration procedures as below:&lt;br /&gt;
&lt;br /&gt;
==== 1. Download the image package and burn it into the SD card ====&lt;br /&gt;
&lt;br /&gt;
Download the image package [http://support.omekinteractive.com/index.php?/TI/managedownloads/Download/View/32/11/installation Beckon-Image-2.4.19872.tar.gz] as mentioned above onto your Linux PC. Then extract it by entering&lt;br /&gt;
&lt;br /&gt;
 host$ '''tar -xvzf ''&amp;lt;ImageFileName&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
Run the following command to make sure you have bash installed.&lt;br /&gt;
&lt;br /&gt;
 host$ '''sudo apt-get install bash'''&lt;br /&gt;
&lt;br /&gt;
Insert your SD card using a card reader/writer. Run the following command:&lt;br /&gt;
&lt;br /&gt;
 host$ '''sudo bash mkcard.sh /dev/''&amp;lt;sdX&amp;gt;'' beagle-omek'''&lt;br /&gt;
&lt;br /&gt;
''Note: This action will wipe out and rewrite the SD card so make sure the files in it are backed up. The name of the SD card can be viewed in Disk Utility. If you mistakenly use the main OS device name this script can erase your entire OS.''&lt;br /&gt;
&lt;br /&gt;
==== 2. Run the sample application ====&lt;br /&gt;
&lt;br /&gt;
Plug the sensor into the BeagleBoard-xM USB port. Ensure the mouse and keyboard are connected to the BeagleBoard-xM USB port. Connect the BeagleBoard-xM to the monitor with an HDMI cable. Connect the BeagleBoard-xM power supply and wait for the boot process to reach the login prompt, login as user root (no password is required). Now it's ready to run the sample applications on the BeagleBoard-xM.&lt;br /&gt;
&lt;br /&gt;
''Note: Details about running the samples can be found in the developer's guide from page 9 to 11. The Kinect will react properly only if the player is within an appropriate distance (about 1m - 5m). ''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The following instruction is about how to set up the environment for developing. If you don't want to do the development, you can just skip that.&lt;br /&gt;
&lt;br /&gt;
==== 3. Setting up your Linux development PC ====&lt;br /&gt;
&lt;br /&gt;
Download [http://support.omekinteractive.com/index.php?/TI/managedownloads/Download/View/32/11/installation Beckon-SDK-2.4.19872.tar.gz] and extract it onto your host PC (this is the actual SDK which contains headers, libraries, documentation, makefiles, etc...) The SDK provides the tools to develop a motion-tracking and gesture-based application that can run on the BeagleBoard-xM. After developing the application, cross-compile it onto the Linux PC and then copy the image onto the BeagleBoard-xM via external USB storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Download the Linux ARM cross toolchain:&lt;br /&gt;
&lt;br /&gt;
For 32-bit Ubuntu you will want to download this file: http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
For 64-bit Ubuntu you will want to download this file: http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Extract the downloaded archive into your system root directory:&lt;br /&gt;
&lt;br /&gt;
 host$ sudo tar -xvjf ''&amp;lt;ToolchainFileName&amp;gt;'' -C /&lt;br /&gt;
&lt;br /&gt;
''Note: If you extract the archive into a different directory, you should adjust the following instructions as well as the samples' makefiles accordingly.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Install the Qt embedded SDK for Angstrom/BeagleBoard:&lt;br /&gt;
&lt;br /&gt;
Now that you have your cross compiler installed, you can compile Qt with it. First thing to do is to install zlib library:&lt;br /&gt;
&lt;br /&gt;
 host$ sudo apt-get install zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Then download the Open Source LGPL version of Qt libraries 4.6.2 for Embedded Linux [http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.tar.gz here]. &lt;br /&gt;
&lt;br /&gt;
''Note: Newest version of Qt libraries can be found [http://qt-project.org/downloads/ here]. We didn't test it since the 4.6.2 version works fine.''&lt;br /&gt;
&lt;br /&gt;
Extract the file you just downloaded:&lt;br /&gt;
&lt;br /&gt;
 host$ tar -xvzf ''&amp;lt;DownloadFileName&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
You need to create a new make.conf. Run the following line to make a new mkspecs directory for the BeagleBoard Processor.&lt;br /&gt;
&lt;br /&gt;
 host$ cp -R ''&amp;lt;DownloadDirectory&amp;gt;''/mkspecs/qws/linux-arm-g++/ ''&amp;lt;DownloadDirectory&amp;gt;''/mkspecs/qws/linux-DM3730-g++/&lt;br /&gt;
&lt;br /&gt;
Edit the qmake.conf file found in ''&amp;lt;DownloadDirectory&amp;gt;''/mkspecs/qws/linux-DM3730-g++/ and overwrite it with the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with arm-linux-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
include(../../common/g++.conf)&lt;br /&gt;
include(../../common/linux.conf)&lt;br /&gt;
include(../../common/qws.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
#Toolchain&lt;br /&gt;
&lt;br /&gt;
#Compiler Flags to take advantage of the ARM architecture&lt;br /&gt;
QMAKE_CFLAGS_RELEASE =   -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp&lt;br /&gt;
&lt;br /&gt;
QMAKE_CC = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/gcc&lt;br /&gt;
QMAKE_CXX = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
QMAKE_LINK = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
QMAKE_LINK_SHLIB = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ar cqs&lt;br /&gt;
QMAKE_OBJCOPY = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/objcopy&lt;br /&gt;
QMAKE_STRIP = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/strip&lt;br /&gt;
&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run the configure command (see this [http://processors.wiki.ti.com/index.php/Building_Qt website] for more details if needed):&lt;br /&gt;
&lt;br /&gt;
 host$ cd ''&amp;lt;DownloadDirectory&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
For 32-bit Ubuntu:&lt;br /&gt;
&lt;br /&gt;
 host$ ./configure -opensource -confirm-license -prefix /opt/qt-arm -no-qt3support -embedded arm -little-endian -xplatform qws/linux-DM3730-g++ -qtlibinfix E&lt;br /&gt;
&lt;br /&gt;
For 64-bit Ubuntu:&lt;br /&gt;
&lt;br /&gt;
 host$ ./configure -opensource -confirm-license -prefix /opt/qt-arm -no-qt3support -embedded arm -little-endian -platform qws/linux-x86_64-g++ -xplatform qws/linux-DM3730-g++ -qtlibinfix E&lt;br /&gt;
&lt;br /&gt;
Once this is complete you can run make and make install (make may take some hours):&lt;br /&gt;
&lt;br /&gt;
 host$ make&lt;br /&gt;
 host$ sudo make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Install and set up Qt Creator:&lt;br /&gt;
&lt;br /&gt;
Go to http://qt-project.org/downloads to download Qt. Get the latest version of Qt for Linux/X11; be sure to get the appropriate 32bit or 64bit version. Once downloaded go to the download directory and execute the following using your download file name:&lt;br /&gt;
&lt;br /&gt;
 host$ chmod u+x ''&amp;lt;QtCreator.bin&amp;gt;''&lt;br /&gt;
 host$ ./''&amp;lt;QtCreator.bin&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
''Update:''The free version Qt Creator can not be used in this project since it doesn't have cross-compile option with it.&lt;br /&gt;
&lt;br /&gt;
After Qt Creator is successfully installed, start Qt Creator. Go to: Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run &amp;gt; Tool Chains, select Add -&amp;gt; GCC and insert the full compiler path below:&lt;br /&gt;
&lt;br /&gt;
/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
&lt;br /&gt;
Then go to: Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run &amp;gt; Qt Versions, select Add and provide the following full path to qmake&lt;br /&gt;
&lt;br /&gt;
/opt/qt-arm/bin/qmake&lt;br /&gt;
&lt;br /&gt;
Press Apply and OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 4. Setting up the BeagleBoard-xM ====&lt;br /&gt;
&lt;br /&gt;
All of the Qt files that you need to move to the BeagleBoard can be found in the /opt/qt-arm/lib directory on your Linux Build System. Copy all the files out of your build system's /opt/qt-arm/lib directory and put those into the BeagleBoard-xM's /opt/qt-arm/lib directory. You can get the files to the Beagleboard by either networking, using a usb drive or plug the SD card into your Linux Build System.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Building and running samples===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To build QtTracking Sample:&lt;br /&gt;
&lt;br /&gt;
1. Start Qt Creator.&lt;br /&gt;
&lt;br /&gt;
2. Go to: File &amp;gt; Open File or Project, select the QtTracking-SDK.pro project (from Beckon-SDK-{version}/samples/QtTracking) and click Open. Select Embedded Linux instead of Desktop.&lt;br /&gt;
&lt;br /&gt;
3. Click Finish.&lt;br /&gt;
&lt;br /&gt;
4. Go to Projects tab (on the left), In Qt version select Qt [4.x.x (qt-arm)]/.&lt;br /&gt;
&lt;br /&gt;
5. Run Build -&amp;gt; Build Project command.&lt;br /&gt;
&lt;br /&gt;
The result executable can be found in the Beckon-SDK-{version}/bin directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the QtTracking Sample:&lt;br /&gt;
&lt;br /&gt;
1. Mount or copy the bin directory to the BeagleBoard.&lt;br /&gt;
&lt;br /&gt;
''Note: Run the reset.sh script inside the &amp;quot;bin&amp;quot; folder of the SDK before each sample run, to reset the DSP.''&lt;br /&gt;
&lt;br /&gt;
Run the following:&lt;br /&gt;
&lt;br /&gt;
 beagle$ ./QtTracking-SDK –qws&lt;br /&gt;
&lt;br /&gt;
''Note: Developer's guide has more instructions on running the sample''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The Snake Game===&lt;br /&gt;
&lt;br /&gt;
The Snake Game can be downloaded from https://github.com/Astroricks/Snake-Game-with-Kinect-on-BeagleBoard-xM. To play with it you should copy the folder to the root directory of SD card. Since what we did is combining the Snake Game source code into the Tracking Sample, running this application would be the same way as running the samples.&lt;br /&gt;
&lt;br /&gt;
We suggest playing with the following command:&lt;br /&gt;
&lt;br /&gt;
 beagle$ cd Tracking_Sanke/bin/&lt;br /&gt;
 beagle$ ./QtTracking-SDK –qws -upper&lt;br /&gt;
&lt;br /&gt;
When the application is running, we suggest pressing the &amp;quot;setting&amp;quot; button first to enable the wall-cross mode, which could make it not so easily &amp;quot;game over&amp;quot;. To start the game, you need to press Up Arrow(or Arrows of other directions) on the keyboard. And the player would get a better playing experience if he/she stands in front of the Kinect with a distance of about 1.5m - 2m. The player should control the snake with his '''right hand''' moving up and down, left and right.&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
Our project is about how to use Microsoft Kinect Sensor to play snake game by the motion of you right hand(You can modify the codes to change to any part of your body if you would like to). We set a score section to record the highest score. Anybody who want to break our record are welcome(Currently the record is holding by Xinyu Cheng at 260). We've created a play demo and uploaded it to YouTube:&lt;br /&gt;
&lt;br /&gt;
=== Play snake game with Kinect sensor on BeagleboardxM ===&lt;br /&gt;
{{#ev:youtube|uBW6LkVUi9I}}&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
=== The Main Idea ===&lt;br /&gt;
We are using the kinect as the sensor of our project. The provided algorithm of the kinect make it possible for us to get the coordinate of many joints of the body. In this case, we can judge the position and the motion of our hands or any other joints. Then, we can use the direction we get from the previous judgement to control the Greedy Snake. Our project is running with the idea.&lt;br /&gt;
&lt;br /&gt;
=== The Technics Used ===&lt;br /&gt;
Technically, we can use QT to design our program and then cross-complie our project to the beagle-board. The Greedy Snake is an open-source QT game, and the tracking of the joint can be accomplished from modifying the Omek SDK. We have to modify both of their codes to connect the two parts together.&lt;br /&gt;
&lt;br /&gt;
=== The Control Strategy ===&lt;br /&gt;
Judging gestures simply from the changing of coordinate is hard and may lead to mistakes commonly. To improve the playing experience, we combined two methods to guess which control direction the player wants to make.&lt;br /&gt;
&lt;br /&gt;
1. Compare the current coordinate with the last time. When the date is refreshed, we can compare the current coordinate of player's right-hand withe the last time value. If the difference between the coordinates of x or y is larger than the threshold, it is reasonable to think that the player may want the snake to make a move in this direction.&lt;br /&gt;
&lt;br /&gt;
2. See where the hand locates. After making a upward movement, it has a high possibility that the y coordinate locates in the up area. Similar situation appears in other movement directions. So by checking the current value of the x and y coordinates we can know which direction the player want to make move.&lt;br /&gt;
&lt;br /&gt;
Only when the same direction is implied by both methods, we move the snake in this direction. It seems that this control strategy works pretty well.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
=== Yue Zhang ===&lt;br /&gt;
* Researched how to Burn the correct Image to the Beagle Board.&lt;br /&gt;
* Configure the Beagle Board to control the kinect.&lt;br /&gt;
* Implemented the motion based algorithm which makes the application runs more smoothly.&lt;br /&gt;
* Programmed for the part of motion algorithm.&lt;br /&gt;
=== Xinyu Cheng ===&lt;br /&gt;
* Researched how to configure the QT programming environment. &lt;br /&gt;
* Accomplished the cross-compiling on QT.&lt;br /&gt;
* Programming for the connection between the Snake Game and the Kinect SDK.&lt;br /&gt;
* Designed and Implemented the coordinate based algorithm.&lt;br /&gt;
=== Xia Li ===&lt;br /&gt;
* Researched how to run the provided SDK demo.&lt;br /&gt;
* Speed up for the demo.&lt;br /&gt;
* Designed the motion based algorithm. &lt;br /&gt;
* Programmed to improved the accuracy and speed of the game.&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
Now, our game can work pretty good and smoothly. The future work for the project will mainly about the following aspects:&lt;br /&gt;
* Improve the user interface, make the game looks more pretty. &lt;br /&gt;
* Improve the game rules, to make it more interesting. &lt;br /&gt;
* Improve our algorithm for the direction judgement, to make the game runs more smoothly.&lt;br /&gt;
* Display the motion of our hand on the window, to make the user more clear about the motion of their hands. &lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
Conculsionly, our project works pretty good. Our Greedy Snake game runs very good and brings a lot of fun for us. &lt;br /&gt;
&lt;br /&gt;
During the develop process, we met lots of difficulties, we tried to solve them one by one. The first problem we met is how to build the connection between the kinect and the game. We tried very hard to debug our program step by step, then finally found the bug and fixed it.&lt;br /&gt;
&lt;br /&gt;
We can still do something more to improve our project. Like we have talked about in the &amp;quot;Future Work&amp;quot; part, we can try to improve the GUI of our game to make it looks more pretty, and improve our display inforamtion and the algorithm for the game to make it easier for users to play. So, to make the game perfect, there is still a long way to go. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_RoverGUI</id>
		<title>ECE497 Project RoverGUI</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_RoverGUI"/>
				<updated>2013-05-18T16:19:52Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Team member: [[user:chris.good|Chris Good]] &lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.&lt;br /&gt;
&lt;br /&gt;
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
First, ensure node.js is installed by running:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install nodejs'''&lt;br /&gt;
&lt;br /&gt;
Next, the GUI can be downloaded from [[https://github.com/goodca/roverGUI.git https://github.com/goodca/roverGUI.git]]&lt;br /&gt;
&lt;br /&gt;
No compiling is needed so the GUI is now ready to be used.&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
Move to the top level of the directory GUI directory. To run the GUI server, run:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''node GUI.js'''&lt;br /&gt;
&lt;br /&gt;
Then, from any networked browser point to:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''beagle:8081'''&lt;br /&gt;
&lt;br /&gt;
where ''beagle'' is the IP of the BeagleBone.&lt;br /&gt;
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.&lt;br /&gt;
&lt;br /&gt;
[[File:RoverGUIHome.PNG]]&lt;br /&gt;
&lt;br /&gt;
Selecting the simple control option will send you to the simple control GUI.&lt;br /&gt;
&lt;br /&gt;
[[File:RoverGUISimple.PNG]]&lt;br /&gt;
&lt;br /&gt;
Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.&lt;br /&gt;
&lt;br /&gt;
If instead the maps GUI was clicked the following will be displayed&lt;br /&gt;
&lt;br /&gt;
[[File:RoverGUIMapsStart.PNG]]&lt;br /&gt;
&lt;br /&gt;
From here you can navigate the map as is likely familiar with Google Maps. However, any time the map registers a single left click a marker will be placed. Every additional marker after the first will place a second marker with a line from the preceding marker. This can continue as long as many times as the user would like markers placed. &lt;br /&gt;
&lt;br /&gt;
The following is an example of a marker placed on Rose-Hulman's campus, New York City, Chicago, Louisville, and then back to Rose-Hulman.&lt;br /&gt;
[[File:RoverGUIMaps.PNG]]&lt;br /&gt;
&lt;br /&gt;
Once finished, the user can click the &amp;quot;done&amp;quot; button near the top of the page. At this point, the inst.txt file in the GUI directory will be populated with the coordinates of each marker in the order they were clicked. The following is the resulting file from the example map.&lt;br /&gt;
&lt;br /&gt;
 '''(39.4824644923698, -87.32401371002197)&lt;br /&gt;
 '''(41.88592102814744, -87.626953125)&lt;br /&gt;
 '''(41.50857729743935, -81.683349609375)&lt;br /&gt;
 '''(38.27268853598097, -85.75927734375)&lt;br /&gt;
 '''(39.48246138709902, -87.32401169836521)'''&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
This GUI is designed to be extremely easy to interface to other programs. If the other program can be created to read a text file of either instructions or coordinates it can likely be made to use this GUI.&lt;br /&gt;
&lt;br /&gt;
The Google Maps GUI makes it very simple to create a list of GPS coordinates. This would make creating tests much simpler for any testing that makes use of GPS coordinates.&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
The server on the BeagleBone is running using node.js. With between the BeagleBone and the browser is handled by node.js and socket.io. The GUI will then use either basic socket.io buttons or the Google Maps API to send instructions to the BeagleBone. The instructions are then saved to a file on the BeagleBone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;More details would help.  How do you interact with Google Maps?  What messages are being sent back and forth between the server and the browser, etc.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
All work was done by Chris Good&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
Extra buttons can be easily added to the simple GUI through modifying the source code. These buttons could carry any actions the user intends to have.&lt;br /&gt;
&lt;br /&gt;
Currently the Maps GUI only reports latitude and longitude coordinates. While this is fine for ground based objects such as the Rover this project was designed to work with, it could be expanded to allow a height coordinate in order to accommodate aerial objects. Further parameters such as travel velocity or a time to stay at a coordinate could also be added.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
This project gives an easy to integrate GUI solution for devices that make use of simple direction commands or gps coordinates for the purpose of way-points.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Rover</id>
		<title>ECE497 Project Rover</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Rover"/>
				<updated>2013-05-18T16:19:18Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Hansenrl|Ross Hansen]], [[user:jessebrannon|Jesse Brannon]], [[User:jungeml|Michael Junge]] &lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
This project is a BeagleBone implementation of a ground-based rover platform. Through a BeagleBone mounted on an RC car, the car can be directed to turn to a specified compass heading or move forward. A user is able to control the car with predefined movement code or in real-time over WiFi. The BeagleBone can also send back helpful information to the user over Wifi, such as GPS location and compass heading. Although not complete, functionality to direct the rover along a path by defining waypoints is currently in development.&lt;br /&gt;
&lt;br /&gt;
This work provides highly useful code even for applications outside of this specific rover project - digital compass and GPS sensor interfacing, Python-based networking, and RC car motor control code is all written and easily extendable into other applications. Additionally, the work performed for this project in the area of RC car reverse engineering and BeagleBone USB Wi-Fi can serve as useful community knowledge for other projects.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
We bought an RC car from [http://www.toysrus.com/product/index.jsp?productId=12925248 Toys 'R Us] and modified it to become an intelligent platform by utilizing a BeagleBone. To successfully recreate our work, certain skills will be helpful: dremel-based hardware modification, soldering, experience with Beagle Bone or an equivalent embedded processor bases system, familiarity with the Python and C programming languages, and basic circuit knowledge such as power regulation from batteries.&lt;br /&gt;
&lt;br /&gt;
=== Modifying RC Truck/Car ===&lt;br /&gt;
[[File:ECE497 Rover truck hardware.JPG|thumb|Figure 1 - Electronics housing]]&lt;br /&gt;
[[File:ECE497 Rover circuitBoard.JPG|thumb|Figure 2 - Motor control PCB]]&lt;br /&gt;
[[File:ECE497 Rover circuitBoard2.JPG|thumb|Figure 3 - Motor control pins]]&lt;br /&gt;
&lt;br /&gt;
As shown in Figure 1, we removed the aesthetic cover form the truck. We also cut out most of the plastic with a Dremel tool. We did this to expose the circuity below. Cutting out most of the plastic is necessary unless you are skilled enough to drill only a small hole to feed the wires through and can replace the circuit board back into place without viewing it. Figure 1 also shows, four screw slots. In order to obtain access to the circuity, you must remove the screws from their sockets. Now turn the truck so that it's undercarriage is facing up, remove the housing unit of the battery. The battery unit should be loose and thus be removed since you already removed the four place holder screws. Be careful though to not pullout or detach any wires from the their respected places as you are pulling out the circuit board. Figure 2 shows the circuit board removed from it's housing with the wires exposed. The red and black wires you see are respectively power and ground, the same for all electrical work. &lt;br /&gt;
&lt;br /&gt;
Figure 3 is focused on the specific connections that we soldered to the board. We choose the top left corner (where three of the connections are) because when we reverse engineered the board, this area is where the wireless signals are received and sent to the motor controllers. The fourth wire was supposed to be the pin on the right but as you can see by the picture, the circuit pad is burned off. We just followed the hard trace and soldered at the next available node. After testing, this improvised step seemed suitable for our needs. The same four pins are labeled on the circuit board as F,W,L,R. Originally, we thought these meant forward, backward, left and right. However the RC Truck is designed with tank steering so in order to go forward it theoretically should require two separate signals. We tested this theory and found out that it did in fact require two signals, thus the F,W,L,R labels are incorrect. The pins attach to relays on each motor, and correspond to &amp;quot;right forward&amp;quot;, &amp;quot;right backward&amp;quot;, &amp;quot;left forward&amp;quot;, and &amp;quot;left backward&amp;quot;, and are digital control signals. Therefore, in order to turn left you would drive the &amp;quot;right backward&amp;quot; and &amp;quot;left forward&amp;quot; pins high. Fortunately, motor conflicts are not destructive and exact pin mappings can be determined by experimentation - if you mistakenly drive the &amp;quot;right forward&amp;quot; and &amp;quot;right backward&amp;quot; pins high, for instance, the relay will click and the motors will not move, without any damage to the motors or electronics.&lt;br /&gt;
&lt;br /&gt;
If you want to reverse engineer this circuit board for yourself instead of just following this guide, you will need a separate 5V dc power supply as well as the 9V battery that was included, a 5V wall adapter with stripped wires will be suffient for the extra power supply. Then you should look for the wireless adapter board. Most RC electronics will have a separate wireless circuit board. Ours happened to be already physically attached to the motor controllers. Find the output signals from the wireless adapter and test which signals control which motors and direction of motors. To test this just attach the 5V to the pin on the circuit board while the truck battery is installed and switched on. Also you will need to find a ground wire to attach for common ground. We just soldered directly to the terminal on the installed battery for our ground.&lt;br /&gt;
&lt;br /&gt;
=== BeagleBone ===&lt;br /&gt;
[[File:ECE497 Rover Power Circuit.jpg|thumb|Figure 4 - Power Circuit]]&lt;br /&gt;
[[File:ECE497 Rover 5v regulator.JPG|thumb|Figure 5 - Regulator Circuit]]&lt;br /&gt;
After several problems with the WiFi on the BeagleBone not working as expected, we decided to overwrite our Angstrom Beagle Image with Ubuntu. To install Ubuntu, we simply followed [http://www.instructables.com/id/BeagleBone-Ubuntu-OS-LXDE-GUI/ this Instructable] up to and including Step 6. There is also good information on the [http://elinux.org/BeagleBoardUbuntu BeagleBoardUbuntu] page on elinux.org. &lt;br /&gt;
&lt;br /&gt;
However, if you want to pursue the Angstrom route then I would suggest reading Dr. Yoder's [http://elinux.org/EBC_Exercise_02_Out-of-the-Box,_Bone Out of The Box, Bone]. ''Note: If you want WiFi to work properly, install the A5 image not the A6 image.''&lt;br /&gt;
&lt;br /&gt;
Whether you use the Angstrom image or Ubuntu is up to you. However, you will still need to wire the BeagleBone up so that it runs off of battery power. We bought a 7.4 Vdc 10400 mAh [http://www.all-battery.com/li-ion1865074v10400mahrechargeablebatterymodulewithpcb-31577.aspx battery]. Since the BeagleBone runs off of 5V with a possible peak current of 1.5 amps we needed a 5V regulator that can supply that power [http://www.ti.com/product/lm2576hv voltage regulator]. To be safe and avoid short-circuiting the BeagleBone, it is advisable to buy a [http://www.digikey.com/scripts/DkSearch/dksus.dll?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=CP3-1000-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD barrel connector] for proper power connection. This barrel connector replaces the need to solder wires to the hardware of the BeagleBone, thus allowing for us to safely supply power the way the BeagleBone was designed. As seen in Figure 4, the barrel connector, battery and voltage regulator with heat sink can be seen. Figure 5 is our Regulator circuit. It shows how to connect the regulator to the rest of the BeagleBone hardware.&lt;br /&gt;
&lt;br /&gt;
''Note: We specifically  used a BeagleBone for it's smaller size and less cost due to less capabilities. However, you could use any board that has an Omap processor, such as the Beagle XM Board.''&lt;br /&gt;
&lt;br /&gt;
===WiFi Network===&lt;br /&gt;
Connecting to WiFi is an important part of our project. We intended this project to receive data from a user on a mobile laptop. We decided to use WiFi to avoid following the RC truck around a field with the laptop in our hands. WiFi helps the user stay in the same place while the RC truck moves around the field. We ordered an [http://www.adafruit.com/products/814 Adafruit WiFi adapter] that Adafruit specifically sponsors for the BeagleBone. They also have an install tutorial. After several days of researching WiFi capabilities for the BeagleBone, we continually ran into many difficulties. One of the many difficulties is with 'opkg upgrade' that Adafruit says to run. DO NOT RUN 'opkg upgrade'. Depending on what software image you are running, you will receive an error that for some reason cannot be resolved. There are many reported cases on [http://forums.adafruit.com/viewforum.php?f=49&amp;amp;sid=1a1b1e0fba73bb5659a3446079a5f423 Adafruit's help forums]. There are also several more reported cases for the BeagleBone group on google groups. After researching and WiFi experimentation we discovered that the Adafruit WiFi adapter works well on the A6 version of the BeagleBone hardware while running A5 version of Angstrom. This is the only valid combination we could find. The A5 hardware shows and detects the adapter, but for some reason the adapter does not connect to a wireless router. When the same SD card is plugged into an A6 hardware, it connects fine without issue to a router. We also noticed that the A6 software image does not even recognize the BeagleBone following the same procedure as for the A5 software.&lt;br /&gt;
&lt;br /&gt;
Because of the difficulties, we decided to not use the Angstrom images supported by Beagle. We instead installed Ubuntu Operating system on our A6 hardware. With Ubuntu installed it was as easy as plug and play. All we did after installing Ubuntu was to physically plug in the adapter and it was recognized immediately. However, if you want to stay with Angstrom I would suggest following the directions in [http://elinux.org/ECE497_Beagle_Bone_WiFi ECE497 Beagle Bone WiFi].&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
The code for the platform can be found on the [https://github.com/hansenrl/BeagleRover BeagleRover Github Page] and [git://github.com/hansenrl/BeagleRover.git Github Repository].&lt;br /&gt;
&lt;br /&gt;
A Makefile is provided, and the code can be compiled with the command &amp;quot;make&amp;quot; in the root directory of the project; this will build a main binary ''movement'' and shared libraries for movement control over WiFi. &lt;br /&gt;
&lt;br /&gt;
See the README for detailed instructions on installation and documentation of the code structure.&lt;br /&gt;
&lt;br /&gt;
== Required Parts List ==&lt;br /&gt;
1 x [http://www.toysrus.com/product/index.jsp?productId=12925248 RC Truck]&lt;br /&gt;
&lt;br /&gt;
1 x [http://beagleboard.org/buy BeagleBoard] (could be Bone/XM/Board)&lt;br /&gt;
&lt;br /&gt;
1 x [http://www.all-battery.com/li-ion1865074v10400mahrechargeablebatterymodulewithpcb-31577.aspx Battery]&lt;br /&gt;
&lt;br /&gt;
1 x [http://www.ti.com/product/lm2576hv Voltage Regulator]&lt;br /&gt;
&lt;br /&gt;
1 x [http://www.digikey.com/scripts/DkSearch/dksus.dll?WT.z_header=search_go&amp;amp;lang=en&amp;amp;keywords=CP3-1000-ND&amp;amp;x=0&amp;amp;y=0&amp;amp;cur=USD Barrel Connector]&lt;br /&gt;
&lt;br /&gt;
1 x [http://www.adafruit.com/products/814 Adafruit WiFi adapter]&lt;br /&gt;
&lt;br /&gt;
1 x [https://www.sparkfun.com/products/11466 GPS]&lt;br /&gt;
&lt;br /&gt;
1 x [https://www.sparkfun.com/products/7915 Compass]&lt;br /&gt;
&lt;br /&gt;
1 x BreadBoard&lt;br /&gt;
&lt;br /&gt;
Various Wires&lt;br /&gt;
&lt;br /&gt;
Soldering Tools&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
The rover is designed for two different operating modes.&lt;br /&gt;
&lt;br /&gt;
# Stand-alone control and navigation&lt;br /&gt;
# Remote operation over Wi-Fi via Python&lt;br /&gt;
&lt;br /&gt;
The README file on the software [https://github.com/hansenrl/BeagleRover Github Page] includes details about running the software for each of these modes. For stand-alone operation, the compiled binary ''movement'' can be executed to run commands such as moving forward or turning to a specific heading. For remote operation, Python scripts are provided to setup a server/client interface to communicate with the BeagleBone. When communicating with the Bone over Wi-Fi, the Python script presents the user with options of what to send to the BeagleBone.&lt;br /&gt;
&lt;br /&gt;
 Selection:&lt;br /&gt;
 1: FWD&lt;br /&gt;
 2: BCK&lt;br /&gt;
 3: TURN&lt;br /&gt;
 4: COMPASS QUERY&lt;br /&gt;
 5: GPS QUERY&lt;br /&gt;
 9: EXIT&lt;br /&gt;
&lt;br /&gt;
The user then inputs the selection number, and an option if necessary. For instance, the option for sending a &amp;quot;FWD&amp;quot; command is the duration in microseconds, while the option for a &amp;quot;TURN&amp;quot; command is the heading relative to magnetic north. FWD, TURN, COMPASS QUERY, and GPS QUERY are all implemented and functional, but BCK is currently unimplmented; the code is simple and implementation would be trivial, but for the end application of this software (emulating UAV movements) it was unnecessary.&lt;br /&gt;
&lt;br /&gt;
Upon sending the command, the BeagleBone will return feedback to the user over Wi-Fi. In the case of a movement command it will return that the command was executed successfully, and if a sensor was queried it will return the result. The Python script will then prompt the user for another command to send.&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
{{#ev:youtube|g_-srPShIiU}}&lt;br /&gt;
&lt;br /&gt;
In the video we demonstrate how to set up the wireless server/client communication and the functionality present over the network interface, including sensor queries and movement commands. Although these movements are accomplished over Wi-Fi, they can also be programmed for stand-alone operation. The jerky turning and vigorous stopping that the car displays in the video is due to the high traction of the tires on the track surface - reducing the traction on the tires would eliminate this.&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interfaces ===&lt;br /&gt;
[[File:ECE497 Rover gpio Pins.jpg|thumb|Figure 6 - GPIO Pin Connections]]&lt;br /&gt;
[[File:Bone P9 pinout.jpg|thumb|Figure 7 - P9 Header Layout]]&lt;br /&gt;
[[File:ECE497 Rover compass.jpg|thumb|Figure 8 - Compass and GPS Pin layout]]&lt;br /&gt;
[[File:ECE497 Rover gpsCompass mount.jpg|thumb| Figure 9 - Compass, GPS, and WiFi mount]]&lt;br /&gt;
&lt;br /&gt;
The BeagleBone is connected to the RC car via 4 GPIO pins and a ground wire. The four GPIO pins control left forward, left reverse, right forward, and right reverse on the tank-style drive base. Tank-style means that each side is controlled independently, as opposed to a standard steering where the user controls whether the car as a whole is moving forward or reverse and turns are accomplished by rotating the front axle. Figure 6 shows how the GPIO pins on BeagleBone are connected to the motor control PCB. As seen in Figure 4 the motor control wires are white. The GPIO pins are the two orange and two yellow wires labeled in the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Seems like you need a PWM control so the motors can run slower.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Motor Control pin layout is listed below. These are defined in movement.c, and can be redefined easily to match a different pin configuration. These pins are connected to relays on the RC car, so the motors are either on or off. &lt;br /&gt;
 Motor Control    BeagleBone Pin&lt;br /&gt;
 &lt;br /&gt;
 Right Forward    40 - P8 header (software sysfs GPIO 77)&lt;br /&gt;
 Right Reverse    44 - P8 header (software sysfs GPIO 73)&lt;br /&gt;
 Left Forward     42 - P8 header (software sysfs GPIO 75)&lt;br /&gt;
 Left Reverse     46 - P8 header (software sysfs GPIO 71)&lt;br /&gt;
&lt;br /&gt;
WiFi is achieved with Adafruit's [http://www.adafruit.com/products/814 USB WiFi Module]. The USB WiFi Module is connected to the only usb port on the BeagleBone.&lt;br /&gt;
&lt;br /&gt;
Figure 7 is the BeagleBone P9 Header layout and provides a good reference in knowing which pins in the header connect to pins on the BeagleBone. Figure 8 shows how the pins for the gps and compass are connected to the P9 header. Figure 9 shows where the Compass, GPS and WiFi module are mounted. We had to mount them outside of the box because placing them inside of the wooden box attenuated the signals excessively.&lt;br /&gt;
&lt;br /&gt;
The [https://www.sparkfun.com/products/11466 GPS] is connected to the BeagleBone over UART serial. The GPS pin layout is as follows:&lt;br /&gt;
 GPS              BeagleBone Pin&lt;br /&gt;
 &lt;br /&gt;
 1 - TX           24 - P9 header&lt;br /&gt;
 2 - RX           26 - P9 header&lt;br /&gt;
 3 - GND          1 or 2 - P9 header&lt;br /&gt;
 4 - 3.3 V        3 or 4 - P9 header&lt;br /&gt;
 5 - NC&lt;br /&gt;
 6 - NC&lt;br /&gt;
&lt;br /&gt;
Over UART, the GPS sends back 6 strings in NMEA format every second. Each of these 6 strings includes some or all of the following data: Latitude, Longitude, if the GPS has a fix, UTC time, and some other data that we don't need. For more information, read the [http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/GPS/D2523T-6_SPEC_20120220.pdf GPS' datasheet]. We chose to parse the string that starts with &amp;quot;$GPGLL&amp;quot; because it included all of the information we need listed previously. &lt;br /&gt;
&lt;br /&gt;
The format for the $GPGLL string is:&lt;br /&gt;
 $GPGLL,Latitude,N/S,Longitude,E/W,UTC time,Fix Status,Mode Indicator,Checksum&lt;br /&gt;
&lt;br /&gt;
This is what the $GPGLL string looks like when the GPS does not have a fix.&lt;br /&gt;
 $GPGLL,,,,,231429.00,V,N*45 &lt;br /&gt;
We know the GPS doesn't have a fix, because of the 'V.' The second to last comma-delimited item will be 'V' when there is no fix and 'A' when there is a fix. Also, the Latitude and Longitude fields are left blank when there is no fix, as shown.&lt;br /&gt;
&lt;br /&gt;
The [https://www.sparkfun.com/products/7915 compass] is connected to the BeagleBone via I2C. The Compass pin layout is as follows:&lt;br /&gt;
 Compass          BeagleBone Pin&lt;br /&gt;
 &lt;br /&gt;
 1 - GND                       1 or 2 - P9 Header&lt;br /&gt;
 2 - 3.3 V                     3 or 4 - P9 Header&lt;br /&gt;
 3 - I2C SDA                   20 - P9 Header&lt;br /&gt;
 4 - I2C SCL                   19 - P9 Header&lt;br /&gt;
&lt;br /&gt;
The compass simply returns the current heading at a default rate of 20 Hz.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
All hardware interfacing is accomplished in C, using the standard interfaces for each protocol. Motor control is done via GPIO, the compass is I2C, and the GPS is UART. Compass interfacing is provided in a compass library ''Compass/compass.c'', GPS interfacing is provided in a GPS library ''GPSLibs/gps.c'', and the motor control is provided in ''movement.c''. Waypoint storage and helper functions are provided in a library in ''Waypoints/waypoint.c''.&lt;br /&gt;
&lt;br /&gt;
For stand-alone operation, ''movement.c'' is compiled with the necessary libraries as a stand-alone binary. &lt;br /&gt;
&lt;br /&gt;
For network operation, the Python scripts utilize compiled libraries in sharedLibs. Currently, due to the structure of how the sensors are interfaced in the movement library, all interfacing is accomplished through a library ''movementLib.so'', which provides wrapper functions to the GPS and Compass. In the future, this functionality should be better divided out into each individual sub-library. This interfacing between Python and C is done with Python [http://docs.python.org/2/library/ctypes.html CTypes]. The BeagleBone and base station communicate over Wi-Fi using TCP sockets via the Python [http://docs.python.org/2/library/socket.html Socket] and [http://docs.python.org/2/library/socketserver.html SocketServer] modules. All of these Python modules, ctypes, socket, and SocketServer, are standard in Python 2.7.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
A summary of the major development areas and the primary contributor(s) to each subsystem:&lt;br /&gt;
&lt;br /&gt;
* RC car hardware interfacing and mounting: ''Michael Junge''&lt;br /&gt;
* Power subsystem development: ''Michael Junge''&lt;br /&gt;
* Wireless communication hardware: ''Michael Junge'', ''Jesse Brannon''&lt;br /&gt;
* GPS and Compass sensor interfacing: ''Jesse Brannon''&lt;br /&gt;
* Movement and navigation software development: ''Jesse Brannon'', ''Ross Hansen''&lt;br /&gt;
* Network communication software development: ''Ross Hansen''&lt;br /&gt;
&lt;br /&gt;
Tasks completed and in development by each team member:&lt;br /&gt;
&lt;br /&gt;
'''Michael Junge''' &lt;br /&gt;
* Constructed hardware interfaces to compass sensor and drive base electronics&lt;br /&gt;
* Investigated WiFi issues on Angstrom - determined that the Angstrom A5 image on BeagleBone A6 hardware is a known working configuration ''**still under invesgitation, won't be fully completed due to hardware/software issues between Angstrom and Beagle''&lt;br /&gt;
* Soldered and interfaced battery subsystem to power BeagleBone&lt;br /&gt;
&lt;br /&gt;
'''Jesse Brannon'''&lt;br /&gt;
* Decided and installed an Ubuntu image instead of Anstrom specifically for the WiFi functionally&lt;br /&gt;
* Researched and purchased compass and GPS sensors&lt;br /&gt;
* Wrote libraries to interface to compass and GPS sensor&lt;br /&gt;
* Co-developed movement and navigation software&lt;br /&gt;
&lt;br /&gt;
'''Ross Hansen'''&lt;br /&gt;
* Co-developed movement and navigation software&lt;br /&gt;
* Developed software for network communication&lt;br /&gt;
&lt;br /&gt;
'''Tasks Remaining'''&lt;br /&gt;
&lt;br /&gt;
Although full rover functionality for movement and sensor data retrieval was completed, two additional features were currently in development at the end of the original timeframe of this project.&lt;br /&gt;
&lt;br /&gt;
1) Code to manage waypoints and drive the motors based off of waypoint inputs&lt;br /&gt;
&lt;br /&gt;
2) Improve GPS library to allow for update rate configuration&lt;br /&gt;
&lt;br /&gt;
These two features were not necessary for this project, but are useful for a sister project in development by the same team; so development will continue on these two tasks. The code in the BeagleRover repository will be updated with final versions of the code as it is completed.&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
This project has the possibility to branch into several interesting areas.&lt;br /&gt;
* The BeagleBone platform has the processing power for various interesting sensory systems, such as computer vision. The RC car interface and networking platform allows for a variety of interesting applications of sensor systems, where driving decisions are made based off of sensor inputs or sensor data is relayed remotely back to a powerful processing node.&lt;br /&gt;
&lt;br /&gt;
* A GUI is being developed that could be used to send commands to control the rover. Work on it can be seen here: [[ECE497_Project_RoverGUI]]&lt;br /&gt;
&lt;br /&gt;
* This project is a two-dimensional navigation system for a ground-based rover, but could be extended for use on aerial vehicles. Additional requirements for this would include some sort of altimeter sensor interface, modification of control outputs to accommodate aerial control surfaces, and an addition of a third dimension to location and navigation code.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
BeagleRover is a functioning implementation of a rover intelligence platform for the BeagleBone. When mounted on an RC car, the BeagleBone can direct the car motors to move around and it can relay GPS and compass data across a Wi-Fi network.&lt;br /&gt;
&lt;br /&gt;
This project was highly interesting and enjoyable to work on. It incorporated a wide range of skills fundamental to embedded systems - hardware, sensor interfacing via multiple protocols, and both high and low-level software development. Although a complete project in its current status, even more exciting is the possibility for extension in the future; the basic system of network functionality, location and heading sensor data, and mobility provide an interesting platform for lots of different embedded work. Combined with the versatility of Linux running on the BeagleBone, this project provides an interesting application of the BeagleBone's potential and a flexible platform for future development.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Remote_Web_Cam_Viewer</id>
		<title>ECE497 Project Remote Web Cam Viewer</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Remote_Web_Cam_Viewer"/>
				<updated>2013-05-18T16:18:41Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Draneaw|Alexander W. Drane]], [[user:Lobdeljt|John Lobdell]]&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
The goal of this project is to create a simple webcam based security system that allows a user to remotely view the device's web cam by navigating to a webpage. Then using buttons the user can change what camera they are viewing.&lt;br /&gt;
&lt;br /&gt;
Currently we have the ability to select a camera and view the stream in a remote webpage. This view uses the browser's VLC Plugin. We have tested this with 4 webcams on the xM board.&lt;br /&gt;
&lt;br /&gt;
Operating with four webcams hooked to the board causes many failures of the system to stream back the video information. We determined that this was due to the physical cameras and the overhead of the devices by testing the system with only two we cams where the issues experienced regularly with the four camera setup greatly reduced in frequency.&lt;br /&gt;
&lt;br /&gt;
Investigation of how to accomplish this task took up the bulk of our time and effort largely due to the infancy of HTML5 Related standards(sockets.io and MediaStream). In the end we decided to utilize the vlc plugin when the HTML5 proved unfeasible at its current level of development. Implementing the four cameras did seem to cause some device issues that caused the webpage to not sync with the incoming feed, but this appears to be hardware related only and not from the implementation (a further explanation is later on).&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
Extra Hardware Required:&lt;br /&gt;
*Webcam 1+ (or Playstation Eye's) Max 4 without other supplementary hardware. Best performing build currently is 2 web cams on the board. 4 makes the XM Slow down too much.&lt;br /&gt;
&lt;br /&gt;
*Connected to the internet.&lt;br /&gt;
&lt;br /&gt;
First Download the git Repository, it is located here:[https://github.com/jtlobdell/bbWebcamFeed.git WebcamFeed]&lt;br /&gt;
&lt;br /&gt;
 xm$ '''mkdir WebcamFeed'''&lt;br /&gt;
 xm$ '''git clone git://github.com/jtlobdell/bbWebcamFeed.git WebcamFeed'''&lt;br /&gt;
 xm$ '''cd WebcamFeed'''&lt;br /&gt;
&lt;br /&gt;
Install Node.js&lt;br /&gt;
 xm$ '''opkg update'''&lt;br /&gt;
 xm$ '''opkg install nodejs'''&lt;br /&gt;
&lt;br /&gt;
Verify gstreamer is available and up to date&lt;br /&gt;
&lt;br /&gt;
 xm$ '''opkg update'''&lt;br /&gt;
 xm$ '''opkg install gstreamer'''&lt;br /&gt;
&lt;br /&gt;
One last thing must be done on the user computer. VLC Media Player Plugin must be available in your browser of choice. This can be done by downloading the software here: [[http://www.videolan.org/vlc/index.html]]  and making sure during installation to install the browser plugin. Many modern browsers will guide you through this if you run into a page that requires a missing plugin. &lt;br /&gt;
&lt;br /&gt;
Now for reference type the following to get the xM's IP address. It is needed quite soon&lt;br /&gt;
&lt;br /&gt;
 xm$ '''ifconfig'''&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
Move to the source directory&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
xm$ cd ./WebcamFeeds/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current code does not automatically direct the VLC plugin to play from the correct IP address; it relies instead on passing a hard-coded IP address to the client in the WebcamFeed.html file. Modify the following code in the file to use your xM's IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;embed&lt;br /&gt;
         type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
         name=&amp;quot;videoplayer&amp;quot;&lt;br /&gt;
         autoplay=&amp;quot;yes&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;no&amp;quot;&lt;br /&gt;
         width=&amp;quot;320&amp;quot; height=&amp;quot;240&amp;quot;&lt;br /&gt;
         target=&amp;quot;tcp://[YOUR_BEAGLE_IP]:8080&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the installation is done, the program is ready. Run it using:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
xm$ node WebcamFeed.js&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Now navigate on the user computer using a web browser to your computers IP Address. Once there click on the link to the video feed page. The program will start and video should play.&lt;br /&gt;
&lt;br /&gt;
NOTE: When changing video feeds the XM will randomly not load and play the feed. This we believe is due to the physical limitations of the hardware. We tested this by attaching 4 webcams to the board and found that the failure rate went up drastically. When the extra 2 webcams were removed the failure rate returned to where it was before. Since the program only ever calls one feed at a time(it changes which device it targets) this has to be a memory or hardware related issue and not due to the software.&lt;br /&gt;
&lt;br /&gt;
At the top of the screen is a text box which can be entered the desired video device. Each camera is added sequentially starting at 0. Below the Set Cam button are four buttons for convenience. These function identically as entering the number's 0 though 3 into the text box and clicking Set Cam for each number.&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
A single video is captured from a web cam and streamed to a web page. The video capture device can be selected from the same page.&lt;br /&gt;
&lt;br /&gt;
This program implements node.js and GStreamer working together to accomplish the video output and control over which video device to be viewed.&lt;br /&gt;
&lt;br /&gt;
The software allows for as many video capture devices (webcams) as can be connected to the device. In the case of the Beagle Board xM, up to four cameras can be used. We only access one webcam at any given time and so the only increasing overhead on the system is that which is associated with the individual USB webcam's. &lt;br /&gt;
&lt;br /&gt;
[http://youtu.be/kPK35JGzazY Here is a YouTube video demo of the four camera operation]. A picture of the test setup is shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:BbWebFeed_demo_setup.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
This video starts out very slow and illustrates some of the hardware related issues that were encountered. While the most effective implementation currently is the two camera version we wished to show that four camera feeds could be accessed on the xM.&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
The project uses [http://gstreamer.freedesktop.org/ GStreamer] to capture video from a webcam, convert it to video/ogg format, and stream it through Transmission Control Protocol (TCP). A diagram of the GStreamer pipeline is shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:BbWebcamFeed_Gstreamer_pipeline.png|400px|Web Cam Feed - GStreamer Pipeline]]&lt;br /&gt;
&lt;br /&gt;
The client system connects to a node.js server running on the xM. The server embeds the video stream into the web page and also contains controls for selecting a webcam for the stream.&lt;br /&gt;
&lt;br /&gt;
When the server begins running the node.js script, it launches the GStreamer pipeline discussed above. When the client connects, they receive a web page containing controls for the video source and the embedded video that gets played using the [http://www.videolan.org/vlc/index.html VLC] web plugin.&lt;br /&gt;
&lt;br /&gt;
When the client uses the controls to change the video source, the server kills the current GStreamer process and launches a new one using the new video source. It then makes the client's page refresh to make the embedded video player use the new stream.&lt;br /&gt;
&lt;br /&gt;
A block diagram of the system is shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:BbWebcamFeed_Block_Diagram.png|400px|Web Cam Feed Block Diagram]]&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
*Research- Research took up the bulk of our time and effort on this project due to the obscure nature of video streaming on the web using HTML5 and related tools. Most sources online advise you to use a plugin or third party software and treat the idea of using Javascript of HTML5 for this task as a taboo subject. &lt;br /&gt;
**GStreamer Implementation- John Lobdell investigated using GStreamer to accomplish this project. This implementation in the end proved effective and the easiest to implement. &lt;br /&gt;
**HTML5/JavaScript Implementation - Alex Drane investigated using a pure HTML5 implementation in order to not require anything to be done by the user to view the video streams. From initial research this appeared to be something that could be done quite easily. After considerable research wading through the draft standards that have been developed I found very little sample code or examples that pertained to remote video viewing. The easiest implementation I found was using it to create a 1-to-1 chat application. This is not suitable for our needs.&lt;br /&gt;
&lt;br /&gt;
*Program Creation- John Lobdell used his research to get GStreamer to stream a video or camera input onto port 8080 that could then be read by the VLC Media Player on a remote computer. The further integration of this into a program was done with the introduction of the VLC-plugin in an HTML document. The final program was jointly compiled by both John and Alex.&lt;br /&gt;
&lt;br /&gt;
The program creation went quite fast after a working method was identified by John. Then it was a matter of putting the pieces together. The program consists of a node.js client server using the example provided in the examples/node.js folder, which provides the HTML server and controls for which video to stream. We embedded the VLC viewer into the page and pointed it to the location where the video would be streamed by an external function call in the .js file. This allowed for a simplified approach to running the needed utilities without having to port code into the Javascript language.&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
Adding video capture would add true security camera capabilities to this system. In addition adding motion detection into the video selection stream would be interesting. Though this might be too much for the xM's hardware. &lt;br /&gt;
&lt;br /&gt;
Having a webpage that displayed all of the video feeds at once would also be an interesting feature but this could over tax the XM's hardware or internet connection.&lt;br /&gt;
&lt;br /&gt;
Figuring out how to implement this project with only HTML5 and make it so that no plugin is required by the end user was Alex's original plan but the maturity of the knowledge base for HTML5 is not adequate to accomplish this task at this time. But in the future when many of the draft standards are finished this project could be implemented without the VLC plugin.&lt;br /&gt;
&lt;br /&gt;
Solving the interesting problem with the random stream failure. This issue arises when switching between streams. Occasionally the video receiver does not receive the stream even though the stream is playing across the network. From experimentation we found that as cameras were added the performance of the entire program greatly decreased. Since we only access one camera at a time the only explanation we could find was that the OS was devoting resources to the devices when they were connected thus creating a much greater overhead as cameras were added. When the cameras were disconnected the performance returned to their previous levels. With four cameras operating a noticeable increase in stream failures was observed. With only two cameras operating about 1/5 of attempts would be unsuccessful. With four cameras the failure rate was significantly higher (as much as 1/3 of attempts would fail). One possible explanation of this is the overhead causing a slow down in setup time for the video out thread compared to the load up time of the browser. While this is set up to go first if the system hanged due to lack of resources this could cause the video stream to start after the HTML file stopped looking for it. Occasionally the camera just won't turn on. We have found that signaling it again usually fixes the problem without much effort. After trying to figure out what was causing the problem we could not definitively pin down the root cause of the problem and we found no simple or effective solution for it but would like to see it fixed.&lt;br /&gt;
&lt;br /&gt;
The server should automatically detect its external IP and then use it to direct the client's VLC plugin to the video stream.&lt;br /&gt;
&lt;br /&gt;
The video should stream through UDP rather than TCP. UDP would have better performance, and data loss is not a major concern for low-resolution video.&lt;br /&gt;
&lt;br /&gt;
Audio can be added to the video stream.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
This project was quite surprising by how difficult it is to do using the new HTML5 standards. Through the research we learned that there were currently no simple implementations of what we wished to do with this project. We had originally assumed that something as common as video streaming would have a direct implementation in the new standard but in fact it is far more restricted then we expected. By splitting each of our focuses during the research stage we were able to research the use of the bleeding edge of development and the use of the common implementation and then whoever found an implementation that worked first would allow the project to progress. In addition our parallel research gave us greater insight into the potential ways of accomplishing this task then if we had both focused on the HTML5 implementation and did not allow the project to reach a dead end as it would have if we had both focused on the HTML5 method. &lt;br /&gt;
&lt;br /&gt;
In the end we did settle on using the vlc-plugin to capture the outgoing stream that John setup using gstreamer. This worked exactly as we wished it to without all of the syntax fighting that took place when trying to port the HTML5 sample code into code we had the codex's for(i.e. websocket to socket.io syntax Note: websocket wanted a Microsoft related XML file which after searching for could not be found when we tried to just use websocket). &lt;br /&gt;
&lt;br /&gt;
Many of the ideas listed in Future Work would be amazing addon's to the project that would greatly expand and enhance this projects implementation.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_BeagleBone_PRU</id>
		<title>ECE497 BeagleBone PRU</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_BeagleBone_PRU"/>
				<updated>2013-05-18T16:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Correlbn|Bryan Correll]], [[user:Millerap|Andrew Miller]], [[user:Ngop|Peter Ngo]], [[user:Popenhjc|James Popenhagen]]&lt;br /&gt;
&lt;br /&gt;
== Grading ==&lt;br /&gt;
I'm using the following template to grade.  Each slot is 10 points.&lt;br /&gt;
0 = Missing, 5=OK, 10=Wow!&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
For this project, the objective is to explore the PRU, Programmable Realtime Unit, of the BeagleBone, looking at both the limitations of implementation and how to implement tasks such as handling pulse width modulation. The PRU is a part of the processor that runs at 200MHz (5ns per instruction), and is separate from the operating system all together, making it more efficient at accessing I/O pins. The project is more research intensive, as opposed to implementation intensive, and serves to bring together all of the sources found on the BeagleBone's PRU into one abbreviated document with examples of how to use it and the potential for extra projects. The ultimate goal here is to walk through step by step leading to the representation of a sinusoidal wave using pulse width modulation accessed from PRU and play the produced wave through a speaker.&lt;br /&gt;
&lt;br /&gt;
As of now we have gathered information about the PRU, found memory locations that can be edited on the PRU and in C so that we can interact with functions outside of the PRU's capabilities, and implemented code on the PRU that simulates a pulse width modulation on a GPIO pin. We were also able to produce an approximated sinusoidal output on the GPIO pin using pulse width modulation at a specific frequency. For each of these there is an example to follow describing how each part works, and listing any resources to look at to find out more.&lt;br /&gt;
&lt;br /&gt;
We were hoping to potentially look into reading an analog input and producing it as an approximated output using the pulse width modulator, but this ended up being to optimistic of a goal. This would be an interesting thing to explore for a project that expands upon this.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
The Git Hub is on the following link:  &lt;br /&gt;
&lt;br /&gt;
*https://github.com/millerap/AM335x_PRU_BeagleBone&lt;br /&gt;
*Hardware: Some LEDs for messing with the GPIO pins and a speaker for listening to PWM approximated sine wave.&lt;br /&gt;
&lt;br /&gt;
Note: When implementing the pulse width modulation, you may want to bias the wave around 0V instead of 1.65V. If this is the case, you may want to use a summing circuit which will require an Op-Amp, a 2kohm and 1kohm resistor, and 2 resistors of the same value (Higher values preferable for lower power consumption), which will need to be connected as shown where V1 is your pwm voltage, V2 is your -1.65V bias, and V3 is unused:&lt;br /&gt;
&lt;br /&gt;
[[File:SummerCicuit.png|Non-Inverting Summer Circuit]]&lt;br /&gt;
&lt;br /&gt;
Unless you desire a louder output than capable with simple I/O pins, there is no additional hardware needed.&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
'''Always''' run the following before doing anything with the PRU:&lt;br /&gt;
 beagle$ '''modprobe uio_pruss'''&lt;br /&gt;
&lt;br /&gt;
This can be activated anywhere on the BeagleBone and activates the PRU module in the kernel so that its memory and all of its components are accessible.&lt;br /&gt;
&lt;br /&gt;
Note: modprobe uio_pruss is BeagleBone specific and will not be found on a host computer. Also, if you do not do this instruction before following the rest of the instructions you may run into segmentation faults when trying to initialize the PRU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Which image are you using?  The modprobe works for me, but may depend on the image.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Finding Where to Access Things ==&lt;br /&gt;
&lt;br /&gt;
There are many locations in memory that are needed to access specific I/O pins on the BeagleBone. Some of these I/O pins can be found here:&lt;br /&gt;
*[http://www.ti.com/lit/ug/spruh73f/spruh73f.pdf SPRUH73f pdf]&lt;br /&gt;
&lt;br /&gt;
The following are not found in the file, but are good addresses to know when accessing MUXs:&lt;br /&gt;
&lt;br /&gt;
gpmc_a2:&lt;br /&gt;
 memory location: gpmc_a2.gpio1_18 (0x44e10848/0x848 = 0x0027), b NA, t NA&lt;br /&gt;
 mode: OMAP_PIN_INPUT_PULLDOWN | OMAP_MUX_MODE7&lt;br /&gt;
 signals: gpmc_a2 | gmii2_txd3 | rgmii2_td3 | mmc2_dat1 | gpmc_a18 | pr1_mii1_txd2 | ehrpwm1A | gpio1_18&lt;br /&gt;
&lt;br /&gt;
gpmc_a3:&lt;br /&gt;
 memory location: gpmc_a3.gpio1_19 (0x44e1084c/0x84c = 0x0027), b NA, t NA&lt;br /&gt;
 mode: OMAP_PIN_INPUT_PULLDOWN | OMAP_MUX_MODE7&lt;br /&gt;
 signals: gpmc_a3 | gmii2_txd2 | rgmii2_td2 | mmc2_dat2 | gpmc_a19 | pr1_mii1_txd1 | ehrpwm1B | gpio1_19&lt;br /&gt;
&lt;br /&gt;
gpmc_ad8:&lt;br /&gt;
 memory location: gpmc_ad8.gpio0_22 (0x44e10820/0x820 = 0x0027), b NA, t NA&lt;br /&gt;
 mode: OMAP_PIN_INPUT_PULLDOWN | OMAP_MUX_MODE7&lt;br /&gt;
 signals: gpmc_ad8 | lcd_data23 | mmc1_dat0 | mmc2_dat4 | ehrpwm2A | pr1_mii_mt0_clk | NA | gpio0_22&lt;br /&gt;
&lt;br /&gt;
gpmc_ad9:&lt;br /&gt;
 memory location: gpmc_ad9.gpio0_23 (0x44e10824/0x824 = 0x0027), b NA, t NA&lt;br /&gt;
 mode: OMAP_PIN_INPUT_PULLDOWN | OMAP_MUX_MODE7&lt;br /&gt;
 signals: gpmc_ad9 | lcd_data22 | mmc1_dat1 | mmc2_dat5 | ehrpwm2B | pr1_mii0_col | NA | gpio0_23&lt;br /&gt;
&lt;br /&gt;
== Building and Running the GPIO_PWM_PRU Example ==&lt;br /&gt;
&lt;br /&gt;
This example is located in the GPIO_PWM_PRU directory in the AM335x_PRU_BeagleBone git repository, and can be pulled with the following:&lt;br /&gt;
 beagle$ '''git clone git://github.com/millerap/AM335x_PRU_BeagleBone'''&lt;br /&gt;
&lt;br /&gt;
This example uses the gpio and delay loops to approximate a PWM using the user LEDs on the BeagleBone. It is based on an example provided by Lyren Brown and documented by boxysean at &lt;br /&gt;
 http://blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/&lt;br /&gt;
&lt;br /&gt;
In GPIO_PWM_PRU all of the complicated Makefiles and directories used to make a multitude of examples at once have been stripped away to allow the user to compile one individual program that will run on the PRU.&lt;br /&gt;
&lt;br /&gt;
The readme.txt file in the GPIO_PWM_PRU directory provides a walkthrough for compiling and running blinker on the BeagleBone.&lt;br /&gt;
&lt;br /&gt;
The first step to compiling a program for the PRU is to make sure prussdrv.c is made and up to date. This is the file provided by TI that contains all of the C functions that allow for communication with the PRU. To do this, do the following:&lt;br /&gt;
 beagle$ '''cd &amp;lt;directory&amp;gt;/AM335x_PRU_BeagleBone/GPIO_PWM_PRU/interface'''&lt;br /&gt;
 beagle$ '''export CROSS_COMPILE=&amp;quot;&amp;quot;'''&lt;br /&gt;
 beagle$ '''make'''&lt;br /&gt;
&lt;br /&gt;
CROSS_COMPILE is specified as &amp;quot;&amp;quot; because this is running on the BeagleBone itself and the Makefile is setup to defaultly cross compile the code from another linux machine.&lt;br /&gt;
&lt;br /&gt;
Once this is completed, the pasm_source must be set for the BeagleBone's linux operating system:&lt;br /&gt;
 beagle$ '''cd ../utils/pasm_source'''&lt;br /&gt;
 beagle$ '''./linuxbuild'''&lt;br /&gt;
&lt;br /&gt;
'''Note: The above instructions need to be done for every time the BeagleBone boots up and these directories should be included with any code that you write for the PRU'''&lt;br /&gt;
&lt;br /&gt;
Now, the BeagleBone is ready to compile the example code. Navigate to the example's root directory again:&lt;br /&gt;
 beagle$ '''cd ../../'''&lt;br /&gt;
 beagle$ '''make CROSS_COMPILE=&amp;quot;&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
This will compile the blinker.c file and output it to the bin folder. After this point, the assembly file needs to be compiled into a .bin file. This is done in the bin folder.&lt;br /&gt;
 beagle$ '''cd bin'''&lt;br /&gt;
 beagle$ '''make'''&lt;br /&gt;
&lt;br /&gt;
Now, there should be a blinker.bin file in the folder. running the blinker executabile will put the blinker.bin file on the PRU and start it running. Use the following:&lt;br /&gt;
 beagle$ '''./blinker'''&lt;br /&gt;
&lt;br /&gt;
== How the Assembly Code Works ==&lt;br /&gt;
&lt;br /&gt;
//in the overview talk about the period being 5ns&lt;br /&gt;
&lt;br /&gt;
In the assembly file blinker.p:&lt;br /&gt;
&lt;br /&gt;
Registers r5 and r6 are the duty_cycle and period respectively. The duty_cycle is a number smaller than the period that the accumulator r4 counts up to before setting the output to zero. When the r4 = period, r4 resets and the output is set to 1. This gives the following for for OnTime and OffTime.&lt;br /&gt;
&lt;br /&gt;
 SecondsPerCycle = 5*10^-9&lt;br /&gt;
 OnCycles = 2 + (duty_cycle)*3 + 2&lt;br /&gt;
 OffCycles = 2 + (period - duty_cycle)*3 - 1 + 2&lt;br /&gt;
 TotalCycles = 7 + (period)*3&lt;br /&gt;
&lt;br /&gt;
These equations can be used to create a very exact PWM output by setting duty_cycle and period to the values you wish to use. The code that was compiled and run above has a period of about a second and a duty cycle of about 50%.&lt;br /&gt;
&lt;br /&gt;
There are a few macros defined at the beginning of the program. These macros are the location of GPIO1's memory space, the location of its set registers and the location of its clear registers. The BeagleBone's GPIO pins must be turned off and on using these two different memory locations. Setting the set register to 0 does not turn off its respective GPIO pin.&lt;br /&gt;
&lt;br /&gt;
r2 stores the value that is going to be written to either set or clear gpio. r3 stores the address that r2 will be written to. within the first 3 lines of PWM_ON these values are set such that r2 will turn on the user LEDs. The instruction that actually turns it on is SBBO. This takes the value of r2 and writes it to memory location r3 with an offset of 0.&lt;br /&gt;
&lt;br /&gt;
Here is a complete guide to the [http://processors.wiki.ti.com/index.php/PRU_Assembly_Instructions PRU's Assembly Instructions] from TI&lt;br /&gt;
&lt;br /&gt;
== How the C Code Works ==&lt;br /&gt;
&lt;br /&gt;
The following information can be found on TI's PRU Linux Application Loader API Guide wiki:&lt;br /&gt;
*[http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader_API_Guide#prussdrv_map_prumem C PRU instructions]&lt;br /&gt;
&lt;br /&gt;
This lays out every function that can be used in the C code as well as an explanation of its functionality.&lt;br /&gt;
&lt;br /&gt;
The blinker.c file is a direct port of the PRU initialization code from TI. Putting the two side by side, the only difference between the two is the name of the bin file that is used for the exec function.&lt;br /&gt;
&lt;br /&gt;
The code first initializes the PRUSS, Programmable Realtime Unit Subsystem or the entire system of two PRUs, an interrupt controller (INTC), and associated memory ([http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem PRUSS]), by allocating memory for it using the prussdrv_init() function. It then initializes memory mapping for the PRU using the prussdrv_open() function. All of the intc functions are used for interrupt communication between the ARM and the PRU. This code is not utilized by the examples in this page. &lt;br /&gt;
&lt;br /&gt;
Similar to the exec function in C, the  prussdrv_exec_program () function overlays the IRAM (Instruction RAM) portion of the PRUSS with the bin file that was created from blinker.p. The first field of prussdrv_exec_program needs a PRU number, which is either 0 or 1 depending on which PRU core is being used. In this case, PRU0 is executing blinker.bin. The second field is the path to the bin that will be put into the PRU's IRAM.&lt;br /&gt;
&lt;br /&gt;
The next section waits on event 0 from the PRU to signal the C program that it has completed its execution. This, again, was not implemented, but writing the appropriate bit to the r31 register would cause the C program to continue. As it is, the program stalls at this point until SIGINT is received. &lt;br /&gt;
&lt;br /&gt;
If the correct event were received, the next function is used to halt the PRU's execution then it would release the PRUSS clocks and disable the prussdrv module.&lt;br /&gt;
&lt;br /&gt;
== Sending an array to the PRU ==&lt;br /&gt;
&lt;br /&gt;
The initialization code provided by TI has a handy function for passing an array to the PRU. Each of the PRU cores have an 8kb data ram associated with them, and that data space can be populated from an external C program. The next example will make use of this function to pass different PWM duty cycles to the PRU. This will be largely based around the following function:&lt;br /&gt;
&lt;br /&gt;
  int prussdrv_pru_write_memory (unsigned int pru_ram_id, unsigned int wordoffset, unsigned int *memarea,  unsigned int bytelength); &lt;br /&gt;
&lt;br /&gt;
pru_ram_id can take on one of 4 values, and are as follows:&lt;br /&gt;
&lt;br /&gt;
 PRUSS0_PRU0_DATARAM &lt;br /&gt;
 PRUSS0_PRU1_DATARAM &lt;br /&gt;
 PRUSS0_PRU0_IRAM &lt;br /&gt;
 PRUSS0_PRU1_IRAM&lt;br /&gt;
&lt;br /&gt;
Here, each of the PRUs have both an Instruction RAM and a DATARAM section. DATARAM for PRU0 is found in the memory locations 0x0 - 0x2000, and DATARAM for PRU1 is found in the memory locations 0x2000 - 0x4000. &lt;br /&gt;
&lt;br /&gt;
wordoffset is an offset in words (4 bytes) from the base memory location, pru_ram_id. &lt;br /&gt;
&lt;br /&gt;
memarea is a pointer to an array of unsigned ints (also 4 bytes) that will be passed onto the PRU.&lt;br /&gt;
&lt;br /&gt;
bytelength is the number of bytes to write to the PRU.&lt;br /&gt;
&lt;br /&gt;
For more information on using C to initialize the PRU visit [http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader_API_Guide#prussdrv_map_prumem TI's PRU Linux Application Loader API Guide]&lt;br /&gt;
&lt;br /&gt;
== Building and Running the Sin_Approximation Example ==&lt;br /&gt;
&lt;br /&gt;
This example uses a modified version of the GPIO_PWM_PRU example to change the duty cycle every period such that the average voltage approximates a sin wave. Navigate to the pwm_sin directory and take a look at the C code. Its nearly identical to the previous code except for a few small differences. The first difference is that it opens and edits two files to export GPIO0_7 and turn it into an output.&lt;br /&gt;
&lt;br /&gt;
The next change is that the prussdrv_pru_write_memory command discussed above is used to push an array containing duty cycles onto the DRAM for PRU0. The duty cycles are approximated using a the sin function from the math.h header file. Here is why:&lt;br /&gt;
 (VCC*(on_time)+0*(off_time))   &lt;br /&gt;
 ---------------------------- = VCC*duty_percent&lt;br /&gt;
            period&lt;br /&gt;
 .&lt;br /&gt;
 VCC*duty_percent = Va&lt;br /&gt;
 .&lt;br /&gt;
 Va = VCC*Sin(2*PI*f*t/fs) &lt;br /&gt;
 .&lt;br /&gt;
 VCC*duty_percent = VCC*sin(2*PI*f*t/fs)&lt;br /&gt;
 .&lt;br /&gt;
 duty_percent = sin(2*PI*f*t/fs)&lt;br /&gt;
&lt;br /&gt;
Looking at the assembly code, we see a similar PWM control as before, but this time it is reading the duty cycles from memory. The coding to do this is a little more complicated due to precise measuring for the sampling frequency, but because this is being run on PRU0, DRAM starts at 0x0. If you feel that you need to change the sampling frequency at any point here's a bit on how to calculate the amount of instructions you need to delay in total.&lt;br /&gt;
&lt;br /&gt;
 sample_period = 1/sample_frequency&lt;br /&gt;
 .&lt;br /&gt;
 sample_period/(number_instructions_delay_loop*5ns) = total_number_instructions_to_delay_per_period&lt;br /&gt;
 .&lt;br /&gt;
 Then count the amount of instructions before or after the loop and nock off that many instructions to delay. This will of course&lt;br /&gt;
 need to be accounted for in the duty cycle, and some sampling frequencies may not offer all duty_percentages.&lt;br /&gt;
 .&lt;br /&gt;
 duty_percent = number_on_instruction_delay/number_off_instruction_delay&lt;br /&gt;
 .&lt;br /&gt;
 number_on_instruction_delay + number_off_instruction_delay = total_number_instructions_to_delay_per_period&lt;br /&gt;
 .&lt;br /&gt;
 -&amp;gt;(duty_percent + 1)*total_number_instruction_to_delay_per_period = number_on_instruction_delay&lt;br /&gt;
&lt;br /&gt;
Of course a few other numbers will have to be adjusted, such as the number of samples to read from memory. Because it has to read in 4 bytes of data, this will end up being:&lt;br /&gt;
 total_number_instructions_to_delay_per_period*4+4&lt;br /&gt;
This way the number will reset to 0 as soon as it goes over the limit of memory to be read.&lt;br /&gt;
&lt;br /&gt;
To build this example, follow the same procedure as before, and wire GPIO7 (Pin 42) of P9 through a speaker to ground. The output produced will be start as a 367Hz approximation and can be changed by putting a number into the terminal (67 to 66000) and pressing enter (NOTE:Text may mess it up. So, DON'T use text!). All of the sampling for 133kHz sampling is now taken care of for any frequency wave mentioned in the previous sentence.&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
During the project we were able to get an approximated 880Hz sine wave to play by changing a pulse width modulation duty cycle to approximate a dc voltage output, as you would with an LED dimmer. You can view this in action along with a helpful tip in the youtube video: &lt;br /&gt;
&lt;br /&gt;
*[http://www.youtube.com/watch?v=6ytju0bkkiQ&amp;amp;feature=youtu.be PWM Demo].&lt;br /&gt;
*[http://www.youtube.com/watch?v=aFep70xN2j4 PWM Sine Wave Approximation Example]&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
In the first examples, you can see that the GPIO can be toggled on and off simply by editing locations in memory from the PRU. You simply set how long you want the LED to be on and how long you want the LED to be off, and delay the time between on and off to create the desired latency.&lt;br /&gt;
&lt;br /&gt;
In the following example, the premise changes slightly. The operation of our code is simple, the PRU offers precise instruction delay of 5ns per instruction. With this we were able to create a delay of instructions that would be a sampling frequency, and in between this delay of instructions we were able to have a set amount of instructions for which the GPIO was on, and a set amount where the GPIO was off. Also, memory could be set from a C program, and then read by the PRU. This came in handy when approximating the sine wave because C offers the math.h header file that has the sin function included and can give approximate numbers to send to the PRU. The amount of delay on and off could be set dynamically every time the loop began by reading the next bit of data stored in memory, thus creating an average voltage that approximated a playable sine wave.&lt;br /&gt;
&lt;br /&gt;
Refer to How the C Code Works, How the Assembly Code Works, and Building and Running Sin_Approximation for more details.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
'''Milestones'''&lt;br /&gt;
&lt;br /&gt;
10/22: We should have all research done. Update documentation with every Milestone.&lt;br /&gt;
&lt;br /&gt;
10/26: We should be able to show something, an example or simple implementation.&lt;br /&gt;
&lt;br /&gt;
10/29: Ability to send different lengths to turn on an LEDs.&lt;br /&gt;
&lt;br /&gt;
10/31: Ability to send different lengths to multiple LEDs.&lt;br /&gt;
&lt;br /&gt;
11/2: We should be able to demo our overall work, possibly have some things to fix before presentation.&lt;br /&gt;
&lt;br /&gt;
11/4: Finalize presentation&lt;br /&gt;
&lt;br /&gt;
11/6-11/9: Presentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''What was done and Who did it'''&lt;br /&gt;
&lt;br /&gt;
Research and Documentation: Andrew, Bryan, James, Peter&lt;br /&gt;
&lt;br /&gt;
Simple Implementation of a blinking LED: Andrew, Bryan, James, Peter&lt;br /&gt;
&lt;br /&gt;
PWM Implementation: Andrew&lt;br /&gt;
&lt;br /&gt;
Sinusoidal Approximation: James&lt;br /&gt;
&lt;br /&gt;
Wiki Editing and Organization: Andrew, Bryan, James, Peter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Research'''&lt;br /&gt;
&lt;br /&gt;
Most of our research has come from internet resources listed below:&lt;br /&gt;
*[http://elinux.org/Ti_AM33XX_PRUSSv2 TI PRU Resources]&lt;br /&gt;
*[http://blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/ Example for Running Code on the PRU]&lt;br /&gt;
*[http://processors.wiki.ti.com/index.php/PRU_Assembly_Instructions PRU Assembly Instructions]&lt;br /&gt;
*[http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader_API_Guide#prussdrv_map_prumem Initializing PRU in C]&lt;br /&gt;
*[http://www.ti.com/lit/ds/symlink/am3358.pdf AM335X Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
For future work there are a few interesting features that we were not able to get to due to time limit and the amount of research needed to begin with. First, we found difficulty in accessing things such as the PWM and analog in ports. These could be further explored given the documents that we have dug up, and some exploration on Google. Second, we wanted to read audio from the analog input and adjust the duty_cycle of the PWM accordingly to have approximate audio output which is the next step to what we have done here. Third, we wanted to explore interrupts on the PRU, but were unable to find enough documentation to get an example working. &lt;br /&gt;
 &lt;br /&gt;
So, PWM, analog in, audio capabilities, and interrupts are the possible things to look into. Also, any other time critical operations can be explored further with the BeagleBone PRU because it has a delay of exactly 5ns for every instruction.&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
So, if you need precise timing, or more rapid access to a certain GPIO pin, this is a route you might want to look into. There are a few suggestions listed above that might be interesting to see come out of using the PRU. However, if you do not require precisely timed events or faster access to GPIO pins, you might want to consider just using C on the main processor. Much of the information needed to access certain parts of the PRU and the hardware from the PRU is either very vague, or very difficult to dig up, and because the PRU is not widely used, it is difficult to find people that can offer information on the topic.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Beagle_VNS</id>
		<title>ECE497 Beagle VNS</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Beagle_VNS"/>
				<updated>2013-05-18T16:16:16Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Removed grade.  Moved to Fall2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Project]]&lt;br /&gt;
{{BeagleVNSHead}}&lt;br /&gt;
[[File:BeagleVNS.png|thumb|]]&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
[[File:WhereIsYoder.png|thumb|Where is Dr. Yoder?]]&lt;br /&gt;
[[File:WhereIsYoder2.png|thumb|I'll leave him a message]]&lt;br /&gt;
&lt;br /&gt;
We wanted a way for students to be able to leave audio (and possibly video) messages for professors when they are out of their office. Using a BeagleBoard Bone, we plan to connect a wireless USB device and a PlayStation Eye to achieve this. Students will be able to walk up to the device and press a button to record their message which will then be available for the professor.&lt;br /&gt;
&lt;br /&gt;
At this time, we are able to successfully capture audio while a user presses and holds a button. Once the button is released, there is a python script that will encode the recording into a mp3 file and send it via an email attachment to a predetermined email address.  We have also developed a web interface that will allow a user to change the preferences for what email account to use, who to send the email message too, as well as what text to populate the subject and body field with. &lt;br /&gt;
&lt;br /&gt;
The wireless usb adapter does not work at this time.  We are still trying to get recompile the kernel to install and enable the driver for this wireless adapter.&lt;br /&gt;
&lt;br /&gt;
Overall we have a functioning project that consist of a C program, python script, bash script, and nodejs webserver.  The C program controls how the audio is recorded.  The python script controls sending emails with attachments.  The bash script is in charge of moving the audio file, converting it to mp3, and firing the python script.  The node.js server controlls the preference file for the python script.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:BeagleBone_256x249.jpg|320px|thumb|right|BeagleBone]]&lt;br /&gt;
[[File:PlayStation-Eye.png|thumb|right|PlayStation Eye]]&lt;br /&gt;
[[File:Belkin_N150_Micro_Wireless_USB_Adapter.png|thumb|right|Belkin N150 Micro Wireless USB Adapter]]&lt;br /&gt;
[[File:BeagleVNS_Door_Bell.jpg|thumb|right|A door bell button is a good idea]]&lt;br /&gt;
&lt;br /&gt;
*BeagleBone&lt;br /&gt;
&lt;br /&gt;
::This project is design primarily for the BeagleBone, but could be implemented on any other Beagle Board given the proper driver installation for the USB hardware and available GPIOs. The BeagleBone is applicable for this project due to is small size, low power consumption, and networking capabilities. Make sure to use the A5 image of Ångström as the A6 image is still buggy with respect to audio/video capturing, as well as using the USB WiFi drivers.&lt;br /&gt;
&lt;br /&gt;
::Further BeagleBone documentation can be found on the official [http://beagleboard.org Beagle Board] website.&lt;br /&gt;
&lt;br /&gt;
::This device can be found available [https://www.adafruit.com/products/513 here]  &lt;br /&gt;
&lt;br /&gt;
*Camera&lt;br /&gt;
&lt;br /&gt;
::In this project tutorial, we will be using the [http://en.wikipedia.org/wiki/PlayStation_Eye  PlayStation Eye] as the audio and video source to recod messages and capture face images. The PlayStation Eye is very compatible with the A5 image of Ångström and used in many other Beagle embedded Linux projects.&lt;br /&gt;
&lt;br /&gt;
::This device can be found available [http://us.playstation.com/ps3/accessories/playstation-eye-camera-ps3.html here]  &lt;br /&gt;
&lt;br /&gt;
*Wifi dongle&lt;br /&gt;
&lt;br /&gt;
::Here we would like to use a WiFi dongle to easily connect to surrounding wireless networks for ease of installation and placement in the remote stretches of hallways and doorframes. We will need we will need network connectivity to transmit e-mails and recording attachments over to an available e-mail server account. In particularly we are using the [http://www.belkin.com/us/p/P-F7D1102 Belkin N150 Micro Wireless USB Adapter]. &lt;br /&gt;
&lt;br /&gt;
::Although this device is not natively supported with the stock A5 image of Ångström, a brief tutorial has already been made on how to compile and install the device drivers for this particular wireless USB adapter: [http://embeddedgeeks.wordpress.com/2012/01/03/belkin-micro-wifi-usb-dongle-on-the-beagleboard/ Belkin Micro Wi-Fi USB dongle on the BeagleBoard]&lt;br /&gt;
&lt;br /&gt;
*Battery Pack and USB Hub&lt;br /&gt;
&lt;br /&gt;
::To again better a ease installation and quick deployment for our system we are using a battery pack to provide power for the BeagleBone, the WiFi dongle and the USB camera. Due to the hottest limitations of the Beagle bones single USB port, in addition to the limited amount of current that the single USB port can provide, we will also use a USB hub with power adapter to solve both issues.&lt;br /&gt;
&lt;br /&gt;
::Specific products we are using included [http://www.duracell.com/en-US/product/instant-usb-charger.jspx  Duracell Instant USB Charger] and [http://www.radioshack.com/product/index.jsp?productId=2476717 Gigaware® USB 4-Port Hub]&lt;br /&gt;
&lt;br /&gt;
*Doorbell&lt;br /&gt;
&lt;br /&gt;
::In order for the end user to trigger the recording sequence, we will implement a traditional mechanical momentary pushbutton that will connect to the BeagleBone’s GPIO using the enabled internal pull-up resistors.&lt;br /&gt;
&lt;br /&gt;
*LED&lt;br /&gt;
&lt;br /&gt;
::As a simple display, our project will utilize a simple LED as an indicator for the user that the audio is currently being recorded and that a face capture will be taken.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
*'''Angstrom A5 Image'''&lt;br /&gt;
&lt;br /&gt;
::In order to use the camera drivers for the playstation eye you will need to install the A5 image on the beagle bone.  To do this you will need to download the A5 image.  Then you will need to install this image on the sd card of the BeagleBone using the instructions bases on [http://elinux.org/EBC_Exercise_03_Installing_a_Beagle_OS| ECE 497 Exercise 03 Installing a Beagle OS].&lt;br /&gt;
&lt;br /&gt;
*'''github'''&lt;br /&gt;
&lt;br /&gt;
::In order to use the project code for the Beagle VNS, you will need github installed in order to download the code.  If you do not have github there are instruction on how to install it on the [[EBC Exercise 16 git |ECE Exercise 16]] web page.&lt;br /&gt;
&lt;br /&gt;
*'''Python'''&lt;br /&gt;
&lt;br /&gt;
::Python is natively installed on the Beagle operating system.  However it is important to note that the program will be using a python script to send email, and that we have been working under Python 2.7 and did not need to modify our code for version 3.0 syntax.&lt;br /&gt;
&lt;br /&gt;
*'''ALSA'''&lt;br /&gt;
&lt;br /&gt;
::The project uses ALSA drivers in order to record audio from a microphone device.&lt;br /&gt;
&lt;br /&gt;
::In order to download the ALSA drivers you will need to run the following commands:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opkg install alsa-utils-aplay alsa-utils-amixer alsa-dev alsa-utils'''&lt;br /&gt;
&lt;br /&gt;
*'''Lame'''&lt;br /&gt;
&lt;br /&gt;
::Lame is a audio encoder that will take raw audio and convert it into an mp3 format.&lt;br /&gt;
&lt;br /&gt;
::To install the lame onto the beagle board you will need to run the following command.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install lame'''&lt;br /&gt;
&lt;br /&gt;
*'''Node.js'''&lt;br /&gt;
&lt;br /&gt;
::Node.js is a tool for quickly make web or browser based interfaces for networking with the beagle or any comparable platform.&lt;br /&gt;
&lt;br /&gt;
:: Installation instructions can be found here: [[ECE497 Notes on node.js | ECE497 Notes on node.js]]&lt;br /&gt;
&lt;br /&gt;
== Install Instructions ==&lt;br /&gt;
&lt;br /&gt;
::In order to run this application the ALSA library must be installed. &lt;br /&gt;
::Node.js is an optional installation if you would like a web interface for changing the email preferences file. &lt;br /&gt;
&lt;br /&gt;
::No other installation is required.  The application developed is available on a git repository. The python script does not need any additional packages, and the javascript libraries are also located in the repository.&lt;br /&gt;
&lt;br /&gt;
::For simplicity and clarity when reading and understanding the code, as well as some limitations with using mix of C, Python, and bash scripts, there exists some hard-coded references dependencies. As such, we suggest cloning the repo to your '''home directory''' to get up and running first before modifying anything for your own application.  Otherwise the program will not work.  Follow the github section below to download the repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::To download the code for the Beagle VNS run the following code:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd'''&lt;br /&gt;
 beagle$ '''git clone git://github.com/geislekj/BeagleBoardVNS.git'''&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
*'''Basic Command Line Examples'''&lt;br /&gt;
&lt;br /&gt;
:: In order to give you a feel to how the program is capturing and sending emails.  Here is a short run down of how the program works&lt;br /&gt;
&lt;br /&gt;
:*'''Restart the Network'''&lt;br /&gt;
:::If you cannot grab an ip address from a dns server when the A5 image initially boots up. Run the following command in order to restart the network service&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''/etc/init.d/networking restart'''&lt;br /&gt;
&lt;br /&gt;
:*'''Audio Capture'''&lt;br /&gt;
&lt;br /&gt;
::: In order to capture audio, the project uses arecord.  This application allows you to grab audio from a microphone that is attached to your device and save to the current directory in a raw format.  &lt;br /&gt;
&lt;br /&gt;
:::Here is an example command that allows you to record audio and then pipe the audio into aplay to instantaneously hear feedback:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''arecord -D plughw:0,0 | aplay'''&lt;br /&gt;
&lt;br /&gt;
:::In order to encode the audio into mp3 format, you will need to pipe the audio into lame instead of aplay.&lt;br /&gt;
&lt;br /&gt;
:::Here is an example of this:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''arecord -D plughw:0,0 -r 16000 -f S16_LE -c 2 -t raw -d 3 | lame  -s 16 -r - blackbird.mp3'''&lt;br /&gt;
&lt;br /&gt;
::: For more information about ALSA and how to use many of its interesting features visit [http://www.lvr.com/access_usb_devices_from_linux.htm | Jan Axelson's Lakeview Research web page]&lt;br /&gt;
&lt;br /&gt;
:*'''Beagle VNS Application'''&lt;br /&gt;
&lt;br /&gt;
::: In order to run the Beagle VNS Application you will need go to the C-Programs Directory&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd ~/BeagleBoardVNS/C-Program/'''&lt;br /&gt;
&lt;br /&gt;
::: Once you are in this directory, you will need to compile the application.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''make clean; make'''&lt;br /&gt;
&lt;br /&gt;
::: Now you can run the application.  There is currently only a debug version of the application.  This verision will print out debug information which is helpful to see what is going on.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''./beagleVNSApp_DEBUG'''&lt;br /&gt;
&lt;br /&gt;
::: You can also start the node.js server to edit the configuration file. Simply run the command below in the BeagleBoardVNS destroyer and then point your browser to the beaglebone's port 8081 with a URL or host name, i.e: beagleVNS.local:8081&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''node BeagleBoardVNS.js'''&lt;br /&gt;
&lt;br /&gt;
::: Note that you can change your host name by editing this file: /etc/hostname. For example:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''nano /etc/hostname'''&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|k7yUmo1zc0Q}}&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=k7yUmo1zc0Q BeagleVNS YouTube Video Demo]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/embed/k7yUmo1zc0Q BeagleVNS YouTube Video Demo]&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
[[File:BeagleVNSDiagram.jpg|640px|thumb|right|BeagleBone]]&lt;br /&gt;
&lt;br /&gt;
This device is intended to record audio messages from students when professors are out of their office. The device will sit outside a professors office and will have a microphone and user button attached. A student who wishes to leave a message will press and hold the button then begin speaking, when the student has finished speaking they will release the button. The software will then save the audio file and then send the file as a mp3 to the user specified email. &lt;br /&gt;
&lt;br /&gt;
As a user the professor will be able to modify the default preferences such as email to send to and the message that they receive.&lt;br /&gt;
&lt;br /&gt;
The system consists of a C program that will need to be started and checks for the button press. When it picks up that the button has been pressed it collects audio until the button is released. The system then calls on a python mail client script passing in the location of the newly created audio file. The python script then reads from the user preferences and sends an email accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
List the major tasks in your project and who did what.&lt;br /&gt;
&lt;br /&gt;
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Acquire Hardware - Ruffin&lt;br /&gt;
:::Done&lt;br /&gt;
'''2.''' Set up project page - Tom &amp;amp; Kevin&lt;br /&gt;
:::Page made and updated&lt;br /&gt;
'''3.''' Get USB wireless to work - Kevin &amp;amp; Ruffin&lt;br /&gt;
:::This is not working at this time for A6 image&lt;br /&gt;
'''4.''' Get PlayStation Eye to work - Tom&lt;br /&gt;
:::Audio working, need to use A5 image&lt;br /&gt;
:::Passing capture video on to Ruffin&lt;br /&gt;
'''5.''' Get BeagleBoard Bone to run off a battery pack - Ruffin&lt;br /&gt;
:::Done&lt;br /&gt;
'''6.''' Register an email for the BeagleBoard - Ruffin&lt;br /&gt;
:::Google acound made, along with Gmail and Google voice accounts&lt;br /&gt;
'''7.''' Create an email script to send email with attachments - Tom&lt;br /&gt;
:::Email sending complete&lt;br /&gt;
'''8.''' Encode the raw audio from ALSA into mp3 format - Kevin&lt;br /&gt;
:::Able to record on bone, use lame to convert file, and SCP to send to PC and listen to the recording&lt;br /&gt;
'''9.''' Capture an image using GStreamer - Kevin &amp;amp; Tom &amp;amp; Ruffin&lt;br /&gt;
:::This is still being developed&lt;br /&gt;
'''10.''' Create a C program to capture the audio and listen for GPIO inputs - Kevin &amp;amp; Ruffin&lt;br /&gt;
:::This is complete it is in the C-Program Directory&lt;br /&gt;
'''11.''' Putting all the pieces together - Tom, Kevin, &amp;amp; Ruffin&lt;br /&gt;
:::If you run the C-Program the audio collection will work.  However, the web interface is a separate service you will need to start.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
&lt;br /&gt;
The following C application is used to collect audio from the Playstation Eye and then write it to a file when a gpio button is being pressed.  Once the pgio button is released, the program runs a bash file that will encode the raw audio into mp3 and email it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * main.c&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// Standard Linux headers&lt;br /&gt;
#include     &amp;lt;stdio.h&amp;gt;              // Always include this header&lt;br /&gt;
#include     &amp;lt;stdlib.h&amp;gt;             // Always include this header&lt;br /&gt;
#include     &amp;lt;signal.h&amp;gt;             // Defines signal-handling functions (i.e. trap Ctrl-C)&lt;br /&gt;
#include     &amp;lt;fcntl.h&amp;gt;                          // Defines open, read, write methods&lt;br /&gt;
#include     &amp;lt;unistd.h&amp;gt;                         // Defines close and sleep methods&lt;br /&gt;
//#include     &amp;lt;string.h&amp;gt;                         // Defines memcpy&lt;br /&gt;
#include     &amp;lt;alsa/asoundlib.h&amp;gt;			// ALSA includes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Application headers&lt;br /&gt;
#include     &amp;quot;debug.h&amp;quot;&lt;br /&gt;
//#include     &amp;quot;audio_thread.h&amp;quot;&lt;br /&gt;
#include     &amp;quot;gpio.h&amp;quot;&lt;br /&gt;
#include     &amp;quot;audio_input_output.h&amp;quot;             // Audio driver input and output functions&lt;br /&gt;
&lt;br /&gt;
//* ALSA and Mixer devices **&lt;br /&gt;
#define     SOUND_DEVICE     &amp;quot;plughw:0,0&amp;quot;	// This uses line in&lt;br /&gt;
//#define     SOUND_DEVICE     &amp;quot;plughw:1,0&amp;quot;	// This uses the PS EYE mikes&lt;br /&gt;
&lt;br /&gt;
//* Output file name **&lt;br /&gt;
#define     OUTFILE          &amp;quot;/tmp/audio.raw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//* The sample rate of the audio codec **&lt;br /&gt;
#define     SAMPLE_RATE      8000&lt;br /&gt;
&lt;br /&gt;
//* The gain (0-100) of the left channel **&lt;br /&gt;
#define     LEFT_GAIN        100&lt;br /&gt;
&lt;br /&gt;
//* The gain (0-100) of the right channel **&lt;br /&gt;
#define     RIGHT_GAIN       100&lt;br /&gt;
&lt;br /&gt;
//*  Parameters for audio thread execution **&lt;br /&gt;
#define     BLOCKSIZE        48000&lt;br /&gt;
&lt;br /&gt;
// Success and failure definitions for the thread&lt;br /&gt;
#define     AUDIO_THREAD_SUCCESS     ( ( void * ) 0 )&lt;br /&gt;
#define     AUDIO_THREAD_FAILURE     ( ( void * ) - 1 )&lt;br /&gt;
&lt;br /&gt;
// The levels of initialization for initMask&lt;br /&gt;
#define     INPUT_ALSA_INITIALIZED      0x1&lt;br /&gt;
#define     INPUT_BUFFER_ALLOCATED      0x2&lt;br /&gt;
#define     OUTPUT_FILE_OPENED          0x4&lt;br /&gt;
&lt;br /&gt;
// Thread environment definition (i.e. what it needs to operate)&lt;br /&gt;
typedef  struct  audio_thread_env&lt;br /&gt;
{&lt;br /&gt;
    int quit;                // Thread will run as long as quit = 0&lt;br /&gt;
    int button;&lt;br /&gt;
} audio_thread_env;&lt;br /&gt;
&lt;br /&gt;
// Global audio thread environment&lt;br /&gt;
 audio_thread_env audio_env = {0};&lt;br /&gt;
&lt;br /&gt;
/* Store previous signal handler and call it */&lt;br /&gt;
void (*pSigPrev)(int sig);&lt;br /&gt;
&lt;br /&gt;
// Callback called when SIGINT is sent to the process (Ctrl-C)&lt;br /&gt;
void signal_handler(int sig)&lt;br /&gt;
{&lt;br /&gt;
    DBG( &amp;quot;Ctrl-C pressed, cleaning up and exiting..\n&amp;quot; );&lt;br /&gt;
     audio_env.quit = 1;&lt;br /&gt;
&lt;br /&gt;
    if( pSigPrev != NULL )&lt;br /&gt;
        (*pSigPrev)( sig );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//*****************************************************************************&lt;br /&gt;
//*  main&lt;br /&gt;
//*****************************************************************************&lt;br /&gt;
int main( int argc, char *argv[] )&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Variables and definitions&lt;br /&gt;
// *************************&lt;br /&gt;
&lt;br /&gt;
	// button values&lt;br /&gt;
	int button = 16;&lt;br /&gt;
	int bButton = 1;&lt;br /&gt;
	int bValue = 0;&lt;br /&gt;
	int recording = 0;&lt;br /&gt;
	button =  (bButton*32)+button;&lt;br /&gt;
	audio_env.button = button;&lt;br /&gt;
	exportgpio(button);&lt;br /&gt;
&lt;br /&gt;
	// led light&lt;br /&gt;
	int led = 17;&lt;br /&gt;
	int bled = 1;&lt;br /&gt;
	led = (bled*32)+led;&lt;br /&gt;
	exportgpio(led);&lt;br /&gt;
&lt;br /&gt;
	//SET DIRECTION&lt;br /&gt;
	setdirection(button,1);	&lt;br /&gt;
	setdirection(led,0);&lt;br /&gt;
&lt;br /&gt;
	//turn off led&lt;br /&gt;
	gpioWrite(led,1);&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// Thread parameters and return value&lt;br /&gt;
        void             * status = AUDIO_THREAD_SUCCESS;      // &amp;lt; see above&lt;br /&gt;
        unsigned  int   initMask =  0x0;		// Used to only cleanup items that were init'd&lt;br /&gt;
&lt;br /&gt;
        // Input and output driver variables&lt;br /&gt;
        snd_pcm_uframes_t exact_bufsize;&lt;br /&gt;
        snd_pcm_t	*pcm_capture_handle;&lt;br /&gt;
&lt;br /&gt;
        FILE          * outfile = NULL;	// Output file pointer (i.e. handle)&lt;br /&gt;
        int   blksize = BLOCKSIZE;		// Raw input or output frame size&lt;br /&gt;
        char *inputBuffer = NULL;		// Input buffer for driver to read into&lt;br /&gt;
&lt;br /&gt;
// Setup audio input device&lt;br /&gt;
// ************************&lt;br /&gt;
&lt;br /&gt;
        // Open an ALSA device channel for audio input&lt;br /&gt;
        exact_bufsize = blksize/BYTESPERFRAME;&lt;br /&gt;
&lt;br /&gt;
        if( audio_io_setup( &amp;amp;pcm_capture_handle, SOUND_DEVICE, SAMPLE_RATE, &lt;br /&gt;
	        SND_PCM_STREAM_CAPTURE, &amp;amp;exact_bufsize ) == AUDIO_FAILURE )&lt;br /&gt;
        {&lt;br /&gt;
                ERR( &amp;quot;Audio_input_setup failed in audio_thread_fxn\n\n&amp;quot; );&lt;br /&gt;
                status = AUDIO_THREAD_FAILURE;&lt;br /&gt;
                goto cleanup;&lt;br /&gt;
        }&lt;br /&gt;
        DBG( &amp;quot;exact_bufsize = %d\n&amp;quot;, (int) exact_bufsize);&lt;br /&gt;
&lt;br /&gt;
        // Record that input OSS device was opened in initialization bitmask&lt;br /&gt;
        initMask |= INPUT_ALSA_INITIALIZED;&lt;br /&gt;
&lt;br /&gt;
        blksize = exact_bufsize*BYTESPERFRAME;&lt;br /&gt;
        // Create input buffer to read into from OSS input device&lt;br /&gt;
        if( ( inputBuffer = malloc( blksize ) ) == NULL )&lt;br /&gt;
        {&lt;br /&gt;
           ERR( &amp;quot;Failed to allocate memory for input block (%d)\n&amp;quot;, blksize );&lt;br /&gt;
           status = AUDIO_THREAD_FAILURE;&lt;br /&gt;
           goto  cleanup ;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
       DBG( &amp;quot;Allocated input audio buffer of size %d to address %p\n&amp;quot;, blksize,inputBuffer );&lt;br /&gt;
&lt;br /&gt;
        // Record that the input buffer was allocated in initialization bitmask&lt;br /&gt;
        initMask |= INPUT_BUFFER_ALLOCATED;&lt;br /&gt;
&lt;br /&gt;
// Thread Execute Phase -- perform I/O and processing&lt;br /&gt;
// **************************************************&lt;br /&gt;
	&lt;br /&gt;
        while(1){&lt;br /&gt;
		//Gets the button value&lt;br /&gt;
		//printf(&amp;quot;Button:%d&amp;quot;,bValue);&lt;br /&gt;
		bValue = gpioRead(button);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
		// Read capture buffer from ALSA input device&lt;br /&gt;
                if( snd_pcm_readi(pcm_capture_handle, inputBuffer, blksize/BYTESPERFRAME) &amp;lt; 0 )&lt;br /&gt;
  	        {&lt;br /&gt;
               	    snd_pcm_prepare(pcm_capture_handle);&lt;br /&gt;
                 }&lt;br /&gt;
&lt;br /&gt;
		//Starts to record audio&lt;br /&gt;
		if(bValue &amp;amp;&amp;amp; !recording){&lt;br /&gt;
                	printf(&amp;quot;Button Pushed&amp;quot;);&lt;br /&gt;
      		       recording = 1;		&lt;br /&gt;
                         &lt;br /&gt;
                       // Open a file for record&lt;br /&gt;
                       outfile = fopen(OUTFILE, &amp;quot;w&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                       if( outfile == NULL )&lt;br /&gt;
                       {&lt;br /&gt;
                          ERR( &amp;quot;Failed to open file %s\n&amp;quot;, OUTFILE );&lt;br /&gt;
                          status = AUDIO_THREAD_FAILURE;&lt;br /&gt;
                          goto  cleanup ;&lt;br /&gt;
                       }&lt;br /&gt;
&lt;br /&gt;
                       DBG( &amp;quot;Opened file %s with FILE pointer = %p\n&amp;quot;, OUTFILE, outfile );&lt;br /&gt;
&lt;br /&gt;
                       // Record that input OSS device was opened in initialization bitmask&lt;br /&gt;
                       initMask |= OUTPUT_FILE_OPENED;&lt;br /&gt;
&lt;br /&gt;
                       // Processing loop&lt;br /&gt;
                       DBG( &amp;quot;Entering audio_thread_fxn processing loop\n&amp;quot; );&lt;br /&gt;
		       gpioWrite(led,0);&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
    		//saves to file while recording.&lt;br /&gt;
                if(bValue &amp;amp;&amp;amp; recording){&lt;br /&gt;
	                if( fwrite( inputBuffer, sizeof( char ), blksize, outfile ) &amp;lt; blksize )&lt;br /&gt;
                        {&lt;br /&gt;
                             ERR( &amp;quot;Error writing the data to FILE pointer %p\n&amp;quot;, outfile );&lt;br /&gt;
                             status = AUDIO_THREAD_FAILURE;&lt;br /&gt;
                             goto cleanup;&lt;br /&gt;
                        }&lt;br /&gt;
                }	&lt;br /&gt;
	&lt;br /&gt;
		// Sends the audio on button release&lt;br /&gt;
		if(!bValue &amp;amp;&amp;amp; recording){&lt;br /&gt;
			printf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
			gpioWrite(led,1);&lt;br /&gt;
&lt;br /&gt;
                        DBG( &amp;quot;Closing output file at FILE ptr %p\n&amp;quot;, outfile );&lt;br /&gt;
                        fclose( outfile );&lt;br /&gt;
			&lt;br /&gt;
			DBG( &amp;quot;Freeing audio input buffer at location %p\n&amp;quot;, inputBuffer );&lt;br /&gt;
        		free( inputBuffer );&lt;br /&gt;
       			DBG( &amp;quot;Freed audio input buffer at location %p\n&amp;quot;, inputBuffer );&lt;br /&gt;
&lt;br /&gt;
			// Create input buffer to read into from OSS input device&lt;br /&gt;
			if( ( inputBuffer = malloc( blksize ) ) == NULL )&lt;br /&gt;
			{&lt;br /&gt;
			   ERR( &amp;quot;Failed to allocate memory for input block (%d)\n&amp;quot;, blksize );&lt;br /&gt;
			   status = AUDIO_THREAD_FAILURE;&lt;br /&gt;
			   goto  cleanup ;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			//runs a script that will take the raw file saved and encode it to mp3 useing lame and send via email.&lt;br /&gt;
	 		system(&amp;quot;~/BeagleBoardVNS/BeagleVNSScript&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			//reset recording flag&lt;br /&gt;
			recording = 0;&lt;br /&gt;
		}&lt;br /&gt;
	 }&lt;br /&gt;
&lt;br /&gt;
// Thread Delete Phase -- free up resources allocated by this file&lt;br /&gt;
// ***************************************************************&lt;br /&gt;
&lt;br /&gt;
cleanup:&lt;br /&gt;
&lt;br /&gt;
    DBG( &amp;quot;Starting audio thread cleanup to return resources to system\n&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
    // Close the audio drivers&lt;br /&gt;
    // ***********************&lt;br /&gt;
    //  - Uses the initMask to only free resources that were allocated.&lt;br /&gt;
    //  - Nothing to be done for mixer device, as it was closed after init.&lt;br /&gt;
&lt;br /&gt;
    // Close input OSS device&lt;br /&gt;
    if( initMask &amp;amp; INPUT_ALSA_INITIALIZED )&lt;br /&gt;
        if( audio_io_cleanup( pcm_capture_handle ) != AUDIO_SUCCESS )&lt;br /&gt;
        {&lt;br /&gt;
            ERR( &amp;quot;audio_input_cleanup() failed for file descriptor %d\n&amp;quot;, (int) pcm_capture_handle );&lt;br /&gt;
            status = AUDIO_THREAD_FAILURE;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    // Free allocated buffers&lt;br /&gt;
    // **********************&lt;br /&gt;
&lt;br /&gt;
    // Free input buffer&lt;br /&gt;
    if( initMask &amp;amp; INPUT_BUFFER_ALLOCATED )&lt;br /&gt;
    {&lt;br /&gt;
        DBG( &amp;quot;Freeing audio input buffer at location %p\n&amp;quot;, inputBuffer );&lt;br /&gt;
        free( inputBuffer );&lt;br /&gt;
        DBG( &amp;quot;Freed audio input buffer at location %p\n&amp;quot;, inputBuffer );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Return from audio_thread_fxn function&lt;br /&gt;
    // *************************************&lt;br /&gt;
&lt;br /&gt;
    // Return the status at exit of the thread's execution&lt;br /&gt;
    DBG( &amp;quot;Audio thread cleanup complete. Exiting audio_thread_fxn\n&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
This is the Python script that is used to email a message with an attachment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import smtplib, os, sys&lt;br /&gt;
#from getpass import getpass&lt;br /&gt;
from email.MIMEMultipart import MIMEMultipart&lt;br /&gt;
from email.MIMEBase import MIMEBase&lt;br /&gt;
from email.MIMEText import MIMEText&lt;br /&gt;
from email.Utils import COMMASPACE, formatdate&lt;br /&gt;
from email import Encoders&lt;br /&gt;
from PREFERENCES import *&lt;br /&gt;
&lt;br /&gt;
#def send_mail(send_files=&amp;quot;&amp;quot;):&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    #This version promts the user to specify recipient, files,&lt;br /&gt;
    #subject, and message. The version for incorperating in the&lt;br /&gt;
    #notifier will need to read from a preferences file that &lt;br /&gt;
    #should be modifiable by the user.&lt;br /&gt;
    print sys.argv[1]&lt;br /&gt;
    send_to = SEND_TO&lt;br /&gt;
    files = sys.argv[1]&lt;br /&gt;
&lt;br /&gt;
    send_to=send_to.split(',')&lt;br /&gt;
    files=filter(None, files.split(','))&lt;br /&gt;
&lt;br /&gt;
    #Make sure that we are working with a list&lt;br /&gt;
    assert type(send_to)==list&lt;br /&gt;
    assert type(files)==list&lt;br /&gt;
&lt;br /&gt;
    send_from = SEND_FROM&lt;br /&gt;
    subject = SUBJECT&lt;br /&gt;
&lt;br /&gt;
    #Create a message object that we will be sending&lt;br /&gt;
    msg = MIMEMultipart()&lt;br /&gt;
    msg['From'] = send_from&lt;br /&gt;
    msg['To'] = COMMASPACE.join(send_to)&lt;br /&gt;
    msg['Date'] = formatdate(localtime=True)&lt;br /&gt;
    msg['Subject'] = subject&lt;br /&gt;
&lt;br /&gt;
    text = MESSAGE&lt;br /&gt;
&lt;br /&gt;
    msg.attach( MIMEText(text) )&lt;br /&gt;
&lt;br /&gt;
    #Attach files to message&lt;br /&gt;
    for f in files:&lt;br /&gt;
        part = MIMEBase('application', &amp;quot;octet-stream&amp;quot;)&lt;br /&gt;
        part.set_payload( open(f,&amp;quot;rb&amp;quot;).read() )&lt;br /&gt;
        Encoders.encode_base64(part)&lt;br /&gt;
        part.add_header('Content-Disposition', 'attachment; filename=&amp;quot;%s&amp;quot;' % os.path.basename(f))&lt;br /&gt;
        msg.attach(part)&lt;br /&gt;
&lt;br /&gt;
    #Open up a connection to the gmail servers on port 587&lt;br /&gt;
    server = smtplib.SMTP('smtp.gmail.com',587) #port 465 or 587&lt;br /&gt;
    server.ehlo()&lt;br /&gt;
    server.starttls()&lt;br /&gt;
    server.ehlo()&lt;br /&gt;
    #password = getpass()&lt;br /&gt;
    password=PASSWORD&lt;br /&gt;
    server.login(send_from, password)&lt;br /&gt;
    server.sendmail(send_from,&amp;quot;,&amp;quot;.join(send_to),msg.as_string())&lt;br /&gt;
    server.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#if __name__ == '__main__':&lt;br /&gt;
#    send_mail()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
Suggest addition things that could be done with this project.&lt;br /&gt;
&lt;br /&gt;
# Web Interface to manage audio or achieve files locally&lt;br /&gt;
# Capture video along with audio or capture image upon button press&lt;br /&gt;
# Voice-To-Text using Google Voice API&lt;br /&gt;
# Low Power Mode for longer battery life using interupts&lt;br /&gt;
# Release alsa device for other aplications when not in use&lt;br /&gt;
# Authentication&lt;br /&gt;
# Wireless Communication&lt;br /&gt;
&lt;br /&gt;
== Parts ==&lt;br /&gt;
&lt;br /&gt;
[http://beagleboard.org/bone Beagle Bone]&lt;br /&gt;
&lt;br /&gt;
[http://us.playstation.com/ps3/accessories/playstation-eye-camera-ps3.html PlayStation Eye]&lt;br /&gt;
&lt;br /&gt;
[http://www.belkin.com/us/p/P-F7D1102 Belkin N150 Micro Wireless USB Adapter]&lt;br /&gt;
&lt;br /&gt;
[http://www.duracell.com/en-US/product/instant-usb-charger.jspx  Duracell Instant USB Charger]&lt;br /&gt;
&lt;br /&gt;
[http://www.radioshack.com/product/index.jsp?productId=2476717 Gigaware® USB 4-Port Hub]&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
&lt;br /&gt;
Overall, we currently have a working version of the Beagle VNS.  There are two separate parts to the project.  The Beagle C-Program records the audio and sends an email with an mp3 attachment.  There is also a web interface which will allow a user to change the default sender and recipient email address.  Some cool additions to the project would be to be able to take an video and audio message, as well as incorporate a wireless driver.&lt;br /&gt;
&lt;br /&gt;
{{BeagleVNSFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes</id>
		<title>ECE497 Notes</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes"/>
				<updated>2013-05-18T16:12:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497 |Notes]]&lt;br /&gt;
&lt;br /&gt;
You can find my various notes (works in progress) [[:Category:ECE497Notes | here]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes</id>
		<title>ECE497 Notes</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes"/>
				<updated>2013-05-18T16:11:32Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Created page with &amp;quot;You can find my various notes (works in progress)  here&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can find my various notes (works in progress) [[:Category:ECE497Notes | here]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/Category:ECE497Notes</id>
		<title>Category:ECE497Notes</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/Category:ECE497Notes"/>
				<updated>2013-05-18T16:11:08Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Created page with &amp;quot;This is collection of notes on things I'm still trying to figure out.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is collection of notes on things I'm still trying to figure out.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_systemd</id>
		<title>ECE497 Notes on systemd</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_systemd"/>
				<updated>2013-05-18T16:06:45Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |sys]]&lt;br /&gt;
&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
The new BeagleImages use [http://www.freedesktop.org/wiki/Software/systemd/ systemd] for user space initialization. &lt;br /&gt;
&lt;br /&gt;
[https://www.linux.com/learn/tutorials/524577-here-we-go-again-another-linux-init-intro-to-systemd/ Here], [https://www.linux.com/learn/tutorials/527639-managing-services-on-linux-with-systemd/ here] and [https://www.linux.com/learn/tutorials/539856-more-systemd-fun-the-blame-game-and-stopping-services-with-prejudice/ here] are some tutorials that look good.&lt;br /&gt;
&lt;br /&gt;
[http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions Here] is information on runlevels.&lt;br /&gt;
&lt;br /&gt;
[http://crashmag.net/useful-systemd-commands Here] is a nice list of useful commands.&lt;br /&gt;
&lt;br /&gt;
[http://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks Tips and Tricks]&lt;br /&gt;
&lt;br /&gt;
=== Gadgets ===&lt;br /&gt;
I found these gadgets&lt;br /&gt;
 network-gadget-init.service  storage-gadget-init.service&lt;br /&gt;
&lt;br /&gt;
in &lt;br /&gt;
&lt;br /&gt;
 /lib/systemd/system&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/update-image-info-on-mmcblk0p1.sh&lt;br /&gt;
&lt;br /&gt;
is what creates the info.txt file.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''mount /dev/mmcblk0p1 /mnt'''&lt;br /&gt;
&lt;br /&gt;
Here's a way to see what gadgets are out there&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''systemctl --all | grep gadget'''&lt;br /&gt;
 sys-devi...et-usb0.device loaded active   plugged       /sys/devices/platform/omap/musb-ti81xx/musb-hdrc.0/gadget/net/usb0&lt;br /&gt;
 network-...t-init.service loaded active   exited        Start USB Ethernet gadget&lt;br /&gt;
 storage-...t-init.service loaded inactive dead          Start usb mass storage gadget&lt;br /&gt;
 udhcpd.service            loaded active   running       DHCP server for USB0 network gadget&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 systemctl --all '''--full''' | grep gadget&lt;br /&gt;
 sys-devices-platform-omap-musb\x2dti81xx-musb\x2dhdrc.0-gadget-net-usb0.device                loaded active   plugged        /sys/devices/platform/omap/musb-ti81xx/musb-hdrc.0/gadget/net/usb0&lt;br /&gt;
 network-gadget-init.service                                                                   loaded active   exited         Start USB Ethernet gadget&lt;br /&gt;
 storage-gadget-init.service                                                                   loaded inactive dead           Start usb mass storage gadget&lt;br /&gt;
 udhcpd.service                                                                                loaded active   running        DHCP server for USB0 network gadget&lt;br /&gt;
&lt;br /&gt;
Where &lt;br /&gt;
 '''network-...t-init.service''' = '''network-gadget-init.service'''&lt;br /&gt;
 '''storage-...t-init.service''' = '''storage-gadget-init.service'''&lt;br /&gt;
&lt;br /&gt;
'''/etc/udhcpd.conf''' is what assigned 192.168.7.1 to the host computer.&lt;br /&gt;
&lt;br /&gt;
To stop the ethernet over USB and start the storage over USB for the current session&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''/bin/systemctl stop  storage-gadget-init.service'''&lt;br /&gt;
 beagle$ '''/bin/systemctl start network-gadget-init.service'''&lt;br /&gt;
&lt;br /&gt;
To go the other way:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''g-ether-start-service.sh'''&lt;br /&gt;
&lt;br /&gt;
To keep the storage gadget from running on boot up. (I'm still checking this.)&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''systemctl disable storage-gadget-init.service'''&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_fritzing</id>
		<title>ECE497 Notes on fritzing</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_fritzing"/>
				<updated>2013-05-18T16:06:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |fr]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
[http://fritzing.org/ Fritzing] looks like a good way to draw BeagleDiagrams.&lt;br /&gt;
&lt;br /&gt;
[http://engineersofthecorn.blogspot.com/2012/06/fritzing-part-for-beaglebone.html Here's] a bone.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Upgrading_to_3.0</id>
		<title>ECE497 Notes on Upgrading to 3.0</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Upgrading_to_3.0"/>
				<updated>2013-05-18T16:05:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |up]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
I've been running the 2.6.28 kernel for a while now and I think it's time to upgrade to 3.0.&lt;br /&gt;
&lt;br /&gt;
== Getting the SD image ==&lt;br /&gt;
=== xM ===&lt;br /&gt;
&lt;br /&gt;
There are a bunch of SD card images [http://www.angstrom-distribution.org/demo/beagleboard/ here].  I downloaded '''Angstrom-TI-GNOME-image-eglibc-ipk-v2012.01-core-beagleboard-2012.01.11.img.gz''' and was able to get it to boot, however nothing shows in the DVI display. (I tried '''Angstrom-Cloud9-IDE-eglibc-ipk-v2011.11-core-beagleboard-2011.11.21.img.gz''' and it booted but didn't start the network correctly, so I'm not using.)&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''uname -a'''&lt;br /&gt;
 Linux dhcp-137-112-41-101 3.0.14+ #1 Thu Dec 22 09:53:00 CET 2011 armv7l GNU/Linux&lt;br /&gt;
 beagle$ '''cat /proc/cmdline'''&lt;br /&gt;
  console=tty0 mpurate=auto buddy=none buddy2=none camera=none vram=12M &lt;br /&gt;
  omapfb.mode=dvi:640x480MR-16@60 omapdss.def_disp=dvi &lt;br /&gt;
  root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait&lt;br /&gt;
&lt;br /&gt;
=== bone ===&lt;br /&gt;
&lt;br /&gt;
==== From circuitco ====&lt;br /&gt;
&lt;br /&gt;
I'm presently running the SD image that comes with [http://circuitco.com/support/index.php?title=BeagleBone_A6_Image_06.18.2012 BeagleBone Rev A6].  [http://circuitco.com/support/index.php?title=BeagleBone_A6_Image_06.18.2012 Release Notes].&lt;br /&gt;
&lt;br /&gt;
 host$ '''cd Downloads'''&lt;br /&gt;
 host$ '''wget http://circuitco.com/support/files/BeagleBone-A6/BeagleBone_Rev_A6_Production_06_18_2012.7z'''&lt;br /&gt;
 host$ '''sudo apt-get install p7zip-full'''&lt;br /&gt;
 host$ '''7z e BeagleBone_Rev_A6_Production_06_18_2012.7z'''  (takes about 2.5 minutes)&lt;br /&gt;
 host$ '''sudo dd if=BeagleBone_Rev_A6_Production_06_18_2012.img of=/dev/sd''X'' bs=8M'''  (takes about 6.5 minutes)&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''uname -a'''&lt;br /&gt;
 Linux beaglebone 3.2.18 #1 Thu Jun 14 23:26:20 CEST 2012 armv7l GNU/Linux&lt;br /&gt;
 beagle$ '''cat /proc/cmdline'''&lt;br /&gt;
 console=ttyO0,115200n8 run_hardware_tests quiet root=/dev/mmcblk0p2 ro&lt;br /&gt;
 rootfstype=ext4 rootwait ip=none&lt;br /&gt;
&lt;br /&gt;
Hmmmm.... It's the same kernel as the one from below.&lt;br /&gt;
&lt;br /&gt;
==== From Angstrom ====&lt;br /&gt;
There is one bone image [http://downloads.angstrom-distribution.org/demo/beaglebone/ here] so I'm running with '''Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.05-beaglebone-2012.06.18.img.xz '''&lt;br /&gt;
&lt;br /&gt;
Following the instructions on the site I do:&lt;br /&gt;
 host$ '''sudo -s'''&lt;br /&gt;
 host# '''time xz -dkc Angstrom-Cloud9-IDE-eglibc-ipk-v2011.10-core-beaglebone-r0.img.xz &amp;gt; /dev/sdX'''&lt;br /&gt;
 real	17m27.313s&lt;br /&gt;
 user	1m54.391s&lt;br /&gt;
 sys	0m9.621s&lt;br /&gt;
 host# '''exit'''&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''uname -a'''&lt;br /&gt;
 Linux beaglebone 3.2.18 #1 Thu Jun 14 23:26:20 CEST 2012 armv7l GNU/Linux&lt;br /&gt;
 beagle$ '''cat /proc/cmdline'''&lt;br /&gt;
 console=ttyO0,115200n8 run_hardware_tests quiet root=/dev/mmcblk0p2 ro &lt;br /&gt;
 rootfstype=ext4 rootwait ip=none&lt;br /&gt;
&lt;br /&gt;
== Updating and Upgrading ==&lt;br /&gt;
&lt;br /&gt;
Here's what I'm doing on both the bone and xM.&lt;br /&gt;
I did the following to make sure the image is up to date.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opkg install ssh-keygen'''&lt;br /&gt;
 real	0m32.488s&lt;br /&gt;
 user	0m23.530s&lt;br /&gt;
 sys	0m0.380s  &lt;br /&gt;
 beagle$ '''ssh-keygen -t rsa -t rsa -C &amp;quot;Mark.A.Yoder@Rose-Hulman.edu&amp;quot;'''&lt;br /&gt;
 Generating public/private rsa key pair.&lt;br /&gt;
 Enter file in which to save the key (/home/root/.ssh/id_rsa): &lt;br /&gt;
 Enter passphrase (empty for no passphrase): &lt;br /&gt;
 Enter same passphrase again: &lt;br /&gt;
 Your identification has been saved in /home/root/.ssh/id_rsa.&lt;br /&gt;
 Your public key has been saved in /home/root/.ssh/id_rsa.pub.&lt;br /&gt;
 The key fingerprint is:&lt;br /&gt;
 1d:21:25:ec:ef:14:d8:7f:1b:81:42:ab:f6:43:b5:15 Mark.A.Yoder@Rose-Hulman.edu&lt;br /&gt;
 The key's randomart image is:&lt;br /&gt;
 +--[ RSA 2048]----+&lt;br /&gt;
 |       .o.o      |&lt;br /&gt;
 |        .o..  E  |&lt;br /&gt;
 |       . +.. . . |&lt;br /&gt;
 |        o.=.o o  |  &lt;br /&gt;
 |        So.= o . |&lt;br /&gt;
 |        o + o o  |&lt;br /&gt;
 |       . =   . o |&lt;br /&gt;
 |          +   .  |&lt;br /&gt;
 |           .     |&lt;br /&gt;
 +-----------------+&lt;br /&gt;
 beagle$ '''time git clone git://github.com/MarkAYoder/BeagleBoard-exercises exercises'''&lt;br /&gt;
 real	14m7.983s&lt;br /&gt;
 user	1m8.420s&lt;br /&gt;
 sys	0m23.040s&lt;br /&gt;
 beagle$ '''opkg install alsa-dev'''&lt;br /&gt;
&lt;br /&gt;
The last command loads the alsa .h files.  The library files there, but one symbolic link is missing, so I did:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd /usr/lib'''&lt;br /&gt;
 beagle$ '''ln -s libasound.so.2.0.0 libasound.so''' &lt;br /&gt;
&lt;br /&gt;
 beagle$ '''time opkg install i2c-tools-dev'''&lt;br /&gt;
 real	0m38.284s&lt;br /&gt;
 user	0m23.450s&lt;br /&gt;
 sys	0m0.280s&lt;br /&gt;
&lt;br /&gt;
=== Needed for older version ===&lt;br /&gt;
I needed these for an older version, but not the current one.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install gcc gcc-symlinks libgcc-s-dev -force-overwrite'''&lt;br /&gt;
&lt;br /&gt;
This may do the gcc install too.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install task-sdk-target''' (took about 8 minutes)&lt;br /&gt;
&lt;br /&gt;
Also did&lt;br /&gt;
 beagle$ '''opkg install evtest'''&lt;br /&gt;
&lt;br /&gt;
Here's what's needed to run the Flot demo&lt;br /&gt;
 beagle$ '''opkg install nodejs'''          (took about 1 minute)&lt;br /&gt;
 beagle$ '''opkg install alsa-utils'''      (took about 1 minute)&lt;br /&gt;
&lt;br /&gt;
== What's on a fresh install ==&lt;br /&gt;
&lt;br /&gt;
Here's what I found installed on a fresh image.&lt;br /&gt;
&lt;br /&gt;
=== xM ===&lt;br /&gt;
&lt;br /&gt;
=== bone ===&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg list_installed &amp;gt; /tmp/installed'''&lt;br /&gt;
 beagle$ '''wc /tmp/installed'''&lt;br /&gt;
  2279   6837 114831 /tmp/installed&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
abiword - 2.8.6-r2&lt;br /&gt;
alsa-conf-base - 1.0.25-r1&lt;br /&gt;
alsa-states - 0.2.0-r2&lt;br /&gt;
alsa-utils - 1.0.25-r2&lt;br /&gt;
alsa-utils-aconnect - 1.0.25-r2&lt;br /&gt;
alsa-utils-alsaconf - 1.0.25-r2&lt;br /&gt;
alsa-utils-alsactl - 1.0.25-r2&lt;br /&gt;
alsa-utils-alsaloop - 1.0.25-r2&lt;br /&gt;
alsa-utils-alsamixer - 1.0.25-r2&lt;br /&gt;
alsa-utils-alsaucm - 1.0.25-r2&lt;br /&gt;
alsa-utils-amixer - 1.0.25-r2&lt;br /&gt;
alsa-utils-aplay - 1.0.25-r2&lt;br /&gt;
alsa-utils-aseqdump - 1.0.25-r2&lt;br /&gt;
alsa-utils-aseqnet - 1.0.25-r2&lt;br /&gt;
alsa-utils-iecset - 1.0.25-r2&lt;br /&gt;
alsa-utils-midi - 1.0.25-r2&lt;br /&gt;
alsa-utils-speakertest - 1.0.25-r2&lt;br /&gt;
angstrom-clearlooks-theme-enable - 1.0-r0&lt;br /&gt;
angstrom-feed-configs - v2012.05-r0&lt;br /&gt;
angstrom-gdm-autologin-hack - 1.0-r1&lt;br /&gt;
angstrom-gnome-icon-theme-enable - 1.0-r1&lt;br /&gt;
angstrom-task-boot - 1.0-r4&lt;br /&gt;
angstrom-task-gnome - 1.0-r12&lt;br /&gt;
angstrom-version - 2:v2012.05-r11&lt;br /&gt;
aspell - 0.60.6.1-r1&lt;br /&gt;
attr - 2.4.46-r4&lt;br /&gt;
attr-dev - 2.4.46-r4&lt;br /&gt;
autoconf - 2.68-r7&lt;br /&gt;
automake - 1.11.2-r3&lt;br /&gt;
avahi-daemon - 0.6.31-r2.0&lt;br /&gt;
avahi-systemd - 0.6.31-r2.0&lt;br /&gt;
avahi-utils - 0.6.31-r2.0&lt;br /&gt;
base-files - 3.0.14-r87&lt;br /&gt;
base-passwd - 3.5.24-r0&lt;br /&gt;
bash - 4.2-r2&lt;br /&gt;
bash-dev - 4.2-r2&lt;br /&gt;
bc - 1.06-r1&lt;br /&gt;
beaglebone-capes - 1.0-r3&lt;br /&gt;
beaglebone-getting-started - 1.0-r21&lt;br /&gt;
beaglebone-tester - 1.0-r17&lt;br /&gt;
bigreqsproto-dev - 1:1.1.1-r0&lt;br /&gt;
binutils - 2.20.1-r9&lt;br /&gt;
binutils-symlinks - 2.20.1-r9&lt;br /&gt;
bison - 2.5-r1&lt;br /&gt;
bison-dev - 2.5-r1&lt;br /&gt;
bluez4 - 4.99-r1&lt;br /&gt;
bonescript - 1.0-r15&lt;br /&gt;
bonnie++ - 1.03c-r0&lt;br /&gt;
busybox - 1.19.4-r6&lt;br /&gt;
busybox-syslog - 1.19.4-r6&lt;br /&gt;
busybox-udhcpc - 1.19.4-r6&lt;br /&gt;
bzip2 - 1.0.6-r5&lt;br /&gt;
bzip2-dev - 1.0.6-r5&lt;br /&gt;
ca-certificates - 20120212-r0&lt;br /&gt;
canutils - 4.0.6-r0&lt;br /&gt;
cloud9 - 0.6-r1&lt;br /&gt;
compositeproto-dev - 1:0.4.2-r0&lt;br /&gt;
connman - 0.79-r3&lt;br /&gt;
connman-gnome - 0.5-r10&lt;br /&gt;
connman-plugin-bluetooth - 0.79-r3&lt;br /&gt;
connman-plugin-ethernet - 0.79-r3&lt;br /&gt;
connman-plugin-fake - 0.79-r3&lt;br /&gt;
connman-plugin-loopback - 0.79-r3&lt;br /&gt;
connman-plugin-ofono - 0.79-r3&lt;br /&gt;
connman-plugin-wifi - 0.79-r3&lt;br /&gt;
connman-systemd - 0.79-r3&lt;br /&gt;
connman-tests - 0.79-r3&lt;br /&gt;
consolekit - 0.4.5-r9&lt;br /&gt;
coreutils - 8.14-r3&lt;br /&gt;
coreutils-dev - 8.14-r3&lt;br /&gt;
cpp - 4.5-r49+svnr184907&lt;br /&gt;
cpp-symlinks - 4.5-r49+svnr184907&lt;br /&gt;
cpufrequtils - 008-r3&lt;br /&gt;
cracklib - 2.8.18-r4&lt;br /&gt;
cracklib-dev - 2.8.18-r4&lt;br /&gt;
cronie - 1.4.8-r4&lt;br /&gt;
cronie-systemd - 1.4.8-r4&lt;br /&gt;
curl - 7.24.0-r0&lt;br /&gt;
curl-dev - 7.24.0-r0&lt;br /&gt;
damageproto-dev - 1:1.2.1-r0&lt;br /&gt;
db - 5.1.19-r4&lt;br /&gt;
db-dev - 5.1.19-r4&lt;br /&gt;
dbus-1 - 1.4.16-r3.0&lt;br /&gt;
dbus-systemd - 1.4.16-r3.0&lt;br /&gt;
dbus-x11 - 1.4.16-r3.0&lt;br /&gt;
debianutils - 2.30-r0&lt;br /&gt;
desktop-file-utils - 0.18-r0&lt;br /&gt;
devmem2 - 1.0-r7&lt;br /&gt;
diffstat - 1.55-r0&lt;br /&gt;
diffutils - 3.2-r0&lt;br /&gt;
dropbear - 2012.55-r2&lt;br /&gt;
dropbear-systemd - 2012.55-r2&lt;br /&gt;
e2fsprogs - 1.42.1-r0&lt;br /&gt;
e2fsprogs-badblocks - 1.42.1-r0&lt;br /&gt;
e2fsprogs-dev - 1.42.1-r0&lt;br /&gt;
e2fsprogs-e2fsck - 1.42.1-r0&lt;br /&gt;
eglibc-binary-localedata-en-us - 2.12-r20&lt;br /&gt;
eglibc-charmap-ibm850 - 2.12-r20&lt;br /&gt;
eglibc-extra-nss - 2.12-r28&lt;br /&gt;
eglibc-gconv - 2.12-r20&lt;br /&gt;
eglibc-gconv-cp1252 - 2.12-r20&lt;br /&gt;
eglibc-gconv-ibm850 - 2.12-r20&lt;br /&gt;
eglibc-gconv-iso8859-1 - 2.12-r20&lt;br /&gt;
eglibc-gconv-iso8859-15 - 2.12-r20&lt;br /&gt;
elfutils - 0.148-r7&lt;br /&gt;
enca - 1.9-r0&lt;br /&gt;
enchant - 1.6.0-r2&lt;br /&gt;
encodings - 1:1.0.4-r2.1&lt;br /&gt;
epiphany - 2.30.6-r0&lt;br /&gt;
evtest - 1.25-r0&lt;br /&gt;
fbset - 2.1-r4&lt;br /&gt;
fbset-modes - 0.1.0-r6&lt;br /&gt;
file - 5.11-r0&lt;br /&gt;
findutils - 4.4.2-r2&lt;br /&gt;
firefox - 10.0.2-r2&lt;br /&gt;
fixesproto-dev - 1:5.0-r0&lt;br /&gt;
flex - 2.5.35-r3&lt;br /&gt;
flex-dev - 2.5.35-r3&lt;br /&gt;
font-alias - 1:1.0.3-r2.3&lt;br /&gt;
font-update-common - 0.1-r1&lt;br /&gt;
font-util - 1.3.0-r2.0&lt;br /&gt;
fontconfig-utils - 2.8.0-r4&lt;br /&gt;
g++ - 4.5-r49+svnr184907&lt;br /&gt;
g++-symlinks - 4.5-r49+svnr184907&lt;br /&gt;
gadget-init - 1.0-r19&lt;br /&gt;
gadget-init-network - 1.0-r19&lt;br /&gt;
gadget-init-storage - 1.0-r19&lt;br /&gt;
gadget-init-udhcpd - 1.0-r19&lt;br /&gt;
gateone - 1.1-r5&lt;br /&gt;
gawk - 4.0.0-r1&lt;br /&gt;
gawk-common - 4.0.0-r1&lt;br /&gt;
gcc - 4.5-r49+svnr184907&lt;br /&gt;
gcc-symlinks - 4.5-r49+svnr184907&lt;br /&gt;
gconf - 3.2.3-r8&lt;br /&gt;
gdb - 7.4-r8.0&lt;br /&gt;
gdbserver - 7.4-r8.0&lt;br /&gt;
gdk-pixbuf - 2.24.1-r0&lt;br /&gt;
gdk-pixbuf-dev - 2.24.1-r0&lt;br /&gt;
gdk-pixbuf-loader-gif - 2.24.1-r0&lt;br /&gt;
gdk-pixbuf-loader-jpeg - 2.24.1-r0&lt;br /&gt;
gdk-pixbuf-loader-png - 2.24.1-r0&lt;br /&gt;
gdk-pixbuf-loader-xpm - 2.24.1-r0&lt;br /&gt;
gdm - 2.32.2-r7&lt;br /&gt;
gdm-systemd - 2.32.2-r7&lt;br /&gt;
gedit - 2.30.4-r0&lt;br /&gt;
gegl - 0.1.8-r0&lt;br /&gt;
gimp - 2.6.11-r1&lt;br /&gt;
git - 1.7.10.2-r0&lt;br /&gt;
glib-networking - 2.28.7-r2&lt;br /&gt;
glibmm - 2.28.2-r1&lt;br /&gt;
gnome-bluetooth - 2.32.0-r1&lt;br /&gt;
gnome-common - 2.28.0-r1&lt;br /&gt;
gnome-common-dev - 2.28.0-r1&lt;br /&gt;
gnome-control-center - 2.32.1-r0&lt;br /&gt;
gnome-disk-utility - 2.32.0-r1&lt;br /&gt;
gnome-icon-theme - 2.31.0-r2&lt;br /&gt;
gnome-keyring - 2.32.1-r6&lt;br /&gt;
gnome-panel - 2.32.1-r6&lt;br /&gt;
gnome-power-manager - 2.32.0-r2&lt;br /&gt;
gnome-session - 2.32.1-r2&lt;br /&gt;
gnome-settings-daemon - 2.32.1-r5&lt;br /&gt;
gnome-system-monitor - 2.28.2-r0&lt;br /&gt;
gnome-theme-crux - 2.32.1-r1&lt;br /&gt;
gnome-theme-highcontrast - 2.32.1-r1&lt;br /&gt;
gnome-theme-highcontrastinverse - 2.32.1-r1&lt;br /&gt;
gnome-theme-highcontrastlargeprint - 2.32.1-r1&lt;br /&gt;
gnome-theme-highcontrastlargeprintinverse - 2.32.1-r1&lt;br /&gt;
gnome-theme-largeprint - 2.32.1-r1&lt;br /&gt;
gnome-theme-mist - 2.32.1-r1&lt;br /&gt;
gnome-themes - 2.32.1-r1&lt;br /&gt;
gnu-config - 20111111-r1&lt;br /&gt;
gpe-scap - 1.4-r3&lt;br /&gt;
grep - 2.9-r1&lt;br /&gt;
gst-ffmpeg - 0.10.13-r4&lt;br /&gt;
gst-plugins-base - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-adder - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-alsa - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-app - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-apps - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-audioconvert - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-audiorate - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-audioresample - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-audiotestsrc - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-decodebin - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-decodebin2 - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-encodebin - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-ffmpegcolorspace - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-gdp - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-gio - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-glib - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-ivorbisdec - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-meta - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-ogg - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-playbin - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-subparse - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-tcp - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-theora - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-typefindfunctions - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-videorate - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-videoscale - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-videotestsrc - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-volume - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-vorbis - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-ximagesink - 0.10.36-r3&lt;br /&gt;
gst-plugins-base-xvimagesink - 0.10.36-r3&lt;br /&gt;
gstreamer - 0.10.36-r0&lt;br /&gt;
gstreamer-dev - 0.10.36-r0&lt;br /&gt;
gtk+-dev - 2.24.8-r4&lt;br /&gt;
gtk-engine-clearlooks - 2.20.2-r1&lt;br /&gt;
gtk-engine-crux-engine - 2.20.2-r1&lt;br /&gt;
gtk-engine-glide - 2.20.2-r1&lt;br /&gt;
gtk-engine-hcengine - 2.20.2-r1&lt;br /&gt;
gtk-engine-mist - 2.20.2-r1&lt;br /&gt;
gtk-engine-redmond95 - 2.20.2-r1&lt;br /&gt;
gtk-engine-thinice - 2.20.2-r1&lt;br /&gt;
gtk-theme-clearlooks - 2.20.2-r1&lt;br /&gt;
gtk-theme-crux - 2.20.2-r1&lt;br /&gt;
gtk-theme-mist - 2.20.2-r1&lt;br /&gt;
gtk-theme-redmond - 2.20.2-r1&lt;br /&gt;
gtk-theme-thinice - 2.20.2-r1&lt;br /&gt;
gtkmm - 2.20.0-r0.1&lt;br /&gt;
gvfs - 1.8.2-r6.0&lt;br /&gt;
gvfs-gdu-volume-monitor - 1.8.2-r6.1&lt;br /&gt;
gvfsd-ftp - 1.8.2-r6.0&lt;br /&gt;
gvfsd-sftp - 1.8.2-r6.0&lt;br /&gt;
gvfsd-trash - 1.8.2-r6.0&lt;br /&gt;
gzip - 1.4-r1&lt;br /&gt;
hdparm - 9.39-r1&lt;br /&gt;
hicolor-icon-theme - 0.12-r1&lt;br /&gt;
htop - 0.9-r1&lt;br /&gt;
i2c-tools - 3.0.3-r0&lt;br /&gt;
imagemagick - 6.7.5-r2&lt;br /&gt;
inputproto-dev - 1:2.2-r0&lt;br /&gt;
iozone3 - 263-r0&lt;br /&gt;
iperf - 2.0.4-r0&lt;br /&gt;
iproute2 - 3.2.0-r1&lt;br /&gt;
iptables - 1.4.12.2-r0&lt;br /&gt;
iputils - s20101006-r3&lt;br /&gt;
iputils-arping - s20101006-r3&lt;br /&gt;
iputils-ping - s20101006-r3&lt;br /&gt;
iputils-ping6 - s20101006-r3&lt;br /&gt;
iputils-tracepath - s20101006-r3&lt;br /&gt;
iputils-tracepath6 - s20101006-r3&lt;br /&gt;
iputils-traceroute6 - s20101006-r3&lt;br /&gt;
iso-codes - 1.4-r1&lt;br /&gt;
iso-codes-locale-en - 1.4-r1&lt;br /&gt;
iw - 3.2-r1&lt;br /&gt;
kbproto-dev - 1:1.0.5-r0&lt;br /&gt;
kernel - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-3.2.16 - 3.2.16-r11o+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-3.2.18 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-boot - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-boot2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-down - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-down2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-down3 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-keyspan-pda - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-new-code - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-new-code-fix - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-trigger-code - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-firmware-trigger-code-fix - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-image-3.2.16 - 3.2.16-r11o+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-image-3.2.18 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-8021q - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-a8293 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad2s1200 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad5064 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad5360 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad5933 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad714x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad714x-i2c - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad714x-spi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad7192 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad7280a - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad7314 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad7414 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad7418 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ad7746 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adcxx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adm1021 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adm1025 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adm1026 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adm1029 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adm1031 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adm9240 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ads1015 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ads7828 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ads7871 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adt7411 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adt7462 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adt7470 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adt7475 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adxl34x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adxl34x-i2c - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-adxl34x-spi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-aes-generic - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-af9013 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ah4 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ah6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-aircable - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-amc6821 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-aoe - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-appledisplay - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-arc4 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ark3116 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-arp-tables - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-asc7621 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-asix - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-async-memcpy - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-async-pq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-async-raid6-recov - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-async-tx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-async-xor - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-at76c50x-usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-atbm8830 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ath - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ath6kl - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ati-remote - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ati-remote2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-atxp1 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-au8522 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-authenc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-authencesn - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-b43 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bcm203x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bcm3510 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-belkin-sa - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bfusb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bluetooth - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bma150 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bmp085 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bnep - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bonding - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bpa10x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-brcmfmac - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-brcmutil - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bridge - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-bsd-comp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-btrfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-btsdio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-btusb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-can-bcm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-can-gw - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-carl9170 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-catc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cbc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cdc-ether - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cdc-ncm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cdc-subset - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cfg80211 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ch341 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cifs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cm109 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cma3000-d0x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cma3000-d0x-i2c - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cp210x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cramfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cryptoloop - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cs53l32a - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cuse - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx22700 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx22702 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx231xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx231xx-alsa - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx231xx-dvb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx2341x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx24110 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx24113 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx24116 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx24123 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx25840 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cx82310-eth - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cxd2820r - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cypress-cy7c63 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cypress-m8 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-cytherm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-des-generic - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib0070 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib0090 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib3000mb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib3000mc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib7000m - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib7000p - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib8000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dib9000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dibx000-common - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-digi-acceleport - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-crypt - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-flakey - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-log - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-log-userspace - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-mirror - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-mod - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-multipath - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-queue-length - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-raid - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-region-hash - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-round-robin - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-service-time - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-snapshot - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm-zero - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dm9601 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dme1737 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-drm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-drxd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-drxk - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ds1621 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ds1wm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ds2482 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ds2490 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ds3000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ds620 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dummy - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dvb-as102 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dvb-core - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-dvb-pll - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-easycap - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ec100 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ecb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-eeprom-93cx6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-em28xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-em28xx-alsa - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-em28xx-dvb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-emc1403 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-emc2103 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-emc6w201 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-empeg - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ems-usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-eql - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-esd-usb2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-esp4 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-esp6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-et61x251 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ext2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-f71805f - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-f71882fg - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-f75375s - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-faulty - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ff-memless - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ftdi-elan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ftdi-sio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-funsoft - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-fuse - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-audio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-cdc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-dbgp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-ether - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-ffs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-file-storage - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-hid - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-mass-storage - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-midi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-multi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-ncm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-printer - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-serial - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-webcam - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g-zero - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-g760a - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gadgetfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-garmin-gps - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-garp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gfs2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gl518sm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gl520sm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gl620a - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gpio-fan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gre - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-benq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-conex - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-cpia1 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-etoms - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-finepix - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-gl860 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-jeilinj - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-kinect - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-konica - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-m5602 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-main - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-mars - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-mr97310a - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-nw80x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-ov519 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-ov534 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-ov534-9 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-pac207 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-pac7302 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-pac7311 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-se401 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sn9c2028 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sn9c20x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sonixb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sonixj - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca1528 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca500 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca501 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca505 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca506 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca508 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-spca561 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sq905 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sq905c - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sq930x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-stk014 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-stv0680 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-stv06xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-sunplus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-t613 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-topro - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-tv8532 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-vc032x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-vicam - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-xirlink-cit - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-gspca-zc3xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hci-uart - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hdpvr - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hidp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hmac - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hostap - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hp4x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hso - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-hwmon-vid - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-i2400m - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-i2400m-sdio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-i2400m-usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-i2c-algo-bit - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-idmouse - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iio-dummy - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iio-dummy-evgen - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iio-trig-gpio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iio-trig-periodic-rtc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iio-trig-sysfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-imon - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-inet-lro - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-input-polldev - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-int51x1 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-io-edgeport - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-io-ti - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ip-gre - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ip-tables - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ip6-tunnel - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipaq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipcomp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipcomp6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipheth - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipip - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipv6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ipw - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-jvc-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-kbd-i2c - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-lirc-codec - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-mce-kbd-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-nec-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-rc5-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-rc5-sz-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-rc6-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-sony-decoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ir-usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ircomm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ircomm-tty - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-irda - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-irda-usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-irlan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-irnet - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-irtty-sir - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-isl6405 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-isl6421 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-isl6423 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-isofs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-it87 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-it913x-fe - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-itd1000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iuu-phoenix - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-iwmc3200top - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ix2505v - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-jc42 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-jfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-joydev - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-kalmia - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-kaweth - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-keucr - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-keyspan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-keyspan-pda - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-keyspan-remote - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-kingsun-sir - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-kl5kusb105 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-kobil-sct - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ks959-sir - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ksdazzle-sir - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-kxtj9 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-l64781 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-legousbtower - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lg-vl600 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lgdt3305 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lgdt330x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lgs8gl5 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lgs8gxx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lib80211 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lib80211-crypt-ccmp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lib80211-crypt-tkip - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lib80211-crypt-wep - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-libceph - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-libertas - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-libertas-sdio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lineage-pem - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-linear - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lirc-dev - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-llc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm63 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm70 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm73 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm75 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm77 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm78 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm80 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm83 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm85 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm87 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm90 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm92 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm93 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm95241 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lm95245 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lnbp21 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lnbp22 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-lp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ltc2978 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ltc4151 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ltc4215 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ltc4245 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ltc4261 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mac80211 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-macvlan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-macvtap - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max1111 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max16065 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max1619 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max1668 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max2165 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max6639 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max6642 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-max6650 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mb86a16 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mb86a20s - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mc44s803 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mceusb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mcs7780 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mcs7830 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mct-u232 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-md-mod - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-md4 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-md5 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mip6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mma8450 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mos7720 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mos7840 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-moto-modem - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mpu3050 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-msp3400 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mt2060 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mt20xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mt2131 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mt2266 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mt312 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mt352 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-multipath - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mxl5005s - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-mxl5007t - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-navman - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nbd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nci - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-net1080 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-netconsole - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nfc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nfsd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nilfs2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ntc-thermistor - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nxt200x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-nxt6000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-omapdss - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-omapfb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-oprofile - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-opticon - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-or51132 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-or51211 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-oti6858 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-p54common - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-p54spi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-p54usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-p8022 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-acx565akm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-dvi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-generic-dpi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-n8x0 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-nec-nl8048hl11-01b - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-picodlp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-sharp-ls037v7dw01 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-taal - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-panel-tpo-td043mtea1 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-parport - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pc87360 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pc87427 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pcf8574-keypad - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pcf8591 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pegasus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pktcdvd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pl2303 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-plusb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pmbus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pmbus-core - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pn533 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pn544 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-poseidon - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-powermate - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ppp-async - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ppp-deflate - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ppp-generic - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ppp-mppe - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ppp-synctty - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pppoe - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pppox - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pptp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-prism2-usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-psnap - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pvrusb2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-pwc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-qcaux - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-qcserial - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-qt1010 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-quatech-usb2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-quota-tree - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-quota-v2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-r8712u - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-raid0 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-raid1 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-raid10 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-raid456 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-raid6-pq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-raw - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-adstech-dvb-t-pci - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-alink-dtu-m - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-anysee - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-apac-viewcomp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-asus-pc39 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-ati-tv-wonder-hd-600 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-ati-x10 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia-a16d - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia-cardbus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia-dvbt - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia-m135a - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia-m733a-rm-k6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avermedia-rm-ks - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-avertv-303 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-azurewave-ad-tu700 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-behold - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-behold-columbus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-budget-ci-old - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-cinergy - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-cinergy-1400 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-core - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-dib0700-nec - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-dib0700-rc5 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-digitalnow-tinytwin - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-digittrade - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-dm1105-nec - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-dntv-live-dvb-t - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-dntv-live-dvbt-pro - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-em-terratec - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-encore-enltv - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-encore-enltv-fm53 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-encore-enltv2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-evga-indtube - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-eztv - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-flydvb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-flyvideo - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-fusionhdtv-mce - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-gadmei-rm008z - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-genius-tvgo-a11mce - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-gotview7135 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-hauppauge - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-imon-mce - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-imon-pad - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-iodata-bctv7e - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-kaiomy - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-kworld-315u - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-kworld-plus-tv-analog - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-leadtek-y04g0051 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-lirc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-lme2510 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-loopback - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-manli - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-medion-x10 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-msi-digivox-ii - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-msi-digivox-iii - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-msi-tvanywhere - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-msi-tvanywhere-plus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-nebula - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-nec-terratec-cinergy-xs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-norwood - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-npgtech - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pctv-sedna - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pinnacle-color - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pinnacle-grey - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pinnacle-pctv-hd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pixelview - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pixelview-002t - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pixelview-mk12 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pixelview-new - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-powercolor-real-angel - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-proteus-2309 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-purpletv - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-pv951 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-rc6-mce - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-real-audio-220-32-keys - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-snapstream-firefly - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-streamzap - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-tbs-nec - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-technisat-usb2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-terratec-cinergy-xs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-terratec-slim - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-terratec-slim-2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-tevii-nec - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-tivo - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-total-media-in-hand - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-trekstor - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-tt-1500 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-twinhan1027 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-videomate-m1f - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-videomate-s350 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-videomate-tv-pvr - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-winfast - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rc-winfast-usbii-deluxe - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-redrat3 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-reiserfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rfcomm - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rfkill - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rfkill-gpio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rfkill-regulator - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rndis-host - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rndis-wlan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rotary-encoder - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rt2500usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rt2800lib - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rt2800usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rt2x00lib - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rt2x00usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rt73usb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rtl8150 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rtl8187 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rtl8192c-common - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rtl8192cu - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rtlwifi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-rts5139 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-s2255drv - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-s5h1409 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-s5h1411 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-s5h1420 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-s5h1432 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-s921 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-saa7115 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-safe-serial - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch-cbq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch-hfsc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch-htb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch-multiq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch-prio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch-red - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch5627 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch5636 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sch56xx-common - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-scsi-wait-scan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-serqt-usb2 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sha1-generic - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sht15 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sht21 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-si21xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-siemens-mpi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sierra - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sierra-net - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sir-dev - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sisusbvga - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sit - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-slcan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-slhc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-slip - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smm665 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smsc47b397 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smsc47m1 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smsc47m192 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smsc75xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smsc95xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-smscufx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sn9c102 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-snd-hrtimer - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-snd-seq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-snd-seq-device - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-snd-seq-dummy - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-snd-seq-midi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-snd-seq-midi-event - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sp8870 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-sp887x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-spcp8x5 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-spi-bitbang - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-spi-gpio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-spidev - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ssb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ssu100 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stb0899 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stb6000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stb6100 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stir4200 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stkwebcam - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-streamzap - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv0288 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv0297 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv0299 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv0367 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv0900 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv090x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv6110 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-stv6110x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-bic - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-highspeed - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-htcp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-hybla - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-illinois - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-lp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-scalable - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-vegas - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-veno - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-westwood - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tcp-yeah - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda10021 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda10023 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda10048 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda1004x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda10071 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda10086 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda18212 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda18218 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda18271 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda18271c2dd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda665x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda8083 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda8261 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda826x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda827x - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda8290 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tda9887 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tea5761 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tea5767 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-test-power - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-thmc50 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ti-hecc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tmp102 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tmp401 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tmp421 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tsc2005 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tsc2007 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tsc40 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tsl2550 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tua6100 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tun - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tuner - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tuner-simple - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tuner-types - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tuner-xc2028 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tunnel4 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tunnel6 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-tveeprom - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-twl4030-vibra - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-twl6040-vibra - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-udf - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-udlfb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-uinput - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-uio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-uio-pdrv - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-uio-pdrv-genirq - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-uio-pruss - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usb-debug - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usb-wwan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usb8xxx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usblcd - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbled - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbnet - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbserial - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbtest - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbtmc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbtouchscreen - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-usbvision - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-uvcvideo - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-vcan - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ves1820 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-ves1x93 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-videobuf-core - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-videobuf-dvb - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-videobuf-vmalloc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-videobuf2-core - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-videobuf2-memops - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-videobuf2-vmalloc - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-virtio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-virtio-mmio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-virtio-ring - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-visor - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-vivi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-vivopay-serial - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-vt1211 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-bq27000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-ds2408 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-ds2423 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-ds2431 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-ds2433 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-ds2760 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-ds2780 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w1-smem - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w35und - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83627ehf - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83627hf - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83781d - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83791d - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83792d - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83793 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83795 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83l785ts - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-w83l786ng - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-wimax - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-wl12xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-wl12xx-sdio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-wl12xx-spi - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-wm8775 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-x-tables - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xc4000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xc5000 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm-ipcomp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm4-tunnel - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm6-mode-beet - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm6-mode-ro - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm6-mode-transport - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm6-mode-tunnel - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfrm6-tunnel - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xfs - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xor - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xt-audit - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-xt-tcpudp - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-yealink - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zaurus - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zd1201 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zd1211rw - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zio - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zl10036 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zl10039 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zl10353 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zl6100 - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-module-zr364xx - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
kernel-modules - 3.2.18-r12j+gitr720e07b4c1f687b61b147b31c698cb6816d72f01&lt;br /&gt;
lcms - 1.17-r4&lt;br /&gt;
led-config - 1.0-r12&lt;br /&gt;
liba52-0 - 0.7.4-r4&lt;br /&gt;
libacl1 - 2.2.51-r3&lt;br /&gt;
libasound2 - 1.0.25-r1&lt;br /&gt;
libaspell15 - 0.60.6.1-r1&lt;br /&gt;
libass4 - 0.9.11-r1.0&lt;br /&gt;
libatasmart4 - 0.17-r1&lt;br /&gt;
libatk-1.0-0 - 2.2.0-r2&lt;br /&gt;
libatk-1.0-dev - 2.2.0-r2&lt;br /&gt;
libattr-dev - 2.4.46-r4&lt;br /&gt;
libattr1 - 2.4.46-r4&lt;br /&gt;
libavahi-client3 - 0.6.31-r2.0&lt;br /&gt;
libavahi-common3 - 0.6.31-r2.0&lt;br /&gt;
libavahi-core7 - 0.6.31-r2.0&lt;br /&gt;
libavahi-glib1 - 0.6.31-r2.0&lt;br /&gt;
libavahi-gobject0 - 0.6.31-r2.0&lt;br /&gt;
libavahi-ui0 - 0.6.31-r2.0&lt;br /&gt;
libavcodec53 - 0.7.4-r5.0&lt;br /&gt;
libavfilter2 - 0.7.4-r5.0&lt;br /&gt;
libavformat53 - 0.7.4-r5.0&lt;br /&gt;
libavutil51 - 0.7.4-r5.0&lt;br /&gt;
libbabl-0.1-0 - 0.1.6-r0&lt;br /&gt;
libblkid-dev - 2.21-r5&lt;br /&gt;
libblkid1 - 2.21-r5&lt;br /&gt;
libbz2-0 - 1.0.6-r5&lt;br /&gt;
libbz2-dev - 1.0.6-r5&lt;br /&gt;
libc6 - 2.12-r28&lt;br /&gt;
libc6-dev - 2.12-r28&lt;br /&gt;
libcairo-dev - 1.10.2-r6&lt;br /&gt;
libcairo-gobject2 - 1.10.2-r6&lt;br /&gt;
libcairo-perf-utils - 1.10.2-r6&lt;br /&gt;
libcairo-script-interpreter2 - 1.10.2-r6&lt;br /&gt;
libcairo2 - 1.10.2-r6&lt;br /&gt;
libcairomm-1.0-1 - 1.10.0-r1&lt;br /&gt;
libcanberra-gtk - 0.26-r1&lt;br /&gt;
libcanberra0 - 0.26-r1&lt;br /&gt;
libcap-dev - 2.22-r3&lt;br /&gt;
libcap2 - 2.22-r3&lt;br /&gt;
libcec - 1.4.0-r1&lt;br /&gt;
libcidn1 - 2.12-r28&lt;br /&gt;
libcom-err2 - 1.42.1-r0&lt;br /&gt;
libcrypto1.0.0 - 1.0.0i-r0.2&lt;br /&gt;
libcurl-dev - 7.24.0-r0&lt;br /&gt;
libcurl5 - 7.24.0-r0&lt;br /&gt;
libdaemon0 - 0.14-r0&lt;br /&gt;
libdbus-1-3 - 1.4.16-r3.0&lt;br /&gt;
libdbus-glib-1-2 - 0.98-r0&lt;br /&gt;
libdvdread4 - 4.1.3-10-r0&lt;br /&gt;
libe2p2 - 1.42.1-r0&lt;br /&gt;
liberation-fonts - 1:1.04-r2&lt;br /&gt;
libevent - 2.0.16-r1&lt;br /&gt;
libexif12 - 0.6.20-r0&lt;br /&gt;
libexpat-dev - 2.0.1-r1&lt;br /&gt;
libexpat1 - 2.0.1-r1&lt;br /&gt;
libfaad2 - 2.7-r1&lt;br /&gt;
libffi-dev - 3.0.10-r0&lt;br /&gt;
libffi5 - 3.0.10-r0&lt;br /&gt;
libfontconfig-dev - 2.8.0-r4&lt;br /&gt;
libfontconfig1 - 2.8.0-r4&lt;br /&gt;
libfontenc1 - 1:1.1.1-r0&lt;br /&gt;
libform5 - 5.9-r9.1&lt;br /&gt;
libformw5 - 5.9-r9.1&lt;br /&gt;
libfreetype-dev - 2.4.9-r0&lt;br /&gt;
libfreetype6 - 2.4.9-r0&lt;br /&gt;
libfribidi0 - 0.19.2-r1&lt;br /&gt;
libfuse2 - 2.8.6-r1&lt;br /&gt;
libgcc-s-dev - 4.5-r49+svnr184907&lt;br /&gt;
libgcc1 - 4.5-r49+svnr184907&lt;br /&gt;
libgcrypt-dev - 1.5.0-r0&lt;br /&gt;
libgcrypt11 - 1.5.0-r0&lt;br /&gt;
libgdbm-compat4 - 1.10-r3&lt;br /&gt;
libgdbm-dev - 1.10-r3&lt;br /&gt;
libgdbm4 - 1.10-r3&lt;br /&gt;
libglade-2.0-0 - 2.6.4-r3&lt;br /&gt;
libgles-omap3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-blitwsegl - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-blitwsegl-es3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-blitwsegl-es5 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-blitwsegl-es6 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-blitwsegl-es8 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-es3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-es5 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-es6 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-es8 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-flipwsegl - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-flipwsegl-es3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-flipwsegl-es5 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-flipwsegl-es6 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-flipwsegl-es8 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-frontwsegl - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-frontwsegl-es3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-frontwsegl-es5 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-frontwsegl-es6 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-frontwsegl-es8 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-linuxfbwsegl - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-linuxfbwsegl-es3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-linuxfbwsegl-es5 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-linuxfbwsegl-es6 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-linuxfbwsegl-es8 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-x11demos - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-x11wsegl - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-x11wsegl-es3 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-x11wsegl-es5 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-x11wsegl-es6 - 4.05.00.03-r31&lt;br /&gt;
libgles-omap3-x11wsegl-es8 - 4.05.00.03-r31&lt;br /&gt;
libglib-2.0-0 - 1:2.30.3-r1&lt;br /&gt;
libglib-2.0-dev - 1:2.30.3-r1&lt;br /&gt;
libglib-2.0-utils - 1:2.30.3-r1&lt;br /&gt;
libgmp-dev - 5.0.4-r0&lt;br /&gt;
libgmp10 - 5.0.4-r0&lt;br /&gt;
libgmpxx4 - 5.0.4-r0&lt;br /&gt;
libgnome-desktop-2-17 - 2.32.1-r4&lt;br /&gt;
libgnome-keyring0 - 2.32.0-r0&lt;br /&gt;
libgnome-menu2 - 2.30.5-r0&lt;br /&gt;
libgnomekbd - 2.32.0-r0&lt;br /&gt;
libgnutls-dev - 2.12.17-r6.0&lt;br /&gt;
libgnutls-extra26 - 2.12.17-r6.0&lt;br /&gt;
libgnutls-openssl27 - 2.12.17-r6.0&lt;br /&gt;
libgnutls26 - 2.12.17-r6.0&lt;br /&gt;
libgnutlsxx27 - 2.12.17-r6.0&lt;br /&gt;
libgpg-error-dev - 1.10-r1&lt;br /&gt;
libgpg-error0 - 1.10-r1&lt;br /&gt;
libgphoto2-2 - 2.4.11-r2&lt;br /&gt;
libgphoto2-camlibs - 2.4.11-r2&lt;br /&gt;
libgphoto2-port0 - 2.4.11-r2&lt;br /&gt;
libgsf - 1.14.21-r3&lt;br /&gt;
libgstapp-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstaudio-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstcdda-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstfft-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstinterfaces-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstnetbuffer-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstpbutils-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstriff-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstrtp-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstrtsp-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstsdp-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgsttag-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgstvideo-0.10-0 - 0.10.36-r3&lt;br /&gt;
libgtk-2.0 - 2.24.8-r4&lt;br /&gt;
libgtksourceview-2.0-0 - 2.10.5-r0&lt;br /&gt;
libgtop-2.0-7 - 2.28.2-r0&lt;br /&gt;
libgudev-1.0-0 - 182-r0&lt;br /&gt;
libgweather1 - 2.30.3-r0&lt;br /&gt;
libical - 0.48-r0&lt;br /&gt;
libice-dev - 1:1.0.8-r0&lt;br /&gt;
libice6 - 1:1.0.8-r0&lt;br /&gt;
libicudata36 - 3.6-r7&lt;br /&gt;
libicui18n36 - 3.6-r7&lt;br /&gt;
libicuuc36 - 3.6-r7&lt;br /&gt;
libjasper-dev - 1.900.1-r1&lt;br /&gt;
libjasper1 - 1.900.1-r1&lt;br /&gt;
libjavascriptcoregtk-1.0-0 - 1.7.2+svnr101488-r5&lt;br /&gt;
libjpeg-dev - 8c+1.2.0-r0&lt;br /&gt;
libjpeg8 - 8c+1.2.0-r0&lt;br /&gt;
libjson0 - 0.9-r0&lt;br /&gt;
libkmod2 - 7-r3&lt;br /&gt;
libltdl-dev - 2.4.2-r2.0&lt;br /&gt;
libltdl7 - 2.4.2-r2.0&lt;br /&gt;
liblzma-dev - 5.0.3-r1&lt;br /&gt;
liblzma5 - 5.0.3-r1&lt;br /&gt;
liblzo2-2 - 2.06-r1&lt;br /&gt;
liblzo2-dev - 2.06-r1&lt;br /&gt;
libmad0 - 0.15.1b-r0&lt;br /&gt;
libmediactl0 - 0.0.1-r1&lt;br /&gt;
libmenu5 - 5.9-r9.1&lt;br /&gt;
libmenuw5 - 5.9-r9.1&lt;br /&gt;
libmicrohttpd5 - 0.4.6-r0&lt;br /&gt;
libmpc2 - 0.8.2-r0&lt;br /&gt;
libmpfr4 - 3.1.0-r1&lt;br /&gt;
libmysqlclient16 - 5.1.40-r7&lt;br /&gt;
libncurses5 - 5.9-r9.1&lt;br /&gt;
libncursesw5 - 5.9-r9.1&lt;br /&gt;
libnl-3-200 - 3.2.3-r0&lt;br /&gt;
libnl-genl-3-200 - 3.2.3-r0&lt;br /&gt;
libnotify - 0.6.0-r0&lt;br /&gt;
libnss-mdns - 0.10-r4&lt;br /&gt;
libogg0 - 1.3.0-r0&lt;br /&gt;
libopencv-calib3d-dev - 2.3.1-r3&lt;br /&gt;
libopencv-calib3d2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-contrib-dev - 2.3.1-r3&lt;br /&gt;
libopencv-contrib2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-core-dev - 2.3.1-r3&lt;br /&gt;
libopencv-core2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-features2d-dev - 2.3.1-r3&lt;br /&gt;
libopencv-features2d2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-flann-dev - 2.3.1-r3&lt;br /&gt;
libopencv-flann2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-gpu-dev - 2.3.1-r3&lt;br /&gt;
libopencv-gpu2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-highgui-dev - 2.3.1-r3&lt;br /&gt;
libopencv-highgui2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-imgproc-dev - 2.3.1-r3&lt;br /&gt;
libopencv-imgproc2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-legacy-dev - 2.3.1-r3&lt;br /&gt;
libopencv-legacy2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-ml-dev - 2.3.1-r3&lt;br /&gt;
libopencv-ml2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-objdetect-dev - 2.3.1-r3&lt;br /&gt;
libopencv-objdetect2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-ts-dev - 2.3.1-r3&lt;br /&gt;
libopencv-ts2.3 - 2.3.1-r3&lt;br /&gt;
libopencv-video-dev - 2.3.1-r3&lt;br /&gt;
libopencv-video2.3 - 2.3.1-r3&lt;br /&gt;
libopenobex1 - 1.5-r0&lt;br /&gt;
libopkg1 - 1:0.1.8+svnr633-r9.0&lt;br /&gt;
liborc-0.4-0 - 0.4.14-r0.0&lt;br /&gt;
libpam - 1.1.5-r3&lt;br /&gt;
libpam-dev - 1.1.5-r3&lt;br /&gt;
libpam-runtime - 1.1.5-r3&lt;br /&gt;
libpanel-applet-3-0 - 2.32.1-r6&lt;br /&gt;
libpanel5 - 5.9-r9.1&lt;br /&gt;
libpanelw5 - 5.9-r9.1&lt;br /&gt;
libpangomm-1.4-1 - 2.28.2-r1&lt;br /&gt;
libpciaccess0 - 0.12.902-r0&lt;br /&gt;
libpcre0 - 8.21-r1&lt;br /&gt;
libpcrecpp0 - 8.21-r1&lt;br /&gt;
libperl5 - 5.14.2-r6&lt;br /&gt;
libpixman-1-0 - 1:0.25.2-r9&lt;br /&gt;
libpixman-1-dev - 1:0.25.2-r9&lt;br /&gt;
libpng-dev - 1.2.49-r0&lt;br /&gt;
libpng12-0 - 1.2.49-r0&lt;br /&gt;
libpng3 - 1.2.49-r0&lt;br /&gt;
libpolkit-gtk-1-0 - 0.102-r1&lt;br /&gt;
libpoppler-glib8 - 0.18.0-r3&lt;br /&gt;
libpoppler18 - 0.18.0-r3&lt;br /&gt;
libpopt-dev - 1.16-r0&lt;br /&gt;
libpopt0 - 1.16-r0&lt;br /&gt;
libpostproc52 - 0.7.4-r5.0&lt;br /&gt;
libproxy - 0.4.7-r4&lt;br /&gt;
libpthread-stubs-dev - 0.3-r0&lt;br /&gt;
libpulse-mainloop-glib0 - 1.1-r8&lt;br /&gt;
libpulse0 - 1.1-r8&lt;br /&gt;
libpulsecommon - 1.1-r8&lt;br /&gt;
libpython2.7-1.0 - 2.7.2-r3.17&lt;br /&gt;
libreadline-dev - 6.2-r2&lt;br /&gt;
libreadline6 - 6.2-r2&lt;br /&gt;
librsvg-2-2 - 2.32.1-r5&lt;br /&gt;
librsvg-2-gtk - 2.32.1-r5&lt;br /&gt;
libsamplerate0 - 0.1.8-r0&lt;br /&gt;
libsdl-1.2-0 - 1.2.15-r0&lt;br /&gt;
libsdl-mixer-1.2-0 - 1.2.11-r0&lt;br /&gt;
libsigc-2.0-0 - 2.2.9-r0&lt;br /&gt;
libsm-dev - 1:1.2.1-r0&lt;br /&gt;
libsm6 - 1:1.2.1-r0&lt;br /&gt;
libsmbclient0 - 3.5.6-r1&lt;br /&gt;
libsndfile1 - 1.0.25-r0&lt;br /&gt;
libsocketcan2 - 0.0.8-r0&lt;br /&gt;
libsoup-2.4 - 2.37.2-r1&lt;br /&gt;
libsqlite3-0 - 3.7.10-r2&lt;br /&gt;
libsqlite3-dev - 3.7.10-r2&lt;br /&gt;
libss2 - 1.42.1-r0&lt;br /&gt;
libssl1.0.0 - 1.0.0i-r0.2&lt;br /&gt;
libstartup-notification-1-0 - 0.12-r1&lt;br /&gt;
libstdc++-dev - 4.5-r49+svnr184907&lt;br /&gt;
libstdc++6 - 4.5-r49+svnr184907&lt;br /&gt;
libswscale2 - 0.7.4-r5.0&lt;br /&gt;
libsysfs2 - 2.1.0-r3&lt;br /&gt;
libsystemd-daemon0 - v44-45-g3eff420-r27&lt;br /&gt;
libsystemd-id128-0 - v44-45-g3eff420-r27&lt;br /&gt;
libsystemd-journal0 - v44-45-g3eff420-r27&lt;br /&gt;
libsystemd-login0 - v44-45-g3eff420-r27&lt;br /&gt;
libtalloc2 - 2.0.1-r1&lt;br /&gt;
libtasn1-3 - 2.11-r0&lt;br /&gt;
libtasn1-dev - 2.11-r0&lt;br /&gt;
libtheora - 1.1.1-r1&lt;br /&gt;
libthread-db1 - 2.12-r28&lt;br /&gt;
libtic5 - 5.9-r9.1&lt;br /&gt;
libticw5 - 5.9-r9.1&lt;br /&gt;
libtiff-dev - 4.0.1-r1&lt;br /&gt;
libtiff5 - 4.0.1-r1&lt;br /&gt;
libtinfo5 - 5.9-r9.1&lt;br /&gt;
libtool - 2.4.2-r2.0&lt;br /&gt;
libtool-dev - 2.4.2-r2.0&lt;br /&gt;
libts-1.0-0 - 1.0+gitr1+e17263ef401ee885a27d649b90b577cfb44500e0-r8&lt;br /&gt;
libudev0 - 182-r0&lt;br /&gt;
libunique-1.0-0 - 1.1.6-r6&lt;br /&gt;
libusb-0.1-4 - 1:0.1.3-r4&lt;br /&gt;
libusb-1.0-0 - 1.0.8-r4&lt;br /&gt;
libuuid-dev - 2.21-r5&lt;br /&gt;
libuuid1 - 2.21-r5&lt;br /&gt;
libv4l2subdev0 - 0.0.1-r1&lt;br /&gt;
libvorbis - 1.3.3-r0&lt;br /&gt;
libvorbisidec1 - 20120314-r0&lt;br /&gt;
libvte9 - 0.28.2-r3&lt;br /&gt;
libwebkitgtk-1.0-0 - 1.7.2+svnr101488-r5&lt;br /&gt;
libwnck - 2.30.5-r1&lt;br /&gt;
libwrap0 - 7.6-r9&lt;br /&gt;
libx11-6 - 1:1.4.4-r3&lt;br /&gt;
libx11-dev - 1:1.4.4-r3&lt;br /&gt;
libx11-xcb1 - 1:1.4.4-r3&lt;br /&gt;
libxau-dev - 1:1.0.7-r0&lt;br /&gt;
libxau6 - 1:1.0.7-r0&lt;br /&gt;
libxaw7-7 - 1:1.0.10-r0&lt;br /&gt;
libxcb-composite0 - 1.8.1-r0&lt;br /&gt;
libxcb-damage0 - 1.8.1-r0&lt;br /&gt;
libxcb-dev - 1.8.1-r0&lt;br /&gt;
libxcb-dpms0 - 1.8.1-r0&lt;br /&gt;
libxcb-dri2-0 - 1.8.1-r0&lt;br /&gt;
libxcb-glx0 - 1.8.1-r0&lt;br /&gt;
libxcb-randr0 - 1.8.1-r0&lt;br /&gt;
libxcb-record0 - 1.8.1-r0&lt;br /&gt;
libxcb-render0 - 1.8.1-r0&lt;br /&gt;
libxcb-res0 - 1.8.1-r0&lt;br /&gt;
libxcb-screensaver0 - 1.8.1-r0&lt;br /&gt;
libxcb-shape0 - 1.8.1-r0&lt;br /&gt;
libxcb-shm0 - 1.8.1-r0&lt;br /&gt;
libxcb-sync0 - 1.8.1-r0&lt;br /&gt;
libxcb-util0 - 0.3.8-r0&lt;br /&gt;
libxcb-xevie0 - 1.8.1-r0&lt;br /&gt;
libxcb-xf86dri0 - 1.8.1-r0&lt;br /&gt;
libxcb-xfixes0 - 1.8.1-r0&lt;br /&gt;
libxcb-xinerama0 - 1.8.1-r0&lt;br /&gt;
libxcb-xprint0 - 1.8.1-r0&lt;br /&gt;
libxcb-xtest0 - 1.8.1-r0&lt;br /&gt;
libxcb-xv0 - 1.8.1-r0&lt;br /&gt;
libxcb-xvmc0 - 1.8.1-r0&lt;br /&gt;
libxcb1 - 1.8.1-r0&lt;br /&gt;
libxcomposite-dev - 1:0.4.3-r0&lt;br /&gt;
libxcomposite1 - 1:0.4.3-r0&lt;br /&gt;
libxcursor-dev - 1:1.1.13-r0&lt;br /&gt;
libxcursor1 - 1:1.1.13-r0&lt;br /&gt;
libxdamage-dev - 1:1.1.3-r1&lt;br /&gt;
libxdamage1 - 1:1.1.3-r1&lt;br /&gt;
libxdmcp-dev - 1:1.1.1-r0&lt;br /&gt;
libxdmcp6 - 1:1.1.1-r0&lt;br /&gt;
libxext-dev - 1:1.3.1-r0&lt;br /&gt;
libxext6 - 1:1.3.1-r0&lt;br /&gt;
libxfixes-dev - 1:5.0-r0&lt;br /&gt;
libxfixes3 - 1:5.0-r0&lt;br /&gt;
libxfont1 - 1:1.4.5-r0&lt;br /&gt;
libxfontcache1 - 1:1.0.5-r1&lt;br /&gt;
libxft-dev - 1:2.3.0-r0&lt;br /&gt;
libxft2 - 1:2.3.0-r0&lt;br /&gt;
libxi6 - 1:1.4.5-r0&lt;br /&gt;
libxkbfile1 - 1:1.0.8-r0&lt;br /&gt;
libxklavier16 - 5.0-r0&lt;br /&gt;
libxml-parser-perl - 2.41-r2&lt;br /&gt;
libxml2 - 2.7.8-r7&lt;br /&gt;
libxml2-dev - 2.7.8-r7&lt;br /&gt;
libxmu6 - 1:1.1.1-r0&lt;br /&gt;
libxmuu1 - 1:1.1.1-r0&lt;br /&gt;
libxpm4 - 1:3.5.10-r0&lt;br /&gt;
libxrandr-dev - 1:1.3.2-r0&lt;br /&gt;
libxrandr2 - 1:1.3.2-r0&lt;br /&gt;
libxrender-dev - 1:0.9.7-r0&lt;br /&gt;
libxrender1 - 1:0.9.7-r0&lt;br /&gt;
libxslt - 1.1.26-r7&lt;br /&gt;
libxss1 - 1:1.2.2-r0&lt;br /&gt;
libxt6 - 1:1.1.2-r0&lt;br /&gt;
libxtst6 - 1:1.2.1-r0&lt;br /&gt;
libxv1 - 1.0.7-r0&lt;br /&gt;
libxxf86dga1 - 1:1.1.3-r2&lt;br /&gt;
libxxf86misc1 - 1:1.0.3-r0&lt;br /&gt;
libz-dev - 1.2.6-r1&lt;br /&gt;
libz1 - 1.2.6-r1&lt;br /&gt;
linux-libc-headers-dev - 3.2-r1&lt;br /&gt;
lmbench - 3.0-a9-r0&lt;br /&gt;
locale-base-en-us - 2.12-r20&lt;br /&gt;
ltp-ddt - 0.0.4-r1&lt;br /&gt;
m4 - 1.4.16-r2&lt;br /&gt;
make - 3.82-r2&lt;br /&gt;
matchbox-terminal - 0.0+git1+3fc25cb811a8ed306de897edf9b930f4402f3852-r0&lt;br /&gt;
media-ctl - 0.0.1-r1&lt;br /&gt;
memtester - 4.1.3-r0&lt;br /&gt;
metacity - 2.30.3-r3&lt;br /&gt;
midori - 0.4.4-r1&lt;br /&gt;
mime-support - 3.48-r0&lt;br /&gt;
minicom - 2.6.1-r0&lt;br /&gt;
mkfontdir - 1:1.0.7-r0&lt;br /&gt;
mkfontscale - 1.1.0-r0&lt;br /&gt;
module-init-tools - 3.16-r0&lt;br /&gt;
module-init-tools-depmod - 3.16-r0&lt;br /&gt;
mplayer-common - 0.0.1-r1&lt;br /&gt;
mplayer2 - 2.0+gitr1+e3f5043233336d8b4b0731c6a8b42a8fda5535ac-r11&lt;br /&gt;
nano - 2.2.5-r2.0&lt;br /&gt;
nautilus - 2.32.2-r6&lt;br /&gt;
ncurses - 5.9-r9.1&lt;br /&gt;
ncurses-dev - 5.9-r9.1&lt;br /&gt;
ncurses-terminfo - 5.9-r9.1&lt;br /&gt;
ncurses-terminfo-base - 5.9-r9.1&lt;br /&gt;
netbase - 4.47-r2&lt;br /&gt;
nodejs - 0.6.18-r0&lt;br /&gt;
nodejs-dev - 0.6.18-r0&lt;br /&gt;
nodejs4 - 0.4.12-r0&lt;br /&gt;
ntpdate - 4.2.6p3-r5&lt;br /&gt;
obex-data-server - 0.4.6-r0&lt;br /&gt;
obexd - 0.44-r1&lt;br /&gt;
ocf-linux - 20100325-r3.0&lt;br /&gt;
ocf-linux-dev - 20100325-r3.0&lt;br /&gt;
ofono - 1.5-r1&lt;br /&gt;
omap3-sgx-modules - 4.05.00.03-r12b&lt;br /&gt;
opencv - 2.3.1-r3&lt;br /&gt;
opencv-dev - 2.3.1-r3&lt;br /&gt;
openssh-misc - 5.9p1-r5&lt;br /&gt;
openssh-sftp - 5.9p1-r5&lt;br /&gt;
openssh-sftp-server - 5.9p1-r5&lt;br /&gt;
openssh-ssh - 5.9p1-r5&lt;br /&gt;
openssl - 1.0.0i-r0.2&lt;br /&gt;
openssl-dev - 1.0.0i-r0.2&lt;br /&gt;
opkg - 1:0.1.8+svnr633-r9.0&lt;br /&gt;
opkg-config-base - 1.0-r1&lt;br /&gt;
pam-plugin-access - 1.1.5-r3&lt;br /&gt;
pam-plugin-ck-connector - 0.4.5-r9&lt;br /&gt;
pam-plugin-deny - 1.1.5-r3&lt;br /&gt;
pam-plugin-env - 1.1.5-r3&lt;br /&gt;
pam-plugin-faildelay - 1.1.5-r3&lt;br /&gt;
pam-plugin-group - 1.1.5-r3&lt;br /&gt;
pam-plugin-lastlog - 1.1.5-r3&lt;br /&gt;
pam-plugin-limits - 1.1.5-r3&lt;br /&gt;
pam-plugin-loginuid - 1.1.5-r3&lt;br /&gt;
pam-plugin-mail - 1.1.5-r3&lt;br /&gt;
pam-plugin-motd - 1.1.5-r3&lt;br /&gt;
pam-plugin-nologin - 1.1.5-r3&lt;br /&gt;
pam-plugin-permit - 1.1.5-r3&lt;br /&gt;
pam-plugin-rootok - 1.1.5-r3&lt;br /&gt;
pam-plugin-securetty - 1.1.5-r3&lt;br /&gt;
pam-plugin-shells - 1.1.5-r3&lt;br /&gt;
pam-plugin-unix - 1.1.5-r3&lt;br /&gt;
pam-plugin-warn - 1.1.5-r3&lt;br /&gt;
pango - 1.29.4-r4&lt;br /&gt;
pango-dev - 1.29.4-r4&lt;br /&gt;
pango-module-basic-fc - 1.29.4-r4&lt;br /&gt;
pango-module-basic-x - 1.29.4-r4&lt;br /&gt;
patch - 2.6.1-r0&lt;br /&gt;
perl - 5.14.2-r6&lt;br /&gt;
perl-module-abbrev - 5.14.2-r6&lt;br /&gt;
perl-module-anydbm-file - 5.14.2-r6&lt;br /&gt;
perl-module-app-cpan - 5.14.2-r6&lt;br /&gt;
perl-module-app-prove - 5.14.2-r6&lt;br /&gt;
perl-module-app-prove-state - 5.14.2-r6&lt;br /&gt;
perl-module-app-prove-state-result - 5.14.2-r6&lt;br /&gt;
perl-module-app-prove-state-result-test - 5.14.2-r6&lt;br /&gt;
perl-module-archive-extract - 5.14.2-r6&lt;br /&gt;
perl-module-archive-tar - 5.14.2-r6&lt;br /&gt;
perl-module-archive-tar-constant - 5.14.2-r6&lt;br /&gt;
perl-module-archive-tar-file - 5.14.2-r6&lt;br /&gt;
perl-module-assert - 5.14.2-r6&lt;br /&gt;
perl-module-attribute-handlers - 5.14.2-r6&lt;br /&gt;
perl-module-attributes - 5.14.2-r6&lt;br /&gt;
perl-module-autodie - 5.14.2-r6&lt;br /&gt;
perl-module-autodie-exception - 5.14.2-r6&lt;br /&gt;
perl-module-autodie-exception-system - 5.14.2-r6&lt;br /&gt;
perl-module-autodie-hints - 5.14.2-r6&lt;br /&gt;
perl-module-autoloader - 5.14.2-r6&lt;br /&gt;
perl-module-autosplit - 5.14.2-r6&lt;br /&gt;
perl-module-autouse - 5.14.2-r6&lt;br /&gt;
perl-module-b - 5.14.2-r6&lt;br /&gt;
perl-module-b-concise - 5.14.2-r6&lt;br /&gt;
perl-module-b-debug - 5.14.2-r6&lt;br /&gt;
perl-module-b-deparse - 5.14.2-r6&lt;br /&gt;
perl-module-b-lint - 5.14.2-r6&lt;br /&gt;
perl-module-b-lint-debug - 5.14.2-r6&lt;br /&gt;
perl-module-b-showlex - 5.14.2-r6&lt;br /&gt;
perl-module-b-terse - 5.14.2-r6&lt;br /&gt;
perl-module-b-xref - 5.14.2-r6&lt;br /&gt;
perl-module-base - 5.14.2-r6&lt;br /&gt;
perl-module-benchmark - 5.14.2-r6&lt;br /&gt;
perl-module-bigfloat - 5.14.2-r6&lt;br /&gt;
perl-module-bigint - 5.14.2-r6&lt;br /&gt;
perl-module-bignum - 5.14.2-r6&lt;br /&gt;
perl-module-bigrat - 5.14.2-r6&lt;br /&gt;
perl-module-blib - 5.14.2-r6&lt;br /&gt;
perl-module-build - 5.14.2-r6&lt;br /&gt;
perl-module-build.pm - 5.14.2-r6&lt;br /&gt;
perl-module-bytes - 5.14.2-r6&lt;br /&gt;
perl-module-bytes-heavy - 5.14.2-r6&lt;br /&gt;
perl-module-cacheout - 5.14.2-r6&lt;br /&gt;
perl-module-carp - 5.14.2-r6&lt;br /&gt;
perl-module-carp-heavy - 5.14.2-r6&lt;br /&gt;
perl-module-cgi - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-apache - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-carp - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-cookie - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-fast - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-pretty - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-push - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-switch - 5.14.2-r6&lt;br /&gt;
perl-module-cgi-util - 5.14.2-r6&lt;br /&gt;
perl-module-charnames - 5.14.2-r6&lt;br /&gt;
perl-module-class-struct - 5.14.2-r6&lt;br /&gt;
perl-module-complete - 5.14.2-r6&lt;br /&gt;
perl-module-compress - 5.14.2-r6&lt;br /&gt;
perl-module-compress-raw-bzip2 - 5.14.2-r6&lt;br /&gt;
perl-module-compress-raw-zlib - 5.14.2-r6&lt;br /&gt;
perl-module-compress-zlib - 5.14.2-r6&lt;br /&gt;
perl-module-config - 5.14.2-r6&lt;br /&gt;
perl-module-config-extensions - 5.14.2-r6&lt;br /&gt;
perl-module-config-git - 5.14.2-r6&lt;br /&gt;
perl-module-constant - 5.14.2-r6&lt;br /&gt;
perl-module-corelist.pm - 5.14.2-r6&lt;br /&gt;
perl-module-cpan - 5.14.2-r6&lt;br /&gt;
perl-module-cpanplus - 5.14.2-r6&lt;br /&gt;
perl-module-ctime - 5.14.2-r6&lt;br /&gt;
perl-module-cwd - 5.14.2-r6&lt;br /&gt;
perl-module-data - 5.14.2-r6&lt;br /&gt;
perl-module-data-dumper - 5.14.2-r6&lt;br /&gt;
perl-module-db - 5.14.2-r6&lt;br /&gt;
perl-module-dbm-filter - 5.14.2-r6&lt;br /&gt;
perl-module-dbm-filter-compress - 5.14.2-r6&lt;br /&gt;
perl-module-dbm-filter-encode - 5.14.2-r6&lt;br /&gt;
perl-module-dbm-filter-int32 - 5.14.2-r6&lt;br /&gt;
perl-module-dbm-filter-null - 5.14.2-r6&lt;br /&gt;
perl-module-dbm-filter-utf8 - 5.14.2-r6&lt;br /&gt;
perl-module-deprecate - 5.14.2-r6&lt;br /&gt;
perl-module-devel - 5.14.2-r6&lt;br /&gt;
perl-module-devel-dprof - 5.14.2-r6&lt;br /&gt;
perl-module-devel-innerpackage - 5.14.2-r6&lt;br /&gt;
perl-module-devel-peek - 5.14.2-r6&lt;br /&gt;
perl-module-devel-ppport - 5.14.2-r6&lt;br /&gt;
perl-module-devel-selfstubber - 5.14.2-r6&lt;br /&gt;
perl-module-diagnostics - 5.14.2-r6&lt;br /&gt;
perl-module-digest - 5.14.2-r6&lt;br /&gt;
perl-module-digest-base - 5.14.2-r6&lt;br /&gt;
perl-module-digest-file - 5.14.2-r6&lt;br /&gt;
perl-module-digest-md5 - 5.14.2-r6&lt;br /&gt;
perl-module-digest-sha - 5.14.2-r6&lt;br /&gt;
perl-module-dirhandle - 5.14.2-r6&lt;br /&gt;
perl-module-dotsh - 5.14.2-r6&lt;br /&gt;
perl-module-dumpvar - 5.14.2-r6&lt;br /&gt;
perl-module-dynaloader - 5.14.2-r6&lt;br /&gt;
perl-module-encode - 5.14.2-r6&lt;br /&gt;
perl-module-encode--pm - 5.14.2-r6&lt;br /&gt;
perl-module-encode--t - 5.14.2-r6&lt;br /&gt;
perl-module-encode-alias - 5.14.2-r6&lt;br /&gt;
perl-module-encode-byte - 5.14.2-r6&lt;br /&gt;
perl-module-encode-changes - 5.14.2-r6&lt;br /&gt;
perl-module-encode-cjkconstants - 5.14.2-r6&lt;br /&gt;
perl-module-encode-cn - 5.14.2-r6&lt;br /&gt;
perl-module-encode-cn-hz - 5.14.2-r6&lt;br /&gt;
perl-module-encode-config - 5.14.2-r6&lt;br /&gt;
perl-module-encode-configlocal-pm - 5.14.2-r6&lt;br /&gt;
perl-module-encode-ebcdic - 5.14.2-r6&lt;br /&gt;
perl-module-encode-encoder - 5.14.2-r6&lt;br /&gt;
perl-module-encode-encoding - 5.14.2-r6&lt;br /&gt;
perl-module-encode-gsm0338 - 5.14.2-r6&lt;br /&gt;
perl-module-encode-guess - 5.14.2-r6&lt;br /&gt;
perl-module-encode-jp - 5.14.2-r6&lt;br /&gt;
perl-module-encode-jp-h2z - 5.14.2-r6&lt;br /&gt;
perl-module-encode-jp-jis7 - 5.14.2-r6&lt;br /&gt;
perl-module-encode-kr - 5.14.2-r6&lt;br /&gt;
perl-module-encode-kr-2022-kr - 5.14.2-r6&lt;br /&gt;
perl-module-encode-makefile-pl - 5.14.2-r6&lt;br /&gt;
perl-module-encode-mime-header - 5.14.2-r6&lt;br /&gt;
perl-module-encode-mime-header-iso-2022-jp - 5.14.2-r6&lt;br /&gt;
perl-module-encode-mime-name - 5.14.2-r6&lt;br /&gt;
perl-module-encode-readme - 5.14.2-r6&lt;br /&gt;
perl-module-encode-symbol - 5.14.2-r6&lt;br /&gt;
perl-module-encode-tw - 5.14.2-r6&lt;br /&gt;
perl-module-encode-unicode - 5.14.2-r6&lt;br /&gt;
perl-module-encode-unicode-utf7 - 5.14.2-r6&lt;br /&gt;
perl-module-encoding - 5.14.2-r6&lt;br /&gt;
perl-module-encoding-warnings - 5.14.2-r6&lt;br /&gt;
perl-module-english - 5.14.2-r6&lt;br /&gt;
perl-module-errno - 5.14.2-r6&lt;br /&gt;
perl-module-exceptions - 5.14.2-r6&lt;br /&gt;
perl-module-exporter - 5.14.2-r6&lt;br /&gt;
perl-module-exporter-heavy - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-base - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-aix - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-cygwin - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-darwin - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-dec-osf - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-os2 - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-unix - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-vms - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-windows - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-windows-bcc - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-windows-gcc - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-cbuilder-platform-windows-msvc - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-command - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-command-mm - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-constant - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-constant-base - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-constant-proxysubs - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-constant-utils - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-constant-xs - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-embed - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-install - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-installed - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-liblist - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-liblist-kid - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-makemaker - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-makemaker-config - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-makemaker-yaml - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-manifest - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-miniperl - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mkbootstrap - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mksymlists - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-aix - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-any - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-beos - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-cygwin - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-darwin - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-dos - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-macos - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-nw5 - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-os2 - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-qnx - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-unix - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-uwin - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-vms - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-vos - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-win32 - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-mm-win95 - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-my - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-packlist - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-parsexs - 5.14.2-r6&lt;br /&gt;
perl-module-extutils-testlib - 5.14.2-r6&lt;br /&gt;
perl-module-fastcwd - 5.14.2-r6&lt;br /&gt;
perl-module-fatal - 5.14.2-r6&lt;br /&gt;
perl-module-fcntl - 5.14.2-r6&lt;br /&gt;
perl-module-feature - 5.14.2-r6&lt;br /&gt;
perl-module-fields - 5.14.2-r6&lt;br /&gt;
perl-module-file - 5.14.2-r6&lt;br /&gt;
perl-module-file-basename - 5.14.2-r6&lt;br /&gt;
perl-module-file-compare - 5.14.2-r6&lt;br /&gt;
perl-module-file-copy - 5.14.2-r6&lt;br /&gt;
perl-module-file-dosglob - 5.14.2-r6&lt;br /&gt;
perl-module-file-fetch - 5.14.2-r6&lt;br /&gt;
perl-module-file-find - 5.14.2-r6&lt;br /&gt;
perl-module-file-glob - 5.14.2-r6&lt;br /&gt;
perl-module-file-globmapper - 5.14.2-r6&lt;br /&gt;
perl-module-file-path - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-cygwin - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-epoc - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-functions - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-mac - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-os2 - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-unix - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-vms - 5.14.2-r6&lt;br /&gt;
perl-module-file-spec-win32 - 5.14.2-r6&lt;br /&gt;
perl-module-file-stat - 5.14.2-r6&lt;br /&gt;
perl-module-file-temp - 5.14.2-r6&lt;br /&gt;
perl-module-filecache - 5.14.2-r6&lt;br /&gt;
perl-module-filehandle - 5.14.2-r6&lt;br /&gt;
perl-module-filetest - 5.14.2-r6&lt;br /&gt;
perl-module-filter - 5.14.2-r6&lt;br /&gt;
perl-module-filter-simple - 5.14.2-r6&lt;br /&gt;
perl-module-filter-util-call - 5.14.2-r6&lt;br /&gt;
perl-module-find - 5.14.2-r6&lt;br /&gt;
perl-module-findbin - 5.14.2-r6&lt;br /&gt;
perl-module-finddepth - 5.14.2-r6&lt;br /&gt;
perl-module-flush - 5.14.2-r6&lt;br /&gt;
perl-module-gdbm-file - 5.14.2-r6&lt;br /&gt;
perl-module-getcwd - 5.14.2-r6&lt;br /&gt;
perl-module-getopt - 5.14.2-r6&lt;br /&gt;
perl-module-getopt-long - 5.14.2-r6&lt;br /&gt;
perl-module-getopt-std - 5.14.2-r6&lt;br /&gt;
perl-module-getopts - 5.14.2-r6&lt;br /&gt;
perl-module-hash - 5.14.2-r6&lt;br /&gt;
perl-module-hash-util - 5.14.2-r6&lt;br /&gt;
perl-module-hash-util-fieldhash - 5.14.2-r6&lt;br /&gt;
perl-module-hostname - 5.14.2-r6&lt;br /&gt;
perl-module-i18n - 5.14.2-r6&lt;br /&gt;
perl-module-i18n-langinfo - 5.14.2-r6&lt;br /&gt;
perl-module-i18n-langtags - 5.14.2-r6&lt;br /&gt;
perl-module-i18n-langtags-detect - 5.14.2-r6&lt;br /&gt;
perl-module-i18n-langtags-list - 5.14.2-r6&lt;br /&gt;
perl-module-if - 5.14.2-r6&lt;br /&gt;
perl-module-importenv - 5.14.2-r6&lt;br /&gt;
perl-module-inc-latest - 5.14.2-r6&lt;br /&gt;
perl-module-inc-latest-private - 5.14.2-r6&lt;br /&gt;
perl-module-integer - 5.14.2-r6&lt;br /&gt;
perl-module-io - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-adapter-bzip2 - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-adapter-deflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-adapter-identity - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-base - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-base-common - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-bzip2 - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-deflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-gzip - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-gzip-constants - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-rawdeflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-zip - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-zip-constants - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-zlib-constants - 5.14.2-r6&lt;br /&gt;
perl-module-io-compress-zlib-extra - 5.14.2-r6&lt;br /&gt;
perl-module-io-dir - 5.14.2-r6&lt;br /&gt;
perl-module-io-file - 5.14.2-r6&lt;br /&gt;
perl-module-io-handle - 5.14.2-r6&lt;br /&gt;
perl-module-io-pipe - 5.14.2-r6&lt;br /&gt;
perl-module-io-poll - 5.14.2-r6&lt;br /&gt;
perl-module-io-seekable - 5.14.2-r6&lt;br /&gt;
perl-module-io-select - 5.14.2-r6&lt;br /&gt;
perl-module-io-socket - 5.14.2-r6&lt;br /&gt;
perl-module-io-socket-inet - 5.14.2-r6&lt;br /&gt;
perl-module-io-socket-unix - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-adapter-bunzip2 - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-adapter-identity - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-adapter-inflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-anyinflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-anyuncompress - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-base - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-bunzip2 - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-gunzip - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-inflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-rawinflate - 5.14.2-r6&lt;br /&gt;
perl-module-io-uncompress-unzip - 5.14.2-r6&lt;br /&gt;
perl-module-io-zlib - 5.14.2-r6&lt;br /&gt;
perl-module-ipc - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-cmd - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-msg - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-open2 - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-open3 - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-semaphore - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-sharedmem - 5.14.2-r6&lt;br /&gt;
perl-module-ipc-sysv - 5.14.2-r6&lt;br /&gt;
perl-module-less - 5.14.2-r6&lt;br /&gt;
perl-module-lib - 5.14.2-r6&lt;br /&gt;
perl-module-list - 5.14.2-r6&lt;br /&gt;
perl-module-list-util - 5.14.2-r6&lt;br /&gt;
perl-module-list-util-pp - 5.14.2-r6&lt;br /&gt;
perl-module-list-util-xs - 5.14.2-r6&lt;br /&gt;
perl-module-load - 5.14.2-r6&lt;br /&gt;
perl-module-load.pm - 5.14.2-r6&lt;br /&gt;
perl-module-loaded.pm - 5.14.2-r6&lt;br /&gt;
perl-module-locale - 5.14.2-r6&lt;br /&gt;
perl-module-locale-codes - 5.14.2-r6&lt;br /&gt;
perl-module-locale-codes-country - 5.14.2-r6&lt;br /&gt;
perl-module-locale-codes-currency - 5.14.2-r6&lt;br /&gt;
perl-module-locale-codes-language - 5.14.2-r6&lt;br /&gt;
perl-module-locale-codes-script - 5.14.2-r6&lt;br /&gt;
perl-module-locale-constants - 5.14.2-r6&lt;br /&gt;
perl-module-locale-country - 5.14.2-r6&lt;br /&gt;
perl-module-locale-currency - 5.14.2-r6&lt;br /&gt;
perl-module-locale-language - 5.14.2-r6&lt;br /&gt;
perl-module-locale-maketext - 5.14.2-r6&lt;br /&gt;
perl-module-locale-maketext-guts - 5.14.2-r6&lt;br /&gt;
perl-module-locale-maketext-gutsloader - 5.14.2-r6&lt;br /&gt;
perl-module-locale-maketext-simple - 5.14.2-r6&lt;br /&gt;
perl-module-locale-script - 5.14.2-r6&lt;br /&gt;
perl-module-log-message - 5.14.2-r6&lt;br /&gt;
perl-module-log-message-config - 5.14.2-r6&lt;br /&gt;
perl-module-log-message-handlers - 5.14.2-r6&lt;br /&gt;
perl-module-log-message-item - 5.14.2-r6&lt;br /&gt;
perl-module-log-message-simple - 5.14.2-r6&lt;br /&gt;
perl-module-look - 5.14.2-r6&lt;br /&gt;
perl-module-math - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigfloat - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigfloat-trace - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigint - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigint-calc - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigint-calcemu - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigint-fastcalc - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigint-trace - 5.14.2-r6&lt;br /&gt;
perl-module-math-bigrat - 5.14.2-r6&lt;br /&gt;
perl-module-math-complex - 5.14.2-r6&lt;br /&gt;
perl-module-math-trig - 5.14.2-r6&lt;br /&gt;
perl-module-memoize - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-anydbm-file - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-expire - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-expirefile - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-expiretest - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-ndbm-file - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-sdbm-file - 5.14.2-r6&lt;br /&gt;
perl-module-memoize-storable - 5.14.2-r6&lt;br /&gt;
perl-module-mime - 5.14.2-r6&lt;br /&gt;
perl-module-mime-base64 - 5.14.2-r6&lt;br /&gt;
perl-module-mime-quotedprint - 5.14.2-r6&lt;br /&gt;
perl-module-mro - 5.14.2-r6&lt;br /&gt;
perl-module-net-cmd - 5.14.2-r6&lt;br /&gt;
perl-module-net-config - 5.14.2-r6&lt;br /&gt;
perl-module-net-domain - 5.14.2-r6&lt;br /&gt;
perl-module-net-ftp - 5.14.2-r6&lt;br /&gt;
perl-module-net-ftp-a - 5.14.2-r6&lt;br /&gt;
perl-module-net-ftp-dataconn - 5.14.2-r6&lt;br /&gt;
perl-module-net-ftp-e - 5.14.2-r6&lt;br /&gt;
perl-module-net-ftp-i - 5.14.2-r6&lt;br /&gt;
perl-module-net-ftp-l - 5.14.2-r6&lt;br /&gt;
perl-module-net-hostent - 5.14.2-r6&lt;br /&gt;
perl-module-net-netent - 5.14.2-r6&lt;br /&gt;
perl-module-net-netrc - 5.14.2-r6&lt;br /&gt;
perl-module-net-nntp - 5.14.2-r6&lt;br /&gt;
perl-module-net-ping - 5.14.2-r6&lt;br /&gt;
perl-module-net-pop3 - 5.14.2-r6&lt;br /&gt;
perl-module-net-protoent - 5.14.2-r6&lt;br /&gt;
perl-module-net-servent - 5.14.2-r6&lt;br /&gt;
perl-module-net-smtp - 5.14.2-r6&lt;br /&gt;
perl-module-net-time - 5.14.2-r6&lt;br /&gt;
perl-module-newgetopt - 5.14.2-r6&lt;br /&gt;
perl-module-next - 5.14.2-r6&lt;br /&gt;
perl-module-o - 5.14.2-r6&lt;br /&gt;
perl-module-object-accessor - 5.14.2-r6&lt;br /&gt;
perl-module-opcode - 5.14.2-r6&lt;br /&gt;
perl-module-open - 5.14.2-r6&lt;br /&gt;
perl-module-open2 - 5.14.2-r6&lt;br /&gt;
perl-module-open3 - 5.14.2-r6&lt;br /&gt;
perl-module-ops - 5.14.2-r6&lt;br /&gt;
perl-module-overload - 5.14.2-r6&lt;br /&gt;
perl-module-overload-numbers - 5.14.2-r6&lt;br /&gt;
perl-module-overloading - 5.14.2-r6&lt;br /&gt;
perl-module-package-constants - 5.14.2-r6&lt;br /&gt;
perl-module-params-check - 5.14.2-r6&lt;br /&gt;
perl-module-parent - 5.14.2-r6&lt;br /&gt;
perl-module-parse-cpan-meta - 5.14.2-r6&lt;br /&gt;
perl-module-perl5db - 5.14.2-r6&lt;br /&gt;
perl-module-perlio - 5.14.2-r6&lt;br /&gt;
perl-module-perlio-encoding - 5.14.2-r6&lt;br /&gt;
perl-module-perlio-scalar - 5.14.2-r6&lt;br /&gt;
perl-module-perlio-via - 5.14.2-r6&lt;br /&gt;
perl-module-perlio-via-quotedprint - 5.14.2-r6&lt;br /&gt;
perl-module-pluggable - 5.14.2-r6&lt;br /&gt;
perl-module-pluggable.pm - 5.14.2-r6&lt;br /&gt;
perl-module-pod-checker - 5.14.2-r6&lt;br /&gt;
perl-module-pod-escapes - 5.14.2-r6&lt;br /&gt;
perl-module-pod-find - 5.14.2-r6&lt;br /&gt;
perl-module-pod-functions - 5.14.2-r6&lt;br /&gt;
perl-module-pod-inputobjects - 5.14.2-r6&lt;br /&gt;
perl-module-pod-latex - 5.14.2-r6&lt;br /&gt;
perl-module-pod-man - 5.14.2-r6&lt;br /&gt;
perl-module-pod-parselink - 5.14.2-r6&lt;br /&gt;
perl-module-pod-parser - 5.14.2-r6&lt;br /&gt;
perl-module-pod-parseutils - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-baseto - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-getoptsoo - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-tochecker - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-toman - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-tonroff - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-topod - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-tortf - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-totext - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-totk - 5.14.2-r6&lt;br /&gt;
perl-module-pod-perldoc-toxml - 5.14.2-r6&lt;br /&gt;
perl-module-pod-plaintext - 5.14.2-r6&lt;br /&gt;
perl-module-pod-select - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-blackbox - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-checker - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-debug - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-dumpastext - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-dumpasxml - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-html - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-htmlbatch - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-htmllegacy - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-linksection - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-methody - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-progress - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-pullparser - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-pullparserendtoken - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-pullparserstarttoken - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-pullparsertexttoken - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-pullparsertoken - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-rtf - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-search - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-simpletree - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-text - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-textcontent - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-tiedoutfh - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-transcode - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-transcodedumb - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-transcodesmart - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-xhtml - 5.14.2-r6&lt;br /&gt;
perl-module-pod-simple-xmloutstream - 5.14.2-r6&lt;br /&gt;
perl-module-pod-text - 5.14.2-r6&lt;br /&gt;
perl-module-pod-text-color - 5.14.2-r6&lt;br /&gt;
perl-module-pod-text-overstrike - 5.14.2-r6&lt;br /&gt;
perl-module-pod-text-termcap - 5.14.2-r6&lt;br /&gt;
perl-module-pod-usage - 5.14.2-r6&lt;br /&gt;
perl-module-posix - 5.14.2-r6&lt;br /&gt;
perl-module-pwd - 5.14.2-r6&lt;br /&gt;
perl-module-re - 5.14.2-r6&lt;br /&gt;
perl-module-safe - 5.14.2-r6&lt;br /&gt;
perl-module-scalar-util - 5.14.2-r6&lt;br /&gt;
perl-module-scalar-util-pp - 5.14.2-r6&lt;br /&gt;
perl-module-sdbm - 5.14.2-r6&lt;br /&gt;
perl-module-sdbm-file - 5.14.2-r6&lt;br /&gt;
perl-module-search-dict - 5.14.2-r6&lt;br /&gt;
perl-module-selectsaver - 5.14.2-r6&lt;br /&gt;
perl-module-selfloader - 5.14.2-r6&lt;br /&gt;
perl-module-shell - 5.14.2-r6&lt;br /&gt;
perl-module-shellwords - 5.14.2-r6&lt;br /&gt;
perl-module-sigtrap - 5.14.2-r6&lt;br /&gt;
perl-module-socket - 5.14.2-r6&lt;br /&gt;
perl-module-sort - 5.14.2-r6&lt;br /&gt;
perl-module-stat - 5.14.2-r6&lt;br /&gt;
perl-module-storable - 5.14.2-r6&lt;br /&gt;
perl-module-strict - 5.14.2-r6&lt;br /&gt;
perl-module-subs - 5.14.2-r6&lt;br /&gt;
perl-module-symbol - 5.14.2-r6&lt;br /&gt;
perl-module-sys - 5.14.2-r6&lt;br /&gt;
perl-module-sys-hostname - 5.14.2-r6&lt;br /&gt;
perl-module-sys-syslog - 5.14.2-r6&lt;br /&gt;
perl-module-syslog - 5.14.2-r6&lt;br /&gt;
perl-module-tainted - 5.14.2-r6&lt;br /&gt;
perl-module-tap-base - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-base - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-color - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-console - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-console-parallelsession - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-console-session - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-file - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-file-session - 5.14.2-r6&lt;br /&gt;
perl-module-tap-formatter-session - 5.14.2-r6&lt;br /&gt;
perl-module-tap-harness - 5.14.2-r6&lt;br /&gt;
perl-module-tap-object - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-aggregator - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-grammar - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-iterator - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-iterator-array - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-iterator-process - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-iterator-stream - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-iteratorfactory - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-multiplexer - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-bailout - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-comment - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-plan - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-pragma - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-test - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-unknown - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-version - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-result-yaml - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-resultfactory - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-scheduler - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-scheduler-job - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-scheduler-spinner - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-source - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-sourcehandler - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-sourcehandler-executable - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-sourcehandler-file - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-sourcehandler-handle - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-sourcehandler-perl - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-sourcehandler-rawtap - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-utils - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-yamlish-reader - 5.14.2-r6&lt;br /&gt;
perl-module-tap-parser-yamlish-writer - 5.14.2-r6&lt;br /&gt;
perl-module-term-ansicolor - 5.14.2-r6&lt;br /&gt;
perl-module-term-cap - 5.14.2-r6&lt;br /&gt;
perl-module-term-complete - 5.14.2-r6&lt;br /&gt;
perl-module-term-readline - 5.14.2-r6&lt;br /&gt;
perl-module-term-ui - 5.14.2-r6&lt;br /&gt;
perl-module-term-ui-history - 5.14.2-r6&lt;br /&gt;
perl-module-termcap - 5.14.2-r6&lt;br /&gt;
perl-module-test - 5.14.2-r6&lt;br /&gt;
perl-module-test-builder - 5.14.2-r6&lt;br /&gt;
perl-module-test-builder-module - 5.14.2-r6&lt;br /&gt;
perl-module-test-builder-tester - 5.14.2-r6&lt;br /&gt;
perl-module-test-builder-tester-color - 5.14.2-r6&lt;br /&gt;
perl-module-test-harness - 5.14.2-r6&lt;br /&gt;
perl-module-test-more - 5.14.2-r6&lt;br /&gt;
perl-module-test-simple - 5.14.2-r6&lt;br /&gt;
perl-module-text - 5.14.2-r6&lt;br /&gt;
perl-module-text-abbrev - 5.14.2-r6&lt;br /&gt;
perl-module-text-balanced - 5.14.2-r6&lt;br /&gt;
perl-module-text-parsewords - 5.14.2-r6&lt;br /&gt;
perl-module-text-soundex - 5.14.2-r6&lt;br /&gt;
perl-module-text-tabs - 5.14.2-r6&lt;br /&gt;
perl-module-text-wrap - 5.14.2-r6&lt;br /&gt;
perl-module-thread - 5.14.2-r6&lt;br /&gt;
perl-module-thread-queue - 5.14.2-r6&lt;br /&gt;
perl-module-thread-semaphore - 5.14.2-r6&lt;br /&gt;
perl-module-threads - 5.14.2-r6&lt;br /&gt;
perl-module-threads-shared - 5.14.2-r6&lt;br /&gt;
perl-module-tie-array - 5.14.2-r6&lt;br /&gt;
perl-module-tie-file - 5.14.2-r6&lt;br /&gt;
perl-module-tie-handle - 5.14.2-r6&lt;br /&gt;
perl-module-tie-hash - 5.14.2-r6&lt;br /&gt;
perl-module-tie-memoize - 5.14.2-r6&lt;br /&gt;
perl-module-tie-refhash - 5.14.2-r6&lt;br /&gt;
perl-module-tie-scalar - 5.14.2-r6&lt;br /&gt;
perl-module-tie-stdhandle - 5.14.2-r6&lt;br /&gt;
perl-module-tie-substrhash - 5.14.2-r6&lt;br /&gt;
perl-module-time - 5.14.2-r6&lt;br /&gt;
perl-module-time-gmtime - 5.14.2-r6&lt;br /&gt;
perl-module-time-hires - 5.14.2-r6&lt;br /&gt;
perl-module-time-local - 5.14.2-r6&lt;br /&gt;
perl-module-time-localtime - 5.14.2-r6&lt;br /&gt;
perl-module-time-piece - 5.14.2-r6&lt;br /&gt;
perl-module-time-seconds - 5.14.2-r6&lt;br /&gt;
perl-module-time-tm - 5.14.2-r6&lt;br /&gt;
perl-module-timelocal - 5.14.2-r6&lt;br /&gt;
perl-module-unicode - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-cjk-big5 - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-cjk-gb2312 - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-cjk-jisx0208 - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-cjk-korean - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-cjk-pinyin - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-cjk-stroke - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-af - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ar - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-az - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ca - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-cs - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-cy - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-da - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-de-phone - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-eo - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-es - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-es-trad - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-et - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-fi - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-fil - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-fo - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-fr - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ha - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-haw - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-hr - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-hu - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-hy - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ig - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-is - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ja - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-kk - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-kl - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ko - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-lt - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-lv - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-mt - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-nb - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-nn - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-nso - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-om - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-pl - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ro - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-ru - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-se - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-sk - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-sl - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-sq - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-sv - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-sw - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-tn - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-to - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-tr - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-uk - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-vi - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-wo - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-yo - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-zh - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-zh-big5 - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-zh-gb - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-zh-pin - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-collate-locale-zh-strk - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-normalize - 5.14.2-r6&lt;br /&gt;
perl-module-unicode-ucd - 5.14.2-r6&lt;br /&gt;
perl-module-unicore - 5.14.2-r6&lt;br /&gt;
perl-module-universal - 5.14.2-r6&lt;br /&gt;
perl-module-user-grent - 5.14.2-r6&lt;br /&gt;
perl-module-user-pwent - 5.14.2-r6&lt;br /&gt;
perl-module-utf8 - 5.14.2-r6&lt;br /&gt;
perl-module-utf8-heavy - 5.14.2-r6&lt;br /&gt;
perl-module-validate - 5.14.2-r6&lt;br /&gt;
perl-module-vars - 5.14.2-r6&lt;br /&gt;
perl-module-version - 5.14.2-r6&lt;br /&gt;
perl-module-vmsish - 5.14.2-r6&lt;br /&gt;
perl-module-warnings - 5.14.2-r6&lt;br /&gt;
perl-module-warnings-register - 5.14.2-r6&lt;br /&gt;
perl-module-xsloader - 5.14.2-r6&lt;br /&gt;
perl-modules - 5.14.2-r6&lt;br /&gt;
pkgconfig - 0.25-r3&lt;br /&gt;
pkgconfig-dev - 0.25-r3&lt;br /&gt;
pm-utils - 1.4.1-r1&lt;br /&gt;
pointercal - 0.0-r11&lt;br /&gt;
pointercal-xinput - 0.0-r4&lt;br /&gt;
polkit - 0.104-r8&lt;br /&gt;
procps - 3.2.8-r7&lt;br /&gt;
python-audio - 2.7.2-r3.17&lt;br /&gt;
python-codecs - 2.7.2-r3.17&lt;br /&gt;
python-compression - 2.7.2-r3.17&lt;br /&gt;
python-core - 2.7.2-r3.17&lt;br /&gt;
python-crypt - 2.7.2-r3.17&lt;br /&gt;
python-datetime - 2.7.2-r3.17&lt;br /&gt;
python-dbus - 1.0.0-r1&lt;br /&gt;
python-dev - 2.7.2-r3.17&lt;br /&gt;
python-difflib - 2.7.2-r3.17&lt;br /&gt;
python-elementtree - 2.7.2-r3.17&lt;br /&gt;
python-email - 2.7.2-r3.17&lt;br /&gt;
python-fcntl - 2.7.2-r3.17&lt;br /&gt;
python-html - 2.7.2-r3.17&lt;br /&gt;
python-image - 2.7.2-r3.17&lt;br /&gt;
python-imaging - 1.1.7-r3&lt;br /&gt;
python-io - 2.7.2-r3.17&lt;br /&gt;
python-json - 2.7.2-r3.17&lt;br /&gt;
python-lang - 2.7.2-r3.17&lt;br /&gt;
python-logging - 2.7.2-r3.17&lt;br /&gt;
python-math - 2.7.2-r3.17&lt;br /&gt;
python-mime - 2.7.2-r3.17&lt;br /&gt;
python-misc - 2.7.2-r3.17&lt;br /&gt;
python-multiprocessing - 2.7.2-r3.17&lt;br /&gt;
python-netclient - 2.7.2-r3.17&lt;br /&gt;
python-netserver - 2.7.2-r3.17&lt;br /&gt;
python-numbers - 2.7.2-r3.17&lt;br /&gt;
python-numpy - 1.4.1-r2&lt;br /&gt;
python-numpy-dev - 1.4.1-r2&lt;br /&gt;
python-pickle - 2.7.2-r3.17&lt;br /&gt;
python-pkgutil - 2.7.2-r3.17&lt;br /&gt;
python-pprint - 2.7.2-r3.17&lt;br /&gt;
python-pycairo - 1.10.0-r2&lt;br /&gt;
python-pyopenssl - 0.13-r0&lt;br /&gt;
python-re - 2.7.2-r3.17&lt;br /&gt;
python-readline - 2.7.2-r3.17&lt;br /&gt;
python-shell - 2.7.2-r3.17&lt;br /&gt;
python-simplejson - 2.2.1-r0&lt;br /&gt;
python-stringold - 2.7.2-r3.17&lt;br /&gt;
python-subprocess - 2.7.2-r3.17&lt;br /&gt;
python-syslog - 2.7.2-r3.17&lt;br /&gt;
python-terminal - 2.7.2-r3.17&lt;br /&gt;
python-textutils - 2.7.2-r3.17&lt;br /&gt;
python-threading - 2.7.2-r3.17&lt;br /&gt;
python-tornado - 2.2-r0&lt;br /&gt;
python-unittest - 2.7.2-r3.17&lt;br /&gt;
python-unixadmin - 2.7.2-r3.17&lt;br /&gt;
python-xml - 2.7.2-r3.17&lt;br /&gt;
python-zlib - 2.7.2-r3.17&lt;br /&gt;
randrproto-dev - 1:1.3.2-r0&lt;br /&gt;
renderproto-dev - 1:0.11.1-r0&lt;br /&gt;
rgb - 1:1.0.4-r7.0&lt;br /&gt;
rsync - 3.0.9-r0&lt;br /&gt;
rt-tests - 1:0.83-r2&lt;br /&gt;
screen - 4.0.3-r3&lt;br /&gt;
sed - 4.2.1-r3&lt;br /&gt;
sg3-utils - 1.31-r1&lt;br /&gt;
shadow - 4.1.4.3-r8&lt;br /&gt;
shadow-securetty - 4.1.4.3-r1&lt;br /&gt;
shared-mime-info - 0.91-r4&lt;br /&gt;
shared-mime-info-data - 0.91-r4&lt;br /&gt;
swig - 2.0.0-r1.0&lt;br /&gt;
swig-dev - 2.0.0-r1.0&lt;br /&gt;
systemd - v44-45-g3eff420-r27&lt;br /&gt;
systemd-analyze - v44-45-g3eff420-r27&lt;br /&gt;
systemd-compat-units - 1.0-r15&lt;br /&gt;
systemd-serialgetty - 1.0-r3&lt;br /&gt;
sysvinit-pidof - 2.88dsf-r6&lt;br /&gt;
tar - 1.26-r1&lt;br /&gt;
task-basic - 1.0-r8&lt;br /&gt;
task-boot - 1.0-r57&lt;br /&gt;
task-gnome - 1.0-r12&lt;br /&gt;
task-gnome-fonts - 1.0-r12&lt;br /&gt;
task-gnome-gstreamer - 1.0-r12&lt;br /&gt;
task-gnome-perl - 1.0-r12&lt;br /&gt;
task-gnome-themes - 1.0-r12&lt;br /&gt;
task-gnome-xserver-base - 1.0-r12&lt;br /&gt;
task-sdk-target - 1.0-r0&lt;br /&gt;
task-ti-test - 1.0-r0&lt;br /&gt;
task-x11-server - 1.0-r9&lt;br /&gt;
timestamp-service - 1.0-r0&lt;br /&gt;
tinylogin - 1.4-r8&lt;br /&gt;
tslib-calibrate - 1.0+gitr1+e17263ef401ee885a27d649b90b577cfb44500e0-r8&lt;br /&gt;
tslib-conf - 1.0+gitr1+e17263ef401ee885a27d649b90b577cfb44500e0-r8&lt;br /&gt;
tslib-tests - 1.0+gitr1+e17263ef401ee885a27d649b90b577cfb44500e0-r8&lt;br /&gt;
ttf-dejavu-common - 2.23-r4&lt;br /&gt;
ttf-dejavu-sans - 2.23-r4&lt;br /&gt;
ttf-dejavu-sans-mono - 2.23-r4&lt;br /&gt;
ttf-liberation-mono - 0.2-r4&lt;br /&gt;
ttf-liberation-sans - 0.2-r4&lt;br /&gt;
ttf-liberation-serif - 0.2-r4&lt;br /&gt;
tzdata - 2012b-r0&lt;br /&gt;
udev - 182-r0&lt;br /&gt;
udev-systemd - 182-r0&lt;br /&gt;
udev-utils - 182-r0&lt;br /&gt;
udisks - 1.0.4-r4&lt;br /&gt;
update-alternatives-cworth - 1:0.1.8+svnr633-r9.0&lt;br /&gt;
update-modules - 1.0-r13&lt;br /&gt;
update-modules-dev - 1.0-r13&lt;br /&gt;
update-rc.d - 0.7-r5&lt;br /&gt;
upower - 0.9.14-r1&lt;br /&gt;
usbutils - 0.91-r3&lt;br /&gt;
usbutils-ids - 0.91-r3&lt;br /&gt;
util-linux - 2.21-r5&lt;br /&gt;
util-linux-agetty - 2.21-r5&lt;br /&gt;
util-linux-blkid - 2.21-r5&lt;br /&gt;
util-linux-cfdisk - 2.21-r5&lt;br /&gt;
util-linux-dev - 2.21-r5&lt;br /&gt;
util-linux-fdisk - 2.21-r5&lt;br /&gt;
util-linux-fsck - 2.21-r5&lt;br /&gt;
util-linux-losetup - 2.21-r5&lt;br /&gt;
util-linux-mcookie - 2.21-r5&lt;br /&gt;
util-linux-mkfs - 2.21-r5&lt;br /&gt;
util-linux-mount - 2.21-r5&lt;br /&gt;
util-linux-readprofile - 2.21-r5&lt;br /&gt;
util-linux-sfdisk - 2.21-r5&lt;br /&gt;
util-linux-swaponoff - 2.21-r5&lt;br /&gt;
util-linux-umount - 2.21-r5&lt;br /&gt;
util-macros-dev - 1:1.17-r0&lt;br /&gt;
vim - 7.2.446-r11.3&lt;br /&gt;
vim-vimrc - 7.2.446-r11.3&lt;br /&gt;
vte-termcap - 0.28.2-r3&lt;br /&gt;
wpa-supplicant - 0.7.3-r8&lt;br /&gt;
wpa-supplicant-cli - 0.7.3-r8&lt;br /&gt;
wpa-supplicant-passphrase - 0.7.3-r8&lt;br /&gt;
wv - 1.2.0-r4&lt;br /&gt;
xauth - 1:1.0.6-r0&lt;br /&gt;
xbmc - 11.0-r13+gitr3+1d975a04c6686b9a82f63a4c605a5c5c5f84d0e8&lt;br /&gt;
xcb-proto-dev - 1.7-r0&lt;br /&gt;
xcmiscproto-dev - 1:1.2.1-r0&lt;br /&gt;
xdg-utils - 1.0.2-r0&lt;br /&gt;
xextproto-dev - 1:7.2.0-r0&lt;br /&gt;
xf86-input-evdev - 2:2.6.0-r17.0&lt;br /&gt;
xf86-video-fbdev - 2:0.4.2-r17.0&lt;br /&gt;
xf86bigfontproto-dev - 1:1.2.0-r1&lt;br /&gt;
xhost - 1:1.0.4-r0&lt;br /&gt;
xinetd - 2.3.14-r1&lt;br /&gt;
xinit - 1:1.3.2-r0&lt;br /&gt;
xinput - 1.5.3-r7&lt;br /&gt;
xinput-calibrator - 0.7.5-r6&lt;br /&gt;
xkbcomp - 1.2.3-r0&lt;br /&gt;
xkeyboard-config - 2.1-r1&lt;br /&gt;
xproto-dev - 1:7.0.22-r1&lt;br /&gt;
xrandr - 1:1.3.5-r1&lt;br /&gt;
xrdb - 1.0.9-r6&lt;br /&gt;
xserver-xf86-config - 0.1-r12.2&lt;br /&gt;
xserver-xorg - 2:1.11.2-r1&lt;br /&gt;
xset - 1:1.2.2-r0&lt;br /&gt;
xterm - 277-r0&lt;br /&gt;
xtrans-dev - 1:1.2.6-r0&lt;br /&gt;
xvinfo - 1:1.1.1-r0&lt;br /&gt;
xz - 5.0.3-r1&lt;br /&gt;
xz-dev - 5.0.3-r1&lt;br /&gt;
yajl - 2.0.3-r0&lt;br /&gt;
yavta - 0.0-r1&lt;br /&gt;
zip - 3.0-r1&lt;br /&gt;
zip-dev - 3.0-r1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Ubuntu_and_Audio_Cape</id>
		<title>ECE497 Notes on Ubuntu and Audio Cape</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Ubuntu_and_Audio_Cape"/>
				<updated>2013-05-18T16:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EmbeddedBeagleClass]]&lt;br /&gt;
[[Category:ECE497Notes |ubuntu]]&lt;br /&gt;
&lt;br /&gt;
To install Ubuntu on the BeagleBone follow the instructions at http://elinux.org/BeagleBoardUbuntu&lt;br /&gt;
&lt;br /&gt;
In Ubuntu, to get ALSA to work with the BeagleBone Audio cape, the following modules should be specified in '/etc/modules'&lt;br /&gt;
&lt;br /&gt;
  snd_soc_tlv320aic3x&lt;br /&gt;
  snd_soc_davinci&lt;br /&gt;
  snd_soc_davinci_mcasp&lt;br /&gt;
  snd_soc_evm&lt;br /&gt;
&lt;br /&gt;
You can test the audio by running `speaker-test`. Also running `aplay -l` will show a list of available sound cards. If the sound card is not shown, run `lsmod` and `dmesg` and make sure the kernel modules above have loaded without errors.&lt;br /&gt;
&lt;br /&gt;
Rakarrack is a very nice open source audio effects processor that looks just like a guitar pedalboard. It uses the Jack Audio Connection Kit to stream audio allowing for realtime audio effects&lt;br /&gt;
&lt;br /&gt;
Start by installing jackd2. This requires a patch for the current version (1.9.10) on ARM (see http://jack-audio.10948.n7.nabble.com/Jack-Devel-jack2-on-ARM-patch-td15962.html). Run the recipe found at that page (copied below with a couple modifications).&lt;br /&gt;
&lt;br /&gt;
  wget http://jack-audio.10948.n7.nabble.com/attachment/15962/0/jack2_armel.diff&lt;br /&gt;
  apt-get source jackd2&lt;br /&gt;
  cd jackd2-1.9.8~dfsg.4+20120529git007cdc37 &lt;br /&gt;
  patch -p1 -i ../jack2_armel.diff &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -uc -b &lt;br /&gt;
  cd .. &lt;br /&gt;
  sudo dpkg -i libjack-jackd2-0_1.9.8~dfsg.4+20120529git007cdc37-2ubuntu1_armhf.deb jackd2_1.9.8~dfsg.4+20120529git007cdc37-2ubuntu1_armhf.deb&lt;br /&gt;
&lt;br /&gt;
Then install Rakarrack by running the following:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install rakarrack&lt;br /&gt;
  &lt;br /&gt;
The installation should install jackd as a dependency. To check the installed jack packages run the following:&lt;br /&gt;
&lt;br /&gt;
  dpkg --get-selections | grep jack&lt;br /&gt;
  &lt;br /&gt;
You should see something like this:&lt;br /&gt;
&lt;br /&gt;
  ubuntu@arm:~$ dpkg --get-selections | grep jack&lt;br /&gt;
  jack                                            deinstall&lt;br /&gt;
  jackd                                           install&lt;br /&gt;
  jackd1                                          deinstall&lt;br /&gt;
  jackd2                                          install&lt;br /&gt;
  libjack-jackd2-0:armhf                          install&lt;br /&gt;
  libjack0:armhf                                  deinstall&lt;br /&gt;
  qjackctl                                        deinstall&lt;br /&gt;
&lt;br /&gt;
Now you should be able to run the rakarrack GUI. Use `ssh -X ubuntu@192.168.0.XXX` to connect to the BeagleBone with X11 forwarding and then run `rakarrack`. The program should be able to find jackd by itself. If not try killing the jack processes and restart rakarrack. One way to do this is run `ps -AL | grep jack`, and then run `kill -9` with the pid number.&lt;br /&gt;
&lt;br /&gt;
If you have problems with jackd not running you can try running in manually (make sure it is not running in the background first). Run `jackd -d alsa` and the output should look somethings like the following:&lt;br /&gt;
&lt;br /&gt;
 ubuntu@arm:/etc$ jackd -d alsa&lt;br /&gt;
 jackdmp 1.9.10&lt;br /&gt;
 Copyright 2001-2005 Paul Davis and others.&lt;br /&gt;
 Copyright 2004-2013 Grame.&lt;br /&gt;
 jackdmp comes with ABSOLUTELY NO WARRANTY&lt;br /&gt;
 This is free software, and you are welcome to redistribute it&lt;br /&gt;
 under certain conditions; see the file COPYING for details&lt;br /&gt;
 JACK server starting in realtime mode with priority 10&lt;br /&gt;
 creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit&lt;br /&gt;
 control device hw:0&lt;br /&gt;
 configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods&lt;br /&gt;
 ALSA: final selected sample format for capture: 32bit integer little-endian&lt;br /&gt;
 ALSA: use 16 periods for capture&lt;br /&gt;
 ALSA: final selected sample format for playback: 32bit integer little-endian&lt;br /&gt;
 ALSA: use 16 periods for playback&lt;br /&gt;
&lt;br /&gt;
When Rakarrack opens, it may warn you that your CPU is not fast enough to run some of the audio effects (e.g. convolutron). See (http://forums.fedoraforum.org/archive/index.php/t-254181.html) for some tips on mitigating performance problems. If you crash jackd, you can easily kill its processes as shown above and restart Rakarrack (there is no need to reboot or anything).&lt;br /&gt;
&lt;br /&gt;
Some things to improve performance (a bit...)&lt;br /&gt;
&lt;br /&gt;
Increase clock speed of BeagleBone by running the following:&lt;br /&gt;
&lt;br /&gt;
  sudo cpufreq-set -f 720MHz&lt;br /&gt;
  sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq&lt;br /&gt;
  &lt;br /&gt;
The output of that last command should be '720000'&lt;br /&gt;
&lt;br /&gt;
Also in Rakarrack go to 'Settings-&amp;gt;Preferences-&amp;gt;Audio' and lower all the downsample settings to '4000' and the up to 'Fastest'&lt;br /&gt;
&lt;br /&gt;
With these settings, I was able to get the Expander, Sustainer, Looper, and Dual Flange to work without crasing jackd&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_StarterWare</id>
		<title>ECE497 Notes on StarterWare</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_StarterWare"/>
				<updated>2013-05-18T16:04:41Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |s]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/StarterWare StarterWare] is a bare bones way to use the Beagle.&lt;br /&gt;
&lt;br /&gt;
[http://processors.wiki.ti.com/index.php/AM335X_StarterWare_Environment_Setup Here] is info on setting it up.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Rtlizer</id>
		<title>ECE497 Notes on Rtlizer</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Rtlizer"/>
				<updated>2013-05-18T16:03:49Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |Rt]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/csete/rtlizer Rtlizer] is a simple spectrum analyzer written for the BeagleBone. Rtlizer uses [http://www.rtlsdr.org/ rtl-sdr] a command line tool to interface with software defined radios such as the [http://www.nooelec.com/store/software-defined-radio/sdr-receivers/tv28tv2.html#.UU5gGXGx0ak R820T] used here.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Instructions for installing rtl-sdr and rtlizer can be found [http://www.oz9aec.net/index.php/beaglebone/480-rtlizer here]. They are copied here for convenience.&lt;br /&gt;
&lt;br /&gt;
Run the following as root on the BeagleBone:&lt;br /&gt;
&lt;br /&gt;
  git clone git://git.osmocom.org/rtl-sdr.git&lt;br /&gt;
  cd rtl-sdr/&lt;br /&gt;
  autoreconf -i&lt;br /&gt;
  ./configure&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  mv /usr/local/lib/pkgconfig/librtlsdr.pc /usr/lib/pkgconfig&lt;br /&gt;
  ldconfig&lt;br /&gt;
&lt;br /&gt;
  git clone git://github.com/csete/rtlizer.git&lt;br /&gt;
  cd rtlizer&lt;br /&gt;
  ./build-target&lt;br /&gt;
&lt;br /&gt;
=== How to Run ===&lt;br /&gt;
&lt;br /&gt;
In X11 run the following:&lt;br /&gt;
&lt;br /&gt;
  cd rtlizer&lt;br /&gt;
  rtlizer 640x360+0+0&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
[http://osmocom.rtlsdr.org//trac/wiki/rtl-sdr This site] contains more information about rtl-sdr including a long list of SDR applications that use the library.&lt;br /&gt;
&lt;br /&gt;
The R820T is a very nice (and cheap) SDR with some nice functionality. One thing that it cannot do however (at least in the US) is function as a TV tuner. The tuner uses the DVB-T standard. ATSC is the standard used for digital TV broadcasting in the US.&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
It would be interesting to do some radio decoding on the BeagleBone using rtl-sdr as a back-end to the R820T. A possible application could be something like ADS-B (aircraft tracking) or NOAA (weather satellite) decoding.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Rakarrack</id>
		<title>ECE497 Notes on Rakarrack</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Rakarrack"/>
				<updated>2013-05-18T16:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |Rak]]&lt;br /&gt;
&lt;br /&gt;
[http://rakarrack.sourceforge.net/ Rakarrack] is an open source effects processor that emulates a guitar effects pedal board. It can be run easily in Ubuntu on the BeagleBone. Below is the installation process for use with the [http://circuitco.com/support/index.php?title=BeagleBone_Audio BeagleBone Audio Cape]. &lt;br /&gt;
&lt;br /&gt;
*Note: The following is tested on Ubuntu 12.10 running version 3.2.33-psp26 of the kernel.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu Installation ==&lt;br /&gt;
&lt;br /&gt;
To install Ubuntu on the BeagleBone follow the instructions found on the [http://elinux.org/BeagleBoardUbuntu BeagleBoardUbuntu elinux site].&lt;br /&gt;
&lt;br /&gt;
  login: ubuntu&lt;br /&gt;
  password: temppwd&lt;br /&gt;
&lt;br /&gt;
Run `sudo apt-get update` and `sudo apt-get upgrade` until there are no more updates/upgrades to install.&lt;br /&gt;
&lt;br /&gt;
=== ALSA ===&lt;br /&gt;
&lt;br /&gt;
In Ubuntu, to get ALSA to work with the BeagleBone Audio cape, the following modules need to be specified in '/etc/modules'&lt;br /&gt;
&lt;br /&gt;
  snd_soc_tlv320aic3x&lt;br /&gt;
  snd_soc_davinci&lt;br /&gt;
  snd_soc_davinci_mcasp&lt;br /&gt;
  snd_soc_evm&lt;br /&gt;
&lt;br /&gt;
You can test the audio by running `speaker-test`. Also running `aplay -l` will show a list of available sound cards. If the sound card is not shown, run `lsmod` and `dmesg` and make sure the kernel modules above have loaded without errors.&lt;br /&gt;
&lt;br /&gt;
== Rakarrack Installation ==&lt;br /&gt;
&lt;br /&gt;
Rakarrack uses the [http://jackaudio.org/ Jack Audio Connection Kit] to route audio between applications.&lt;br /&gt;
&lt;br /&gt;
=== JACK ===&lt;br /&gt;
&lt;br /&gt;
Start by installing jackd2. This requires a patch for the current version (jackd-1.9.10) on ARM (see [http://jack-audio.10948.n7.nabble.com/Jack-Devel-jack2-on-ARM-patch-td15962.html this forum post]). Run the recipe below (copied from that post with a couple modifications).&lt;br /&gt;
&lt;br /&gt;
  wget http://jack-audio.10948.n7.nabble.com/attachment/15962/0/jack2_armel.diff&lt;br /&gt;
  apt-get source jackd2&lt;br /&gt;
  cd jackd2-1.9.8~dfsg.4+20120529git007cdc37 &lt;br /&gt;
  patch -p1 -i ../jack2_armel.diff &lt;br /&gt;
  dpkg-buildpackage -rfakeroot -uc -b &lt;br /&gt;
  cd .. &lt;br /&gt;
  sudo dpkg -i libjack-jackd2-0_1.9.8~dfsg.4+20120529git007cdc37-2ubuntu1_armhf.deb jackd2_1.9.8~dfsg.4+20120529git007cdc37-2ubuntu1_armhf.deb&lt;br /&gt;
&lt;br /&gt;
=== Rakarrack ===&lt;br /&gt;
&lt;br /&gt;
Then install Rakarrack by running the following:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install rakarrack&lt;br /&gt;
  &lt;br /&gt;
The installation should install jackd as a dependency. To check the installed jack packages run the following:&lt;br /&gt;
&lt;br /&gt;
  dpkg --get-selections | grep jack&lt;br /&gt;
  &lt;br /&gt;
You should see something like this:&lt;br /&gt;
&lt;br /&gt;
  ubuntu@arm:~$ dpkg --get-selections | grep jack&lt;br /&gt;
  jack                                            deinstall&lt;br /&gt;
  jackd                                           install&lt;br /&gt;
  jackd1                                          deinstall&lt;br /&gt;
  jackd2                                          install&lt;br /&gt;
  libjack-jackd2-0:armhf                          install&lt;br /&gt;
  libjack0:armhf                                  deinstall&lt;br /&gt;
  qjackctl                                        deinstall&lt;br /&gt;
&lt;br /&gt;
== System Configuration ==&lt;br /&gt;
&lt;br /&gt;
Before running anything we need to make sure that the BeagleBone is running at its maximum clock speed. To do this run the following:&lt;br /&gt;
&lt;br /&gt;
  sudo cpufreq-set -f 720MHz&lt;br /&gt;
  sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq&lt;br /&gt;
  &lt;br /&gt;
The output of that last command should be '720000'&lt;br /&gt;
&lt;br /&gt;
*Note: The BeagleBone needs to be running off the wall adapter to reach maximum clock rate&lt;br /&gt;
&lt;br /&gt;
=== JACK ===&lt;br /&gt;
&lt;br /&gt;
Next, start JACK by running the following:&lt;br /&gt;
&lt;br /&gt;
  jackd -d alsa -p 256 -n 16 -S&lt;br /&gt;
&lt;br /&gt;
This tells JACK that we wan to use alsa with a 16 period 256 samples/period buffer in 16-bit mode. This should be enough delay to not cause too many XRuns in JACK but not too big to be noticeable. The output should look somethings like the following:&lt;br /&gt;
&lt;br /&gt;
  ubuntu@arm:~$ jackd -d alsa -p 256 -n 16 -S&lt;br /&gt;
  jackdmp 1.9.10&lt;br /&gt;
  Copyright 2001-2005 Paul Davis and others.&lt;br /&gt;
  Copyright 2004-2013 Grame.&lt;br /&gt;
  jackdmp comes with ABSOLUTELY NO WARRANTY&lt;br /&gt;
  This is free software, and you are welcome to redistribute it&lt;br /&gt;
  under certain conditions; see the file COPYING for details&lt;br /&gt;
  JACK server starting in realtime mode with priority 10&lt;br /&gt;
  creating alsa driver ... hw:0|hw:0|256|16|48000|0|0|nomon|swmeter|-|16bit&lt;br /&gt;
  control device hw:0&lt;br /&gt;
  configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 16 periods&lt;br /&gt;
  ALSA: final selected sample format for capture: 16bit little-endian&lt;br /&gt;
  ALSA: use 16 periods for capture&lt;br /&gt;
  ALSA: final selected sample format for playback: 16bit little-endian&lt;br /&gt;
  ALSA: use 16 periods for playback&lt;br /&gt;
&lt;br /&gt;
=== Rakarrack ===&lt;br /&gt;
&lt;br /&gt;
Now you should be able to run the rakarrack GUI. Use `ssh -X ubuntu@192.168.0.XXX` to connect to the BeagleBone with X11 forwarding and then run `rakarrack`. &lt;br /&gt;
&lt;br /&gt;
*Note: This version of the kernel does not have a working USB gadget module so ethernet over USB does not work so the BeagleBone needs to be connected to the network.&lt;br /&gt;
&lt;br /&gt;
The program should be able to find jackd by itself. If not kill the JACK processes and rerun the configuration. One way to do this is run `ps -AL | grep jack`, and then run `kill -9` with the pid number.&lt;br /&gt;
&lt;br /&gt;
When Rakarrack opens, it may warn you that your CPU is not fast enough to run some of the audio effects (e.g. convolutron). Don't worry about this too much.&lt;br /&gt;
&lt;br /&gt;
In Rakarrack go to 'Settings-&amp;gt;Preferences-&amp;gt;Audio' and lower all the downsample rates to '4000' and change all the down and up sampling types to 'Linear'. We could get a little more performance out of 'Zero Order', but this sampling does not interpolate so the quality isn't great.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
With these settings we are able to run any single effect in Rakarrack without causing XRuns in JACK. Some effects can be chained together, but others are just too computationally complex.&lt;br /&gt;
&lt;br /&gt;
== Future Work ==&lt;br /&gt;
&lt;br /&gt;
An interesting follow up project would be to see if another embedded Linux board (e.g. BeagleBoard xM, PandaBoard, etc.) could run Rakarrack at its default settings (or maybe its maximum settings?).&lt;br /&gt;
&lt;br /&gt;
*Note: On multicore systems JACK may require some special setup for [http://jackaudio.org/linux_rt_config realtime processing]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Qt</id>
		<title>ECE497 Notes on Qt</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Qt"/>
				<updated>2013-05-18T16:03:00Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |qt]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
[http://qt.nokia.com/ Qt] is one of the many UI frameworks that runs on the Beagle.  It also runs on many other platforms such as Microsoft Windows, Mac OS X, and Linux, and it appears to be one of the more popular choices for the Beagle. It even runs on [http://qt.nokia.com/products/qt-for-mobile-platforms dumb cell phones]. We'll be using it with X11, however there is an [http://developer.qt.nokia.com/wiki/Support_for_Embedded_Linux embedded version] that doesn't need X.&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
&lt;br /&gt;
[https://plus.google.com/app/basic/stream/z13ah33j3xq5cpxti225yxthikrhfn3tr]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[http://tigraphics.blogspot.com/2013/01/qt-500-final-dec-2012-available-on-ti.html TI Graphics site] has the latest version of QT.&lt;br /&gt;
&lt;br /&gt;
Qt can be developed solely on the Beagle, but I suggest you install it on both your host and the Beagle. Compilations on the Beagle may only take 20 or 30 seconds, but run much faster on the host.&lt;br /&gt;
&lt;br /&gt;
=== Installing v6 ===&lt;br /&gt;
&lt;br /&gt;
I'm running with v6 since it's an easy download on both the host and Beagle.  You also get the sources for the examples this way.&lt;br /&gt;
&lt;br /&gt;
==== Installing on the host ====&lt;br /&gt;
&lt;br /&gt;
I think this is all I did on the host.  This assumes you have oe installed.&lt;br /&gt;
&lt;br /&gt;
 host$ '''source ~/.oe/environment-2008'''&lt;br /&gt;
 host$ '''bitbake qt4-x11-free-gles'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installing on the Beagle ====&lt;br /&gt;
&lt;br /&gt;
Here's what I've installed on the Beagle&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opkg install qt4-x11-free'''     # 3 minutes&lt;br /&gt;
 beagle$ '''opkg install qmake2'''           # 1 minute&lt;br /&gt;
 beagle$ '''opkg install qt4-x11-free-dev''' # 4 minutes&lt;br /&gt;
 beagle$ '''opkg install qt4-x11-free-doc''' # 5 minutes&lt;br /&gt;
&lt;br /&gt;
I had to hack a couple of things before running qmake.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd /usr/bin'''&lt;br /&gt;
 beagle$ '''ln -s moc moc-qt4'''&lt;br /&gt;
 beagle$ '''ln -s uic uic-qt4'''&lt;br /&gt;
 beagle$ '''ln -s qmake-qt4 qmake'''&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''source /usr/share/qt4/environment-setup'''&lt;br /&gt;
&lt;br /&gt;
Be sure to source the setup file before running qmake for the first time.&lt;br /&gt;
&lt;br /&gt;
Check out the qt demos and documentation.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''qtdemo'''&lt;br /&gt;
 beagle$ '''midori file:///usr/share/doc/qt4/html/index.html''' &lt;br /&gt;
&lt;br /&gt;
The following appears to load some qt examples with source code in /usr/share/ICS.  You'll also find examples in /usr/bin/qt4/examples.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install linuxtag-ics'''  # 1 minute&lt;br /&gt;
&lt;br /&gt;
=== Installing v5 ===&lt;br /&gt;
&lt;br /&gt;
Version 5 is what you get when you use the package managers.  I don't know how to get the source for the examples with this approach.&lt;br /&gt;
&lt;br /&gt;
==== Installing on the host ====&lt;br /&gt;
&lt;br /&gt;
Just run:&lt;br /&gt;
&lt;br /&gt;
 host$ '''sudo apt-get update'''&lt;br /&gt;
 host$ '''sudo apt-get install libqwt-dev'''       # 1 minute&lt;br /&gt;
 host$ '''opkg intall libqwt-examples'''           # 1 minute&lt;br /&gt;
&lt;br /&gt;
==== Installing on the Beagle ====&lt;br /&gt;
&lt;br /&gt;
Just run:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opkg intall libqwt-dev'''       # 1 minute&lt;br /&gt;
 beagle$ '''opkg intall libqwt-examples'''  # 1 minute&lt;br /&gt;
&lt;br /&gt;
== Qt Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== Widgets ===&lt;br /&gt;
&lt;br /&gt;
There are several nice Qt Tutorials [http://doc.qt.nokia.com/4.7/tutorials.html here].  I suggest you start with the [http://doc.qt.nokia.com/4.7/widgets-tutorial.html Widgets Tutorial]. Here's how you can run the examples on the Beagle.&lt;br /&gt;
&lt;br /&gt;
# Go to the [http://doc.qt.nokia.com/4.7/tutorials-widgets-toplevel.html Creating a Window] tutorial and download the '''main.cpp''' and '''toplevel.pro''' files. Put them in their own directory.&lt;br /&gt;
# Run '''qmake'''.  (Be sure you have sourced the file noted above.) This will create a Makefile.&lt;br /&gt;
# Run '''make'''.  This should compile the program.  It takes about 30 seconds for the first make.&lt;br /&gt;
# Do an '''ls''' to see what files were created. You should see '''toplevel'''.  Run it.&lt;br /&gt;
# Congratulations, you've just compiled and run your first Qt program.&lt;br /&gt;
&lt;br /&gt;
Work through the rest of the widgets tutorials to learn about building at Qt from the bottom up.  The [http://doc.qt.nokia.com/4.7/tutorials-addressbook.html Address Book] tutorials look like they are also a good place to explore.&lt;br /&gt;
&lt;br /&gt;
=== Qt Designer ===&lt;br /&gt;
&lt;br /&gt;
It's possible to build a user interface from the command line, building a graphics user interface is more easily done with a graphical program. [http://doc.qt.nokia.com/4.7/designer-manual.html Qt Designer] is Qt's tool for designing and building graphical user interfaces (GUIs) from Qt components. The [http://doc.qt.nokia.com/4.7/designer-quick-start.html Qt Designer Tutorial] is a good overview of what Designer can do.  Designer runs on the host and the Beagle and should already be installed.  &lt;br /&gt;
&lt;br /&gt;
The Qt Designer tutorial ends rather quickly.  I suggest you follow it up by looking at the [http://doc.qt.nokia.com/4.7/examples-designer.html Qt Designer Examples].  Here you will learn different ways to take the '''*.ui''' file created by Designer and use it with your other Qt code.&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
Here are some usefule links I've found.&lt;br /&gt;
&lt;br /&gt;
; [http://qt.nokia.com/ The Qt site]&lt;br /&gt;
: It's a bit overwhelming at first, but gives a good idea what Qt can do, how it can do it, and where it's doing it.&lt;br /&gt;
&lt;br /&gt;
; [http://doc.trolltech.com/4.7/index.html Qt Reference Documenation]&lt;br /&gt;
: This looks like a nice reference.&lt;br /&gt;
&lt;br /&gt;
; [http://labs.qt.nokia.com/2009/11/20/building-qt-to-make-use-of-the-beagle-boards-sgx-gpu/ Building Qt to make use of the Beagle board’s SGX GPU]&lt;br /&gt;
: There is a version of Qt that uses the Beagle's SGC to render the 3D stuff.  I'm not doing 3D right now, so I haven't looked into it.&lt;br /&gt;
&lt;br /&gt;
; [http://processors.wiki.ti.com/index.php/Building_Qt Building Qt] &lt;br /&gt;
: This is  TI's site.&lt;br /&gt;
&lt;br /&gt;
; [http://qt.nokia.com/products/platform/qt-for-embedded-linux/ Embedded Linux Qt]&lt;br /&gt;
: If you are thinking small, maybe you don't want X running on your Beagle.  If so, look at  Qt Embedded. It write straight to the frame buffer.&lt;br /&gt;
&lt;br /&gt;
; [http://treyweaver.blogspot.com/2010/10/setting-up-qt-development-environment.html Setting Up Qt Development Environment for BeagleBoard-xM]&lt;br /&gt;
: This site has some nice instructions on getting QT going on the Beagle by recompiling everything.  I don't think recompiling is really necessary. It's set up for using Qt embedded.&lt;br /&gt;
&lt;br /&gt;
== Qt Quick and Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Qt Quick is another way of building a UI. [http://qt.nokia.com/qtquick/ Qt Quick] is based on JavaScript, HTML and CSS. [http://qt.nokia.com/products/developer-tools Qt Creator] is a cross-platform integrated development environment (IDE) tailored to the needs of Qt  developers; however it doesn't appear to run on the Beagle.  I need to look into this some more.&lt;br /&gt;
&lt;br /&gt;
I'm working through [http://doc.trolltech.com/qtcreator-2.2/creator-qml-application.html this] example. I can't change '''mousearea1''' to '''MouseArea''' to match the figure.  I think something is missing in the instructions.&lt;br /&gt;
&lt;br /&gt;
The Transitions section has some details missing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   transitions: [&lt;br /&gt;
        Transition {&lt;br /&gt;
            from: &amp;quot;*&amp;quot;; to: &amp;quot;State1&amp;quot;&lt;br /&gt;
            NumberAnimation {&lt;br /&gt;
                properties: &amp;quot;x,y&amp;quot;;&lt;br /&gt;
                duration: 1000&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Real-time Plotting - QWT ==&lt;br /&gt;
&lt;br /&gt;
QWT is short for Qt Widgets for Technical Applications. It is a collection of widgets and support classes for creating technical applications. I hope to use it to do real-time plotting on the Beagle.&lt;br /&gt;
&lt;br /&gt;
[http://qwt.sourceforge.net/ Here] is the main qwt site. [http://www.digitalfanatics.org/projects/qt_tutorial/chapter11.html Here] is some info on QWT.  I think it might be able to plot data as it comes in.&lt;br /&gt;
&lt;br /&gt;
Here's how I think I installed it on the host.&lt;br /&gt;
&lt;br /&gt;
 host$ '''svn co https://qwt.svn.sourceforge.net/svnroot/qwt/branches/qwt-6.0'''  # This is straight from the qwt site.&lt;br /&gt;
 host$ '''cd qwt-6.0'''&lt;br /&gt;
 host$ '''gedit qwtconfig.pri'''&lt;br /&gt;
&lt;br /&gt;
Around line 108, uncomment &amp;lt;code&amp;gt;QWT_CONFIG     += QwtExamples&amp;lt;/code&amp;gt;.  This will compile the examples too.&lt;br /&gt;
&lt;br /&gt;
 host$ '''qmake-qt4'''&lt;br /&gt;
 host$ '''make'''&lt;br /&gt;
&lt;br /&gt;
After a while it should be ready to run.  Explore the '''examples''' folder.  The Makefiles are setup to put all the binarys in examples/bin.  Try running them.&lt;br /&gt;
&lt;br /&gt;
=== On the Beagle ===&lt;br /&gt;
Here's what I did on the Beagle.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''svn co https://qwt.svn.sourceforge.net/svnroot/qwt/branches/qwt-6.0'''&lt;br /&gt;
 beagle$ '''source /usr/share/qt4/environment-setup'''&lt;br /&gt;
 beagle$ '''cd qwt-6.0'''&lt;br /&gt;
 beagle$ '''qmake'''&lt;br /&gt;
 beagle$ '''make'''&lt;br /&gt;
&lt;br /&gt;
The compile took about 20 minutes without the examples. The examples took an additional 17 minutes. The lib files don't get copied to /usr/lib (even with make install), so I copied them by hand.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd lib'''&lt;br /&gt;
 beagle$ '''cp * /usr/lib'''&lt;br /&gt;
&lt;br /&gt;
Now try an example.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd ../examples/bode'''&lt;br /&gt;
 beagle$ '''qmake'''&lt;br /&gt;
 beagle$ '''make'''&lt;br /&gt;
 beagle$ '''../bin/bode'''&lt;br /&gt;
&lt;br /&gt;
You will now see a bode plot.  They the '''Zoom''' and '''Export''' buttons.&lt;br /&gt;
&lt;br /&gt;
Note:  All the example Makefiles are set up to install the executable in the examples/bin directory.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Power_Measurement</id>
		<title>ECE497 Notes on Power Measurement</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Power_Measurement"/>
				<updated>2013-05-18T16:02:41Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |P]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/#!topic/beagleboard/s3zIpN_9lig This] looks like a good post to start with to learn how to measure the Beagle's power consumption.&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/?fromgroups#!topic/beagleboard/8PqigpF1VEk Here's] another post.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_node.js</id>
		<title>ECE497 Notes on node.js</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_node.js"/>
				<updated>2013-05-18T16:01:25Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |node]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
I'm working up and example on [http://nodejs.org/ node.js].  Here are some notes.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
=== Beagle ===&lt;br /&gt;
&lt;br /&gt;
 beagle$ opkg update&lt;br /&gt;
 beagle$ opkg install nodejs&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.nodebeginner.org/ nodebeginner.org] looks like a good tutorial.&lt;br /&gt;
* [http://nodeguide.com/ http://nodeguide.com/]&lt;br /&gt;
* [http://nodetuts.com/ nodetuts.com]&lt;br /&gt;
* [http://elinux.org/images/b/ba/Elc2011_kridner.pdf Elc2011_kridner.pdf] looks like some notes from Jason.&lt;br /&gt;
* [http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb Understanding node.js]&lt;br /&gt;
* [http://howtonode.org/ How to node].  Looks like this also has some nice JavaScript tutorials.&lt;br /&gt;
* YouTube intro to [http://www.youtube.com/watch?v=jo_B4LTHi3I&amp;amp;feature=share node.js] (About an hour.)&lt;br /&gt;
* [http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/ Understanding the node.js event loop]&lt;br /&gt;
* [http://coding.smashingmagazine.com/2011/09/16/useful-node-js-tools-tutorials-and-resources/ Useful node.js tools]&lt;br /&gt;
** [http://shinetech.com/thoughts/thought-articles/139-asynchronous-code-design-with-nodejs Asynchronous Code Design with Node.js]&lt;br /&gt;
* [http://www.cambus.net/setting-up-a-node-js-development-environment-with-npm-and-cloud9-ide-installed-locally/ Installing node.js, cloud9 and npm]&lt;br /&gt;
* [http://cloud9ide.posterous.com/never-commit-to-your-master cloud9] development process.&lt;br /&gt;
* [http://nodemanual.org/latest/ Manual] for node.js&lt;br /&gt;
* [http://net.tutsplus.com/tutorials/javascript-ajax/getting-started-with-node-js-and-geddy Geddy] and node.js.  Geddy is a simple and structured MVC (model, view, controller) framework for Node.js. The tutorial is too detailed for what I'm looking for. [http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-to-do-list-app-with-node-js-and-geddy/ More geddy]&lt;br /&gt;
* [http://blog.nodejs.org/2012/04/25/profiling-node-js/ Profiling node.js]&lt;br /&gt;
* [http://sharejs.org ShareJS – Live concurrent editing in your app]&lt;br /&gt;
* [https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html Web Audio API]&lt;br /&gt;
* [http://www.chromium.org/developers/meet-the-web-platform-companion Web platform]&lt;br /&gt;
* [http://engineering.linkedin.com/nodejs/blazing-fast-nodejs-10-performance-tips-linkedin-mobile Blazing fast nose.js]&lt;br /&gt;
* [http://nikhilm.github.com/uvbook/ libuv book]&lt;br /&gt;
&lt;br /&gt;
* [http://www.manning.com/cantelon/ Node.js in Action]. Buy this one.  It looks pretty good.  It pointed me to the following two links.&lt;br /&gt;
* [https://developer.mozilla.org/en/A_re-introduction_to_JavaScript A re-introduction to JavaScript]&lt;br /&gt;
* [http://eleventyone.done.hu/OReilly.JavaScript.The.Good.Parts.May.2008.pdf JavaScript: The Good Parts].  This may be a pirated copy.  Better buy the real one.&lt;br /&gt;
* Install '''jslint''' for node.js with &amp;lt;code&amp;gt;sudo npm -g install jslint&amp;lt;/code&amp;gt;. Details: [https://github.com/reid/node-jslint node-jslint].&lt;br /&gt;
&lt;br /&gt;
[http://codehenge.net/blog/2011/12/getting-started-with-node-js-and-socket-io-v0-7-part-2/ Socket.io] looks like a good way to pass data to the browser.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* [http://csanz.posterous.com/intro-to-nodejs-slide-show-app-written-in-nod intro to node.js slide show app written in node.js]&lt;br /&gt;
* [http://maxogden.com/node-streams node streams]&lt;br /&gt;
* [http://summerofnodejs.com/ Summer of node.js]&lt;br /&gt;
* [http://cestfait.ch/content/chat-webapp-nodejs chat-webapp-nodejs]&lt;br /&gt;
* [http://shapeshed.com/creating-a-basic-site-with-node-and-express/ Creating a Basic Site With node.js and Express]&lt;br /&gt;
* [http://mustafaakin.wordpress.com/2012/04/28/wsftp-file-transfer-over-websockets/ WSFTP: File Transfer over Websockets]&lt;br /&gt;
* [http://www.chrissharkey.com/programming-blog/2012/03/12/making-an-hilarious-irc-bot-in-node-js MAKING AN HILARIOUS IRC BOT IN COFFEESCRIPT USING NODE.JS]&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Somehow [http://cloud9ide.com/yoder Cloud9] fits in with this.&lt;br /&gt;
&lt;br /&gt;
I'm trying to get cloud9 running on the Beagle.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opkg install nodejs''' (1min 6 sec)&lt;br /&gt;
 beagle$ '''opkg install nodejs-dev''' (I don't know if this is needed.)&lt;br /&gt;
&lt;br /&gt;
Something from Jason&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install bonescript'''&lt;br /&gt;
 beagle$ '''opkg install cloud9'''&lt;br /&gt;
&lt;br /&gt;
Here’s how to get npm according to http://npmjs.org/&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg install curl''' (1m23)&lt;br /&gt;
 beagle$ '''opkg install nodejs''' (1m6)&lt;br /&gt;
 beagle$ '''curl http://npmjs.org/install.sh | sh''' (1m5)&lt;br /&gt;
&lt;br /&gt;
It's said [https://groups.google.com/forum/#!topic/beagleboard/uGp90z-BJkc this] will work on a current distribution of Angstrom, but it doesn't work for me.&lt;br /&gt;
 beagle$ '''opkg install cloud9'''&lt;br /&gt;
&lt;br /&gt;
=== non-Beagle ===&lt;br /&gt;
&lt;br /&gt;
Here are instructions for a non-Beagle install from [https://groups.google.com/forum/#!starred/cloud9-ide/L4DSGZS4KmM here].&lt;br /&gt;
&lt;br /&gt;
 host$ '''git clone git://github.com/ajaxorg/cloud9.git'''  (16 seconds)&lt;br /&gt;
 host$ '''cd cloud9'''&lt;br /&gt;
 host$ '''bin/cloud9.sh'''&lt;br /&gt;
&lt;br /&gt;
then &lt;br /&gt;
 host$ '''node ./bin/cloud9.js'''&lt;br /&gt;
&lt;br /&gt;
== gitting examples ==&lt;br /&gt;
&lt;br /&gt;
 git clone git://gitorious.org/~Jadon/beagleboard-validation/jadons-education.git ''(10s)''&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Kinect</id>
		<title>ECE497 Notes on Kinect</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Kinect"/>
				<updated>2013-05-18T16:01:00Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |K ]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
[http://www.xbox.com/en-US/kinect Microsoft's Kinect] sensor has created great interest in the Beagle Community.&lt;br /&gt;
&lt;br /&gt;
Here are notes on installing the third party drivers from [http://www.omekinteractive.com/ Omek].&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
I got the 4 files from [http://support.omekinteractive.com/index.php?/TI/managedownloads/Download/View/19/7/beagleboard-xm-installation-and-documentation here].  Here's the files I have&lt;br /&gt;
&lt;br /&gt;
 host$ '''ls -sh'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
total 65M&lt;br /&gt;
4.0K beagle-omek&lt;br /&gt;
 54M beckon-image-2.4.16175.tar.gz&lt;br /&gt;
4.0K Beckon-SDK-2.4.16236&lt;br /&gt;
 11M beckon-sdk-2.4.16236.tar.gz&lt;br /&gt;
4.0K create_sd.txt&lt;br /&gt;
4.0K mkcard.sh&lt;br /&gt;
1.1M omek beckon sdk, ti dm3730 edition -- developer guide.pdf&lt;br /&gt;
4.0K readme&lt;br /&gt;
4.0K UsersGuide&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
I'm getting this error.&lt;br /&gt;
&lt;br /&gt;
 host$  '''sudo bash mkcard.sh /dev/mmcblk0 beagle-omek/'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Using image beagle-omek/&lt;br /&gt;
using device /dev/mmcblk0&lt;br /&gt;
.&lt;br /&gt;
You are about to totaly erase the device, are you sure (yes/no) ?yes&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
1048576 bytes (1.0 MB) copied, 0.382056 s, 2.7 MB/s&lt;br /&gt;
Disk /dev/mmcblk0 doesn't contain a valid partition table&lt;br /&gt;
DISK SIZE - 8010072064 bytes&lt;br /&gt;
CYLINDERS - 973&lt;br /&gt;
Checking that no-one is using this disk right now ...&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0: 973 cylinders, 255 heads, 63 sectors/track&lt;br /&gt;
&lt;br /&gt;
sfdisk: ERROR: sector 0 does not have an msdos signature&lt;br /&gt;
 /dev/mmcblk0: unrecognized partition table type&lt;br /&gt;
Old situation:&lt;br /&gt;
No partitions found&lt;br /&gt;
New situation:&lt;br /&gt;
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0&lt;br /&gt;
&lt;br /&gt;
   Device Boot Start     End   #cyls    #blocks   Id  System&lt;br /&gt;
/dev/mmcblk0p1   *      0+      8       9-     72261    c  W95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2          9     972     964    7743330   83  Linux&lt;br /&gt;
/dev/mmcblk0p3          0       -       0          0    0  Empty&lt;br /&gt;
/dev/mmcblk0p4          0       -       0          0    0  Empty&lt;br /&gt;
Successfully wrote the new partition table&lt;br /&gt;
&lt;br /&gt;
Re-reading the partition table ...&lt;br /&gt;
&lt;br /&gt;
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)&lt;br /&gt;
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1&lt;br /&gt;
(See fdisk(8).)&lt;br /&gt;
done partitioning.&lt;br /&gt;
Cant find boot partition  /dev/mmcblk01&lt;br /&gt;
Cant find rootfs partition in  /dev/mmcblk02&lt;br /&gt;
mount: special device /dev/mmcblk01 does not exist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 Failed to mount /dev/mmcblk0'''1'''.&lt;br /&gt;
&lt;br /&gt;
The problem is it's looking for /dev/mmcblk0'''1''' and on my Ubuntu 10.4 it appears at /dev/mmcblk0'''p1'''.&lt;br /&gt;
&lt;br /&gt;
I modified '''mkcard.sh''' to add the '''p''' and after a little fussing it worked!&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
&lt;br /&gt;
It booted up and runs fine. There is no X windows, rather the one demo uses QT embedded.  QT embedded writes straight to the framebuffer and doesn't need X.&lt;br /&gt;
&lt;br /&gt;
== Porting ==&lt;br /&gt;
&lt;br /&gt;
I'm now in the process of seeing if I can copy the demos over to an SD card that I've been doing other development on.  My SD isn't set up for QT embedded, so I'm trying:&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''opkg update'''&lt;br /&gt;
 beagle$ '''opgk install qt4-embedded-tools'''  # 5   minutes&lt;br /&gt;
 beagle$ '''opgk install qt4-embedded-static''' # 2.5 minutes&lt;br /&gt;
 beagle$ '''opgk install qt4-embedded-fonts'''  # 2.5 minutes&lt;br /&gt;
&lt;br /&gt;
These times running on a rather slow network at home. I don't know if the 'static' needs to be installed.&lt;br /&gt;
&lt;br /&gt;
Next I went to the SD that was working with the Kinect and copied /usr/lib/libOpenNI.* to /usr/lib on the target SD card.  I now get the following error.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''./QtTracking -qws'''&lt;br /&gt;
 Error creating sensor.&lt;br /&gt;
 Failed to initialize tracking !&lt;br /&gt;
&lt;br /&gt;
I'm guess I don't have the DSP stuff setup right.&lt;br /&gt;
&lt;br /&gt;
[http://youngindiafellowship.academia.edu/JatinSharma/Blog/48864/OpenNI-on-Beagle-Board-XM This] might help with the openNI port.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Installing_Angstrom_via_Narcissus</id>
		<title>ECE497 Notes on Installing Angstrom via Narcissus</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Installing_Angstrom_via_Narcissus"/>
				<updated>2013-05-18T16:00:34Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |N ]]&lt;br /&gt;
&lt;br /&gt;
Here's another precompiled approach that creates a complete disk image, but gives you some control over what is in the image.  The first listed creates the image used for the ICASSP 2011 tutorial/workshop.  The second one does an older image.&lt;br /&gt;
&lt;br /&gt;
== ETC 2011 image ==&lt;br /&gt;
&lt;br /&gt;
The ETC image is pretty  much the same as the FIE image, but with a couple of things cleaned up. I moved to using git for managing the exercises folder. There some gpio and pwm examples.&lt;br /&gt;
&lt;br /&gt;
== FIE 2011 image ==&lt;br /&gt;
&lt;br /&gt;
The FIE image is pretty  much the same as the ICASSP image, but with a couple of things cleaned up.&lt;br /&gt;
&lt;br /&gt;
== ICASSP 2011 image ==&lt;br /&gt;
&lt;br /&gt;
This is the image that Daniel Allred at TI created to support c6run.&lt;br /&gt;
&lt;br /&gt;
Make a beagleboard boot image and SDK image from [http://narcissus.angstrom-distribution.org/ Narcissus]. These steps are more or less in line from those taken [http://groups.google.com/group/beagleboard/browse_thread/thread/6b57d7dc2dbce7c3 here].&lt;br /&gt;
 &lt;br /&gt;
* Select '''beagleboard''' as the machine&lt;br /&gt;
* Select a unique name (or use the random one provided)&lt;br /&gt;
* Select '''advanced''' for options&lt;br /&gt;
** Select '''stable 2011.03''' for base of rootfs&lt;br /&gt;
** Select '''regular''' base system&lt;br /&gt;
** Select '''udev''' for /dev manager&lt;br /&gt;
** Select '''sysvinit''' for init manager&lt;br /&gt;
** Select '''OMAP SD image''' for image type&lt;br /&gt;
** Software manifest is '''no''' (really it doesn't matter unless you plan to redistribute this stuff)&lt;br /&gt;
** Set SDK type as '''Full SDK for generated filesystem''' and select the appropriate '''32bit Intel''' for host (our Ubuntu install is 32-bit)&lt;br /&gt;
* Select '''X11''' for the user environment&lt;br /&gt;
* For the X11 desktop environment, ok to leave it blank&lt;br /&gt;
   &lt;br /&gt;
* For ''Additional packages'':&lt;br /&gt;
** Under ''Development packages'' select:&lt;br /&gt;
*** Perl&lt;br /&gt;
*** Toolchain&lt;br /&gt;
*** Native (on-target) SDK&lt;br /&gt;
*** Native (on-target) Qt Embedded SDK &lt;br /&gt;
*** Native (on-target) Qt X11 SDK Development&lt;br /&gt;
** Under ''Network related packages'' select:&lt;br /&gt;
*** Dropbear SSH server&lt;br /&gt;
*** NTPdate&lt;br /&gt;
** Under ''Platform specific packages'':&lt;br /&gt;
*** ''Texas Instruments OMAP3x/AM3x family'' select:&lt;br /&gt;
**** Matrix GUI for QT/X11&lt;br /&gt;
**** PowerVR SGX demos for X11&lt;br /&gt;
**** PowerVR SGX gfxdriver plugin for QT/X11&lt;br /&gt;
**** TI texture streaming demo for X11&lt;br /&gt;
*** ''Texas Instruments OMAP3x/DaVinci/OMAPL family (using DSP)'' select:&lt;br /&gt;
**** TI DSPLINK Example Applications&lt;br /&gt;
**** TI Codec Engine Example Applications&lt;br /&gt;
**** Texas Instruments Gstreamer plugins&lt;br /&gt;
*** ''Various demonstration configs'' select:&lt;br /&gt;
**** Beagleboard validation GNOME image&lt;br /&gt;
 &lt;br /&gt;
Now click '''Build Me!'''  This will take some time.&lt;br /&gt;
   &lt;br /&gt;
The result of the build will be several files. (''MM''=month of creation, ''XXXX''=unique name you provided)&lt;br /&gt;
* Angstrom-2011.''MM''-narcissus-beagleboard-i686-''XXXX''-image-sdk.tar.gz image with the SDK&lt;br /&gt;
* ''XXXX''-image-beagleboard.tar.gz image with the file system contents.&lt;br /&gt;
* ''XXXX''-image-beagleboard-sd-1GiB.img.gz is a 1GB SD card image.&lt;br /&gt;
* ''XXXX''-image-beagleboard-sd-4GiB.img.gz is a 4GB SD card image. &lt;br /&gt;
 &lt;br /&gt;
Now we need to install the SDK image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar -C ~/toolchains -xzf Angstrom-2011.MM-narcissus-beagleboard-i686-XXXX-image-sdk.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(again, ''MM''=month of creation)&lt;br /&gt;
 &lt;br /&gt;
This will install the toolchain to &amp;lt;code&amp;gt;~/toolchains/usr/local/angstrom/arm&amp;lt;/code&amp;gt;.  This is a little long so let's move it&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv ~/toolchains/usr/local/angstrom/arm ~/toolchains/arm-angstrom&lt;br /&gt;
rm -Rf ~/toolchains/usr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now we have the ARM compiler ready to be used.  We will use the SD card image later.&lt;br /&gt;
&lt;br /&gt;
== Get ready for DSP Development ==&lt;br /&gt;
    &lt;br /&gt;
* Download the latest C6Run release package from [https://gforge.ti.com/gf/project/dspeasy/frs/ here].&lt;br /&gt;
&lt;br /&gt;
* Unzip the C6Run package&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar -xzf ~/Downloads/C6Run_X_YY_ZZ_WW.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
This will create a directory C6Run_X_YY_ZZ_WW in the current directory (I just use my home directory).&lt;br /&gt;
&lt;br /&gt;
* Download the Texas Instruments C6000 Compiler tools (version 7.2.2 or later) from [https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm here].&lt;br /&gt;
Note that this requires you to have a login with [http://my.ti.com my.ti.com]. This is a little annoying.&lt;br /&gt;
&lt;br /&gt;
*Install the DSP compiler to $(HOME)/toolchains&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p ~/toolchains&lt;br /&gt;
$ chmod +x ~/Downloads/ti_cgt_c6000_7.2.2_setup_linux_x86.bin&lt;br /&gt;
$ ~/Downloads/ti_cgt_c6000_7.2.2_setup_linux_x86.bin --mode silent --installto ~/toolchains &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This takes a minute and installs silently (you are implicitly agreeing to some EULA when you do this). The DSP toolchain will be in &amp;lt;code&amp;gt;~/toolchains/TI_CGT_C6000_7.2.2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Setup c6run ==&lt;br /&gt;
  &lt;br /&gt;
* Let's setup up c6Run so we can build DSP code.&lt;br /&gt;
** Edit the '''Rules.mak''' to point to the right ARM and DSP toolchains:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CODEGEN_INSTALL_DIR     ?= $(HOME)/toolchains/TI_CGT_C6000_7.2.2&lt;br /&gt;
ARM_TOOLCHAIN_PATH      ?= $(HOME)/toolchains/arm-angstrom&lt;br /&gt;
ARM_TOOLCHAIN_PREFIX    ?= arm-angstrom-linux-gnueabi-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It also appears that we need to make sure that the '''LINUXUTILS_VERSION''' is set to '''2_25_05_11'''. Without this, any application built with C6Run won't work on the current 2011.03 build generated by Narcissus since the kernel module inlcuded is based on the older LinuxUtils.&lt;br /&gt;
&lt;br /&gt;
** Now get all dependent components to build back-end libararies. The fetching and install may take some time&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/C6Run_X_YY_ZZ_WW&lt;br /&gt;
$ make get_components&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Edit the file '''platforms/beagleboard-xM/platform.mak''' and get rid of the redefines of the ARM_TOOLCHAIN_PATH and ARM_TOOLCHAIN_PREFIX (since we want to use the version we just set above in Rules.mak)&lt;br /&gt;
    &lt;br /&gt;
** Select beagleboard-xM config&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make beagleboard-xM_config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** build the back-end libraries&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make gpp_libs dsp_libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
** Source the environment for the C6Run tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ source environment.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** Build all the examples and test cases to make sure things work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make examples tests&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If that all worked, then C6Run is ready to be used to build DSP code for use with ARM programs&lt;br /&gt;
  &lt;br /&gt;
* Now we can get the Beagle up and running.  We will use the XXXX-image-beagleboard-sd-4GiB.img.gz file generated by Narcissus.&lt;br /&gt;
&lt;br /&gt;
=== Older 2010 image ===&lt;br /&gt;
&lt;br /&gt;
# Go to [http://narcissus.angstrom-distribution.org/ here]&lt;br /&gt;
# Under '''Select the machine you want to build your rootfs image for:''' select '''beagleboard'''&lt;br /&gt;
&lt;br /&gt;
There are many configurations you can try.  For starts try&lt;br /&gt;
&lt;br /&gt;
# Scroll to almost the bottom and select '''Platform specific packages:'''&lt;br /&gt;
# Again scroll to near the bottom and select '''Linuxtag 2010 beagleboard demo'''&lt;br /&gt;
# Click '''Build me!''' and wait&lt;br /&gt;
# Once the image is created, follow the instructions to download the image.  It's big so it will take a while&lt;br /&gt;
&lt;br /&gt;
Once the image is build you will have two files to download.  One is a disk image of the CD card and the other is the root file system.&lt;br /&gt;
&lt;br /&gt;
# Download both of these&lt;br /&gt;
# Run &amp;lt;code&amp;gt;host$ sudo zcat XXX | dd of=/dev/of/your/sd bs=8225280&amp;lt;/code&amp;gt;. This will partition and format the SD card and install the files needed to boot Linux.  It took me about 3 minutes.&lt;br /&gt;
# run &amp;lt;code&amp;gt;host$ sync&amp;lt;/sync&amp;gt; to be sure all the files have been written.&lt;br /&gt;
# Next, uncompress the root file system image on the CD card.  &amp;lt;code&amp;gt;host$ cd /media/rootfs&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;host$ tar -xvf ~/Documents/....&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;host$ sync&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eject the SD and plug it in your Beagle and power it up.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_gpio-keys</id>
		<title>ECE497 Notes on gpio-keys</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_gpio-keys"/>
				<updated>2013-05-18T15:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |g ]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
== Timers ==&lt;br /&gt;
Here's some leads on using timers.&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/?fromgroups#!topic/beagleboard/lCagocQaKiY%5B1-25%5D kunen.org]&lt;br /&gt;
&lt;br /&gt;
== gpio-keys ==&lt;br /&gt;
I'm trying to figure out how to access the USER button on the Beagle xM.  It looks like the new versions of the SD image use gpio-keys to manage gpio 4 so you can't access it via&lt;br /&gt;
 beagle$ '''cd /sys/class/gpio'''&lt;br /&gt;
 beagle$ '''echo 4 &amp;gt; export'''&lt;br /&gt;
 bash: echo: write error: Device or resource busy&lt;br /&gt;
&lt;br /&gt;
You need to access it via evtest, but I don't see a way to do it via the shell.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!searchin/beagleboard/USER$20button/beagleboard/yqIlD3NTWWE/2Qr_Rzh1IsgJ Here] Jason suggests looking at evtest.c to learn how to access the USER button.&lt;br /&gt;
&lt;br /&gt;
* [http://www.sakoman.com/OMAP/how-to-use-the-buttons-on-omap-development-boards.html Here] are some details on evtest.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_gpio</id>
		<title>ECE497 Notes on gpio</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_gpio"/>
				<updated>2013-05-18T15:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |g ]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
These are notes on how to do gpio faster than the /sys/class/gpio.&lt;br /&gt;
&lt;br /&gt;
== DSP ==&lt;br /&gt;
Here are some notes on how to access the gpio pins from the DSP.  So far it doesn't read the push button.&lt;br /&gt;
&lt;br /&gt;
[http://e2e.ti.com/support/embedded/bios/f/355/t/62947.aspx Here] is the starting point for this.  It appears to be a working example that reads the pushbutton (gpio 4) on the Beagle xM from the DSP.&lt;br /&gt;
&lt;br /&gt;
Everything is in a git repository.  [[EBC Exercise 01a Getting Exercise Support Materials | Here]] are notes to how to set it up.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''cd exercises/DSPgpio'''&lt;br /&gt;
 beagle$ '''ls -F'''&lt;br /&gt;
 Makefile  readPushbuttonViaDSP*  readPushbuttonViaDSP.c&lt;br /&gt;
 beagle$ '''make'''&lt;br /&gt;
 /opt/toolchains/c6run_binary/bin/c6runapp-cc   readPushbuttonViaDSP.c -o readPushbuttonViaDSP&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 35: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 46: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 47: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 50: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 52: warning #225-D: function declared implicitly &lt;br /&gt;
 &lt;br /&gt;
  undefined        first referenced             &lt;br /&gt;
   symbol              in file                  &lt;br /&gt;
  ---------        ----------------             &lt;br /&gt;
  _HWI_enableWugen ./readPushbuttonViaDSP.temp.o&lt;br /&gt;
 &lt;br /&gt;
 error #10234-D: unresolved symbols remain&lt;br /&gt;
 error #10010: errors encountered during linking;&lt;br /&gt;
    &amp;quot;readPushbuttonViaDSP.dsp_image.out&amp;quot; not built&lt;br /&gt;
 make: *** [readPushbuttonViaDSP] Error 1&lt;br /&gt;
&lt;br /&gt;
It appears '''HWI_enableWugen''' isn't defined.  Let's comment it out and see what happens.&lt;br /&gt;
&lt;br /&gt;
 beagle$ '''make'''&lt;br /&gt;
 /opt/toolchains/c6run_binary/bin/c6runapp-cc   readPushbuttonViaDSP.c -o readPushbuttonViaDSP&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 35: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 46: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 50: warning #225-D: function declared implicitly&lt;br /&gt;
 &amp;quot;readPushbuttonViaDSP.c&amp;quot;, line 52: warning #225-D: function declared implicitly &lt;br /&gt;
 &lt;br /&gt;
 readPushbuttonViaDSP successfully created&lt;br /&gt;
&lt;br /&gt;
Success, but if you run it, it doesn't respond to the push button.&lt;br /&gt;
&lt;br /&gt;
== mmap ==&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/?fromgroups#!topic/beagleboard/wkv24jV1zw8 Here's] a good discussion with many leads.&lt;br /&gt;
* [http://aquaticus.info/beaglebone-web-led Here's] a python lead.&lt;br /&gt;
* [http://www.linkedin.com/groups/Building-High-Performance-BeagleBone-GPIO-1474607.S.156569753?qid=262fdaa3-69d7-4f42-9f1a-49e025f9c828&amp;amp;trk=group_most_popular-0-b-ttl&amp;amp;goback=%2Eanb_2693438_*2_*1_*1_*1_*1_*1%2Egmp_1474607 Building a High Performance BeagleBone GPIO library in C] is a lead from LinkedIn.&lt;br /&gt;
&lt;br /&gt;
== PRU ==&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/?fromgroups#!topic/beagleboard/yOa8LrDtG1A%5B1-25%5D This] points to a nice walk through.&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Category:PRU PRU Wiki]&lt;br /&gt;
* [https://github.com/mranostay/beagle-nixie Nixie tube via PRU]&lt;br /&gt;
* [https://groups.google.com/forum/?fromgroups=#!topic/beagleboard/eRtL6z_qPAU Spreadsheet for PRU pins]&lt;br /&gt;
&lt;br /&gt;
== Timers ==&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/?fromgroups#!topic/beagleboard/lCagocQaKiY%5B1-25%5D how] to change timer from 100 to 1000. &lt;br /&gt;
&lt;br /&gt;
== SPI ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.eetimes.com/discussion/beginner-s-corner/4023908/Introduction-to-Serial-Peripheral-Interface Introduction to Serial Peripheral Interface] looks like a nice overview.&lt;br /&gt;
&lt;br /&gt;
== ARM MMU ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.embedded-bits.co.uk/2011/mmutheory/#more-705 Turning on an ARM MMU and Living to tell the Tale: Some Theory]&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_DSP_via_c6run</id>
		<title>ECE497 Notes on DSP via c6run</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_DSP_via_c6run"/>
				<updated>2013-05-18T15:58:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |c6 ]]&lt;br /&gt;
&lt;br /&gt;
Use [[EBC Exercise 09 Using the DSP for Audio Processing]] instead, though you need to follow these instructions to cross compile c6run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
c6run is an easy way to use the DSP on the BeagleBoard.  You can either setup your host computer to cross compile c6run for the Beagle, or compile right on the Beagle.  Here's how to do each.&lt;br /&gt;
&lt;br /&gt;
== Setting up cross compiling on a host computer ==&lt;br /&gt;
Here are some notes on how to get c6run going on the BeagleBoard.  This has been modified to add detail (4/27/2011) for the ECE4356 class.&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
&lt;br /&gt;
There are some 350M of files that need to be downloaded and installed to use '''c6run'''. The good news is you don't have to install anything else.  The bad news is, if this is being used with a class, 350M * number_of_students can strain a campus internet connection.  Therefore we have two options, loading from the internet (works for everyone), and loading from your campus (works if someone on your campus has already downloaded for you).&lt;br /&gt;
&lt;br /&gt;
The files you need to download are:&lt;br /&gt;
&lt;br /&gt;
* C6run_m_yoder.tgz&lt;br /&gt;
* ti_cgt_c6000_7.0.4_setup_linux_x86.bin &lt;br /&gt;
* angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2 &lt;br /&gt;
* bios_setuplinux_5_41_09_34.bin&lt;br /&gt;
&lt;br /&gt;
'''C6run_m_yoder.tgz''' contains the following:&lt;br /&gt;
&lt;br /&gt;
# /lib/modules from target FS&lt;br /&gt;
# uImage itself&lt;br /&gt;
# C6Run package prebuilt for the above&lt;br /&gt;
# C6Run target software&lt;br /&gt;
## Kernel modules for TI components&lt;br /&gt;
## loadmodules.sh and unloadmodules.sh&lt;br /&gt;
## pre-compiled test and and example applications&lt;br /&gt;
&lt;br /&gt;
Pick your method of getting them.&lt;br /&gt;
&lt;br /&gt;
==== From the Internet ====&lt;br /&gt;
&lt;br /&gt;
* [[Media:C6run_m_yoder.tgz]] comes from the eLinux site.&lt;br /&gt;
* Download the TI C6000 v7.0.4 code generation tools for Linux from [https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm here]&lt;br /&gt;
* Download the angstrom ARM toolchain from [http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2 here]&lt;br /&gt;
* Download the 5.41.09.34 DSP/Bios package from [http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/dspbios/5_41_09_34/exports/bios_setuplinux_5_41_09_34.bin here]&lt;br /&gt;
&lt;br /&gt;
==== From your Campus ====&lt;br /&gt;
&lt;br /&gt;
Go to your campus site and look for the files listed above.  The following schools have the files:&lt;br /&gt;
&lt;br /&gt;
; Rose-Hulman &lt;br /&gt;
: The class dfs site&lt;br /&gt;
; UTEP &lt;br /&gt;
:  EE4356 web site&lt;br /&gt;
&lt;br /&gt;
=== Instructions for Host Setup and Build ===&lt;br /&gt;
&lt;br /&gt;
Now that you have downloaded the above files, here is how to install them. It's  assumed that the downloaded files are in your ~/Download directory (note ~ is /home/beagle below).&lt;br /&gt;
&lt;br /&gt;
Now we create the toolchains directory and populate it&lt;br /&gt;
&lt;br /&gt;
* Install the codegen tools to &amp;lt;code&amp;gt;~/toolchains/TI_CGT_C6000_7.04&amp;lt;/code&amp;gt; (you implicitly accept a EULA when doing this)&lt;br /&gt;
     host$ mkdir ~/toolchains&lt;br /&gt;
     host$ cd ~/Downloads&lt;br /&gt;
     host$ chmod +x ti_cgt_c6000_7.0.4_setup_linux_x86.bin&lt;br /&gt;
     host$ ls -l ! Look for an x by ti_... to verify it is executable&lt;br /&gt;
     host$ ./ti_cgt_c6000_7.0.4_setup_linux_x86.bin --installto ~/toolchains --mode silent&lt;br /&gt;
&lt;br /&gt;
* Install the ARM toolchain&lt;br /&gt;
     host$ tar -C ~/toolchains -xjf angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
The ARM toolchain will be in &amp;lt;code&amp;gt;~/toolchains/usr/local/angstrom/arm/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install the DSP/Bios package (you implicitly accept a EULA when doing this)&lt;br /&gt;
     host$ chmod +x bios_setuplinux_5_41_09_34.bin&lt;br /&gt;
     host$ ./bios_setuplinux_5_41_09_34.bin --mode silent --prefix ~/toolchains  &lt;br /&gt;
&lt;br /&gt;
* Install the pre-built C6Run package. To do this you must first untar the c6run_m_yoder.tgz file&lt;br /&gt;
     host$ tar -xvzf c6run_m_yoder.tgz&lt;br /&gt;
     host$ cd c6run_m_yoder&lt;br /&gt;
     host$ tar -C ~/toolchains -xzf c6run_0_95_02_02_beagleboard.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Edit the c6run environment settings to correctly point to the location of the components on your host PC (replace ${HOME} with the absolute path)&lt;br /&gt;
     host$ cd ~/toolchains/c6run_0_95_02_02_beagleboard&lt;br /&gt;
     host$ vi environment.sh&lt;br /&gt;
     /* the following command in vi would make the substitution on all cases */&lt;br /&gt;
     :1,$s/\${HOME}/\/home\/beagle&lt;br /&gt;
* We now want to set up our environment variables. But first we will check to see what they are currently.&lt;br /&gt;
     host$ printenv ! Prints all the environment variables, note too many to see&lt;br /&gt;
     host$ printenv | more  ! Prints out a page at a time, hit space bar to advance&lt;br /&gt;
     host$ printenv | grep ARM ! Only prints lines that have “ARM” in them&lt;br /&gt;
     host$ printenv | grep C6 ! Only prints lines that have “C6” in them&lt;br /&gt;
&lt;br /&gt;
* The above commands, unless you ran the &amp;lt;code&amp;gt;environment.sh&amp;lt;/code&amp;gt; command previously, should show no environment variables with ARM or C6 in them&lt;br /&gt;
* Source the environment variables and rerun the checks&lt;br /&gt;
     host$ source environment.sh&lt;br /&gt;
     host$ printenv | grep ARM ! Only prints lines that have “ARM” in them&lt;br /&gt;
     host$ printenv | grep C6 ! Only prints lines that have “C6” in them&lt;br /&gt;
&lt;br /&gt;
The preceding checks should now show that the following FOUR environment variables are set: ARM_TOOLCHAIN_PREFIX, ARM_TOOLCHAIN_PATH, CFLAGS, and C6RUN_TOOLCHAIN_PATH. At this point the environment and components are all setup to build the examples and test cases included in the the C6Run package. The compilation scripts (c6runlib and c6runapp scripts) rely on these and the other variables from the environment.sh file. &lt;br /&gt;
&lt;br /&gt;
It is suggested that the test and example makefiles be used as a template for any builds done for your own code. &lt;br /&gt;
&lt;br /&gt;
* Run '''make''' to compile the example code&lt;br /&gt;
     host$ cd example ! You should be in /home/beagle/toolchains/c6run_0_95_02_02_beagleboard/examples&lt;br /&gt;
     host$ make&lt;br /&gt;
* Look at the output to make sure that no errors occurred. If errors occur then either correct them or seek instructor help&lt;br /&gt;
* Go into the sub directories to see the compiled code&lt;br /&gt;
     host$ cd c6runapp/emqbit&lt;br /&gt;
     host$ ls&lt;br /&gt;
* You should see in the directory listing the files bench_arm and bench_dsp (among others).&lt;br /&gt;
&lt;br /&gt;
I added the following lines to my Makefile in the emqbit directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install:&lt;br /&gt;
	scp bench_arm bench_dsp cfft_arm cfft_dsp root@beagle:c6run_target/examples/c6runlib/emqbit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I can now automatically install on the Beagle by running:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host$ make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Target Preparation ===&lt;br /&gt;
&lt;br /&gt;
It appears that if you are running a recent image, (from [http://beagleboard-validation.s3.amazonaws.com/deploy/201008201549/sd/list.html here] for example) you don't have to install a new uImage or the modules in /lib/modules.  Skip 1 and 2 below and just do 3.  If it doesn't work, go back and do 1 and 2 also.&lt;br /&gt;
&lt;br /&gt;
1. Setup the beagleboard to boot using the included kernel image (uImage binary file). This should just require replacing the uImage file on your SD card with the provided one (rename the file to be just 'uImage'). This step can be accomplished with the following commands, after the SD card which has the Angstrom linux system has been put into the card reader and mounted on the host system.&lt;br /&gt;
     host$ df ! Verify that /media/BEAGLE and /media/ANGSTROM file systems are available&lt;br /&gt;
     host$ cd /media/BEAGLE ! Or whichever file system has the uImage file&lt;br /&gt;
     host$ mv uImage uImage.bak ! Save a copy in case you mess up&lt;br /&gt;
     host$ cd ~/Downloads/C6run_m_yoder&lt;br /&gt;
     host$ cp uImage /media/BEAGLE&lt;br /&gt;
&lt;br /&gt;
2. Copy the the contents of the provided /lib/modules to the target's /lib/modules path. I (Yoder) found I didn't need to do this. I (Usevitch) concur.&lt;br /&gt;
&lt;br /&gt;
3. Copy the contents of c6run_target.tar.gz to the target file system. I placed it in /opt. It contains the kernel modules from the TI components and the loadmodules.sh script which should be used to install them. The pre-built examples and test cases are also included in this archive. However, we also want to see if our compiled example code will work. Therefore we will copy over our examples directory.&lt;br /&gt;
     host$ mkdir /media/ANGSTROM/opt&lt;br /&gt;
     host$ cp c6run_target.tar.gz /media/ANGSTROM/opt&lt;br /&gt;
     host$ cd /media/ANGSTROM/opt&lt;br /&gt;
     host$ tar -xvf c6run_target.tgz ! This can be done on the host or on the beagleboard when linux boots&lt;br /&gt;
     host$ cp -R ~/toolchains/c6run_0_95_02_02_beagleboard/examples .  ! copy our examples directory onto the SD card&lt;br /&gt;
     host$ cd ! can't unmount a file system in use&lt;br /&gt;
     host$ umount /media/ANGSTROM&lt;br /&gt;
     host$ umount /media/BEAGLE&lt;br /&gt;
&lt;br /&gt;
=== Target Running ===&lt;br /&gt;
* Remove the SD card, place it into the beagleboard, and boot Angstrom linux.&lt;br /&gt;
* Before running any c6run based application, make sure you run the loadmodules.sh script to load the needed kernel modules. &lt;br /&gt;
    beagle$ cd /opt/home/daniel/c6run_target&lt;br /&gt;
    beagle$ ./unloadmodules.sh  ! sometimes modules are left over and need to be removed&lt;br /&gt;
    beagle$ ./loadmodules.sh &lt;br /&gt;
* Now we will run our compiled fft benchmark examples&lt;br /&gt;
    beagle$ cd /opt/examples/c6runapp/emqbit&lt;br /&gt;
    beagle$ ./bench_arm&lt;br /&gt;
    beagle$ ./bench_dsp&lt;br /&gt;
&lt;br /&gt;
== Compiling on the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
== Notes on upgrading ==&lt;br /&gt;
&lt;br /&gt;
Here's some of the things I did to upgrade from c6run_0_95_02_02_beagleboard to C6Run_0_97_03_03.&lt;br /&gt;
&lt;br /&gt;
I haven't been successful at this yet.&lt;br /&gt;
&lt;br /&gt;
* Download new version of bios from [http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/index.html here]. I got 5.41.10.36&lt;br /&gt;
* Download new 'C6000 code generation tools from [https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm  here]. I got v7.2.2 since that's what the files pointed to.  v7.2.4 is the newest, it might work too.&lt;br /&gt;
* Copied config.mak from c6run_0_95_02_02_beagleboard to C6Run_0_97_03_03.  I fixed the C6RUN_INSTALL_DIR path. &amp;lt;code&amp;gt;C6RUN_INSTALL_DIR=/home/yoder/BeagleBoard/C6Run_0_97_03_03/toolchains&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Device_Tree</id>
		<title>ECE497 Notes on Device Tree</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Device_Tree"/>
				<updated>2013-05-18T15:57:25Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |D ]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Here are some things I'm finding on [http://devicetree.org/Device_Tree_Usage Device Tree].&lt;br /&gt;
&lt;br /&gt;
* [http://www.eewiki.net/display/linuxonarm/BeagleBone Robert Nelson BeagleBone]&lt;br /&gt;
* [http://www.eewiki.net/display/linuxonarm/BeagleBone+Black Robert Nelson BeagleBone Black]&lt;br /&gt;
* [http://hipstercircuits.com/enable-pwm-on-beaglebone-with-device-tree-overlays/ Enable PWM on BeagleBone with Device Tree overlays]&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Creating_a_Beaglebone_Cape</id>
		<title>ECE497 Notes on Creating a Beaglebone Cape</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Creating_a_Beaglebone_Cape"/>
				<updated>2013-05-18T15:56:59Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |C ]]&lt;br /&gt;
[[Category:EmbeddedBeagleClass]]&lt;br /&gt;
&lt;br /&gt;
So you are thinking about building a Beaglebone cape? Awesome! There are a lot of reasons to make a cape. In 2012, beagleboard.org and circuitco held a [http://beagleboard.org/capecontest Beagle Cape competition] and gave the top three design entries $1000 dollars plus lifetime royalties on sales of the cape on circuitco. You could also try to get your cape licensed and sold by Adafruit, Sparkfun, or other DIY websites separately. Even if you just interested in a fun DIY project, capes are an awesome way to learn a lot about circuit design and embedded systems. Good Luck!&lt;br /&gt;
&lt;br /&gt;
== Design Decisions ==&lt;br /&gt;
&lt;br /&gt;
The first issue that must be tackled is what exactly you want on your cape. There is a  [https://docs.google.com/spreadsheet/ccc?key=0AtD7XdBlve3HdDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc&amp;amp;hl=en_US#gid=0 Google Spreadsheet] that lists most Beaglebone capes that have been completed or are in the process of being completed. If the cape you are building does not have components on it that are in the repository, it is probably time to ask yourself whether the beaglebone supports the hardware you have selected. &lt;br /&gt;
&lt;br /&gt;
Also, if your cape idea is really similar to one in the repository, I wouldn't get too down about it. Paypal is really similar to Google Checkout, Wirecard, and Moneybookers, but continues to be the standout internet money handling service for various reasons. Basically, I would suggest continuing to work on your idea. Especially if it offers something unique that the other solutions in the repository do not include. &lt;br /&gt;
&lt;br /&gt;
When choosing parts that you want on your cape, realize that some parts are easier to put on PCBs than others. Try looking up libraries for the parts you want to use by googling &amp;quot;msp430 allegro library&amp;quot; or &amp;quot;msp430 Eagle library.&amp;quot; If there is not library, you will likely have to create a pad and footprint for the part.&lt;br /&gt;
&lt;br /&gt;
== Tools Needed ==&lt;br /&gt;
[[File:EagleCadSymbol.png]]&lt;br /&gt;
&lt;br /&gt;
Eagle CAD is an open source schematic layout and PCB editor environment that is used by most of the PCB open source community. You can find the latest version of Eagle [http://www.cadsoftusa.com/download-eagle/?language=en here].&lt;br /&gt;
&lt;br /&gt;
Eagle CAD is a fully featured CAD program that can be had for the low price of $0 as long as you are okay with these limitations:&lt;br /&gt;
*The useable board area is limited to 100 x 80 mm (4 x 3.2 inches).&lt;br /&gt;
*Only two signal layers can be used (Top and Bottom).&lt;br /&gt;
*The schematic editor can only create one sheet.&lt;br /&gt;
&lt;br /&gt;
[[File:Cadence_logo3.gif]]&lt;br /&gt;
&lt;br /&gt;
Cadence Allegro is licensed to the Rose-Hulman, so it is free to Rose students. Allegro is a little bit harder overall to make PCB's in, but it is supported by the ECE department. Ask Dr. Simoni for help on the PCB. He has a website with video tutorials and other walk-throughs to help you with the process. Rose-Hulman licenses it free for use for any current students. It can be downloaded from the DFS folder. The folder also has instructions on how to install it.&lt;br /&gt;
&lt;br /&gt;
Allegro PCB is licensed by the school and used by many professional organizations throughout the world. See Dr. Simoni for advanced help.&lt;br /&gt;
&lt;br /&gt;
== First Step: Prototyping ==&lt;br /&gt;
&lt;br /&gt;
No Beaglebone cape is known to work until all of the suggested components are prototyped together with various development boards and a Beaglebone. Texas Instruments has many development kits listed on their website product pages. For example, if you navigate to the page for a common [http://www.ti.com/product/msp430g2553 MSP430 Processor] you will find on the right side of the page links to evaluation modules, development tools, and other information. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other place to look for prototyping information is on the product page itself at vendors like Digikey, Mouser, and Allied Electronics. The MSP430 that we just looked at on the TI website can also be found on the [http://www.mouser.com/ProductDetail/Texas-Instruments/MSP430G2553IPW28/?qs=sGAEpiMZZMsuBfEaN9EhVfH4Abelljmf Mouser website] where you can buy it for $2.00. See also that the Mouser website has information such as a datasheet and schematic footprints for the specific product.&lt;br /&gt;
&lt;br /&gt;
After the evaluation modules are ordered, grab your breadboard such as:&lt;br /&gt;
 &lt;br /&gt;
[[File:Breadboard.jpg]]&lt;br /&gt;
&lt;br /&gt;
and begin placing components and wiring everything together.&lt;br /&gt;
&lt;br /&gt;
Realize that if you need any help with the power supplies or other aspect of wiring, refer to the datasheets of the parts you are using. For example, the [http://www.ti.com/lit/ds/symlink/msp430g2553.pdf datasheet] for the MSP430 that I mentioned before indicates that it needs a power supply voltage between 2.2 and 3.6. This means that the 3.3V VCC coming out of the Beaglebone would work perfectly in powering the MSP430.&lt;br /&gt;
&lt;br /&gt;
== Building a Schematic ==&lt;br /&gt;
&lt;br /&gt;
After prototyping, you know where each of the wires is to be routed. The next step is to connect all of the components together in your CAD program of choice. There are excellent circuit layout examples to follow in both OrCAD and Eagle. Whichever program you use, a trick you can use is to find capes that use components in them that you are using in your design. Find the capes at the links below and download their respective OrCAD or Eagle files and find pads and footprints for your design. If you do this, make sure to reference the design that you used. Otherwise, pads and footprints can also be found by googling the respective part: &amp;quot;msp430 footprint&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Their are advantages to using OrCAD over Eagle. There are more examples and you can run simulations in PSpice before laying out the board in OrCAD. Rose-Hulman also continues to buy licenses for the complete OrCAD suite.&lt;br /&gt;
&lt;br /&gt;
[[File:EagleCadSymbol.png]]&lt;br /&gt;
&lt;br /&gt;
There are fewer Eagle examples, but a few excellent examples include: &lt;br /&gt;
*[http://ioclk.com/wp-content/uploads/2012/11/QiLiCape-ioclk.v01.rar QiLiCape] Credit goes to http://ioclk.com/beagebone-qilicape-a-wireless-power-charger-cape-for-beaglebone/&lt;br /&gt;
&lt;br /&gt;
*The Adafruit prototype board https://github.com/adafruit/Adafruit-BeagleBone-ProtoBoard &lt;br /&gt;
&lt;br /&gt;
[[File:Cadence_logo3.gif]]&lt;br /&gt;
&lt;br /&gt;
Excellent Cadence Examples include:&lt;br /&gt;
*[http://beagleboardtoys.info/index.php?title=Main_Page CircuitCo Examples] Most of the capes on this page where designed in OrCAD. &lt;br /&gt;
&lt;br /&gt;
== The Physical Layout ==&lt;br /&gt;
Laying out a PCB can be incredibly difficult. Understanding whether you want 1, 2, or 3 layer boards, how thick should the traces be, how close should the components be placed together, and more are often incredibly overwhelming at first. I cannot stress enough how helpful it would be to attend a PCB workshop that Dr. Simoni holds. He usually has at least one a year. If you cannot make it to a workshop, there are still plenty of resources that you can use to quickly design a PCB. &lt;br /&gt;
*Ask Dr. Simoni for his PCB videos. They are not operational currently on the internet, but I believe he still has copies of the videos on his computer&lt;br /&gt;
*http://www.expresspcb.com/expresspcbhtm/tips.htm has tips on PCB layout. Definitely a must read for any PCB newbie.&lt;br /&gt;
*http://www.robotroom.com/PCB-Layout-Tips.html &lt;br /&gt;
*http://www.alternatezone.com/electronics/files/PCBDesignTutorialRevA.pdf *****Excellent Tutorial*****&lt;br /&gt;
&lt;br /&gt;
Really the best advice from one Rose student to another is to start asking questions. The lab techs at Rose-Hulman are incredibly helpful if you are respectful. Mark Crosby is the man to ask if you need a PCB printed. After you believe that your circuit is correct, print as many PCBs as needed until it works correctly. Each board that Mark prints is roughly $20. At Rose, you are only able to print a maximum of 2 layers on a board. If you want to print more than that, you will have to send your PCB to a company to get it printed. The cheapest printing that I found in my time at Rose was at 4pcb.com. They can do almost anything and can get the board back to you in as little as 3 days if you pay for the expensive shipping.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_BeagleStache</id>
		<title>ECE497 Notes on BeagleStache</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_BeagleStache"/>
				<updated>2013-05-18T15:56:33Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |S ]]&lt;br /&gt;
&lt;br /&gt;
[http://beagleboard.org/project/stache BeagleStache] is a fun demo using [http://opencv.willowgarage.com/wiki/ OpenCV] to detect faces and give them a nice mustache.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Instructions for installing BeagleStache can be found at the link [http://beagleboard.org/project/stache above]. They are copied here for convenience.&lt;br /&gt;
&lt;br /&gt;
Run the following as root on the BeagleBone:&lt;br /&gt;
&lt;br /&gt;
  git clone git://github.com/jadonk/stache&lt;br /&gt;
  cd stache&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Now this will install a desktop icon called 'stache.desktop' that runs the shell script '~/stache/runstache'. By default this script will run the Twitter version that requires a Twitter account to be set up. I modified it to bypass that as below:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  cd $HOME/stache&lt;br /&gt;
  ./stache&lt;br /&gt;
&lt;br /&gt;
=== How to Run ===&lt;br /&gt;
&lt;br /&gt;
Double click the desktop icon. If you encounter problems, you can make the following modifications to help debugging. In '~/stache/runstache' append a the line '$SHELL'. And in 'stache.desktop' set 'Terminal=true'&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
This fun little demo highlights the power of the BeagleBone to do real time video processing.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_Andriod</id>
		<title>ECE497 Notes on Andriod</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_Andriod"/>
				<updated>2013-05-18T15:55:26Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |A]]&lt;br /&gt;
&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
This [http://code.google.com/p/rowboat/wiki/JellybeanOnBeaglebone_WithSGX TI site] looks like a good starting point to play with Andriod.&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Notes_on_TLC5940_16_LED_Driver</id>
		<title>ECE497 Notes on TLC5940 16 LED Driver</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Notes_on_TLC5940_16_LED_Driver"/>
				<updated>2013-05-18T15:55:02Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Moving to Notes category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Notes |T]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Here are some leads on interfacing the [http://www.ti.com/product/tlc5940 TI TLC5940 16 Channel LED Driver] to a Launchpad.&lt;br /&gt;
&lt;br /&gt;
* [http://www.ti.com/lit/ug/slau144i/slau144i.pdf MSP430x2xx Family User's Guide]&lt;br /&gt;
* [http://hackaday.com/2010/08/11/how-to-launchpad-programming-with-linux/ How-to: Launchpad programming with Linux]&lt;br /&gt;
* [http://losinggeneration.homelinux.org/2010/07/02/msp430-launchpad-on-linux/ MSP430 Launchpad on Linux]&lt;br /&gt;
* [http://blog.hodgepig.org/2010/09/10/575/ Launchpad SPI Explorer]&lt;br /&gt;
* [https://sites.google.com/site/artcfox/demystifying-the-tlc5940 Demystifying the TLC5940] has a nice tutorial on building a library for the TLC5940 for the AVR.&lt;br /&gt;
* [http://dbindner.freeshell.org/msp430/lcd_spi.html SPI experiments with the MSP430] has some next examples of doing serial via [http://dbindner.freeshell.org/msp430/lcd_spi.html#_spi_communications_with_ktm_s1201_lcd_panel bitbanging] and using the [http://dbindner.freeshell.org/msp430/lcd_spi.html#_usi_spi_communications_with_ea_dogs102_lcd_panel serial port].&lt;br /&gt;
* [http://dbindner.freeshell.org/msp430/index.html Don Bindner MSP430 Launchpad] has lots of well documented examples using the Launchpad for various things.&lt;br /&gt;
* [http://www.43oh.com/2010/09/launchpad-spi-ninja/ Launchpad SPI Ninja] shows an example using the Launchpad SPI Explorer.&lt;br /&gt;
* [http://processors.wiki.ti.com/index.php/Getting_Started_with_the_MSP430_LaunchPad_Workshop Getting Started with the MSP430 LaunchPad Workshop]&lt;br /&gt;
* [http://forum.43oh.com/topic/669-interfacing-the-launchpad-with-tlc5940-16-channel-pwm-driver/#entry5694 Interfacing the Launchpad with TLC5940 16-channel PWM driver]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://forum.43oh.com/topic/126-i2c-explorer/#entry3856 i2c Explorer]&lt;br /&gt;
 &lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Calendar_and_Exercises_-_Fall_2013</id>
		<title>ECE497 Calendar and Exercises - Fall 2013</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Calendar_and_Exercises_-_Fall_2013"/>
				<updated>2013-05-18T15:53:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Updating for Fall 2013&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497 |Calendar]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Here's what you'll need to do for the class.  Unless stated otherwise these are individual exercises, not team.&lt;br /&gt;
&lt;br /&gt;
I'm updating this from last year, so be sure to check the year to be sure it's been refreshed. If the background is white, it hasn't been updated.&lt;br /&gt;
&lt;br /&gt;
'''All assignments are due the start of the following week.  Initially that is a Thursday!'''&lt;br /&gt;
&lt;br /&gt;
== Week 1 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Assignment Links&lt;br /&gt;
|-&lt;br /&gt;
| 1-1&lt;br /&gt;
| 30-Aug-2012&lt;br /&gt;
| &lt;br /&gt;
| Introductions, Demos&lt;br /&gt;
| Fire up your Beagle and see it work. Do everything in Exercise 09. Due Friday.&lt;br /&gt;
'''[[EBC Exercise 01 Start Here]]''' gives an overview of what we'll be doing over the next few days.  Start setting up your Linux development computer now.  You can do either a native install, or a virtual machine. [[EBC Exercise 06 Notes on VirtualBox | Here]] and [[EBC Exercise 07 Notes on Installing Ubuntu in VMware Player | here]] are some notes in virtual machine installs.  They are out of date.  Feel free to update them.&lt;br /&gt;
&lt;br /&gt;
I suggest Ubuntu 12.04 LTS.  Some of the TI software may require it. I may not be able to help with other versions of distributions.&lt;br /&gt;
&lt;br /&gt;
| [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]]&lt;br /&gt;
[[EBC_Exercise_01_Start_Here#The_Linux_host_computer | EBC Exercise 01 Start Here]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 02 Out-of-the-Box, Bone]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 09 Working With Open Source]]&lt;br /&gt;
|-&lt;br /&gt;
| 1-2&lt;br /&gt;
| 31&lt;br /&gt;
| &lt;br /&gt;
| General Purpose IO, LEDs and push buttons.&lt;br /&gt;
| Set up a Beagle, demo in class. Get reference manuals and clone git repository.&lt;br /&gt;
| [[EBC Exercise 03 Installing a Beagle OS]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 05 Getting Exercise Support Materials]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 10 Flashing an LED]]&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| 3-Sept-2012&lt;br /&gt;
| &lt;br /&gt;
| Interrupts and gpio&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 08 Installing Development Tools]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 11 gpio Polling and Interrupts]]&lt;br /&gt;
|-&lt;br /&gt;
| 1-4&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| i2c, git&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 16 git]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Add your project ideas&lt;br /&gt;
| [[ECE497 Project Ideas]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 2 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|- &lt;br /&gt;
| 2-1&lt;br /&gt;
| 6-Sept&lt;br /&gt;
| &lt;br /&gt;
| Pulse Width Modulation&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 12 I2C]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 13 Pulse Width Modulation]]&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
| Lab Time, Mini Project 01&lt;br /&gt;
| Measure gpio and pwm with oscilloscope.&lt;br /&gt;
| [[EBC Mini Project 01]]&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| gdb, Lab Time&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 14 gdb Debugging]]&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 11&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 3 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 3-1&lt;br /&gt;
| 13&lt;br /&gt;
| &lt;br /&gt;
| make, Mini Project 02&lt;br /&gt;
| Flash ETC 2012 image on SD card for xM&lt;br /&gt;
| [[EBC Exercise 15 make]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Mini Project 02]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 03 Installing a Beagle OS]]&lt;br /&gt;
|-&lt;br /&gt;
| 3-2&lt;br /&gt;
| 14&lt;br /&gt;
| &lt;br /&gt;
| Advanced Linux Sound Architecture (ALSA)&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 17 Using ALSA for Audio Processing]]&lt;br /&gt;
|-&lt;br /&gt;
| 3-3&lt;br /&gt;
| 17&lt;br /&gt;
| &lt;br /&gt;
| Using the DSP (c6run)&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 18 Using the DSP for Audio Processing]]&lt;br /&gt;
|-&lt;br /&gt;
| 3-4&lt;br /&gt;
| 18&lt;br /&gt;
| &lt;br /&gt;
| Lab Time, Mini Project 1 demo time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 4 ==&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 20&lt;br /&gt;
| &lt;br /&gt;
| Video Processing&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 19 DSS2 and sysfs]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 20 The Display SubSystem (DSS)]]&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 21&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 24&lt;br /&gt;
| &lt;br /&gt;
| Threads&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 21 Running Audio and Video]]&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 25&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 5 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 27-Sept-2012&lt;br /&gt;
| &lt;br /&gt;
| Graphical Interfaces and node.js&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 28&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 1-Oct-2012&lt;br /&gt;
| 2.1-2.3.5, 3.2.13&lt;br /&gt;
| Booting, Memory Map, Cross-Development, Processor Basics, TI ARM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 2&lt;br /&gt;
| 4.1-4.3.3&lt;br /&gt;
| The Kernel&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 22 Cross-Compiling]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 6 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 6-1&lt;br /&gt;
| 4&lt;br /&gt;
| 4.4-4.5, 5.1-5.2&lt;br /&gt;
| Adding to the Kernel makefile, Kernel Initialization&lt;br /&gt;
| Find the Beagle version of Figure 2-5 on page 25. Be sure to find a numeric value for the starting address of the POP SDRAM. Note where you found this information.&lt;br /&gt;
| [[EBC Exercise 23 Configuring the Kernel]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
| 5.3-5.6&lt;br /&gt;
| Command Line Processing, __setup Macro&lt;br /&gt;
| Configuring the Kernel Lab&lt;br /&gt;
| [[EBC Exercise 24 Kconfig Edits]]&lt;br /&gt;
|-&lt;br /&gt;
| 6-2&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6-3&lt;br /&gt;
| 8&lt;br /&gt;
| 6.1-6.3&lt;br /&gt;
| System Initialization&lt;br /&gt;
| Project Status Report, update your project status page.&lt;br /&gt;
| [[EBC Exercise 21a Boot Sequence]]&lt;br /&gt;
[[ECE497 Contributions and Project Status]]&lt;br /&gt;
|-&lt;br /&gt;
| 6-4&lt;br /&gt;
| 9&lt;br /&gt;
| 6.4-6.7&lt;br /&gt;
| Initial RAM Disk, Using initramfs&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 7 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 7-1&lt;br /&gt;
| 15&lt;br /&gt;
| 7.1-7.3&lt;br /&gt;
| Bootloaders, Das U-Boot&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 25 Configuring U-boot]]&lt;br /&gt;
|-&lt;br /&gt;
| 7-2&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
| Demo and Work Day&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7-3&lt;br /&gt;
| 18&lt;br /&gt;
| 8.1-8.4&lt;br /&gt;
| Device Driver Basics, Driver Methods&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 08 Installing Development Tools]]&lt;br /&gt;
[[EBC Exercise 26 Device Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| 7-4&lt;br /&gt;
| 19&lt;br /&gt;
| 11.1-11.4&lt;br /&gt;
| BusyBox&lt;br /&gt;
| In B105&lt;br /&gt;
| [[EBC Exercise 27 BusyBox]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 8 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 22&lt;br /&gt;
| [http://gstreamer.freedesktop.org/ GStreamer]&lt;br /&gt;
| GStreamer ([http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet Cheat Sheet],&lt;br /&gt;
[http://www.oz9aec.net/index.php/gstreamer/345-a-weekend-with-gstreamer Weekend with GStreamer])&lt;br /&gt;
| Status Report&lt;br /&gt;
| [[EBC Exercise 29 GStreamer]] (optional)&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 23&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Project Time&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 25&lt;br /&gt;
| &lt;br /&gt;
| Remote debugging with gdb, cbrowser/cscope and strace&lt;br /&gt;
| Project Time&lt;br /&gt;
| [[EBC Exercise 28 Remote gdb and more]] (optional)&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 26&lt;br /&gt;
| &lt;br /&gt;
| Project Time&lt;br /&gt;
| &lt;br /&gt;
| [[ECE497 Contributions and Project Status]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 9 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 9-1&lt;br /&gt;
| 29&lt;br /&gt;
| &lt;br /&gt;
| Project Time all week&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9-2&lt;br /&gt;
| 30&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9-3&lt;br /&gt;
| 1-Nov-2012&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9-4&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 10 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 10-1&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Project Time all week&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10-2&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10-3&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Meet in B105&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10-4&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Demo Time&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Calendar_and_Exercises</id>
		<title>ECE497 Calendar and Exercises</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Calendar_and_Exercises"/>
				<updated>2013-05-18T15:50:39Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Calendar]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
Here's what you'll need to do for the class.  Unless stated otherwise these are individual exercises, not team.&lt;br /&gt;
&lt;br /&gt;
I'm updating this from last year, so be sure to check the year to be sure it's been refreshed. If the background is white, it hasn't been updated.&lt;br /&gt;
&lt;br /&gt;
'''All assignments are due the start of the following week.  Initially that is a Thursday!'''&lt;br /&gt;
&lt;br /&gt;
== Week 1 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffcc;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Assignment Links&lt;br /&gt;
|-&lt;br /&gt;
| 1-1&lt;br /&gt;
| 30-Aug-2012&lt;br /&gt;
| &lt;br /&gt;
| Introductions, Demos&lt;br /&gt;
| Fire up your Beagle and see it work. Do everything in Exercise 09. Due Friday.&lt;br /&gt;
'''[[EBC Exercise 01 Start Here]]''' gives an overview of what we'll be doing over the next few days.  Start setting up your Linux development computer now.  You can do either a native install, or a virtual machine. [[EBC Exercise 06 Notes on VirtualBox | Here]] and [[EBC Exercise 07 Notes on Installing Ubuntu in VMware Player | here]] are some notes in virtual machine installs.  They are out of date.  Feel free to update them.&lt;br /&gt;
&lt;br /&gt;
I suggest Ubuntu 12.04 LTS.  Some of the TI software may require it. I may not be able to help with other versions of distributions.&lt;br /&gt;
&lt;br /&gt;
| [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]]&lt;br /&gt;
[[EBC_Exercise_01_Start_Here#The_Linux_host_computer | EBC Exercise 01 Start Here]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 02 Out-of-the-Box, Bone]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 09 Working With Open Source]]&lt;br /&gt;
|-&lt;br /&gt;
| 1-2&lt;br /&gt;
| 31&lt;br /&gt;
| &lt;br /&gt;
| General Purpose IO, LEDs and push buttons.&lt;br /&gt;
| Set up a Beagle, demo in class. Get reference manuals and clone git repository.&lt;br /&gt;
| [[EBC Exercise 03 Installing a Beagle OS]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 05 Getting Exercise Support Materials]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 10 Flashing an LED]]&lt;br /&gt;
|-&lt;br /&gt;
| 1-3&lt;br /&gt;
| 3-Sept-2012&lt;br /&gt;
| &lt;br /&gt;
| Interrupts and gpio&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 08 Installing Development Tools]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 11 gpio Polling and Interrupts]]&lt;br /&gt;
|-&lt;br /&gt;
| 1-4&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| i2c, git&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 16 git]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Add your project ideas&lt;br /&gt;
| [[ECE497 Project Ideas]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 2 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#eeffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|- &lt;br /&gt;
| 2-1&lt;br /&gt;
| 6-Sept&lt;br /&gt;
| &lt;br /&gt;
| Pulse Width Modulation&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 12 I2C]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 13 Pulse Width Modulation]]&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 7&lt;br /&gt;
| &lt;br /&gt;
| Lab Time, Mini Project 01&lt;br /&gt;
| Measure gpio and pwm with oscilloscope.&lt;br /&gt;
| [[EBC Mini Project 01]]&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| gdb, Lab Time&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 14 gdb Debugging]]&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 11&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 3 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffaaff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 3-1&lt;br /&gt;
| 13&lt;br /&gt;
| &lt;br /&gt;
| make, Mini Project 02&lt;br /&gt;
| Flash ETC 2012 image on SD card for xM&lt;br /&gt;
| [[EBC Exercise 15 make]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Mini Project 02]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 03 Installing a Beagle OS]]&lt;br /&gt;
|-&lt;br /&gt;
| 3-2&lt;br /&gt;
| 14&lt;br /&gt;
| &lt;br /&gt;
| Advanced Linux Sound Architecture (ALSA)&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 17 Using ALSA for Audio Processing]]&lt;br /&gt;
|-&lt;br /&gt;
| 3-3&lt;br /&gt;
| 17&lt;br /&gt;
| &lt;br /&gt;
| Using the DSP (c6run)&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 18 Using the DSP for Audio Processing]]&lt;br /&gt;
|-&lt;br /&gt;
| 3-4&lt;br /&gt;
| 18&lt;br /&gt;
| &lt;br /&gt;
| Lab Time, Mini Project 1 demo time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 4 ==&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;color:blue; background-color:#ddffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 20&lt;br /&gt;
| &lt;br /&gt;
| Video Processing&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 19 DSS2 and sysfs]]&lt;br /&gt;
&lt;br /&gt;
[[EBC Exercise 20 The Display SubSystem (DSS)]]&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 21&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 24&lt;br /&gt;
| &lt;br /&gt;
| Threads&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 21 Running Audio and Video]]&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 25&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 5 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffdd;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 27-Sept-2012&lt;br /&gt;
| &lt;br /&gt;
| Graphical Interfaces and node.js&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 28&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 1-Oct-2012&lt;br /&gt;
| 2.1-2.3.5, 3.2.13&lt;br /&gt;
| Booting, Memory Map, Cross-Development, Processor Basics, TI ARM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 2&lt;br /&gt;
| 4.1-4.3.3&lt;br /&gt;
| The Kernel&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 22 Cross-Compiling]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 6 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffddff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 6-1&lt;br /&gt;
| 4&lt;br /&gt;
| 4.4-4.5, 5.1-5.2&lt;br /&gt;
| Adding to the Kernel makefile, Kernel Initialization&lt;br /&gt;
| Find the Beagle version of Figure 2-5 on page 25. Be sure to find a numeric value for the starting address of the POP SDRAM. Note where you found this information.&lt;br /&gt;
| [[EBC Exercise 23 Configuring the Kernel]]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
| 5.3-5.6&lt;br /&gt;
| Command Line Processing, __setup Macro&lt;br /&gt;
| Configuring the Kernel Lab&lt;br /&gt;
| [[EBC Exercise 24 Kconfig Edits]]&lt;br /&gt;
|-&lt;br /&gt;
| 6-2&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| Lab Time&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 6-3&lt;br /&gt;
| 8&lt;br /&gt;
| 6.1-6.3&lt;br /&gt;
| System Initialization&lt;br /&gt;
| Project Status Report, update your project status page.&lt;br /&gt;
| [[EBC Exercise 21a Boot Sequence]]&lt;br /&gt;
[[ECE497 Contributions and Project Status]]&lt;br /&gt;
|-&lt;br /&gt;
| 6-4&lt;br /&gt;
| 9&lt;br /&gt;
| 6.4-6.7&lt;br /&gt;
| Initial RAM Disk, Using initramfs&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 7 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 7-1&lt;br /&gt;
| 15&lt;br /&gt;
| 7.1-7.3&lt;br /&gt;
| Bootloaders, Das U-Boot&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 25 Configuring U-boot]]&lt;br /&gt;
|-&lt;br /&gt;
| 7-2&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
| Demo and Work Day&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7-3&lt;br /&gt;
| 18&lt;br /&gt;
| 8.1-8.4&lt;br /&gt;
| Device Driver Basics, Driver Methods&lt;br /&gt;
| &lt;br /&gt;
| [[EBC Exercise 08 Installing Development Tools]]&lt;br /&gt;
[[EBC Exercise 26 Device Drivers]]&lt;br /&gt;
|-&lt;br /&gt;
| 7-4&lt;br /&gt;
| 19&lt;br /&gt;
| 11.1-11.4&lt;br /&gt;
| BusyBox&lt;br /&gt;
| In B105&lt;br /&gt;
| [[EBC Exercise 27 BusyBox]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 8 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ddffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 22&lt;br /&gt;
| [http://gstreamer.freedesktop.org/ GStreamer]&lt;br /&gt;
| GStreamer ([http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet Cheat Sheet],&lt;br /&gt;
[http://www.oz9aec.net/index.php/gstreamer/345-a-weekend-with-gstreamer Weekend with GStreamer])&lt;br /&gt;
| Status Report&lt;br /&gt;
| [[EBC Exercise 29 GStreamer]] (optional)&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 23&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Project Time&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 25&lt;br /&gt;
| &lt;br /&gt;
| Remote debugging with gdb, cbrowser/cscope and strace&lt;br /&gt;
| Project Time&lt;br /&gt;
| [[EBC Exercise 28 Remote gdb and more]] (optional)&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 26&lt;br /&gt;
| &lt;br /&gt;
| Project Time&lt;br /&gt;
| &lt;br /&gt;
| [[ECE497 Contributions and Project Status]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 9 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 9-1&lt;br /&gt;
| 29&lt;br /&gt;
| &lt;br /&gt;
| Project Time all week&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9-2&lt;br /&gt;
| 30&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9-3&lt;br /&gt;
| 1-Nov-2012&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9-4&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Week 10 ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color:blue; background-color:#ffffff;&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Day !! Date !! Reading !! Topic !! Exercise !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 10-1&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Project Time all week&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10-2&lt;br /&gt;
| 6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10-3&lt;br /&gt;
| 8&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Meet in B105&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10-4&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| Demo Time&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Contributions_and_Project_Status</id>
		<title>ECE497 Contributions and Project Status</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Contributions_and_Project_Status"/>
				<updated>2013-05-18T15:49:01Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: /* Fall 2013 */ Updated for new quarter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497 |Contributions]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
== Fall 2013 ==&lt;br /&gt;
&lt;br /&gt;
=== Project Status ===&lt;br /&gt;
&lt;br /&gt;
Please edit this page and add your project to this list.&lt;br /&gt;
Please make the list alphabetical by family name.&lt;br /&gt;
&lt;br /&gt;
Take a look at what you and others have contributed.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
! Name&lt;br /&gt;
! Contributions&lt;br /&gt;
! Project&lt;br /&gt;
! git repository&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Yoder | Mark A. Yoder]]&lt;br /&gt;
| [[Special:Contributions/Yoder | contrib]]&lt;br /&gt;
| [[ECE497 Project Template | My Beagle Project]]&lt;br /&gt;
| [https://github.com/MarkAYoder MarkAYoder]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fall 2012 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Project Status ===&lt;br /&gt;
&lt;br /&gt;
Please edit this page and add your project to this list.&lt;br /&gt;
Please make the list alphabetical by family name.&lt;br /&gt;
&lt;br /&gt;
Take a look at what you and others have contributed.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
! Name&lt;br /&gt;
! Contributions&lt;br /&gt;
! Project&lt;br /&gt;
! git repository&lt;br /&gt;
|-&lt;br /&gt;
| [[User:atniptw | Tom Atnip]]&lt;br /&gt;
| [[Special:Contributions/atniptw|contrib]]&lt;br /&gt;
| [[ECE497 Beagle VNS | Beagle VNS]]&lt;br /&gt;
| [https://github.com/atniptw/ atniptw]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:jessebrannon | Jesse Brannon]]&lt;br /&gt;
| [[Special:Contributions/Jessebrannon|contrib]]&lt;br /&gt;
| [[ECE497 Project Rover | Rover]]&lt;br /&gt;
| [https://github.com/brannojs/ brannojs]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Xinyu1991 | Xinyu Cheng]]&lt;br /&gt;
| [[Special:Contributions/Xinyu1991|contrib]]&lt;br /&gt;
| [[ECE497_Project:_Kinect | Kinect]]&lt;br /&gt;
| [https://github.com/xinyu1991/ Xinyu Cheng]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:correlbn | Bryan Correll]]&lt;br /&gt;
| [[Special:Contributions/correlbn|contrib]]&lt;br /&gt;
| [[BeagleBone PRU | BeagleBone PRU]]&lt;br /&gt;
| [https://github.com/correlbn/My-Beagle-Project/ Correlbn]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:draneaw | Alex Drane]]&lt;br /&gt;
| [[Special:Contributions/draneaw|contrib]]&lt;br /&gt;
| [[ECE497: Remote Web Cam Viewer Final Project| Remote Web Cam Viewer]]&lt;br /&gt;
| [https://github.com/draneaw/ Draneaw]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:duganje | Josh Dugan]]&lt;br /&gt;
| [[Special:Contributions/duganje|contrib]]&lt;br /&gt;
| [[ECE497 Project: XBee|XBee]]&lt;br /&gt;
| [https://github.com/duganje/ duganje]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Geislekj | Kevin Geisler]]&lt;br /&gt;
| [[Special:Contributions/geislekj|contrib]]&lt;br /&gt;
| [[ECE497 Beagle VNS | Beagle VNS]]&lt;br /&gt;
| [https://github.com/geislekj/ geislekj]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:chris.good | Christopher A Good]]&lt;br /&gt;
| [[Special:Contributions/Chris.good|contrib]]&lt;br /&gt;
| [[ECE497 Project RoverGUI | RoverGUI]]&lt;br /&gt;
| [https://github.com/goodca/ goodca]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:hansenrl | Ross Hansen]]&lt;br /&gt;
| [[Special:Contributions/hansenrl|contrib]]&lt;br /&gt;
| [[ECE497 Project Rover | Rover]]&lt;br /&gt;
| [https://github.com/hansenrl/ Hansenrl]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[User:jungeml | Michael Junge]]&lt;br /&gt;
| [[Special:Contributions/jungeml|contrib]]&lt;br /&gt;
| [[ECE497 Project Rover | Rover]]&lt;br /&gt;
| [https://github.com/jungeml/ Jungeml]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:larmorgs | Greg Larmore]]&lt;br /&gt;
| [[Special:Contributions/larmorgs|contrib]]&lt;br /&gt;
| [[ECE497 SPI Project | SPI Project]]&lt;br /&gt;
| [https://github.com/larmorgs Greg Larmore]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Lobdeljt | John Lobdell]]&lt;br /&gt;
| &lt;br /&gt;
| [[ECE 497 lobdeljt Project | My Beagle Project]]&lt;br /&gt;
| [https://github.com/jtlobdell jtlobdell]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Lix | Xia Li]]&lt;br /&gt;
| [[Special:Contributions/Lix|contrib]]&lt;br /&gt;
| [[ECE497 Project: Kinect | Kinect]]&lt;br /&gt;
| [https://github.com/1984xiali/ xiali]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Millerap | Andrew Miller]]&lt;br /&gt;
| [[Special:Contributions/Millerap|contrib]]&lt;br /&gt;
| [[BeagleBone PRU | BeagleBone PRU]]&lt;br /&gt;
| [https://github.com/millerap millerap]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:mmoravec | Matthew Moravec]]&lt;br /&gt;
| [[Special:Contributions/mmoravec|contrib]]&lt;br /&gt;
| [[ECE497 Project: XBee|XBee]]&lt;br /&gt;
| [https://github.com/mmoravec/ mmoravec]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ngop | Peter Ngo]]&lt;br /&gt;
| [[Special:Contributions/ngop|contrib]]&lt;br /&gt;
| [[BeagleBone PRU | BeagleBone PRU]]&lt;br /&gt;
| [https://github.com/ngop/ ngop]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Popenhjc | James Popenhagen]]&lt;br /&gt;
| [[Special:Contributions/Popenhjc|contrib]]&lt;br /&gt;
| [[BeagleBone PRU | BeagleBone PRU]]&lt;br /&gt;
| [https://github.com/popenhjc/ popenhjc]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Richarsm | Sean Richardson]]&lt;br /&gt;
| [[Special:Contributions/Richarsm|contrib]]&lt;br /&gt;
| [[ECE497 SPI Project | SPI Project]]&lt;br /&gt;
| [https://github.com/seanrich Sean Richardson]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:shinnsm|Stephen Shinn]]&lt;br /&gt;
| [[Special:Contributions/shinnsm|contrib]]&lt;br /&gt;
| [[ECE497 Project: XBee|XBee]]&lt;br /&gt;
| [https://github.com/shinnsm shinnsm]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Whiteer | Elias White]]&lt;br /&gt;
| &lt;br /&gt;
| [[ECE497 SLAM via ROS | My Beagle Project]]&lt;br /&gt;
| [https://github.com/whiteer whiteer]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ruff | Ruffin White]]&lt;br /&gt;
| [[Special:Contributions/ruff|contrib]]&lt;br /&gt;
| [[ECE497 Beagle VNS | Beagle VNS]]&lt;br /&gt;
| [https://github.com/ruffsl/ ruffsl]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Yoder | Mark A. Yoder]]&lt;br /&gt;
| [[Special:Contributions/Yoder | contrib]]&lt;br /&gt;
| [[ECE497 Project Template | My Beagle Project]]&lt;br /&gt;
| [https://github.com/MarkAYoder MarkAYoder]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Astroricks | Yue Zhang]]&lt;br /&gt;
| [[Special:Contributions/Astroricks | contrib]]&lt;br /&gt;
| [[ECE497_Project:_Kinect | Kinect]]&lt;br /&gt;
| [https://github.com/Astroricks/Beagle-Project Yue Zhang]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Winter 2011-2012 ==&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
&lt;br /&gt;
# [[Special:Contributions/Yuming | Yuming Cao]]&lt;br /&gt;
# [[Special:Contributions/Yifei | Yifei Li]]&lt;br /&gt;
# [[Special:Contributions/Harrisgw | Greg Harrison]]&lt;br /&gt;
# [[Special:Contributions/mac | Jack Ma]]&lt;br /&gt;
# [[Special:Contributions/Gemini91 | Guanqun Wang]]&lt;br /&gt;
# [[Special:Contributions/Yanj | Mona Yan]]&lt;br /&gt;
# [[Special:Contributions/Yoder | Mark A. Yoder]]&lt;br /&gt;
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]&lt;br /&gt;
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]&lt;br /&gt;
# [[Special:Contributions/Zitnikdj | David Zitnik]]&lt;br /&gt;
# [[Special:Contributions/Zitnikdj | Alex Drane]]&lt;br /&gt;
# [[Special:Contributions/jessebrannon | Jesse Brannon]]&lt;br /&gt;
# [[Special:Contributions/larmorgs | Greg Larmore]]&lt;br /&gt;
# [[Special:Contributions/jungeml | Michael Junge]]&lt;br /&gt;
# [[Special:Contributions/millerap | Andrew Miller]]&lt;br /&gt;
# [[Special:Contributions/correlbn | Bryan Correll]]&lt;br /&gt;
&lt;br /&gt;
=== Project Status ===&lt;br /&gt;
&lt;br /&gt;
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]&lt;br /&gt;
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]&lt;br /&gt;
# [[user:Caogecym | Yuming Cao]] and [[user:Ziyi Zhang | Ziyi Zhang]], [[Node.js Weather Station]]&lt;br /&gt;
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]&lt;br /&gt;
# [[user:Yuhasmj| Michael J. Yuhas]] and [[user:mac | Jack Ma]], [[ Multiple Partitions via U-boot | Multiple Partitions via U-boot ]]&lt;br /&gt;
# [[user:Zitnikdj| David Zitnik]], [[ ECE497 Project: Twitter Java Application | Twitter Java Application ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBoard_Hardware_Interfacing</id>
		<title>BeagleBoard Hardware Interfacing</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBoard_Hardware_Interfacing"/>
				<updated>2013-05-18T15:46:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:BeagleBoard]]&lt;br /&gt;
[[Category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
This page is meant to help anyone who wants to create an expansion board to interface with the [[BeagleBoard]].  It summarizes some of the commercial options, and includes some recommendations for components for a custom board.&lt;br /&gt;
&lt;br /&gt;
= Commercial Options =&lt;br /&gt;
There are several commercial boards that may work without the need to create a custom board.&lt;br /&gt;
&lt;br /&gt;
* [[BeagleBoard_Zippy]]&lt;br /&gt;
* [[BeagleBoard_Zippy2]]&lt;br /&gt;
* [[BeagleBoard_Trainer]]&lt;br /&gt;
&lt;br /&gt;
A few more options can be found [[BeagleBoard#Expansion_boards|here]].&lt;br /&gt;
&lt;br /&gt;
= General Notes =&lt;br /&gt;
== 1.8V I/O ==&lt;br /&gt;
It is very important to remember that the I/O on the BeagleBoard is 1.8V.  Level shifting must occur to interface with 3.3V or 5V devices.  This is very important as these voltages will easily break pins on the BeagleBoard.&lt;br /&gt;
&lt;br /&gt;
== Powering the Beagle ==&lt;br /&gt;
The BeagleBoard is typically powered through the barrel connector or the MiniUSB connector.  When adding an expansion board, the option is available to power the BeagleBoard from a power supply on that expansion board.  The 5V pin on the expansion connector is connected to the barrel connector directly.  This means that you can power the board from either one, and pass 5V through to the other.  An elegant solution is to place a switcher on the expansion board to provide 5V to the BeagleBoard and any external 5V devices.  This allows you to use a wide range of power supplies or wall warts while providing clean, safe 5V DC to the BeagleBoard.  One simple switcher to take a look at is the TPS54x0 series (the x indicates the maximum current output; 1A, 2A, 3A, and 5A devices are available).&lt;br /&gt;
&lt;br /&gt;
== Expansion Connectors ==&lt;br /&gt;
There are several expansion connectors available on the BeagleBoard, depending on the revision.  All revisions have J3, a 0.1&amp;quot; spaced header.  This is not populated by default, it is left up the user to decide which gender header is desired, and where is should be placed.  There have been some indications that newer versions of the BeagleBoard will come populated with a female header oriented facing downward.  It may be wise to design with this decision in mind to allow for future expandability when new revisions of the BeagleBoard are released.&lt;br /&gt;
&lt;br /&gt;
There are two other headers available (J4 and J5).  These are 0.05&amp;quot; spaced headers, and are usually used only for interfacing with and external LCD.  Pins and connectors are more difficult to find for these headers, so it is probably best to stick with using the main expansion header unless these signals or the additional I/O are required.&lt;br /&gt;
&lt;br /&gt;
= Level Shifting =&lt;br /&gt;
There are several options for level shifting to use 3.3V or 5V devices.&lt;br /&gt;
&lt;br /&gt;
== MAX3378 ==&lt;br /&gt;
The MAX3378 is a quad-input 16MBps bidirectional level shifter.  It works well with I2C or GPIO.  Many of the commercial expansion boards use these for level shifting.  They are only available in a small TSSOP surface mount package, making it difficult to use on a breadboard or some milled boards.&lt;br /&gt;
&lt;br /&gt;
== Single MOSFET Bidirectional Level Shifter ==&lt;br /&gt;
See NXP's Appnote [http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf] for more information on this method.  BSS88 and BSS138 MOSFETs appear to be compatible with the BeagleBoard and this design.  This has not been tested with the BeagleBoard, so be sure to research this option fully before implementing it.&lt;br /&gt;
&lt;br /&gt;
= I2C Devices =&lt;br /&gt;
Some general information about I2C and a few compatible devices can be found on [[Interfacing_with_I2C_Devices|Interfacing with I2C Devices]].  Several devices listed at the bottom of the page are confirmed to work with the BeagleBoard.  Note that almost any 100kHz or 400kHz I2C device will work with the BeagleBoard, it is just a matter of determining the correct address and registers on the device to read from or write to.&lt;br /&gt;
&lt;br /&gt;
= PCB Tips =&lt;br /&gt;
== OrCAD ==&lt;br /&gt;
If you are using OrCAD to layout an expansion board, it is extremely useful to use a DXF file to align the mounting holes and the expansion headers.  0.156&amp;quot; holes should be used for the mounting holes.  This can be done by exporting the pertinent details from the OrCAD .brd file available in the Design Documents section of the BeagleBoard site.  Alternatively, a version that should be compatible with C3 and C4 can be found here: [[File:BeagleBoard.dxf]].  Make sure to check that pin 1 is aligned with pin 1 on the BeagleBoard.  This will not be the case by default; a new footprint will need to be created or the connector will need to be &amp;quot;placed&amp;quot; on the bottom of the board.&lt;br /&gt;
&lt;br /&gt;
== Eagle ==&lt;br /&gt;
If you make an expansion board using Eagle, you can import DXF or GERBER files using [http://www.cadsoft.de/cgi-bin/download.pl?page=/home/cadsoft/html_public/download.htm.en&amp;amp;dir=eagle/userfiles/misc Eagle PCB Power Tools] from Cadsoft website. It is a freeware that create a script .SCR file from your DXF or GERBER. But there is a limitation in the number of script instructions created so for importing BeagleBoard footprint you will  first to select in the DXF or Gerber files what you really want.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [[Media:I2C_PWM_Hardware.pdf|Presentation on I2C, PWM and Hardware interfacing with the BeagleBoard]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBoard_Hardware_Interfacing</id>
		<title>BeagleBoard Hardware Interfacing</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBoard_Hardware_Interfacing"/>
				<updated>2013-05-18T15:45:09Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:BeagleBoard]]&lt;br /&gt;
[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
This page is meant to help anyone who wants to create an expansion board to interface with the [[BeagleBoard]].  It summarizes some of the commercial options, and includes some recommendations for components for a custom board.&lt;br /&gt;
&lt;br /&gt;
= Commercial Options =&lt;br /&gt;
There are several commercial boards that may work without the need to create a custom board.&lt;br /&gt;
&lt;br /&gt;
* [[BeagleBoard_Zippy]]&lt;br /&gt;
* [[BeagleBoard_Zippy2]]&lt;br /&gt;
* [[BeagleBoard_Trainer]]&lt;br /&gt;
&lt;br /&gt;
A few more options can be found [[BeagleBoard#Expansion_boards|here]].&lt;br /&gt;
&lt;br /&gt;
= General Notes =&lt;br /&gt;
== 1.8V I/O ==&lt;br /&gt;
It is very important to remember that the I/O on the BeagleBoard is 1.8V.  Level shifting must occur to interface with 3.3V or 5V devices.  This is very important as these voltages will easily break pins on the BeagleBoard.&lt;br /&gt;
&lt;br /&gt;
== Powering the Beagle ==&lt;br /&gt;
The BeagleBoard is typically powered through the barrel connector or the MiniUSB connector.  When adding an expansion board, the option is available to power the BeagleBoard from a power supply on that expansion board.  The 5V pin on the expansion connector is connected to the barrel connector directly.  This means that you can power the board from either one, and pass 5V through to the other.  An elegant solution is to place a switcher on the expansion board to provide 5V to the BeagleBoard and any external 5V devices.  This allows you to use a wide range of power supplies or wall warts while providing clean, safe 5V DC to the BeagleBoard.  One simple switcher to take a look at is the TPS54x0 series (the x indicates the maximum current output; 1A, 2A, 3A, and 5A devices are available).&lt;br /&gt;
&lt;br /&gt;
== Expansion Connectors ==&lt;br /&gt;
There are several expansion connectors available on the BeagleBoard, depending on the revision.  All revisions have J3, a 0.1&amp;quot; spaced header.  This is not populated by default, it is left up the user to decide which gender header is desired, and where is should be placed.  There have been some indications that newer versions of the BeagleBoard will come populated with a female header oriented facing downward.  It may be wise to design with this decision in mind to allow for future expandability when new revisions of the BeagleBoard are released.&lt;br /&gt;
&lt;br /&gt;
There are two other headers available (J4 and J5).  These are 0.05&amp;quot; spaced headers, and are usually used only for interfacing with and external LCD.  Pins and connectors are more difficult to find for these headers, so it is probably best to stick with using the main expansion header unless these signals or the additional I/O are required.&lt;br /&gt;
&lt;br /&gt;
= Level Shifting =&lt;br /&gt;
There are several options for level shifting to use 3.3V or 5V devices.&lt;br /&gt;
&lt;br /&gt;
== MAX3378 ==&lt;br /&gt;
The MAX3378 is a quad-input 16MBps bidirectional level shifter.  It works well with I2C or GPIO.  Many of the commercial expansion boards use these for level shifting.  They are only available in a small TSSOP surface mount package, making it difficult to use on a breadboard or some milled boards.&lt;br /&gt;
&lt;br /&gt;
== Single MOSFET Bidirectional Level Shifter ==&lt;br /&gt;
See NXP's Appnote [http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf] for more information on this method.  BSS88 and BSS138 MOSFETs appear to be compatible with the BeagleBoard and this design.  This has not been tested with the BeagleBoard, so be sure to research this option fully before implementing it.&lt;br /&gt;
&lt;br /&gt;
= I2C Devices =&lt;br /&gt;
Some general information about I2C and a few compatible devices can be found on [[Interfacing_with_I2C_Devices|Interfacing with I2C Devices]].  Several devices listed at the bottom of the page are confirmed to work with the BeagleBoard.  Note that almost any 100kHz or 400kHz I2C device will work with the BeagleBoard, it is just a matter of determining the correct address and registers on the device to read from or write to.&lt;br /&gt;
&lt;br /&gt;
= PCB Tips =&lt;br /&gt;
== OrCAD ==&lt;br /&gt;
If you are using OrCAD to layout an expansion board, it is extremely useful to use a DXF file to align the mounting holes and the expansion headers.  0.156&amp;quot; holes should be used for the mounting holes.  This can be done by exporting the pertinent details from the OrCAD .brd file available in the Design Documents section of the BeagleBoard site.  Alternatively, a version that should be compatible with C3 and C4 can be found here: [[File:BeagleBoard.dxf]].  Make sure to check that pin 1 is aligned with pin 1 on the BeagleBoard.  This will not be the case by default; a new footprint will need to be created or the connector will need to be &amp;quot;placed&amp;quot; on the bottom of the board.&lt;br /&gt;
&lt;br /&gt;
== Eagle ==&lt;br /&gt;
If you make an expansion board using Eagle, you can import DXF or GERBER files using [http://www.cadsoft.de/cgi-bin/download.pl?page=/home/cadsoft/html_public/download.htm.en&amp;amp;dir=eagle/userfiles/misc Eagle PCB Power Tools] from Cadsoft website. It is a freeware that create a script .SCR file from your DXF or GERBER. But there is a limitation in the number of script instructions created so for importing BeagleBoard footprint you will  first to select in the DXF or Gerber files what you really want.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [[Media:I2C_PWM_Hardware.pdf|Presentation on I2C, PWM and Hardware interfacing with the BeagleBoard]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBrick</id>
		<title>BeagleBrick</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBrick"/>
				<updated>2013-05-18T15:43:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Winter1112]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
The BeagleBrick is a handheld software defined radio integrating the [[BeagleBoard]] with Angstrom Linux, SoftRock 6.3 transceiver, and an LCD touchscreen into an all-in-one radio unit. It's goal is to be an easy to use &amp;quot;iPad for hams.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Current Status =&lt;br /&gt;
The project is currently in a transitional period. This page will document our progress on interfacing with hardware using the BeagleBoard and Linux. More information can be found [http://www.rarcpio.net/beaglebrick/ here].&lt;br /&gt;
&lt;br /&gt;
= Preparing the OS =&lt;br /&gt;
&lt;br /&gt;
== SD Card Setup ==&lt;br /&gt;
First, follow the [[BeagleBoardBeginners#SD_card_setup]] guide in formatting your SD card.&lt;br /&gt;
&lt;br /&gt;
Next, on the first partition, copy these files in '''this order'''.&lt;br /&gt;
# MLO&lt;br /&gt;
# u-boot&lt;br /&gt;
# [http://mumon.us/beaglebrick/uImage.beaglebrick uImage]&lt;br /&gt;
&lt;br /&gt;
== Kernel Source ==&lt;br /&gt;
We used Git for tracking changes that were made to the kernel source.  This git repository can be accessed [https://phire.org/git/?p=linux-omap-2.6;a=shortlog;h=refs/heads/beaglebrick here].&lt;br /&gt;
&lt;br /&gt;
For those not comfortable with Git, a tarball of the complete, configured kernel source can be downloaded [https://phire.org/beaglebrick/linux-2.6-beaglebrick.tar.gz].  This can be built with a simple &amp;quot;make uImage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Root File System ==&lt;br /&gt;
The ext2 partition on the SD card contains the file system for Linux, where all your regular programs and data reside. There are three options for getting this:&lt;br /&gt;
&lt;br /&gt;
# Our complete filesystem with FLDigi and hamlib configured [http://mumon.us/beaglebrick/beaglebrick.rootfs.tgz is available here].&lt;br /&gt;
# You can also compile a distribution remotely from [http://www.angstrom-distribution.org/narcissus/ the Angstrom site]. This has FLDigi, but you will need to add the BeagleBrick's hamlib module.&lt;br /&gt;
# Finally, you can create the rootfs yourself, by following [[ECE497_Lab02_Installing_The_Angstrom_Distribution_Old]] This is much more involved than the previous two methods.&lt;br /&gt;
&lt;br /&gt;
== Hamlib ==&lt;br /&gt;
We created a new back-end module for hamlib which controlled the tuning, filter switching, and push-to-talk functionality of the BeagleBrick.  Again, Git was used to track these changes, and the git repository can be found [https://phire.org/git/?p=hamlib;a=shortlog;h=refs/heads/beaglebrick here].  A tarball of hamlib, including our modifications, can also be downloaded [https://phire.org/beaglebrick/hamlib-beaglebrick.tar.gz].&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBoardPWM</id>
		<title>BeagleBoardPWM</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBoardPWM"/>
				<updated>2013-05-18T15:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: Moved to ECE597&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:BeagleBoard]]&lt;br /&gt;
[[Category:ECE597]]&lt;br /&gt;
[[Category:Robotics]]&lt;br /&gt;
&lt;br /&gt;
There are three pins capable of [http://en.wikipedia.org/wiki/Pulse-width_modulation PWM (pulse-width modulation)] exposed on the C3/C4 BeagleBoard expansion header.  PWM is useful for control of a number of devices, from LEDs (which can be faded smoothly with PWM) to [[ECE597 Project Sumo Robot | DC motors]].  For robotics, this means that three hobby servos can easily be controlled by the Beagle given nothing more than a simple [[BeagleBoard_Hardware_Interfacing#Level_Shifting | level-shifting]] circuit, with no CPU usage to speak of.&lt;br /&gt;
&lt;br /&gt;
Alternative approaches are possible.  [http://github.com/tallakt/servodrive servodrive] is a kernel module that emits servo control PWM using straight GPIO (this page also claims that straight 1.8 V from the Beagle is sufficient to control servos).  [http://thoughtshubham.blogspot.com/2010/04/pwm-generation-in-beagleboard.html This page] shows how to use threading and GPIO to accomplish PWM in userspace.  The rest of this page focuses on use of the OMAP's hardware PWM capabilities.&lt;br /&gt;
&lt;br /&gt;
== OMAP Mux Configuration ==&lt;br /&gt;
&lt;br /&gt;
Because the PWM pins are not set as such by default, the OMAP's mux must be configured to expose them before they can be used.  See [[BeagleBoardPinMux]] for more details on this procedure.  The short version is to add the following lines to the definition of &amp;lt;code&amp;gt;board_mux[]&amp;lt;/code&amp;gt; in arch/arm/mach-omap2/board-omap3beagle.c (this has been tested with the 2.6.33 OMAP branch of the kernel).&lt;br /&gt;
&lt;br /&gt;
 OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE2|OMAP_PIN_OUTPUT), /* GPT9_PWMEVT, ball AB26, ex pin 4 */&lt;br /&gt;
 OMAP3_MUX(UART2_TX, OMAP_MUX_MODE2|OMAP_PIN_OUTPUT), /* GPT11_PWMEVT, ball AA25, ex pin 6 */&lt;br /&gt;
 OMAP3_MUX(UART2_RTS, OMAP_MUX_MODE2|OMAP_PIN_OUTPUT), /* GTP10_PWMEVT, ball AB25, ex pin 10 */&lt;br /&gt;
&lt;br /&gt;
Obviously these lines should precede the line terminating the array. This will likely be in a block conditional on CONFIG_OMAP_MUX, so you need to have the CONFIG_OMAP_MUX option set in your kernel config.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the kernel config option CONFIG_OMAP_RESET_CLOCKS to yes [[http://github.com/scottellis/omap3-pwm/blob/master/README | may cause problems]].&lt;br /&gt;
&lt;br /&gt;
=== The 2.6.32 kernel ===&lt;br /&gt;
&lt;br /&gt;
I found the above didn't work with the 2.6.32 kernel, rather the MUXing had to be done in u-boot.  [[BeagleBoardPinMux#Setting_Mux_Through_u-boot | Here]] is a nice description of how it is done.&lt;br /&gt;
&lt;br /&gt;
== Activating PWM via Timer Registers ==&lt;br /&gt;
&lt;br /&gt;
PWM output on the BeagleBoard is done via the OMAP processor's general-purpose timer mechanism, described in the OMAP35x TRM in section 16.2.4 (page 2546, or page 2698 of the DM3730 TRM).  To briefly summarize this (and simplify significantly), the general-purpose timer is a continuously-incrementing counter that can be configured to toggle the PWM output high when a certain value is reached, and low when it overflows.  By adjusting the first number the duty cycle can be set.  Setting the value the counter starts at can be used to set the frequency of the PWM.&lt;br /&gt;
&lt;br /&gt;
[[File:OMAP3-GPTimer-PWM.svg|thumb|right|300 px|alt=&amp;quot;The registers TCRR, TLDR, and TMAR are illustrated as boxes partially-filled from the right.  Lines at the value of TLDR, the value of TMAR, and the end are labeled 'Start', 'Match', and 'Overflow' respectively.&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[File:OMAP3-GPTimer-PWM-Waveform.svg|frameless|500 px|alt=&amp;quot;A square waveform starting at 0, with the beginning labeled as 'Start'.  Where the waveform goes to 1 it is labeled 'Match', and when it returns to zero it is labeled 'Overflow, Start'.  It then repeats.&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
Each GP timer has a 4K block for memory-mapped registers (see TRM Table 16-12, page 2558 OMAP3530 or page 2710 DM3730).  The start addresses of these blocks for the timers on the BeagleBoard are listed below.&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+ BeagleBoard C3/C4 GP Timer Base Addresses&lt;br /&gt;
|-&lt;br /&gt;
| '''Timer''' || '''Base address''' || '''Expansion header pin'''&lt;br /&gt;
|-&lt;br /&gt;
| GPTIMER9 || 0x4904 0000 || 4&lt;br /&gt;
|-&lt;br /&gt;
| GPTIMER10 || 0x4808 6000 || 6&lt;br /&gt;
|-&lt;br /&gt;
| GPTIMER11 || 0x4808 8000 || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are the registers relevant to our purpose:&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|+ BeagleBoard C3/C4 GP Timer Registers&lt;br /&gt;
|-&lt;br /&gt;
| '''Name''' || '''TRM section''' || '''Offset'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| TCLR || 16.3.2.6 (p.&amp;amp;nbsp;2568/2719) || 0x024&lt;br /&gt;
| Control register&amp;lt;!-- (see below) --&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| TCRR || 16.3.2.7 (p.&amp;amp;nbsp;2570/2721) || 0x028&lt;br /&gt;
| The counter.  Increments with the clock when the timer is running.&lt;br /&gt;
|-&lt;br /&gt;
| TLDR || 16.3.2.8 (p.&amp;amp;nbsp;2571/2722) || 0x02c&lt;br /&gt;
| Timer load register.  Holds the value assumed by TCRR when it overflows.&lt;br /&gt;
|-&lt;br /&gt;
| TMAR || 16.3.2.11 (p.&amp;amp;nbsp;2575/2725) || 0x038&lt;br /&gt;
| Value to be compared with the counter.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--The relevant bits of the control register TCLR are as follows:--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--TODO: show bits of TCLR --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interacting with Timer Registers in Linux ==&lt;br /&gt;
&lt;br /&gt;
The best way to interact with the timer registers is to use the [[BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation | kernel module]] in development as a Google Summer of Code project (this driver is currently, as of July 2010, in development).&lt;br /&gt;
&lt;br /&gt;
Historically interaction with the registers could be done via the special device &amp;lt;code&amp;gt;/dev/mem&amp;lt;/code&amp;gt;.  This file contains a live view of the contents of physical memory --- meaning that reading and writing to the physical address of a timer register as an offset in &amp;lt;code&amp;gt;/dev/mem&amp;lt;/code&amp;gt; reflects the actual thing.&lt;br /&gt;
&lt;br /&gt;
There is one complication, though, in that reads and writes to the OMAP registers cannot be done with byte-oriented I/O (such as the &amp;lt;code&amp;gt;write()&amp;lt;/code&amp;gt; system call); however, this can be worked around by using the &amp;lt;code&amp;gt;mmap()&amp;lt;/code&amp;gt; syscall.  This means that a pointer to a register can be cast to &amp;lt;code&amp;gt;volatile uint32_t*&amp;lt;/code&amp;gt; and function correctly.&lt;br /&gt;
&lt;br /&gt;
== OMAP3530 PWM library ==&lt;br /&gt;
&lt;br /&gt;
There is a small library available to simplify manipulating the timer registers via &amp;lt;code&amp;gt;/dev/mem&amp;lt;/code&amp;gt;.  It is made available under the LGPL 2.1 or MIT license.&lt;br /&gt;
&lt;br /&gt;
Download: &lt;br /&gt;
* [http://www.rose-hulman.edu/~mosttw/omap3530-pwm-1.1.tar.gz omap3530-pwm-1.1.tar.gz] (LGPL/MIT, md5 b33232531321778eadc022fef9cf7bac)&lt;br /&gt;
* [http://www.rose-hulman.edu/~mosttw/omap3530-pwm-1.0.tar.gz omap3530-pwm-1.0.tar.gz] (LGPL only, md5 ff77617cf07450be1444019809c75a0c)&lt;br /&gt;
&lt;br /&gt;
(These links appear to be broken now.  You can get to a version of the PWM code by following the instructions [[EBC Exercise 01a Getting Exercise Support Materials | here]]. It describes how to load code from [https://github.com/MarkAYoder/BeagleBoard-exercises git@github.com:MarkAYoder/BeagleBoard-exercises.git] which contains the pwm code.)&lt;br /&gt;
&lt;br /&gt;
Information regarding compilation of this program is not included in any README file so to ease compilation problems use the following.  Keep in mind this has been only tested when compiled on the beagleboard and not cross-compiled though it should still shed light if you have problems.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# gcc *.c -o pwm-demo -lglib-2.0 -I/usr/include/glib-2.0 &lt;br /&gt;
-I/usr/lib/glib-2.0/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you run your code you may encounter the following error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# ./pwm-demo&lt;br /&gt;
0&lt;br /&gt;
Bus error&lt;br /&gt;
root@beagleboard:~# dmesg | tail -1&lt;br /&gt;
[  174.893035] Unhandled fault: external abort on non-linefetch (0x1818) at 0x4001e024&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is caused because the library does not enable the PWM clocks and you are not allowed to access them until this is done.  In order to fix this you need to recompile your kernel with the option CONFIG_OMAP_RESET_CLOCKS disabled.  More information can be found in this thread:&lt;br /&gt;
http://groups.google.com/group/beagleboard/browse_thread/thread/ee42e5c59edf83cd/67be50968de6a9f2?lnk=gst&amp;amp;q=guint8#67be50968de6a9f2 &lt;br /&gt;
&lt;br /&gt;
or see the note above at: http://elinux.org/BeagleBoardPWM#OMAP_Mux_Configuration&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Example usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;glib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
#include &amp;quot;omap3530-pwm.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
    int mem_fd = pwm_open_devmem();&lt;br /&gt;
    if (mem_fd == -1) {&lt;br /&gt;
        g_error(&amp;quot;Unable to open /dev/mem, are you root?: %s&amp;quot;, g_strerror(errno));&lt;br /&gt;
    }&lt;br /&gt;
    // Set instances 10 and 11 to use the 13 Mhz clock&lt;br /&gt;
    pwm_config_clock(mem_fd, TRUE, TRUE);&lt;br /&gt;
    guint8 *gpt10 = pwm_mmap_instance(mem_fd, 10);&lt;br /&gt;
    // Get the resolution for 20 kHz PWM&lt;br /&gt;
    guint32 resolution = pwm_calc_resolution(20000, PWM_FREQUENCY_13MHZ);&lt;br /&gt;
    // Set to half duty cycle&lt;br /&gt;
    pwm_config_timer(gpt10, resolution, 0.5);&lt;br /&gt;
    pwm_munmap_instance(gpt10);&lt;br /&gt;
    pwm_close_devmem(mem_fd);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links and References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.jumpnowtek.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=56&amp;amp;Itemid=63 PWM from an OMAP3 Linux System], Scott Ellis ([http://github.com/scottellis/omap3-pwm kernel module])&lt;br /&gt;
* [[BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation | 2010 GSoC Project: PWM driver]]&lt;br /&gt;
* &amp;lt;code&amp;gt;man 2 mmap&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;man 2 open&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP 3530 Technical Reference Manaul]&lt;br /&gt;
* [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manaul]&lt;br /&gt;
* [[Media:I2C_PWM_Hardware.pdf|Presentation on I2C, PWM and Hardware interfacing with the BeagleBoard]]&lt;br /&gt;
* [[ECE597 Project Sumo Robot | Project: Sumo Robot]] -- uses PWM to control drive motors via L298 motor drivers.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBoard_Education_Workshops</id>
		<title>BeagleBoard Education Workshops</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBoard_Education_Workshops"/>
				<updated>2013-05-18T15:32:02Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: /* 2012 ASEE Workshop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497 |W]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
[[Category:Workshops]]&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
== 2013 ASEE Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| U216·WORKSHOP: BeagleBone - A Hands-on Workshop&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentors:''' &lt;br /&gt;
| Dr. Steven F Barrett P.E., Jason Kridner, Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Atlanta, Omni CNN Center Hotel, Omni - Chestnut&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 23-June-2013&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.asee.org/public/conferences/20/registration/view_session?session_id=2420 ASEE site]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
'''Ticketed event: $100.00 advanced registration and $110.00 on site registration'''&lt;br /&gt;
&lt;br /&gt;
BeagleBone is a low cost, open hardware computer first introduced in November 2011 by BeagleBoard.org, a community of developers sponsored by Texas Instruments. BeagleBone hosts a powerful 32-bit, super-scalar ARM Cortex A8 processor operating at 720 MHz. Yet it is small enough to fit in an Altoids mint tin box. The &amp;quot;Bone'' may be used in a wide variety of projects from middle school science fair projects to senior design projects to first prototypes of very complex systems. Novice users may access the power of the Bone through the user-friendly Bonescript environment. Seasoned users may take full advantage of the Bone's power using the underlying Linux-based operating system, a host of feature extension boards (Capes) and a wide variety of open source libraries. This hands on workshop provides an introduction to this powerful computer and has been designed for a wide variety of users including the first time novice through the seasoned embedded system design professional. &lt;br /&gt;
&lt;br /&gt;
Workshop participants will receive a BeagleBone board and also a BeagleBone book courtesy of BeagleBoard.org and Morgan and Claypool Publishers. This workshop is subsidized by Texas Instruments (TI). &lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Engibous Summit Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Hands-on workshop on Embedded Linux on BeagleBone&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Dallas&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 30-July-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.ti.com/corp/docs/landing/universityprogram/prize.htm Engibous Summit]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
You will be mailed some information about the workshop and some things for you to do before arriving.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Chandigarh Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Hands-on workshop on Embedded Linux on Beagleboard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/73-chitkara-school-of-engineering-a-technology Chitkara School of Engineering &amp;amp; Technology] - Chandigarh, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 18-20 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/128-hands-on-workshop-on-embedded-linux-on-beagleboard http://www.uniti.in/events/details/128-hands-on-workshop-on-embedded-linux-on-beagleboard]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
Beagleboard is a low-cost open-source embedded system development platform. It is based on Texas Instruments DM3730 processor, which includes an on-chip ARM Cortex-A8 processor core, a Texas Instruments C6x DSP core, and a host of peripherals. Beagleboard is a single board computer, which provides adequate performance to run Linux software, yet has a power consumption lower than 2W. A large number of embedded applications have been developed on Beagleboard ([http://www.beagleboard.org www.beagleboard.org]) Module A provides a gentle introduction to the subject of Embedded Linux, Linux Systems Programming and Linux Kernel Programming. The intention of Module B is to provide a hands-on exposure to running Embedded Linux operating system on the Beagleboard and develop system software on the Beagleboard.&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Hyderabad Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Three-day workshop on Embedded Linux on Beagleboard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/69-c-dac-hyderabad C-DAC Hyderabad] - Hyderabad, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 14-16 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/123-three-day-workshop-on-embedded-linux-on-beagleboard http://www.uniti.in/events/details/123-three-day-workshop-on-embedded-linux-on-beagleboard]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
Linux, which is an “open source” operating system and enjoys considerable popularity on general-purpose computers, is becoming popular in the embedded world also. Different versions and variants of Linux are now available on embedded platforms. In this workshop, the intention is to provide a hands-on introduction to concepts of Linux Systems/Kernel Programming and Embedded Linux&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Bangalore Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| 6-day modular workshop on Embedded Linux&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/68-cambridge-institute-of-technology Cambridge Institute of Technology] - Bangalore, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 11-13 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/122-6-day-modular-workshop-on-embedded-linux www.uniti.in/events/details/122-6-day-modular-workshop-on-embedded-linux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
'''Module A''' provides an overview of basic concepts of Linux, Linux Systems Programming, Linux Kernel Programming, and Embedded Systems. Module A will also include an introduction to Beagleboard, an open-source, low-cost, low-power embedded system development platform. '''Module A''' will be conducted jointly by a team of experts from industry and academia. In '''Module B''', aspects of Embedded Linux on Beagleboard will be explored in greater depth. Module B will be conducted by Prof. Mark A. Yoder of Rose-Hulman Institute of Technology, USA.&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2011 FIE Workshop - Cancelled ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| From DSP Chips to Embedded Processors for Teaching Digital Signal Processing&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Holiday Inn Salon F, Rapid City, South Dakota&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Wednesday, October 12, 2011, 2:30 p.m. - 5:30 p.m&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://fie-conference.org/fie2011/] [http://fie-conference.org/fie2011/Pages/workshops.htm#SCRL6]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
The goal of this hands-on tutorial is to present ideas on how to use Texas Instrument’s DM 3730-based BeagleBoard xM ([www.BeagleBoard.org www.BeagleBoard.org]) for teaching embedded processing using Open Source resources. The DM 3730 is a dual core processor with an ARM Cortex-a8 core and a TI ‘c64x DSP core. The BeagleBoard is Open Source hardware that has sold over 30,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
&lt;br /&gt;
The BeagleBoard has many uses in the classroom. This workshop will show some of those uses and present some of the challenges in teaching with Open Source.&lt;br /&gt;
&lt;br /&gt;
The workshop activities will include:&lt;br /&gt;
&lt;br /&gt;
* several hands-on exercises to get participants familiar with using the Beagle, and how it differs from a traditional 8- or 16-bit microcomputer.&lt;br /&gt;
* several demonstrations of what the Beagle can do, such as streaming video and programming its DSP and discussions of what topics to include in an embedded/DSP class including dealing with open source comminutes.&lt;br /&gt;
* This workshop is targeted to those who are teaching embedded processors or DSP hardware. Some Linux background would be helpful, but not required. Those with little or no Linux experience will be paired with those with more experience.&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
Even though the workshop has been cancelled, you can still do the exercises.  Here ([[Getting a Workshop SD Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
Here ([[EBC Embedded Beagle Class Topics]]) is a list of topics I cover in my class.  If you have questions, please email me.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE ICASSP Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| How 32-bit Embedded Processors Change the Focus in Teaching DSP Hardware&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Prague, Czech Republic&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Monday May 23rd, 2011, Afternoon&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.icassp2011.com/en/registration]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
This hands-on tutorial presents ideas on how to use TI’s OMAP 3530-based BeagleBoard (www.BeagleBoard.org) for teaching embedded media processing using Open Source resources. The BeagleBoard is Open Source hardware that has sold over 20,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
After the introduction, this workshop will complement the Sunday afternoon tutorial “From DSP Chips to Embedded Processors for Teaching Digital Signal Processing”.  The Sunday workshop examples focus on programming the ‘C64 DSP on the OMAP3530.  This workshop will focus on using Open Source software for media processing  (such as GStreamer, OpenCV, etc.) and using the OMAP display subsystem for handling video. &lt;br /&gt;
The workshop activities will include:&lt;br /&gt;
# Several hands-on exercises to get participants familiar with using the Beagle, (same as tutorial)&lt;br /&gt;
# Several demonstrations of what the Beagle can do using Open Source software, including using the display subsystem, recognizing speech, computer vision&lt;br /&gt;
# Discussions of what topics to include in an embedded Linux class.&lt;br /&gt;
No BeagleBoards will given out.&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
|Melani Plett&lt;br /&gt;
|Seattle Pacific University,&lt;br /&gt;
Seattle, Washington, USA&lt;br /&gt;
|I teach an undergraduate signals and systems course.  I have no Linux experience, though I did use Unix years ago.&lt;br /&gt;
|I am thinking of generating a technical elective follow-on class to illustrate the signals and systems concepts on the Beagleboard.&lt;br /&gt;
|-&lt;br /&gt;
|Monty Hayes&lt;br /&gt;
|Georgia Tech, Professor, Atlanta, GA and&lt;br /&gt;
Chung-Ang University Distinguished Foreign Professor, Seoul, Korea&lt;br /&gt;
|I have no linux experience, have taught courses on DSP chips before&lt;br /&gt;
|I would like to develop an undergraduate course using the Beagleboard to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Oleg Muratov&lt;br /&gt;
|University of Trento, Itay&lt;br /&gt;
|I am a PhD student and I have limited Linux experience.&lt;br /&gt;
|I am planning to give a course to undergraduate students on DSP probably using some hardware.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
Here's an additional handout that didn't make it in time for the printers.&lt;br /&gt;
&lt;br /&gt;
[[VideoThru Lab]]&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
Here ([[Getting_a_Workshop_SD_Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE ICASSP Tutorial ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| From DSP Chips to Embedded Processors for Teaching Digital Signal Processing&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Prague, Czech Republic&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Sunday May 22nd, 2011, Afternoon&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.icassp2011.com/en/tutorials/tutorial-5]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
This hands-on tutorial presents ideas on how to use TI’s OMAP 3530-based BeagleBoard (www.BeagleBoard.org) for teaching embedded media processing using Open Source resources. The BeagleBoard is Open Source hardware that has sold over 16,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
Today’s media handling embedded processors have come a long way from the limited performance of 8- or 16-bit embedded processors or the limited functionality of a dedicated DSP chip. Our students need to see that the days of the single DSP chip are almost over and they need to be prepared for working with DSPs embedded with other processors.&lt;br /&gt;
The OMAP3530 processor contains both an ARM Cortex-A9 processor and a ‘C6400 DSP and it and chips like it are being used in products today. &lt;br /&gt;
The workshop activities include:&lt;br /&gt;
#      hands-on exercises to get participants familiar with using the Beagle,&lt;br /&gt;
#      demonstrations of what the Beagle can do, including streaming video and synthesizing speech and&lt;br /&gt;
#      discussions of what topics to include in an embedded Linux class.&lt;br /&gt;
Participants will receive a BeagleBoard and course materials.&lt;br /&gt;
&lt;br /&gt;
=== Pre Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
|Melani Plett&lt;br /&gt;
|Seattle Pacific University,&lt;br /&gt;
Seattle, Washington, USA&lt;br /&gt;
|I teach an undergraduate signals and systems course.  I have no Linux experience, though I did use Unix years ago.&lt;br /&gt;
|I am thinking of generating a technical elective follow-on class to illustrate the signals and systems concepts on the Beagleboard.&lt;br /&gt;
|-&lt;br /&gt;
|Matt Gately&lt;br /&gt;
|University of Oklahoma, Norman, OK, USA&lt;br /&gt;
|I am a PhD student and I use Linux in my research. &lt;br /&gt;
|I would love to someday teach a DSP course using embedded systems such as FPGA or microcontroller boards. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
Here's an additional handout that didn't make it in time for the printers.&lt;br /&gt;
&lt;br /&gt;
[[AudioThru Lab]]&lt;br /&gt;
&lt;br /&gt;
=== Post Tutorial ===&lt;br /&gt;
&lt;br /&gt;
Here ([[Getting_a_Workshop_SD_Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE SPEd (Signal Processing Society 14th DSP Workshop &amp;amp; 6th SPEd Workshop) ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Moving Beyond the DSP and Teaching 32-bit Embedded Processors Using the BeagleBoard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Enchantment Resort, Sedona, Arizona&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Thursday 6 January, 2011  Time: 14:00 - 17:30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
Here are some things you might want to do now that the workshop is over.  &lt;br /&gt;
&lt;br /&gt;
Here are instructions on how to create the SD card that was used in the workshop.&lt;br /&gt;
* Go here ([[ECE597_Getting_your_Beagle_running_(precompiled)#From_beagleboard-validation.s3.amazonaws.com]]) to download and install the base image for the Beagle.  This will install the kernel and all the files needed to run many of the demos.&lt;br /&gt;
* Download [http://www.rose-hulman.edu/~yoder/Beagle/SPEd2011WorkshopFiles.zip this zip file] to get the extra files used in the workshop. Copy it to your BeagleBoard and unzip it there.  This file contains the '''VideoThru''', '''c6run_target''', '''hello.c''' and '''helloBeagle.c''' files.&lt;br /&gt;
* Download the workshop pptx [http://www.rose-hulman.edu/~yoder/Beagle/SPEd2011WorkshopPPTX.zip here].&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop === &lt;br /&gt;
If you are an overachiever (not required) go here ([[ECE497 Lab13 Using the DSP via c6run]]) to learn how to install the ARM and DSP development tools on your Linux system (Ubuntu 10.4 LTS is required).  If you don't have Ubuntu installed, go [http://processors.wiki.ti.com/index.php/How_to_Build_a_Ubuntu_Linux_host_under_VirtualBox here] to learn how to install it in a virtual machine under windows.&lt;br /&gt;
&lt;br /&gt;
These installs are not required for the workshop; however editing the the table below ''is''.&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle.  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program www.ti.com/university helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
| Steve Chadwick&lt;br /&gt;
| Embry-Riddle Aeronautical University, Prescott, AZ &lt;br /&gt;
| Very new to DSP and hoping develop sufficient depth to teach it next academic year. &lt;br /&gt;
| Interests: Pretty much everything in science. &lt;br /&gt;
|-&lt;br /&gt;
| Mark Wickert&lt;br /&gt;
| University of Colorado, Colorado Springs, CO, USA&lt;br /&gt;
| I have played on and off with Linux for about 10 years, never done any real-time DSP under this OS however.&lt;br /&gt;
| I regularly teach DSP and related courses. I am using the C6713 today, but ready to move forward. I recently started playing with ARM processors (not the BeagleBoard until now).&lt;br /&gt;
|-&lt;br /&gt;
| Shane Cotter&lt;br /&gt;
| Union College, Schenectady, NY&lt;br /&gt;
| I have taught DSP courses. I have used Unix/Linux in the past but not for real-time DSP.&lt;br /&gt;
| The Beagleboard seems like a great platform and I'm interested in learning about it and its potential uses in courses.&lt;br /&gt;
|-&lt;br /&gt;
| Jake Gunther&lt;br /&gt;
| Utah State University&lt;br /&gt;
| I have taught DSP and communication systems for over ten years.&lt;br /&gt;
| I want to move from a simulation-based teaching approach to a real-time approach.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2010 ICASSP Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| 32-bit Embedded Linux-based Signal Processing – Hands on Workshop&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| ICASSP 2010, Dallas, Texas&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Monday, March 15 2010, 13:30 - 17:00&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | email&lt;br /&gt;
! style=&amp;quot;width:40%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| [http://www.rose-hulman.edu/~yoder]&lt;br /&gt;
| I teach 32-bit embedded with the Beagle.  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|David V. Anderson&lt;br /&gt;
|Georgia Institute of Technology&lt;br /&gt;
|&lt;br /&gt;
|Teaching DSP using BeagleBoard as a real-time platform.&lt;br /&gt;
|-&lt;br /&gt;
|Andres Kwasinski&lt;br /&gt;
|Rochester Institute of Technology&lt;br /&gt;
|[http://people.rit.edu/axkeec/]&lt;br /&gt;
|Teaching DSP to Computer Engineers using real-world platforms.&lt;br /&gt;
|-&lt;br /&gt;
|Roger West&lt;br /&gt;
|Utah State University&lt;br /&gt;
|&lt;br /&gt;
|Teaching DSP to ECE students using real-time platforms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
Here is a list of the hands on exercises we will be doing in the 2010 workshop.  Many have suggestions for additional homework that you can do once you are back home and have a network connection.&lt;br /&gt;
&lt;br /&gt;
# [[2010 ICASSP Lab 1 Wiring_and_Running the Beagle]]&lt;br /&gt;
# [[2010 ICASSP Lab 2 The Boot Sequence]]&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBoard_Education_Workshops</id>
		<title>BeagleBoard Education Workshops</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBoard_Education_Workshops"/>
				<updated>2013-05-18T15:31:34Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: /* 2013 ASEE Workshop */ Added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497 |W]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
[[Category:Workshops]]&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
== 2012 ASEE Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| U216·WORKSHOP: BeagleBone - A Hands-on Workshop&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentors:''' &lt;br /&gt;
| Dr. Steven F Barrett P.E., Jason Kridner, Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Atlanta, Omni CNN Center Hotel, Omni - Chestnut&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 23-June-2013&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.asee.org/public/conferences/20/registration/view_session?session_id=2420 ASEE site]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
'''Ticketed event: $100.00 advanced registration and $110.00 on site registration'''&lt;br /&gt;
&lt;br /&gt;
BeagleBone is a low cost, open hardware computer first introduced in November 2011 by BeagleBoard.org, a community of developers sponsored by Texas Instruments. BeagleBone hosts a powerful 32-bit, super-scalar ARM Cortex A8 processor operating at 720 MHz. Yet it is small enough to fit in an Altoids mint tin box. The &amp;quot;Bone'' may be used in a wide variety of projects from middle school science fair projects to senior design projects to first prototypes of very complex systems. Novice users may access the power of the Bone through the user-friendly Bonescript environment. Seasoned users may take full advantage of the Bone's power using the underlying Linux-based operating system, a host of feature extension boards (Capes) and a wide variety of open source libraries. This hands on workshop provides an introduction to this powerful computer and has been designed for a wide variety of users including the first time novice through the seasoned embedded system design professional. &lt;br /&gt;
&lt;br /&gt;
Workshop participants will receive a BeagleBone board and also a BeagleBone book courtesy of BeagleBoard.org and Morgan and Claypool Publishers. This workshop is subsidized by Texas Instruments (TI). &lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Engibous Summit Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Hands-on workshop on Embedded Linux on BeagleBone&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Dallas&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 30-July-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.ti.com/corp/docs/landing/universityprogram/prize.htm Engibous Summit]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
You will be mailed some information about the workshop and some things for you to do before arriving.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Chandigarh Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Hands-on workshop on Embedded Linux on Beagleboard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/73-chitkara-school-of-engineering-a-technology Chitkara School of Engineering &amp;amp; Technology] - Chandigarh, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 18-20 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/128-hands-on-workshop-on-embedded-linux-on-beagleboard http://www.uniti.in/events/details/128-hands-on-workshop-on-embedded-linux-on-beagleboard]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
Beagleboard is a low-cost open-source embedded system development platform. It is based on Texas Instruments DM3730 processor, which includes an on-chip ARM Cortex-A8 processor core, a Texas Instruments C6x DSP core, and a host of peripherals. Beagleboard is a single board computer, which provides adequate performance to run Linux software, yet has a power consumption lower than 2W. A large number of embedded applications have been developed on Beagleboard ([http://www.beagleboard.org www.beagleboard.org]) Module A provides a gentle introduction to the subject of Embedded Linux, Linux Systems Programming and Linux Kernel Programming. The intention of Module B is to provide a hands-on exposure to running Embedded Linux operating system on the Beagleboard and develop system software on the Beagleboard.&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Hyderabad Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Three-day workshop on Embedded Linux on Beagleboard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/69-c-dac-hyderabad C-DAC Hyderabad] - Hyderabad, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 14-16 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/123-three-day-workshop-on-embedded-linux-on-beagleboard http://www.uniti.in/events/details/123-three-day-workshop-on-embedded-linux-on-beagleboard]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
Linux, which is an “open source” operating system and enjoys considerable popularity on general-purpose computers, is becoming popular in the embedded world also. Different versions and variants of Linux are now available on embedded platforms. In this workshop, the intention is to provide a hands-on introduction to concepts of Linux Systems/Kernel Programming and Embedded Linux&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Bangalore Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| 6-day modular workshop on Embedded Linux&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/68-cambridge-institute-of-technology Cambridge Institute of Technology] - Bangalore, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 11-13 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/122-6-day-modular-workshop-on-embedded-linux www.uniti.in/events/details/122-6-day-modular-workshop-on-embedded-linux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
'''Module A''' provides an overview of basic concepts of Linux, Linux Systems Programming, Linux Kernel Programming, and Embedded Systems. Module A will also include an introduction to Beagleboard, an open-source, low-cost, low-power embedded system development platform. '''Module A''' will be conducted jointly by a team of experts from industry and academia. In '''Module B''', aspects of Embedded Linux on Beagleboard will be explored in greater depth. Module B will be conducted by Prof. Mark A. Yoder of Rose-Hulman Institute of Technology, USA.&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2011 FIE Workshop - Cancelled ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| From DSP Chips to Embedded Processors for Teaching Digital Signal Processing&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Holiday Inn Salon F, Rapid City, South Dakota&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Wednesday, October 12, 2011, 2:30 p.m. - 5:30 p.m&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://fie-conference.org/fie2011/] [http://fie-conference.org/fie2011/Pages/workshops.htm#SCRL6]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
The goal of this hands-on tutorial is to present ideas on how to use Texas Instrument’s DM 3730-based BeagleBoard xM ([www.BeagleBoard.org www.BeagleBoard.org]) for teaching embedded processing using Open Source resources. The DM 3730 is a dual core processor with an ARM Cortex-a8 core and a TI ‘c64x DSP core. The BeagleBoard is Open Source hardware that has sold over 30,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
&lt;br /&gt;
The BeagleBoard has many uses in the classroom. This workshop will show some of those uses and present some of the challenges in teaching with Open Source.&lt;br /&gt;
&lt;br /&gt;
The workshop activities will include:&lt;br /&gt;
&lt;br /&gt;
* several hands-on exercises to get participants familiar with using the Beagle, and how it differs from a traditional 8- or 16-bit microcomputer.&lt;br /&gt;
* several demonstrations of what the Beagle can do, such as streaming video and programming its DSP and discussions of what topics to include in an embedded/DSP class including dealing with open source comminutes.&lt;br /&gt;
* This workshop is targeted to those who are teaching embedded processors or DSP hardware. Some Linux background would be helpful, but not required. Those with little or no Linux experience will be paired with those with more experience.&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
Even though the workshop has been cancelled, you can still do the exercises.  Here ([[Getting a Workshop SD Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
Here ([[EBC Embedded Beagle Class Topics]]) is a list of topics I cover in my class.  If you have questions, please email me.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE ICASSP Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| How 32-bit Embedded Processors Change the Focus in Teaching DSP Hardware&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Prague, Czech Republic&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Monday May 23rd, 2011, Afternoon&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.icassp2011.com/en/registration]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
This hands-on tutorial presents ideas on how to use TI’s OMAP 3530-based BeagleBoard (www.BeagleBoard.org) for teaching embedded media processing using Open Source resources. The BeagleBoard is Open Source hardware that has sold over 20,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
After the introduction, this workshop will complement the Sunday afternoon tutorial “From DSP Chips to Embedded Processors for Teaching Digital Signal Processing”.  The Sunday workshop examples focus on programming the ‘C64 DSP on the OMAP3530.  This workshop will focus on using Open Source software for media processing  (such as GStreamer, OpenCV, etc.) and using the OMAP display subsystem for handling video. &lt;br /&gt;
The workshop activities will include:&lt;br /&gt;
# Several hands-on exercises to get participants familiar with using the Beagle, (same as tutorial)&lt;br /&gt;
# Several demonstrations of what the Beagle can do using Open Source software, including using the display subsystem, recognizing speech, computer vision&lt;br /&gt;
# Discussions of what topics to include in an embedded Linux class.&lt;br /&gt;
No BeagleBoards will given out.&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
|Melani Plett&lt;br /&gt;
|Seattle Pacific University,&lt;br /&gt;
Seattle, Washington, USA&lt;br /&gt;
|I teach an undergraduate signals and systems course.  I have no Linux experience, though I did use Unix years ago.&lt;br /&gt;
|I am thinking of generating a technical elective follow-on class to illustrate the signals and systems concepts on the Beagleboard.&lt;br /&gt;
|-&lt;br /&gt;
|Monty Hayes&lt;br /&gt;
|Georgia Tech, Professor, Atlanta, GA and&lt;br /&gt;
Chung-Ang University Distinguished Foreign Professor, Seoul, Korea&lt;br /&gt;
|I have no linux experience, have taught courses on DSP chips before&lt;br /&gt;
|I would like to develop an undergraduate course using the Beagleboard to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Oleg Muratov&lt;br /&gt;
|University of Trento, Itay&lt;br /&gt;
|I am a PhD student and I have limited Linux experience.&lt;br /&gt;
|I am planning to give a course to undergraduate students on DSP probably using some hardware.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
Here's an additional handout that didn't make it in time for the printers.&lt;br /&gt;
&lt;br /&gt;
[[VideoThru Lab]]&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
Here ([[Getting_a_Workshop_SD_Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE ICASSP Tutorial ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| From DSP Chips to Embedded Processors for Teaching Digital Signal Processing&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Prague, Czech Republic&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Sunday May 22nd, 2011, Afternoon&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.icassp2011.com/en/tutorials/tutorial-5]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
This hands-on tutorial presents ideas on how to use TI’s OMAP 3530-based BeagleBoard (www.BeagleBoard.org) for teaching embedded media processing using Open Source resources. The BeagleBoard is Open Source hardware that has sold over 16,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
Today’s media handling embedded processors have come a long way from the limited performance of 8- or 16-bit embedded processors or the limited functionality of a dedicated DSP chip. Our students need to see that the days of the single DSP chip are almost over and they need to be prepared for working with DSPs embedded with other processors.&lt;br /&gt;
The OMAP3530 processor contains both an ARM Cortex-A9 processor and a ‘C6400 DSP and it and chips like it are being used in products today. &lt;br /&gt;
The workshop activities include:&lt;br /&gt;
#      hands-on exercises to get participants familiar with using the Beagle,&lt;br /&gt;
#      demonstrations of what the Beagle can do, including streaming video and synthesizing speech and&lt;br /&gt;
#      discussions of what topics to include in an embedded Linux class.&lt;br /&gt;
Participants will receive a BeagleBoard and course materials.&lt;br /&gt;
&lt;br /&gt;
=== Pre Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
|Melani Plett&lt;br /&gt;
|Seattle Pacific University,&lt;br /&gt;
Seattle, Washington, USA&lt;br /&gt;
|I teach an undergraduate signals and systems course.  I have no Linux experience, though I did use Unix years ago.&lt;br /&gt;
|I am thinking of generating a technical elective follow-on class to illustrate the signals and systems concepts on the Beagleboard.&lt;br /&gt;
|-&lt;br /&gt;
|Matt Gately&lt;br /&gt;
|University of Oklahoma, Norman, OK, USA&lt;br /&gt;
|I am a PhD student and I use Linux in my research. &lt;br /&gt;
|I would love to someday teach a DSP course using embedded systems such as FPGA or microcontroller boards. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
Here's an additional handout that didn't make it in time for the printers.&lt;br /&gt;
&lt;br /&gt;
[[AudioThru Lab]]&lt;br /&gt;
&lt;br /&gt;
=== Post Tutorial ===&lt;br /&gt;
&lt;br /&gt;
Here ([[Getting_a_Workshop_SD_Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE SPEd (Signal Processing Society 14th DSP Workshop &amp;amp; 6th SPEd Workshop) ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Moving Beyond the DSP and Teaching 32-bit Embedded Processors Using the BeagleBoard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Enchantment Resort, Sedona, Arizona&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Thursday 6 January, 2011  Time: 14:00 - 17:30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
Here are some things you might want to do now that the workshop is over.  &lt;br /&gt;
&lt;br /&gt;
Here are instructions on how to create the SD card that was used in the workshop.&lt;br /&gt;
* Go here ([[ECE597_Getting_your_Beagle_running_(precompiled)#From_beagleboard-validation.s3.amazonaws.com]]) to download and install the base image for the Beagle.  This will install the kernel and all the files needed to run many of the demos.&lt;br /&gt;
* Download [http://www.rose-hulman.edu/~yoder/Beagle/SPEd2011WorkshopFiles.zip this zip file] to get the extra files used in the workshop. Copy it to your BeagleBoard and unzip it there.  This file contains the '''VideoThru''', '''c6run_target''', '''hello.c''' and '''helloBeagle.c''' files.&lt;br /&gt;
* Download the workshop pptx [http://www.rose-hulman.edu/~yoder/Beagle/SPEd2011WorkshopPPTX.zip here].&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop === &lt;br /&gt;
If you are an overachiever (not required) go here ([[ECE497 Lab13 Using the DSP via c6run]]) to learn how to install the ARM and DSP development tools on your Linux system (Ubuntu 10.4 LTS is required).  If you don't have Ubuntu installed, go [http://processors.wiki.ti.com/index.php/How_to_Build_a_Ubuntu_Linux_host_under_VirtualBox here] to learn how to install it in a virtual machine under windows.&lt;br /&gt;
&lt;br /&gt;
These installs are not required for the workshop; however editing the the table below ''is''.&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle.  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program www.ti.com/university helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
| Steve Chadwick&lt;br /&gt;
| Embry-Riddle Aeronautical University, Prescott, AZ &lt;br /&gt;
| Very new to DSP and hoping develop sufficient depth to teach it next academic year. &lt;br /&gt;
| Interests: Pretty much everything in science. &lt;br /&gt;
|-&lt;br /&gt;
| Mark Wickert&lt;br /&gt;
| University of Colorado, Colorado Springs, CO, USA&lt;br /&gt;
| I have played on and off with Linux for about 10 years, never done any real-time DSP under this OS however.&lt;br /&gt;
| I regularly teach DSP and related courses. I am using the C6713 today, but ready to move forward. I recently started playing with ARM processors (not the BeagleBoard until now).&lt;br /&gt;
|-&lt;br /&gt;
| Shane Cotter&lt;br /&gt;
| Union College, Schenectady, NY&lt;br /&gt;
| I have taught DSP courses. I have used Unix/Linux in the past but not for real-time DSP.&lt;br /&gt;
| The Beagleboard seems like a great platform and I'm interested in learning about it and its potential uses in courses.&lt;br /&gt;
|-&lt;br /&gt;
| Jake Gunther&lt;br /&gt;
| Utah State University&lt;br /&gt;
| I have taught DSP and communication systems for over ten years.&lt;br /&gt;
| I want to move from a simulation-based teaching approach to a real-time approach.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2010 ICASSP Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| 32-bit Embedded Linux-based Signal Processing – Hands on Workshop&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| ICASSP 2010, Dallas, Texas&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Monday, March 15 2010, 13:30 - 17:00&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | email&lt;br /&gt;
! style=&amp;quot;width:40%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| [http://www.rose-hulman.edu/~yoder]&lt;br /&gt;
| I teach 32-bit embedded with the Beagle.  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|David V. Anderson&lt;br /&gt;
|Georgia Institute of Technology&lt;br /&gt;
|&lt;br /&gt;
|Teaching DSP using BeagleBoard as a real-time platform.&lt;br /&gt;
|-&lt;br /&gt;
|Andres Kwasinski&lt;br /&gt;
|Rochester Institute of Technology&lt;br /&gt;
|[http://people.rit.edu/axkeec/]&lt;br /&gt;
|Teaching DSP to Computer Engineers using real-world platforms.&lt;br /&gt;
|-&lt;br /&gt;
|Roger West&lt;br /&gt;
|Utah State University&lt;br /&gt;
|&lt;br /&gt;
|Teaching DSP to ECE students using real-time platforms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
Here is a list of the hands on exercises we will be doing in the 2010 workshop.  Many have suggestions for additional homework that you can do once you are back home and have a network connection.&lt;br /&gt;
&lt;br /&gt;
# [[2010 ICASSP Lab 1 Wiring_and_Running the Beagle]]&lt;br /&gt;
# [[2010 ICASSP Lab 2 The Boot Sequence]]&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/BeagleBoard_Education_Workshops</id>
		<title>BeagleBoard Education Workshops</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/BeagleBoard_Education_Workshops"/>
				<updated>2013-05-18T15:21:37Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497 |W]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
[[Category:Workshops]]&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
{{YoderHead}}&lt;br /&gt;
&lt;br /&gt;
== 2012 Engibous Summit Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Hands-on workshop on Embedded Linux on BeagleBone&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Dallas&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 30-July-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.ti.com/corp/docs/landing/universityprogram/prize.htm Engibous Summit]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
You will be mailed some information about the workshop and some things for you to do before arriving.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Chandigarh Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Hands-on workshop on Embedded Linux on Beagleboard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/73-chitkara-school-of-engineering-a-technology Chitkara School of Engineering &amp;amp; Technology] - Chandigarh, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 18-20 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/128-hands-on-workshop-on-embedded-linux-on-beagleboard http://www.uniti.in/events/details/128-hands-on-workshop-on-embedded-linux-on-beagleboard]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
Beagleboard is a low-cost open-source embedded system development platform. It is based on Texas Instruments DM3730 processor, which includes an on-chip ARM Cortex-A8 processor core, a Texas Instruments C6x DSP core, and a host of peripherals. Beagleboard is a single board computer, which provides adequate performance to run Linux software, yet has a power consumption lower than 2W. A large number of embedded applications have been developed on Beagleboard ([http://www.beagleboard.org www.beagleboard.org]) Module A provides a gentle introduction to the subject of Embedded Linux, Linux Systems Programming and Linux Kernel Programming. The intention of Module B is to provide a hands-on exposure to running Embedded Linux operating system on the Beagleboard and develop system software on the Beagleboard.&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Hyderabad Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Three-day workshop on Embedded Linux on Beagleboard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/69-c-dac-hyderabad C-DAC Hyderabad] - Hyderabad, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 14-16 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/123-three-day-workshop-on-embedded-linux-on-beagleboard http://www.uniti.in/events/details/123-three-day-workshop-on-embedded-linux-on-beagleboard]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
Linux, which is an “open source” operating system and enjoys considerable popularity on general-purpose computers, is becoming popular in the embedded world also. Different versions and variants of Linux are now available on embedded platforms. In this workshop, the intention is to provide a hands-on introduction to concepts of Linux Systems/Kernel Programming and Embedded Linux&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2012 Bangalore Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| 6-day modular workshop on Embedded Linux&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| [http://www.uniti.in/events/venueevents/68-cambridge-institute-of-technology Cambridge Institute of Technology] - Bangalore, India&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| 11-13 June-2012&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.uniti.in/events/details/122-6-day-modular-workshop-on-embedded-linux www.uniti.in/events/details/122-6-day-modular-workshop-on-embedded-linux]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
'''Module A''' provides an overview of basic concepts of Linux, Linux Systems Programming, Linux Kernel Programming, and Embedded Systems. Module A will also include an introduction to Beagleboard, an open-source, low-cost, low-power embedded system development platform. '''Module A''' will be conducted jointly by a team of experts from industry and academia. In '''Module B''', aspects of Embedded Linux on Beagleboard will be explored in greater depth. Module B will be conducted by Prof. Mark A. Yoder of Rose-Hulman Institute of Technology, USA.&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
== 2011 FIE Workshop - Cancelled ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| From DSP Chips to Embedded Processors for Teaching Digital Signal Processing&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Holiday Inn Salon F, Rapid City, South Dakota&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Wednesday, October 12, 2011, 2:30 p.m. - 5:30 p.m&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://fie-conference.org/fie2011/] [http://fie-conference.org/fie2011/Pages/workshops.htm#SCRL6]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
&lt;br /&gt;
The goal of this hands-on tutorial is to present ideas on how to use Texas Instrument’s DM 3730-based BeagleBoard xM ([www.BeagleBoard.org www.BeagleBoard.org]) for teaching embedded processing using Open Source resources. The DM 3730 is a dual core processor with an ARM Cortex-a8 core and a TI ‘c64x DSP core. The BeagleBoard is Open Source hardware that has sold over 30,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
&lt;br /&gt;
The BeagleBoard has many uses in the classroom. This workshop will show some of those uses and present some of the challenges in teaching with Open Source.&lt;br /&gt;
&lt;br /&gt;
The workshop activities will include:&lt;br /&gt;
&lt;br /&gt;
* several hands-on exercises to get participants familiar with using the Beagle, and how it differs from a traditional 8- or 16-bit microcomputer.&lt;br /&gt;
* several demonstrations of what the Beagle can do, such as streaming video and programming its DSP and discussions of what topics to include in an embedded/DSP class including dealing with open source comminutes.&lt;br /&gt;
* This workshop is targeted to those who are teaching embedded processors or DSP hardware. Some Linux background would be helpful, but not required. Those with little or no Linux experience will be paired with those with more experience.&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
Even though the workshop has been cancelled, you can still do the exercises.  Here ([[Getting a Workshop SD Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
Here ([[EBC Embedded Beagle Class Topics]]) is a list of topics I cover in my class.  If you have questions, please email me.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE ICASSP Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| How 32-bit Embedded Processors Change the Focus in Teaching DSP Hardware&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Prague, Czech Republic&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Monday May 23rd, 2011, Afternoon&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.icassp2011.com/en/registration]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
This hands-on tutorial presents ideas on how to use TI’s OMAP 3530-based BeagleBoard (www.BeagleBoard.org) for teaching embedded media processing using Open Source resources. The BeagleBoard is Open Source hardware that has sold over 20,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
After the introduction, this workshop will complement the Sunday afternoon tutorial “From DSP Chips to Embedded Processors for Teaching Digital Signal Processing”.  The Sunday workshop examples focus on programming the ‘C64 DSP on the OMAP3530.  This workshop will focus on using Open Source software for media processing  (such as GStreamer, OpenCV, etc.) and using the OMAP display subsystem for handling video. &lt;br /&gt;
The workshop activities will include:&lt;br /&gt;
# Several hands-on exercises to get participants familiar with using the Beagle, (same as tutorial)&lt;br /&gt;
# Several demonstrations of what the Beagle can do using Open Source software, including using the display subsystem, recognizing speech, computer vision&lt;br /&gt;
# Discussions of what topics to include in an embedded Linux class.&lt;br /&gt;
No BeagleBoards will given out.&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
|Melani Plett&lt;br /&gt;
|Seattle Pacific University,&lt;br /&gt;
Seattle, Washington, USA&lt;br /&gt;
|I teach an undergraduate signals and systems course.  I have no Linux experience, though I did use Unix years ago.&lt;br /&gt;
|I am thinking of generating a technical elective follow-on class to illustrate the signals and systems concepts on the Beagleboard.&lt;br /&gt;
|-&lt;br /&gt;
|Monty Hayes&lt;br /&gt;
|Georgia Tech, Professor, Atlanta, GA and&lt;br /&gt;
Chung-Ang University Distinguished Foreign Professor, Seoul, Korea&lt;br /&gt;
|I have no linux experience, have taught courses on DSP chips before&lt;br /&gt;
|I would like to develop an undergraduate course using the Beagleboard to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Oleg Muratov&lt;br /&gt;
|University of Trento, Itay&lt;br /&gt;
|I am a PhD student and I have limited Linux experience.&lt;br /&gt;
|I am planning to give a course to undergraduate students on DSP probably using some hardware.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
Here's an additional handout that didn't make it in time for the printers.&lt;br /&gt;
&lt;br /&gt;
[[VideoThru Lab]]&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
&lt;br /&gt;
Here ([[Getting_a_Workshop_SD_Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE ICASSP Tutorial ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| From DSP Chips to Embedded Processors for Teaching Digital Signal Processing&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Prague, Czech Republic&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Sunday May 22nd, 2011, Afternoon&lt;br /&gt;
|-&lt;br /&gt;
| '''Link'''&lt;br /&gt;
| [http://www.icassp2011.com/en/tutorials/tutorial-5]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Abstract:===&lt;br /&gt;
This hands-on tutorial presents ideas on how to use TI’s OMAP 3530-based BeagleBoard (www.BeagleBoard.org) for teaching embedded media processing using Open Source resources. The BeagleBoard is Open Source hardware that has sold over 16,000 units since its introduction less than 2 years ago and has a thriving Open Source Software community.&lt;br /&gt;
Today’s media handling embedded processors have come a long way from the limited performance of 8- or 16-bit embedded processors or the limited functionality of a dedicated DSP chip. Our students need to see that the days of the single DSP chip are almost over and they need to be prepared for working with DSPs embedded with other processors.&lt;br /&gt;
The OMAP3530 processor contains both an ARM Cortex-A9 processor and a ‘C6400 DSP and it and chips like it are being used in products today. &lt;br /&gt;
The workshop activities include:&lt;br /&gt;
#      hands-on exercises to get participants familiar with using the Beagle,&lt;br /&gt;
#      demonstrations of what the Beagle can do, including streaming video and synthesizing speech and&lt;br /&gt;
#      discussions of what topics to include in an embedded Linux class.&lt;br /&gt;
Participants will receive a BeagleBoard and course materials.&lt;br /&gt;
&lt;br /&gt;
=== Pre Tutorial ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle [[ECE497 - 32-bit Embedded Linux, Rose-Hulman]].  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program [http://www.ti.com/university www.ti.com/university] helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
|Melani Plett&lt;br /&gt;
|Seattle Pacific University,&lt;br /&gt;
Seattle, Washington, USA&lt;br /&gt;
|I teach an undergraduate signals and systems course.  I have no Linux experience, though I did use Unix years ago.&lt;br /&gt;
|I am thinking of generating a technical elective follow-on class to illustrate the signals and systems concepts on the Beagleboard.&lt;br /&gt;
|-&lt;br /&gt;
|Matt Gately&lt;br /&gt;
|University of Oklahoma, Norman, OK, USA&lt;br /&gt;
|I am a PhD student and I use Linux in my research. &lt;br /&gt;
|I would love to someday teach a DSP course using embedded systems such as FPGA or microcontroller boards. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
&lt;br /&gt;
Here's an additional handout that didn't make it in time for the printers.&lt;br /&gt;
&lt;br /&gt;
[[AudioThru Lab]]&lt;br /&gt;
&lt;br /&gt;
=== Post Tutorial ===&lt;br /&gt;
&lt;br /&gt;
Here ([[Getting_a_Workshop_SD_Image]]) are instructions on how to put the tutorial image on your SD card.&lt;br /&gt;
&lt;br /&gt;
== 2011 IEEE SPEd (Signal Processing Society 14th DSP Workshop &amp;amp; 6th SPEd Workshop) ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| Moving Beyond the DSP and Teaching 32-bit Embedded Processors Using the BeagleBoard&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| Enchantment Resort, Sedona, Arizona&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Thursday 6 January, 2011  Time: 14:00 - 17:30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Post Workshop ===&lt;br /&gt;
Here are some things you might want to do now that the workshop is over.  &lt;br /&gt;
&lt;br /&gt;
Here are instructions on how to create the SD card that was used in the workshop.&lt;br /&gt;
* Go here ([[ECE597_Getting_your_Beagle_running_(precompiled)#From_beagleboard-validation.s3.amazonaws.com]]) to download and install the base image for the Beagle.  This will install the kernel and all the files needed to run many of the demos.&lt;br /&gt;
* Download [http://www.rose-hulman.edu/~yoder/Beagle/SPEd2011WorkshopFiles.zip this zip file] to get the extra files used in the workshop. Copy it to your BeagleBoard and unzip it there.  This file contains the '''VideoThru''', '''c6run_target''', '''hello.c''' and '''helloBeagle.c''' files.&lt;br /&gt;
* Download the workshop pptx [http://www.rose-hulman.edu/~yoder/Beagle/SPEd2011WorkshopPPTX.zip here].&lt;br /&gt;
&lt;br /&gt;
=== Pre Workshop === &lt;br /&gt;
If you are an overachiever (not required) go here ([[ECE497 Lab13 Using the DSP via c6run]]) to learn how to install the ARM and DSP development tools on your Linux system (Ubuntu 10.4 LTS is required).  If you don't have Ubuntu installed, go [http://processors.wiki.ti.com/index.php/How_to_Build_a_Ubuntu_Linux_host_under_VirtualBox here] to learn how to install it in a virtual machine under windows.&lt;br /&gt;
&lt;br /&gt;
These installs are not required for the workshop; however editing the the table below ''is''.&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list. You will have to create an eLinux account before you can edit the page.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Linux/DSP Background&lt;br /&gt;
! style=&amp;quot;width:30%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| I've been using various flavors of Unix/Linux since the late '70s, but there is always more to learn.&lt;br /&gt;
I've taught a 'C6713 based DSP class years ago. &lt;br /&gt;
| I teach 32-bit embedded with the Beagle.  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|Cathy Wicks&lt;br /&gt;
|Texas Instruments, University Program Manager&lt;br /&gt;
|I am a HUGE fan of Beagleboard and very interested to develop a community of teachers using it. &lt;br /&gt;
|Our Program www.ti.com/university helps academics use TI Hardware, Software and Chips in their projects and curriculum.  &lt;br /&gt;
|-&lt;br /&gt;
| Steve Chadwick&lt;br /&gt;
| Embry-Riddle Aeronautical University, Prescott, AZ &lt;br /&gt;
| Very new to DSP and hoping develop sufficient depth to teach it next academic year. &lt;br /&gt;
| Interests: Pretty much everything in science. &lt;br /&gt;
|-&lt;br /&gt;
| Mark Wickert&lt;br /&gt;
| University of Colorado, Colorado Springs, CO, USA&lt;br /&gt;
| I have played on and off with Linux for about 10 years, never done any real-time DSP under this OS however.&lt;br /&gt;
| I regularly teach DSP and related courses. I am using the C6713 today, but ready to move forward. I recently started playing with ARM processors (not the BeagleBoard until now).&lt;br /&gt;
|-&lt;br /&gt;
| Shane Cotter&lt;br /&gt;
| Union College, Schenectady, NY&lt;br /&gt;
| I have taught DSP courses. I have used Unix/Linux in the past but not for real-time DSP.&lt;br /&gt;
| The Beagleboard seems like a great platform and I'm interested in learning about it and its potential uses in courses.&lt;br /&gt;
|-&lt;br /&gt;
| Jake Gunther&lt;br /&gt;
| Utah State University&lt;br /&gt;
| I have taught DSP and communication systems for over ten years.&lt;br /&gt;
| I want to move from a simulation-based teaching approach to a real-time approach.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2010 ICASSP Workshop ==&lt;br /&gt;
{|&lt;br /&gt;
| '''Title:''' &lt;br /&gt;
| 32-bit Embedded Linux-based Signal Processing – Hands on Workshop&lt;br /&gt;
|-&lt;br /&gt;
| '''Presentor:''' &lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|-&lt;br /&gt;
| '''Location:''' &lt;br /&gt;
| ICASSP 2010, Dallas, Texas&lt;br /&gt;
|-&lt;br /&gt;
| '''Date:''' &lt;br /&gt;
| Monday, March 15 2010, 13:30 - 17:00&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to give you practice editing a wiki and to start building a community of BeagleBoard Educators.  Click on the '''edit''' tab above and add your name to the list.&lt;br /&gt;
&lt;br /&gt;
--Mark&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | School/Company&lt;br /&gt;
! style=&amp;quot;width:20%&amp;quot; | email&lt;br /&gt;
! style=&amp;quot;width:40%&amp;quot; | Interests&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Rose-Hulman Institute of Technology, &lt;br /&gt;
Terre Haute, Indiana, USA&lt;br /&gt;
| [http://www.rose-hulman.edu/~yoder]&lt;br /&gt;
| I teach 32-bit embedded with the Beagle.  DSP is appearing everywhere now.  The BeagleBoard is a great environment to teach DSP.&lt;br /&gt;
|-&lt;br /&gt;
|David V. Anderson&lt;br /&gt;
|Georgia Institute of Technology&lt;br /&gt;
|&lt;br /&gt;
|Teaching DSP using BeagleBoard as a real-time platform.&lt;br /&gt;
|-&lt;br /&gt;
|Andres Kwasinski&lt;br /&gt;
|Rochester Institute of Technology&lt;br /&gt;
|[http://people.rit.edu/axkeec/]&lt;br /&gt;
|Teaching DSP to Computer Engineers using real-world platforms.&lt;br /&gt;
|-&lt;br /&gt;
|Roger West&lt;br /&gt;
|Utah State University&lt;br /&gt;
|&lt;br /&gt;
|Teaching DSP to ECE students using real-time platforms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Labs ===&lt;br /&gt;
Here is a list of the hands on exercises we will be doing in the 2010 workshop.  Many have suggestions for additional homework that you can do once you are back home and have a network connection.&lt;br /&gt;
&lt;br /&gt;
# [[2010 ICASSP Lab 1 Wiring_and_Running the Beagle]]&lt;br /&gt;
# [[2010 ICASSP Lab 2 The Boot Sequence]]&lt;br /&gt;
&lt;br /&gt;
{{YoderFoot}}&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Xinyu1991</id>
		<title>User:Xinyu1991</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Xinyu1991"/>
				<updated>2013-05-18T15:19:41Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012  |UX]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Whiteer</id>
		<title>User:Whiteer</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Whiteer"/>
				<updated>2013-05-18T15:19:27Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Uw]]&lt;br /&gt;
== About Me ==&lt;br /&gt;
;Elias White&lt;br /&gt;
:Pursuing a B.Sc. in Electrical Engineering&lt;br /&gt;
:Technical interest areas:&lt;br /&gt;
::* Signal/Image Processing&lt;br /&gt;
::* Robotics&lt;br /&gt;
::* Mathematics in general&lt;br /&gt;
:My [http://www.linkedin.com/profile/view?id=139481444&amp;amp;trk=tab_pro Linkedin] profile&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Pending.&lt;br /&gt;
&lt;br /&gt;
== Mini-Projects ==&lt;br /&gt;
Pending.&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Correlbn</id>
		<title>User:Correlbn</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Correlbn"/>
				<updated>2013-05-18T15:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497Fall2012 |Uc]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Shinnsm</id>
		<title>User:Shinnsm</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Shinnsm"/>
				<updated>2013-05-18T15:19:01Z</updated>
		
		<summary type="html">&lt;p&gt;Yoder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stephen Shinn&lt;br /&gt;
&lt;br /&gt;
Computer Engineering major, class of 2013.&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
* [[SparkFun: 0.5&amp;quot; Force Sensitive Resistor]]&lt;br /&gt;
* [[ECE497 Project: XBee]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE497Fall2012 |Us]]&lt;/div&gt;</summary>
		<author><name>Yoder</name></author>	</entry>

	</feed>