https://elinux.org/api.php?action=feedcontributions&user=FransMeulenbroeks&feedformat=atomeLinux.org - User contributions [en]2024-03-28T22:39:22ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=236510BeagleBoard/GSoC/Ideas-20162013-03-31T11:36:11Z<p>FransMeulenbroeks: /* Mentors */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
[[Category: GSoC]]<br />
<br />
__TOC__<br />
<br />
=Welcome!=<br />
BeagleBoard.org hopes to be accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2013! Below, we've collected project ideas for the 2013 GSoC.<br />
<br />
==Background==<br />
BeagleBoard.org is a volunteer organization that seeks to advance the state of open-source software on [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] platforms capable of running high-level languages and operating systems (primarily Linux) in embedded environments. Born from taking mobile phone processors and putting them on low-cost boards to build affordable desktop computers, BeagleBoard.org has evolved to focus on the needs of the "maker" community with greater focus on the I/O needed for controlling motors and reading sensors to build things like robots, 3d printers, flying drones, in-car computer systems and much more. Past BeagleBoard.org GSoC projects included [[BeagleBoard/GSoC/2010_Projects/C6Run|an RPC framework for heterogeneous processor communication]], [[BeagleBoard/GSoC/2010_Projects/USBSniffer|a transparent USB packet sniffer]], [[BeagleBoard/GSoC/2010_Projects/XBMC|ARM optimizations for XBMC]], [[BeagleBoard/GSoC/2010_Projects/FFTW|ARM optimizations for FFTs]], [[BeagleBoard/GSoC/2010_Projects/Pulse_Width_Modulation|make-shift pulse-width-modulation]] and [[BeagleBoard/GSoC/2010_Projects/OpenCV|RPC optimizations for OpenCV]]. BeagleBoard.org has benefited from sponsorship from Texas Instruments, CircuitCo, Digi-Key and others, but avoids any dependence on that sponsorship for sustaining the effort. The project has evolved over the past few years with over 100,000 boards in circulation with developers worldwide and strong roots in the Linaro, Yocto Project, Angstrom Distribution and Linux communities---and support for running most major Linux distributions including Ubuntu, Android, Fedora, Debian, ArchLinux, Gentoo, Buildroot and many more.<br />
<br />
BeagleBoard was inspiration for Raspberry Pi[http://www.linuxuser.co.uk/features/raspberry-pi-interview-eban-upton-reveals-all] and will be more affordable at the time GSoC launches[http://beagleboard.org/unzipped], but is more than a throw-away computer. It is true open hardware, exposing users to the broader world of electronics, demystifying computers and fostering an environment of clones that have changed the industry.<br />
<br />
Students will be expected to demonstrate an understanding of cross-compiling before being accepted, but support for demonstration is available through the IRC channel that typically has approximately 150 online chatters logged on at any time, most with sufficient experience to explain the process.<br />
<br />
'''''<span style="color:red">Every accepted student will be sent a BeagleBone Black before the first week of coding for testing their project.</span>'''''<br />
<br />
Additional hardware will be provided depending on need and value.<br />
<br />
For more information, check out http://beagleboard.org and http://beagleboard.org/brief.<br />
<br />
==Students looking for ideas==<br />
Student proposals can encompass projects inspired from the following list of ideas or can include personal project ideas. Previous Google Summer of Code projects show that the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it is not on this list. We will be glad to help students develop ideas into projects via [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/group/beagleboard the BeagleBoard mailing list]. There are many potential project ideas and we will match students to projects based on their interests and help scope the proposals to something that can be completed in the Summer of Code timeframe.<br />
<br />
There are more than 300 existing projects listed at http://beagleboard.org/project. If you are interested in one of the projects listed on the BeagleBoard.org projects page, talk with the project members to see if there are any aspects of their projects that can be used to create a GSoC project. There are also several ideas on the[[ECE497_Project_Ideas|ECE497 class project idea list]]. You can also check out [[BeagleBoard/GSoC/Ideas-2012|last year's idea page]].<br />
<br />
==Mentors wondering where to help==<br />
Please start by registering your ideas for student projects below by following the template provided with the existing ideas. Furthermore, scroll down to the bottom and give everyone a bit of information about your expertise and availability by adding yourself to the table. Jason will make final approvals for mentor assignments based on if we first get accepted as a mentoring organization and best matching mentor skill sets with student project ideas deemed valuable to the community.<br />
<br />
==General requirements==<br />
All projects have the following basic requirements:<br />
# Once accepted, the project must be registered on http://beagleboard.org/project.<br />
# All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
# Individual students shall retain copyright on their works.<br />
# Source code generated during the project must be released on github.com (to be cloned to github.com/beagleboard on successful completion).<br />
# The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog-hosting service with known reliability.<br />
# To help you to break your project down into manageable chunks and also to help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
## what was accomplished that week, <br />
## any issues that prevented that week's goals from being completed and<br />
## your goals for the next week.<br />
# Students will provide two recorded audio/video presentations uploaded to youtube or vimeo (screencasts are appropriate), one near the beginning of the project summarizing their project goals and another in the wrap-up phase to summarize their accomplishments. Examples can be found on http://beagleboard.org/gsoc.<br />
# Students will demonstrate their ability to cross-compile and utilize version control software by creating a "Hello World" application and generating a pull request to https://github.com/jadonk/gsoc-application/tree/master/ExampleEntryJasonKridner. For assistance, please visit http://beagleboard.org/chat or utilize the beagleboard-gsoc Google Group. The "Hello World" application must print your name and the date out in an ARM Linux environment. Freely available emulators may be used to test your application or you can ask anyone on the chat or mailing list to help you test.<br />
# All projects will produce reusable software components and will not be "what–I-built-over-my-summer-vacation" projects. Including a hardware component is welcome, but the project *deliverable* will be software that may be utilized by a wide audience of the BeagleBoard.org community.<br />
<br />
=Ideas=<br />
There are several areas needing contributions:<br><br />
'''Kernel''': Improving the state of the Linux kernel including improved ARM/OMAP/Sitara platform support, simplifying the development of add-on hardware for embedded systems and exchanging hardware connectivity information with userspace.<br><br />
'''Secondary processor support (RPC/gcc/etc.)''': Enabling usage of DSPs, PRUs, FPGAs, Cortex-M3s, Arduinos, MSP430 launchpads and other attached processing platforms.<br><br />
'''Scripting libraries and web interfaces''': Improving the Bonescript JavaScript library, web-based interface libraries, examples or alternatives in other languages.<br><br />
'''Frameworks for open-hardware projects''': Consolidating support for simplified home manufacturing (CNC, 3D printers, laser cutters, pick-and-place machines, etc.), drones/bots (ROS, IMU, video streaming, etc.) or other common tasks.<br><br />
'''Optimizations to existing userspace applications/libraries''': Optimizations to applications and libraries like XBMC to make them run better on resource constrained environments or to take advantage of more specialized processing elements.<br><br />
<br />
==Upstreaming Beagleboard.org Kernel Patches==<br />
The BeagleBone currently relies on a number of out-of-tree kernel patches in order to boot. These patches are maintained by Koen Kooi (CircuitCo) and come from many sources, including TI employees and various mailing lists. Getting more of these patches upstream would make it easier to boot a BeagleBone and also make use of a BeagleBone easier for users and kernel developers who need to track upstream kernel changes, or who otherwise need to be closer to the bleeding edge of Linux kernel development. The current patch set is [https://github.com/beagleboard/kernel/tree/3.8 maintained at github] and contains scripts to easily patch an upstream kernel. The scripts in this repository are used to build the BeagleBoard.org kernels which ship with the Angstrom SD card images.<br />
<br><br />
<br />
''Goal:'' Push as many patches as possible to [http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Linus's mainline kernel tree] via the appropriate [http://git.kernel.org/cgit/ staging kernels] for the subsystems involved.<br><br />
''Existing Project:'' [http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git The Mainline Linux Kernel], [http://github.com/beagleboard/kernel/tree/3.8 patches needing to be pushed]<br><br />
''Hardware Skills:'' Able to read schematics, understand basic digital logic and monitor logic-level digital signals.<br><br />
''Software Skills:'' Able to write software in C, create patches to the Linux kernel and perform cross-compilation and testing.<br><br />
''Possible mentors:'' Matt Porter, Matt Ranostay, Koen Kooi, Alan Ott<br><br />
<br />
==IIO debugging tools==<br />
Quick background: IIO is the new way of doing sensors but being a newer interface, it lacks tools<br />
for debugging. This project is to produce sometools to debug drivers.<br />
There are several ways this project can happen:<br><br />
1. We can implement userland tools that read IIO data similar to the evtest tool. <br><br />
2. We can implement a event handler for the IIO driver. This way existing tools and code can be used. There was references from another mailing list (probally LKML) talking about this.<br><br />
<br />
''Goal:'' Userspace application similar to evtest that captures debug events and instrumented IIO driver code to produce those events.<br><br />
''Existing Project:'' [http://github.com/beagleboard/kernel/tree/3.8 patched kernel with IIO driver]<br><br />
''Hardware Skills:'' None.<br><br />
''Software Skills:''C coding (1), (2) requires kernel coding<br><br />
''Possible mentors:'' Hunyue Yau<br><br />
<br />
==node-webkit based cross-platform getting-started app==<br />
Newbies often have a difficult time following directions that could be replaced by an application. The steps to download and install an application is something that even newbies can typically manage. This avoid issues like having bad browsers or not having typical development tools like 'ssh'. This is a common problem across all embedded Linux platforms and node-webkit provides a good solution for making it cross-platform.<br />
<br />
''Features'':<br />
* Provide instructions for getting up-and-running with the board based (incorporate the Getting Started Guide)<br />
* Automatically discover boards on the LAN using mDNS and predetermined IP addresses<br />
* Act as a browser to interact with the board, including performing SSH and SCP<br />
* Discover the latest SD card images from multiple distributions<br />
* Bootload the board with a USB-mass-storage-class application<br />
* Program SD cards through the board or a USB adapter<br />
* Program on-board eMMC<br />
<br />
''Goal:'' Provide a downloadable application for Linux, Windows and Mac that enables unexperienced users to get going enough to start learning about using Linux and the embedded I/O.<br><br />
''Existing Project:'' [http://github.com/jadonk/beaglebone-getting-started/tree/node-webkit-app Incomplete node webkit app for the BeagleBone Getting Started guide]<br><br />
''Hardware Skills:'' N/A<br><br />
''Software Skills:'' Able to write software in JavaScript and work with node.js modules<br><br />
''Possible mentors:'' Jason Kridner<br><br />
<br />
==OpenEmbedded support for npm packages for node.js==<br />
Using npm for packages works well for grabbing most recent versions of things, but it doesn't work well to make sure you are getting tested versions built for your platform, it doesn't integrate with the native package manager, it is a huge security hole and it generally is a mess for distributions. OpenEmbedded provides a great vehicle for creating distributions that can professionally support deploying node.js packages rather than relying on a tool that is really only geared for prototyping.<br />
<br />
* Create a bitbake 'npm' class<br />
* Cross-build native code using node-waf, node-gyp and nw-gyp<br />
* Create dependencies using package.json<br />
<br />
''Goal:'' Bitbake 'npm' class and recipes for tools like 'node-serialport', 'express', 'socket.io' and more.<br><br />
''Existing Project:'' http://www.openembedded.org/wiki/BitBake, https://npmjs.org/<br><br />
''Hardware Skills:'' N/A<br><br />
''Software Skills:'' Familiarity with C++, JavaScript and Python. Basic understanding of build systems.<br><br />
''Possible mentors:'' Jason Kridner<br><br />
<br />
==Bonescript web pages with live-running examples and documentation==<br />
The Bonescript JavaScript library enables hardware control from web pages using socket.io for remote procedure calls. This provides an excellent environment for teaching how to wire-up sensors and controls and rapidly prototype user interfaces. Numerous examples exist on the web, but consolidation and testing are required to make them usable by novices.<br />
<br />
''Goal:'' Dozens of web pages with executable script that demonstrate how to connect up sensor and actuator hardware<br><br />
''Existing Projects:'' https://github.com/jadonk/bonescript, [https://github.com/jadonk/beaglebone-getting-started/blob/add-bone101/Docs/demo_bmp085.html BMP085 Bonescript example], [http://elinux.org/Category:ECE497 ECE497 examples]<br><br />
''Hardware Skills:'' Basic knowledge of digital circuits.<br><br />
''Software Skills:'' JavaScript and some familiarity with Linux<br><br />
''Possible mentors:'' Jason Kridner<br><br />
<br />
==Integrate support libraries into Angstrom==<br />
Many BeagleBone and embedded Linux support libraries in various programming languages exist as projects that aren't included in the distro shipped with BeagleBoard and BeagleBone. These need bitbake recipes added to meta-beagleboard such that they can be easily downloaded and incorporated into the shipping distro.<br />
<br />
* Python PyBBIO<br />
* Ruby beaglebone-ruby<br />
* Perl bonelib<br />
<br />
''Goal:'' PyBBIO, beaglebone-ruby and bonelib included in the distro shipping with BeagleBone<br><br />
''Existing Project:'' [https://github.com/alexanderhiam/PyBBIO PyBBIO], [https://github.com/ryanfaerman/beaglebone-ruby beaglebone-ruby], [http://sourceforge.net/p/bonelib/wiki/Home/ bonelib]<br><br />
''Hardware Skills:'' Able to wire up simple hardware, like LEDs<br><br />
''Software Skills:'' Familiarity with Python, Ruby, Perl, embedded Linux and build systems.<br><br />
''Possible mentors:'' Jason Kridner<br><br />
<br />
==SYSFS entries for IIO and PWM==<br />
IIO and PWM provide mechanisms for sampling touch screens, performing general purpose A/D conversions to read sensors, generating voltage levels and driving motors. The Linux kernel SYSFS mechanism provides a simplified mechanism for userspace applications to set parameters and read/write data values.<br />
<br />
''Goal:'' Push patches to Linux mainline providing SYSFS entries for IIO and PWM useful for building a demo robot<br><br />
''Existing project:'' http://github.com/beagleboard/kernel<br><br />
''Hardware skills:'' Able to read schematics, understand basic digital logic and monitor logic-level digital signals<br><br />
''Software skills:'' Able to write software in C, create patches to the Linux kernel and perform cross-compilation<br><br />
''Possible mentors:'' Laine Walker-Avina<br><br />
<br />
==Using BeagleBone PRUs to control CNC and 3D printer stepper motor Drivers==<br />
This project is to write code for the PRU (realtime processors on the AM335x used in the Beagle Bone) so that it can generate multiple step and direction outputs based on a queue of commands in real time. This needs to be done in real time so the acceleration and coordination of multiple stepper motors can be controlled and coordinated. A step/dir signal is commonly used in a lot of stepper motor drivers. While it is possible to generate stepper phase information from the PRU, it is also undesireable from a testing stand point. An example of a reason for doing this is controlling the X/Y directions of the head of a 3D printer so that it can generate precise curves. While similar code has been done, it is not done in a real time fashion so it is difficult to add coordination between motors and/or maintain a known acceleration.<p><br />
<br />
The result of this code should be something interfaceable to a control system like the non realtime portions of the Linux CNC project (formerly the EMC project). But as a demo, this same code should also demonstrate a node.js functionality such as a "G-code" interpreter. This node.js portion can be considered a second project due to the different skill sets required and ideally this project would be split between two GSoC students. One project would be working mostly on PRU assembly with integration into the Linux kernel. The other project would be working mostly on userspace JavaScript in node.js and C++ code for anything needing optimization or low-level kernel access. Mentors would heavily assist on defining the right interfaces between the two programming environments.<br />
<br />
''Goal'': create code to use the AM335x PRUs to generate multiple step and direction outputs for reprap and CNC applications<br><br />
''Existing projects'': [http://github.com/beagleboard/am335x_pru_package Pru Documentation], [https://www.kernel.org/doc/htmldocs/uio-howto.html UIO Driver documentation]<br><br />
''Hardware skills:'' Able to read schematics, understand basic digital logic and monitor logic-level digital signals<br><br />
''Software skills:'' Assembly and C coding. Node.js for g-code interpretation<br><br />
''Possible mentors:'' Tom King, Jason Kridner, Hunyue Yau, Laine Walker-Avina<br><br />
<br />
==PRU upstreaming==<br />
Remove HWMOD dependency requirement for PRU along with adding device tree bindings so it can be upstreamed into Linus's tree.<br />
<br />
''Goal'': Push patches to Linux mainline providing support for the AM335x PRU<br><br />
''Existing project'': https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/<br><br />
''Hardware skills:'' Able to read schematics, understand basic digital logic and monitor logic-level digital signals<br><br />
''Software skills:'' Able to write software in C, create patches to the Linux kernel and perform cross-compilation<br><br />
''Possible mentors:'' Start with Jason Kridner, but we'll get some others involved<br><br />
<br />
==PRU firmware loader==<br />
Allow "firmware" which are really binary PRU applications to be loaded directly on PRU cores and executed using the request_firmware() functionality of the Linux Kernel. This should also be Cape Manager to load PRU cape specific applications.<br />
<br />
Ideal workflow:<br />
<br />
* Cape detected that uses the PRU<br />
** Setup pinmux <br />
* Find the respective firmware file for PRU core (or both cores) /lib/firmware/cape_A020_pru0.bin<br />
* Load onto PRU and begin execution.<br />
<br />
''Goal'': Push patches to Linux mainline providing support to loading firmware on PRU cores and executing<br><br />
''Existing project'': https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/<br><br />
''Hardware skills:'' Able to read schematics, understand basic digital logic and monitor logic-level digital signals<br><br />
''Software skills:'' Able to write software in C, create patches to the Linux kernel and perform cross-compilation<br><br />
''Possible mentors:'' Matt Ranostay, Matt Porter<br><br />
<br />
==BotSpeak virtual machine for Bonescript and PRU==<br />
Based on Chris Roger's BotSpeak work to provide a virtual machine for typical Arduino functions that can be accessed from LabView, build a virtual machine to enable PRU programming from Bonescript. The virtual machine is a simple interpreter that loops over the command to perform delay, pinMode, attachInterrupt, analogRead, analogWrite, digitalRead and digitalWrite functions. A simple conditional goto is resolved at load-time and a minimal set of variables are available for use. Support will need to be included for simple expressions, but the pre-parser can break them down ahead of time. Introspection in JavaScript should be used to convert a minimal function definition into source to be fed to a parser and passed to the interpreter on the PRU via shared memory.<br />
<br />
''Goal'': Implement a BotSpeak interpreter that off-loads hard real-time tasks from Bonescript onto the PRU and include that in the Bonescript project<br><br />
''Existing projects'': http://github.com/beagleboard/am335x_pru_package, http://github.com/jadonk/bonescript, [https://sites.google.com/site/botspeak/the-language Chris' language definition]<br><br />
''Hardware skills:'' Able to read schematics, understand basic digital logic and monitor logic-level digital signals<br><br />
''Software skills:'' Able to write software in JavaScript and assembly<br><br />
''Possible mentors:'' Chris Rogers, Jason Kridner, Tom King<br><br />
<br />
==Android-based boot host==<br />
Boot your BeagleBone using your Android phone. Combined with the Android Accessory Development Kit code available for BeagleBone and an application to help code/run small applications, this gives you a complete development environment that is easy to distribute to other users.<br />
<br />
''Goal:'' Download a Linux image from the web and boot a BeagleBone using it over USB<br><br />
''Existing Project:'' https://github.com/SpecLad/libusb-android, [https://code.google.com/p/rowboat/wiki/AccessoryDevKit BeagleBone implementation of Android Accessory Development Toolkit]<br><br />
''Hardware Skills:'' Some knowledge of USB<br><br />
''Software Skills:'' Java, C and familiarity with Android<br><br />
''Possible mentors:'' Start with Jason Kridner, but we'll get some others involved<br><br />
<br />
==Android under Angstrom==<br />
Some people want to play Angry Birds or run other Android apps on their BeagleBoard/BeagleBone. Of course, you could use the Rowboat Android project as-is, but then you'd have to give up all of their typical Linux/X11 applications available in Angstrom. This project would use an Android-enabled kernel and a combination of both Angstrom and Android file systems. The input and display methods required for Android would need to be adjusted to run in on a virtual terminal and chroot/chvt would be used to invoke the various user space windows.<br />
<br />
This has essentially been done once as part of [https://www.alwaysinnovating.com/beagleboard/ Always Innovating's Super-Jumbo] demo running Ubuntu, Angstrom, ChromeOS and Android simultaneously. The fundamental challenge is getting it reproducible and integrated into the OpenEmbedded build system for Angstrom and then starting to minimize the wasted file space by sharing libraries. Eventually, even making Android applications run in a window is desired.<br />
<br />
''Goal'': Run Android applications under Angstrom and toggle back-and-forth using CTRL-ALT-Fn key presses.<br><br />
''Existing projects'': http://arowboat.org, http://www.angstrom-distribution.org<br><br />
''Hardware skills:'' Minimal<br><br />
''Software skills:'' Able to write software in C and Java, experience with X11 and Android<br><br />
''Possible mentors:'' Hunyue Yau<br><br />
<br />
=Mentors=<br />
{| border="1"<br />
! Name<br />
! IRC nickname<br />
! Native language<br />
! Other languages<br />
! Timezone<br />
! Software help<br />
! Hardware help<br />
! Focus projects<br />
|-<br />
| Jason Kridner<br />
| jkridner<br />
| English<br />
| -<br />
| US Eastern<br />
| JavaScript, C, u-boot<br />
| wiring, timing diagrams, basic debug<br />
| Bonescript development<br />
|-<br />
| Vladimir Pantelic<br />
| av500<br />
| German<br />
| English, Serbian<br />
| CET<br />
| Experienced on most areas of Embedded Linux, Multimedia<br />
| Schematic Review + Design<br />
| Embedded Linux, Linux Multimedia, Android<br />
|-<br />
| Matt Ranostay<br />
| mranostay<br />
| English (U.S. Midwestern Dialect)<br />
| None<br />
| US Pacific Time<br />
| Experienced on most areas of Embedded Linux or Systems<br />
| Schematic Review + Design<br />
| ARM/AM335x Kernel Development<br />
|-<br />
| Philip Balister<br />
| Crofton<br />
| -<br />
| -<br />
| -<br />
| -<br />
| -<br />
| -<br />
|-<br />
| Russ Dill<br />
| Russ<br />
| English<br />
| None<br />
| US Pacific Time<br />
| Experienced on most areas of Embedded Linux or Systems<br />
| Schematic Review + Design<br />
| ARM/AM335x Kernel Development<br />
|-<br />
| Matt Porter<br />
| mdp<br />
| English (U.S. Midwestern Dialect)<br />
| None<br />
| US Eastern<br />
| Embedded Linux Firmware/Kernel and system level design. Designing Linux drivers to make the best use of existing infrastructure.<br />
| Schematic Review + Design<br />
| ARM/AM335x/OMAP/PRU U-Boot and Kernel/Driver Development<br />
|-<br />
| Koen Kooi<br />
| koen<br />
| Dutch<br />
| English<br />
| CET<br />
| Experienced on most areas of Embedded Linux, buildsystems<br />
| -<br />
| -<br />
|-<br />
| Tom King<br />
| ka6sox<br />
| English<br />
| None<br />
| US Pacific Time<br />
| Experienced on most areas of Embedded Linux or Systems<br />
| Schematic Review + Design, Board Layout<br />
| ARM/AM335x Kernel Development<br />
|-<br />
| Jayneil Dalal<br />
| jayneil<br />
| English<br />
| Hindi, Gujarati<br />
| US Central Time<br />
| Basic Embedded Linux, Documentation<br />
| -<br />
| Application based hw/sw projects on the Beaglebone<br />
|-<br />
| Laine Walker-Avina<br />
| Ceriand<br />
| English<br />
| -<br />
| US Pacific<br />
| C, Assembly, Buildroot, Reprap<br />
| USB protocol & logic analyzers, Various JTAG probes, 3d printer<br />
| OpenOCD, bootloaders, Linux kernel, Reprap firmware<br />
|-<br />
| Alan Ott<br />
| alan_o<br />
| American English (Central Florida Dialect)<br />
| American English (Midwestern Dialect)<br />
| US Eastern (EDT)<br />
| Linux Kernel, Firmware<br />
| Breadboard wire-jamming<br />
| 802.15.4 Wireless, USB<br />
|-<br />
| Hunyue Yau<br />
| ds2<br />
| English<br />
| -<br />
| US Pacific<br />
| Android, C, Linux, scripting<br />
| Yes<br />
| -<br />
|-<br />
| Tom Rini<br />
| Tartarus<br />
| English<br />
| -<br />
| US Eastern<br />
| C, u-boot, OpenEmbedded<br />
| -<br />
| U-Boot or OpenEmbedded development<br />
|-<br />
| Luis Gustavo Lira<br />
| lglira<br />
| Spanish<br />
| English<br />
| GMT/UTC -5<br />
| Embedded Linux, C, Android<br />
| Design, Debug, Wiring<br />
| Projects on the BeagleBone<br />
|-<br />
| Derek Molloy<br />
| molloyd<br />
| -<br />
| -<br />
| GMT (London)<br />
| C++, Java, Embedded C/C++<br />
| Digital Circuits, Interfacing to Sensors<br />
| Beaglebone Applications, Linux Multimedia, Embedded Linux<br />
|-<br />
| Steven Frank Barrett<br />
| steveb<br />
| English<br />
| -<br />
| US Mountain<br />
| C<br />
| microcontrollers, BeagleBone<br />
| -<br />
|-<br />
| Frans Meulenbroeks<br />
| eFfeM<br />
| Dutch<br />
| English<br />
| CET<br />
| Linux (including drivers), U-Boot, C, Documentation; Coding Style, QA<br />
| device interfacing (for drivers), review FPGA code<br />
| - <br />
|}<br />
<br />
[[BeagleBoard/GSoC/Ideas-2012#Mentors|Previous mentors]]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=34861BeagleBoard/James2011-02-14T07:55:15Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
'''NOTE''' This project has been terminated.<br><br />
I have found a similar project that is much further than mine. The project is called Amahi. It is a [http://www.amahi.org home server] providing [http://www.amahi.org media server] functionality.<br />
It can be found at [http://www.amahi.org www.amahi.org].<br><br />
Currently Amahi runs only on x86 and Marvell kirkwood (Sheevaplug and friends), but I guess running it on other hardware like beagleboard is not too difficult.<br />
<br><br />
The distro used by Amahi is Fedora.<br />
<br><br><br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=34855BeagleBoard/James2011-02-14T07:49:45Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
'''NOTE''' This project has been terminated.<br><br />
I have found a similar project that is much further than mine. The project is called Amahi. It is a home server providing media server functionality. It can be found at [http://www.amahi.org www.amahi.org].<br><br />
Currently Amahi runs only on x86 and Marvell kirkwood (Sheevaplug and friends), but I guess running it on other hardware like beagleboard is not too difficult.<br />
<br><br />
The distro used by Amahi is Fedora.<br />
<br><br><br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=34849BeagleBoard/James2011-02-14T07:49:00Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
'''NOTE''' This project has been terminated.<br><br />
I have found a similar project that is much further than mine. The project is called Amahi. It is a home server providing media server functionality and can be found at [http://www.amahi.org www.amahi.org].<br><br />
Currently Amahi runs only on x86 and Marvell kirkwood (Sheevaplug and friends), but I guess running it on other hardware like beagleboard is not too difficult.<br />
<br><br />
The distro used by Amahi is Fedora.<br />
<br><br><br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=34843BeagleBoard/James2011-02-14T07:46:24Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
'''NOTE''' This project has been terminated.<br><br />
I have found a similar project that is much further than mine. The project is called Amahi. It is a home server and can be found at [http://www.amahi.org www.amahi.org].<br><br />
Currently Amahi runs only on x86 and Marvell kirkwood (Sheevaplug and friends), but I guess running it on other hardware like beagleboard is not too difficult.<br />
<br><br />
The distro used by Amahi is Fedora.<br />
<br><br><br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=34837BeagleBoard/James2011-02-14T07:40:57Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
'''NOTE''' This project has been terminated.<br><br />
I have found a similar project that is much further than mine. The project is called Amahi. It is a home server and can be found at [http://www.amahi.org].<br><br />
Currently Amahi runs only on x86 and Marvell kirkwood (Sheevaplug and friends), but I guess running it on other hardware like beagleboard is not too difficult.<br />
<br><br />
The distro used by Amahi is Fedora.<br />
<br><br><br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=34825BeagleBoard/James2011-02-13T12:11:05Z<p>FransMeulenbroeks: add termination notice</p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
'''NOTE''' This project has been terminated.<br><br />
I have found a similar project that is much further than mine. The project is called Amahi and can be found at www.amahi.org.<br><br />
Currently it runs only on x86 and Marvell kirkwood (Sheevaplug and friends), but I guess running it on other hardware like beagleboard is not too difficult.<br />
<br><br />
The distro used by Amahi is Fedora.<br />
<br><br?<br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=24403BeagleBoard/James2010-10-06T20:11:19Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
<br />
'''I am working on an update of James. This is currently in the testing and documenting stage. Watch this space for information<br><br />
The new version will be a complete image, so no need to install additional modules (maybe except some kernel modules).<br><br />
Also the content acquistion/storage/server part will be split from the rendering functionality as doing all on one system is too resource intensive.''' <br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=24397BeagleBoard/James2010-10-06T19:50:02Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
<br />
'''I am working on an update of James. This is currently in the testing and documenting stage. Watch this space for information''' <br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/USBSniffer&diff=22540BeagleBoard/GSoC/2010 Projects/USBSniffer2010-07-28T17:16:54Z<p>FransMeulenbroeks: /* Build and run instructions */ added modules copy</p>
<hr />
<div>Google Summer of Code 2010 Project<br />
<br />
* Student: Nicolas Boichat<br />
* Mentors: Hunyue Yau, Laine Walker-Avina, Frans Meulenbroeks<br />
<br />
BeagleBoard project: [http://beagleboard.org/project/usbsniffer/ usbsniffer]<br />
<br />
Project at gitorious.org: [http://gitorious.org/beagleboard-usbsniffer http://gitorious.org/beagleboard-usbsniffer]<br />
<br />
Blog: [http://beagleboard-usbsniffer.blogspot.com/ http://beagleboard-usbsniffer.blogspot.com/] ([http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default RSS])<br />
<br />
== Abstract ==<br />
<br />
The goal of this project is to use the BeagleBoard as an USB sniffer. The host computer would be connected to the slave USB port of the BeagleBoard, and the device to be sniffed on the host USB port.<br />
<br />
The BeagleBoard would then forward USB data, while logging it.<br />
<br />
This presents the following advantages over a software-based solution: No software modification is required; support of proprietary OSes; allows debugging of new USB stacks; and possibly lower-level debugging of USB frames...<br />
<br />
== Build and run instructions ==<br />
<br />
To get the proxy driver to work, you need to follow these steps:<br />
<br />
* Clone my kernel git tree. Use the <tt>stable-20100724</tt> branch [http://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel/commits/stable-20100724]. This can be done using the following commands:<br />
git clone git://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel.git<br />
cd beagleboard-usbsniffer-kernel<br />
git checkout origin/stable-20100724 -b stable-20100724<br />
* Compile the kernel with the default beagleboard configuration (see [[BeagleBoard#Linux_kernel]]). You just need to add <tt>CONFIG_USB_G_PROXY=m</tt>. I also disabled MUSB in host and OTG mode, as well as USB suspend, but this may not be necessary.<br />
* Install the new kernel on the board. (make sure also to copy the kernel modules)<br />
* Install libpcap-1.1.1 and tcpdump-4.1.1. If you don't have a recent enough OpenEmbedded install, the recipes can be found in these 2 commits: [http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=7b9e14891f7d69b5376041fc15df3d5f13f41855] and [http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=d4f0fb310f7d40f7a50f50fb12083fa258aa1eed].<br />
* Clone the helper scripts git tree, branch <tt>stable-20100724</tt> [http://gitorious.org/beagleboard-usbsniffer/helper-scripts/commits/stable-20100724]:<br />
git clone git://gitorious.org/beagleboard-usbsniffer/helper-scripts.git<br />
cd helper-scripts/<br />
git checkout origin/stable-20100724 -b stable-20100724<br />
* Copy the content of the <tt>arm</tt> directory to the BeagleBoard (you need to modify <tt>load</tt>/<tt>setup</tt>/<tt>sniff</tt> scripts if you do not have have a copy of <tt>musb_hdrc.ko</tt> and <tt>g_proxy.ko</tt> in the same directory).<br />
<br />
Then, you have 2 options, the automatic way:<br />
* Plug your device (through a USB hub if it is a low/full-speed device). <br />
* Run <tt>./sniff</tt>, and follow the instructions. Data transfers will be logged to <tt>/media/ram/dump</tt>. This resulting file can be displayed using wireshark.<br />
* Use the device, it should work, and packets are captured.<br />
<br />
or the manual way (mostly for testing purpose, as it does not log packets):<br />
* Run <tt>./setup</tt> on the BeagleBoard, this will unload the <tt>g_ether</tt> gadget driver.<br />
* Plug your device (through a USB hub if it is a low/full-speed device).<br />
* Plug your PC to the BeagleBoard USB slave port (this can be done earlier as well).<br />
* Run <tt>./unbind</tt>: This will unbind the device from the normal Linux driver.<br />
* Run <tt>./load</tt>: this will (re)load the <tt>g_proxy</tt> driver.<br />
* Use the device, it should work.<br />
<br />
== Tested devices ==<br />
<br />
{| border="1"<br />
!Device !! USB ID !! Speed !! Endpoints & types !! Status !! Branch !! Notes<br />
|-<br />
|Logitech (M-BJ58/M-BJ69) Optical Wheel Mouse ||<tt>046d:c00e</tt>/<tt>046d:c018</tt><br />
|align="center"|LS<br />
|<br />
* EP1 IN, interrupt<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|<br />
|-<br />
|Logitech Internet Keyboard ||<tt>046d:c309</tt><br />
|align="center"|LS<br />
|<br />
* EP1 IN, interrupt (keyboard itself)<br />
* EP2 IN, interrupt (wheel on the side, like a mouse)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>stable-20100618</tt><br />
|<br />
|-<br />
|FTDI FT232 USB-Serial (on Arduino) ||<tt>0403:6001</tt><br />
|align="center"|FS<br />
|<br />
* EP1 IN, bulk (Arduino->host)<br />
* EP2 OUT, bulk (host->Arduino)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|Programming + bidirectional serial communication<br />
|-<br />
|CSR Bluetooth Dongle ||<tt>0a12:0001</tt><br />
|align="center"|FS<br />
|<br />
* EP1 IN, interrupt<br />
* EP2 IN, bulk<br />
* EP2 OUT, bulk<br />
* EP3 IN, iso<br />
* EP3 OUT, iso<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|Scanning devices (<tt>hcitool -i hci1 scan</tt>), and file transfers (<tt>odp</tt> and <tt>ussp-push</tt>) work. Didn't check anything that would use isochronous endpoints.<br />
|-<br />
|Imation 4GB Flash Drive||<tt>0718:0348</tt><br />
|align="center"|HS<br />
|<br />
* EP1 OUT, bulk<br />
* EP2 IN, bulk<br />
* EP3 IN, interrupt<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100702</tt><br />
| Works <tt>hdparm -t --direct /dev/sdX</tt>. On PC: 19.76 MB/sec; on BeagleBoard: 17.64 MB/sec; on PC through the BeagleBoard proxy: 19.18 MB/sec.<br />
|-<br />
|AVerMedia Volar DVB-T dongle||<tt>07ca:b808</tt><br />
|align="center"|HS<br />
|<br />
* EP1 OUT, bulk<br />
* EP1 IN, bulk<br />
* EP2 IN, bulk<br />
* EP3 IN, bulk<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
| No visible problem.<br />
|-<br />
|Logitech, Inc. QuickCam Messanger (<i>sic</i>)||<tt>046d:08da</tt><br />
|align="center"|FS<br />
|<br />
<br />
* EP1 IN, isochronous (video)<br />
* EP2 IN, interrupt (button status)<br />
* EP3 IN, isochronous (audio)<br />
|style="background-color:#c0ff00; font-style:bold" align="center"|OK<br>(audio+video at the same time doesn't work)<br />
|<tt>>stable-20100717</tt><br />
| No visible problem (video 640x480 OR audio). Needs <tt>musb_hdrc</tt> parameter <tt>fifo_mode=6</tt>. The FIFO mode is required, because EP1 needs 768 bytes per packet (and the default is only 512). The DMA has been fixed to handle ISO packets properly.<br><br />
Enabling both video + audio at the same time doesn't work (bandwidth allocation problem, but this is probably an USB hub problem).<br />
|-<br />
|Logitech, Inc. Premium Stereo USB Headset 350||<tt>046d:0a02</tt><br />
|align="center"|FS<br />
|<br />
<br />
* EP1 OUT, isochronous (audio stereo output, max 192 bytes per packet)<br />
* EP3 IN, interrupt (button status)<br />
* EP4 IN, isochronous (audio input, 96 bytes per packet)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>stable-20100717</tt><br />
| No visible problem (audio loopback with something like: <tt>arecord -D default:CARD=Headset -f dat | aplay -D default:CARD=Headset -</tt> works). Needs <tt>musb_hdrc</tt> parameter <tt>fifo_mode=7</tt>. The FIFO mode is required, because EP4 needs 96 bytes per packet (and the default is only 32).<br />
|-<br />
|}<br />
<br />
== MUSB testing code ==<br />
<br />
Some instructions on how to use the code to trigger the MUSB bug with short isochronous packets:<br />
<br />
Checkout [http://gitorious.org/beagleboard-usbsniffer/musb-test|http://gitorious.org/beagleboard-usbsniffer/musb-test]. There are 2 directories: <tt>host</tt>, and <tt>device</tt>.<br />
<br />
For the device side (on the beagleboard), you need to cross-compile <tt>usbtest</tt>. You need <tt>libaio</tt>, which can be built using Angstrom, and <tt>gadgetfs</tt> in the Linux kernel. Then, the gadgetfs driver is loaded as follows:<br />
<br />
modprobe gadgetfs<br />
mkdir /dev/gadget/ -p<br />
mount -t gadgetfs none /dev/gadget<br />
./usbtest -v -s 512 -p 2 -a 1 -I0 -x 18<br />
<br />
The host code must be run on your host PC. It requires the <tt>usbtest</tt> module (<tt>CONFIG_USB_TEST=m</tt>), then isochronous IN transfers are tested with the following command:<br />
./testusb -a -t 16 -g 1 -c 10<br />
<br />
While running the test, you can monitor the USB traffic using usbmon, you should see isochronous packets of length 18, i.e., something like this:<br />
... S Zi:2:100:1 -115:8:5232 1 -18:0:512 512 <<br />
... C Zi:2:100:1 0:8:5240:0 1 0:0:18 18 = e6010203 e6050607 e6090a0b e60d0e0f e611<br />
<br />
Every 4 bytes contains some kind of packet id (incrementing), the rest of the bytes are given by a mod 63 counter.<br />
<br />
Bulk transfers can also be tested, with the following commands (device and host):<br />
./usbtest -a 5 -s 514<br />
./testusb -a -t 4 -c 10 -s 1024<br />
<br />
<tt>testusb</tt> will complain, since the packet is short (514 instead of 1024), but usbmon still shows that the transfer has been done correctly:<br />
... S Bi:2:101:1 -115 1024 <<br />
... C Bi:2:101:1 -121 514 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard_Community&diff=22519BeagleBoard Community2010-07-26T20:48:21Z<p>FransMeulenbroeks: /* Linux kernel */ ARCH needs to be exported</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
This page collects information about [http://www.ti.com/ TI's] [http://www.arm.com/ ARM] based [http://focus.ti.com/general/docs/gencontent.tsp?contentId=36915&amp;DCMP=OMAP_Feb27_2008&amp;HQS=Other+PR+omap3503pr OMAP3] [http://beagleboard.org Beagle Board].<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:'''<br />
* An [http://www.liquidware.com/shop/show/BB-BT/BeagleTouch OLED touchscreen module "BeagleTouch"] and [http://www.liquidware.com/shop/show/BB-BJC/BeagleJuice lithium battery module "BeagleJuice"] are now available from [http://www.liquidware.com/shop Liquidware]<br />
* [[BeagleBoard_Trainer|Trainer Boards]] are now available from [http://tincantools.com/product.php?productid=16149&cat=0&page=1&featured TinCanTools]<br />
* [[BeagleBoard_Zippy|Zippy Boards]] are now available from [http://www.sparkfun.com/commerce/product_info.php?products_id=9731 SparkFun]!<br />
* [[BeagleBoard_Zippy2|Zippy2]] 100baseT Expansion boards for the [[BeagleBoard]] are now available from [http://search.digikey.com/scripts/DkSearch/dksus.dll?vendor=0&keywords=zippy2 Digikey]!<br><br />
</div><br />
<br><br />
=Events=<br />
* Meet BeagleBoard at TI booth in June, 9-12th @ Linux Tag, Berlin, Germany, http://www.linuxtag.org/2010/<br />
* See TI BeagleBoard demo @ Embedded World, Nuremberg, Germany, March 2-4, 2010, Hall 11. booth 308<br />
* Each last Saturday of the month, next August 29, 2009: [[BeagleBoard/bangalore user meet|BeagleBoard Bangalore user meeting]] (Beagle Clinic India)<br />
* all over the world 2009: [http://www.ti.com/corp/docs/landing/techday09/index.shtml# TI Technology Days 2009]. <br />
* ongoing 2009: [[BeagleBoard/contest|Beagle Sponsored Project Program]] - add a cool project and get a free BeagleBoard to realize it!<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:'''<br />
First person to post a "HowTo" for use with the [http://en.wikipedia.org/wiki/Wii_Remote#Nunchuk Nintendo Wii NunChuk] and Trainer board wins $150 cash<br />
<br />
* Must have working code example<br />
* Must have pictures of hardware interface<br />
* Must have complete instructions<br />
</div><br />
<br><br />
<br />
=Hardware=<br />
<br />
The Beagle Board is ''a low-cost, fan-less single-board computer based on TI's OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise'' (from [http://beagleboard.org/ beagleboard.org]). It uses a TI [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor (ARM Cortex-A8 superscalar core ~600MHz paired with a TMS320C64x+ DSP ~430MHz and an Imagination SGX 2D/3D graphics processor). See [http://focus.ti.com/docs/prod/folders/print/omap3530.html#features OMAP3530 features] for more processor features. [[BeagleBoard#Availability|Price is USD 149]]. The design goal was to make it as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See [http://beagleboard.org/brief What is Beagle?] and [http://linuxdevices.com/news/NS5852740920.html LinuxDevices article] for more details.<br />
<br />
The videos [http://uk.youtube.com/watch?v=fL_XMieanSc Beagle Board Beginnings] and [http://uk.youtube.com/watch?v=FuVwh_VrIxk Beagle Board 3D, Angstrom, and Ubuntu] give you a good intro about what BeagleBoard is about and its capabilities.<br />
<br />
==Components==<br />
<br />
{|border=0<br />
!Top view of rev B:<br />
!Top view of rev C:<br />
|-<br />
|[[Image:Bb revb top numbered.jpg]]<br />
|[[Image:Bb revc top numbered.jpg]]<br />
|-<br />
|}<br />
{|border=1<br />
!No.<br />
!Name<br />
!Comment<br />
|-<br />
|'''1'''<br />
|[http://www.ti.com/omap35x OMAP3530] processor + 256MB NAND<br />
<br />
+ 128MB DDR (rev B)<br />
<br />
+ 256MB DDR (rev C)<br />
|PoP: Package-On-Package implementation for Memory Stacking<br />
[http://www.micron.com/products/partdetail?part=MT29C2G24MAKLAJG-6%20IT 256MB NAND/128MB Mobile DDR SDRAM] available from [http://www.digikey.com/scripts/US/DKSUS.dll?Detail?name=557-1435-ND DigiKey]<br />
<br />
([http://www.micron.com/products/partdetail?part=MT29C4G48MAPLCJI-6%20IT 512MB NAND/256MB Mobile DDR SDRAM] available from [http://www.digikey.com/scripts/US/DKSUS.dll?Detail?name=557-1436-ND DigiKey])<br />
<br />
[http://www.micron.com/products/mcps/beagleboard Micron's multi chip packages (MCPs) for Beagle Board]<br />
|-<br />
|'''2'''<br />
|[http://focus.ti.com/docs/prod/folders/print/tfp410.html DVI chip (TFP410)]<br />
|<br />
|-<br />
|'''3'''<br />
|[[BeagleBoard#DVI|DVI-D]]<br />
|Connection via HDMI connector<br />
|-<br />
|'''4'''<br />
|[[BeagleBoard#JTAG|14-pin JTAG]]<br />
|1.8V only!<br />
|-<br />
|'''5'''<br />
|Expansion connector: I2C, I2S, SPI, MMC/SD<br />
|User must solder desired header into place<br />
|-<br />
|'''6'''<br />
|[[BeagleBoard#User_button|User button]] <br />
|Allows setting boot order.<br />
|-<br />
|'''7'''<br />
| Reset button<br />
|<br />
|-<br />
| '''8'''<br />
|[[BeagleBoard#EHCI|USB 2.0 EHCI HS]]<br />
|Rev A and B: not working, unpopulated<br />
<br />
Rev C: populated and working<br />
|-<br />
|'''9'''<br />
|SD/MMC+<br />
| SDHC cards are supported<br />
|-<br />
|'''10'''<br />
|[[BeagleBoard#RS232|RS-232 serial]]<br />
|<br />
|-<br />
|'''11'''<br />
|Alternate power <br />
|normally powered by USB (unmounted on REV Ax boards, see [[BeagleBoard#Errata|errata]])<br />
|-<br />
|'''12'''<br />
|[[BeagleBoard#OTG|USB 2.0 HS OTG]] <br />
|Mini-AB connector. Board can be powered from port. <br />
|-<br />
|'''13'''<br />
|Stereo In<br />
|<br />
|-<br />
|'''14'''<br />
|Stereo Out<br />
|<br />
|-<br />
|'''15'''<br />
|S-Video<br />
|<br />
|-<br />
|'''16'''<br />
|TWL4030 (Rev A thru C2 inc.)<br />
[http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] (Rev C3 onwards)<br />
|Audio CODEC, USB port, power-on reset and power management. The TWL4030 is pin-compatible with the [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] chip and was used due to the very limited availability of the TPS65950 in early board revisions.<br />
|-<br />
|'''17'''<br />
|LCD<br />
|only rev C<br />
|-<br />
|'''18'''<br />
|USB power<br />
|<br />
|-<br />
|'''19'''<br />
|Host PHY<br />
|<br />
|-<br />
|'''20'''<br />
|32kHz<br />
|<br />
|-<br />
|'''21'''<br />
|12MHz<br />
|<br />
|-<br />
|'''22'''<br />
|RS232 XVCR<br />
|<br />
|-<br />
|'''23'''<br />
|PWR SW<br />
|<br />
|-<br />
|'''24'''<br />
|VBAT<br />
|<br />
|-<br />
|}<br />
<br />
* Board size: 3" x 3" (about 76.2 x 76.2 mm)<br />
* Weight: [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/beagleboard.png ~37g]<br />
* Currently 6 layer PCB; target: 4 layer<br />
<br />
'''Bottom of rev B:'''<br />
<br />
[[Image:Beagle_bottom.jpg]]<br />
<br />
See [http://www.flickr.com/photos/jadon/sets/72157606050144396/ jadonk's photostream] for some more detailed BeagleBoard pictures.<br />
<br />
==Manual==<br />
<br />
See [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)].<br />
<br />
==Schematic==<br />
<br />
Schematic of BeagleBoard Rev. C3 is available as part of [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)]. Rev C3 and previous are also available from [http://beagleboard.org/hardware/design BeagleBoard.org design page] including in PDF format. Please make sure that you ''read, understand and agree'' [http://groups.google.com/group/beagleboard/msg/ee3e1bc927551ffc Jason's mail] before using this.<br />
<br />
==Layout== <br />
<br />
Layout of BeagleBoard Rev. C3 is available as part of [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)]. Rev C3 and previous layouts are also available from the [http://beagleboard.org/hardware/design BeagleBoard.org design page]. Please make sure that you ''read, understand and agree'' [http://groups.google.com/group/beagleboard/msg/ee3e1bc927551ffc Jason's mail] before using this.<br />
<br />
==Errata==<br />
<br />
# ''Boards revision A only'': The DC power jack pinout is incorrect on the PCB layout. DC_5V and GND are switched on PCB layout. Normally, the power jack has DC_5V on the center pin and GND on the sleeve (see Figure 20 of [http://www.beagleboard.org/uploads/BBSRM_6.pdf Beagle HW manual]). But on revision Ax boards the PCB layout has GND on center and DC_5V on sleeve. For this reason it is currently removed. It will be back on the Rev B board. Workaround is to remove wire connecting the two power pins on revision Ax boards and use external [http://amethyst.openembedded.net/~koen/beagleboard/beagle-power-pads.jpg power supply with switched connector] (do not connect anything to the “?” terminal. USB power will be permanently disabled and the board can only be powered from the 5V.) See [http://www.flickr.com/photos/koenkooi/2512038988/ Koen's Beagleboard powermod picture] with short descriptions, too.<br />
# ''Boards revision < A5 only'': There is excess voltage drop across R6 which is used to measure the current consumption on the board. This needs to be a .1 ohm instead of a 1 ohm resistor (SMD 0805). All revision A5 boards have been updated to .1. You can also just solder in a jumper to J2 bypassing the current read point. This issue can cause issues with the USB host port as the voltage supplied to that port can be too low.<br />
# ''Boards revision A only'': User LEDs 0 and 1 are shorted on the layout preventing them from being controlled individually. You need to control both GPIO_149 and GPIO_150 to turn on or off both LEDs. This is fixed in the Rev B boards.<br />
# ''Boards revision < A5 only'': There is an issue where on some boards the 1.8V has excessive noise on it. This is the result of two incorrect parts L1 and L3 being installed on the board. The inductors that were initially installed in the switchers are 100uH and need to be 1uH. This change will require that the board be returned for update. To check for correct parts, have a look to bottom of BeagleBoard. L1 - L3 are the larger parts there. They all have to be labeled with "102" (== 1uH). If any of these three inductors are labeled with "104" (== 100uH) they are wrong and have to be exchanged.<br />
# ''Boards revision A and B'': USB HOST (EHCI) failures. See [http://code.google.com/p/beagleboard/issues/detail?id=15 issue 15] and [http://code.google.com/p/beagleboard/wiki/USBHostTestREPRODUCE USB host test reproduce]. This is a hardware defect. [http://www.beagleboard.org/irclogs/index.php?date=2008-05-29#T00:27:06 Most probably] Rev. B board does not have the EHCI USB connector mounted. Workaround: Use [[BeagleBoard#OTG|OTG port]] with something like [http://trisoft.de/pics/ZHost.JPG mini A to USB A adapter] instead.<br />
# ''Boards revision A and < B4'': Plugging in a USB OTG cable will prevent Beagle from booting (with git kernel), see [http://code.google.com/p/beagleboard/issues/detail?id=19 issue #19], too. This is due to missing filtering capacitor at USB OTG VBUS. When the kernel driver detects that a USB OTG cable is inserted it enables the charge pump to generate VBUS. With no filtering VBUS looks like any switching regulator output with no filtering -- a huge voltage spike when the switch is on, followed by a rapid decay to a low voltage until the next switch on period. The capacitor is there to store energy between the output switch ON and OFF time, the feedback loop in the regulator does sample the cap voltage. Fix is to piggy-back solder a 0603 2.2uF ceramic capacitor to D3, see [http://www.sakoman.net/omap3/beagle/vbus-mod-d3.jpg VBUS modification D3 picture]. Revision B4 boards and newer have this fix applied. Thanks to [http://groups.google.com/group/beagleboard/msg/eb789e15c99a673d Steve] for debugging this!<br />
# ''Boards revision A and < B5'': There is some issue with 32kHz clock depending on system configuration used to clock some OMAP3 peripherals. From this e.g. GPIOs, GPTIMERs, and USB on Beagle might be affected. See [http://code.google.com/p/beagleboard/issues/detail?id=22 Issue 22]. Symptom from this is that after booting Linux kernel serial console hangs after some time and no serial input/output is possible any more. There is one software workaround and one hardware fix for this: (A) Software workaround: Don't use 32kHz timer to clock Linux, instead use MPU timer. (B) Hardware workaround: Remove [http://www.flickr.com/photos/25691331@N04/2766671437/in/pool-beagleboard capacitor C70], which improves the 32kHz clock quality and avoids hang-up. Note: Revision A boards have capacitor C70 [http://www.flickr.com/photos/25691331@N04/2766671437/in/pool-beagleboard at the same location] as rev. B boards. Note: Board revision >= B5 removes capacitor C70.<br />
# ''Random boards, quite rare, revision < B6'': Some random boards and quite rare, show directly after purchasing broken serial communication from host PC to BeagleBoard. Symptom is that you get a new board, get serial output from BeagleBoard in terminal program, but can't type anything at U-Boot prompt (Note: Don't mix this with errata #7. With errata #7 you are able to use U-Boot normally, but Linux prompt input stops after some time). Most users don't have this issue, though. So, first double check your serial configuration ([[BeagleBoardFAQ#Serial_connection_.231|FAQ1]], [[BeagleBoardFAQ#Serial_connection_.232|FAQ2]] and [[BeagleBoardFAQ#Serial_connection_.233|FAQ3]]). Only if you are really, really sure that anything with your serial connection is fine, consider sending the board back doing a [http://beagleboard.org/support/rma RMA request]. This issue was resolved on revision B6 and later boards.<br />
<br />
For additional (software) issues and enhancement requests see [http://code.google.com/p/beagleboard/issues/list Beagle board open point list & issue tracker], too.<br />
<br />
Note: BeagleBoard revision B6 uses different package for U9/U11.<br />
<br />
==Clocking==<br />
<br />
Some [http://www.beagleboard.org/irclogs/index.php?date=2008-07-08#T21:12:23 notes] about (ARM processor) clock rates at BeagleBoard:<br />
<br />
* ARM Cortex-A8 processor is currently clocked at 500MHz<br />
* 500MHz is the default used because it is a balance of performance and longevity<br />
* For OMAP35x 600MHz is max recommended<br />
* An additional 720MHz overdrive is supported only on high-speed grade OMAP3530/25 devices as fitted to the Beagleboard C4<br />
* At 600MHz or higher OMAP35x is considered to be 'overdrive' and it does not have the same life expectancy<br />
* Higher than 600/720MHz is out of spec and no guarantee it will work at all (or not damage itself)<br />
<br />
* Also keep in mind that if you go higher you probably want to increase the core voltage. Some of this is mentioned in tables 3-3, 4-15 and 4-16 of the [http://focus.ti.com/lit/ds/symlink/omap3530.pdf OMAP3530 data sheet]. Some numbers:<br />
<br />
{| border="1"<br />
||'''ARM'''||'''DSP'''||'''core voltage'''<br />
|-<br />
|720 MHz||520 MHz||1.35V<br />
|-<br />
|600 MHz||430 MHz||1.35V<br />
|-<br />
|550 MHz||400 MHz||1.27V<br />
|-<br />
|500 MHz||360 MHz||1.2V<br />
|}<br />
<br />
* For some OMAP3 clock, voltage and power management discussion see [http://focus.ti.com/lit/an/sprt495/sprt495.pdf OMAP3 power management white paper], too.<br />
* The OMAP3 chip on the Beagle lacks the efuses needed for using the SmartReflex technology, see [http://www.beagleboard.org/irclogs/index.php?date=2009-02-26#T10:44:24].<br />
* There is a thermal monitor in the core, you could use to scale frequency up and down<br />
<br />
To set CPU clock to 600 MHz, there are two options. Both '''do not''' adjust the voltage, so the system may become unstable:<br />
<br />
* The u-boot command "mw 48004940 0012580c" will temporarily set the CPU clock to 600 MHz (not permanent over reset).<br />
* To permanently set the CPU clock to 600 MHz, include the above command in the "bootcmd" variable or equivalent script.<br />
<br />
* To set the DSP clock to 430 Mhz use "mw 48004040 0x0009ae0c".<br />
<br />
==Power management==<br />
<br />
* Detailed OMAP3 Power Management Information can be found [[OMAP_Power_Management|HERE]]<br />
* Latest Linux kernel power management development for TI OMAP SoCs is maintained in [http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=summary Kevin's linux-omap-pm git tree]<br />
* Russ' Beagle HW modifications resulted in [http://groups.google.com/group/beagleboard/browse_thread/thread/197a8ef6b46cc828 8mW sleep for Beagle Board]<br />
<br />
Without PM kernel, the Beagle [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/index.htm consumes ~1.5 watts idle, however it also uses the same amount under load] (see bottom of that page).<br />
<br />
==DLP Pico projector==<br />
<br />
Texas Instruments is developing a Pico Video Projector Kit (PVPK) as a peripheral for the Beagle Board. The stand alone pico projector will support VGA resolution (640 x 480), RGB 888 input through a DVI interface. The physical connector on the projector will be HDMI. See [http://groups.google.com/group/beagleboard/msg/10e218972380ee48 mailing list] and [http://www.youtube.com/watch?v=-tUBXD-KRp4 Beagle Running Angstrom (VGA) on DLP Pico Projector] for more details.<br />
<br />
It is available from [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-23836-ND DigiKey] for $349.<br />
<br />
See [http://blog.makezine.com/archive/2009/01/tis_beagleboard_and_dlp_pico_projector.html?CMP=OTC-0D6B48984890 article from Make], too.<br />
<br />
DigiKey videos [http://www.youtube.com/watch?v=KBbCdnOj5vg part 1], [http://www.youtube.com/watch?v=zymOmduNWyI part 2] and [http://www.youtube.com/watch?v=Uj19Bi5NYeU part 3].<br />
<br />
==Interfacing to Raw LCD Panels==<br />
<br />
Currently on Rev A / B boards there is no direct access to the LCD lines before they enter the DVI framer. The REV C2 provides access to these lines. Several projects to interface an LCD to the beagleboard exist:<br />
<br />
* [[BeagleBoardRawLCD|interfacing to Raw LCD Panels]] article <br />
* [http://digitalsurveyinstruments.com/beagleperiphials/hdmi2parallel/doc/index.htm hdmi to parallel] workaround method<br />
* [http://www.harbaum.org/till/dvi2par/index.shtml dvi2par cheap diy HDMI to parallel converter]<br />
<br />
=Availability=<br />
<br />
BeagleBoard Rev. C3 boards are available from<br />
<br />
* [http://www.mouser.com/beagleboard Mouser]<br />
* [http://dkc1.digikey.com/us/mkt/beagleboard.html Digi-Key] with part number [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-23428-ND 296-23428-ND].<br />
<br />
BeagleBoard Rev. C4 boards are available from:<br />
<br />
* [http://www.liquidware.com/shop/show/BB-C4/BeagleBoard+C4 Liquidware]<br />
<br />
Note: For non-US Digi-Key free shipping orders:<br />
<br />
* Click the US flag on the top right corner of [http://dkc1.digikey.com/us/mkt/beagleboard.html Digi-Key] BeagleBoard page to come to the international page<br />
* Select ''Order Online'' for your country<br />
* Add quantity ''1'' and part number ''296-23428-ND''<br />
* Click ''Add to order''<br />
<br />
When ordering over 65 EUR / GBP 50 product (BeagleBoard is above), for Europe the price depends on the actual dollar to EUR/GBP rate. On nov 9, 2008 the price was EUR 124 with free shipping.<br />
<br />
Note: Some users report that they got some questions from DigiKey to be answered before board shipping is done.<br />
<br />
Note: While you get free shipping, most probably you have to pay tax e.g. ordering from Europe. Users report that they had to pay EUR ~34 - 44 VAT + importing taxes (depending on european country), resulting in EUR 137 - 147 ordering from Europe.<br />
<br />
Note: For European users, [http://www.ebv.com/fileadmin/products/Press_Print/Campaigns/2009/Product_Campaigns/Texas_Beagle_Board_englisch.pdf EBV Elektronik] sells its own blue version of the board for 179 EUR, which includes all useful accessories (DVI cable, serial cable, USB 2.0 Ethernet, USB hub, 2 GB MMC, power supply, Linux BSP).<br />
<br />
Note: German (Europe) users can order through German shops, too. For higher price, though. <br />
* [http://shop.embedded-projects.net/product_info.php/info/p159_BeagleBoard--OMAP-3-.html Embedded Projects Shop] sells BeagleBoard for EUR 199.00 + shipping.<br />
* [http://www.handheld-linux.com/wiki.php?page=Beagle%20Board Handheld-Linux] sells BeagleBoard for EUR 159.00 + shipping.<br />
* [http://www.watterott.com/en/BeagleBoard Watterott electronic] sells BeagleBoard for EUR 142,80 + shipping.<br />
<br />
See below for ''hardware'' differences of the revisions. There are no ''software'' differences. <br />
<br />
==Revision A==<br />
<br />
There are some limited early revision Ax prototypes out there used by some hackers hanging around at #beagle channel on irc.freenode.net. See [[BeagleBoard#Errata|errata]] for limitations.<br />
<br />
==Revision B==<br />
<br />
Revision B is same as revision A, except<br />
* fix for shorted LEDs 0/1<br />
* fix for wrong power jack pinout<br />
* revision B6 uses different package for U9/U11<br />
Still has USB HOST (EHCI) failures. USB HOST (EHCI) connector isn't mounted.<br />
<br />
There are 4 revisions of the B board in the field: B4, B5, B6 and B7.<br />
<br />
The most notable difference is the use of the ES3.0 silicon in B6 and B7, other changes are not relevant to software developers.<br />
<br />
==Revision C2==<br />
Revision C2 is same as revision B7 except:<br />
* USB HOST (EHCI) is operational on revision C2, with standard USB A female connector.<br />
* Add interface for raw LCDs ([http://groups.google.com/group/beagleboard/msg/2e82c3ed6061d9d2 mockup])<br />
* It uses updated OMAP3 revision. BeagleBoard revisions B4+B5 uses OMAP3 ES 2.1 (engineering sample), while BeagleBoard revision C2 uses ES 3.0. OMAP3 ES 3.0 fixes minor issues:<br />
** updated ARM Cortex A8 silicon (r1p3) fixing a very rare [http://elinux.org/BeagleBoardFAQ#NEON_performance NEON issue] that has not been seen in real code<br />
* Power measurement feature<br />
* Uses [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] OMAP power controller instead of TWL4030<br />
* Three additional PWM signals on the expansion connector added as pin mux options to existing pins ([http://groups.google.com/group/beagleboard/browse_thread/thread/d5872b7c6d74592c?hl=en# message])<br />
* Revision detection (to be able to identify C2 board from older boards by software, e.g. for different pin mux)<br />
* 256MB RAM ([http://groups.google.com/group/beagleboard/msg/3a38d0f21cefd6b1?hl=en message]) (and still 256MB NAND like rev B)<br />
<br />
Note: Revision C2 is the first production version, and all orders from from Digi-Key are shipped as Rev C2.<br />
<br />
==Revision C3==<br />
As revision C2 boards are [http://groups.google.com/group/beagleboard/msg/e41d3c97aa7d4951 sold out], revision C3 will ship now.<br />
<br />
Revision C3 is same as revision C2 [http://groups.google.com/group/beagleboard/msg/037318fbc44139d5 except]:<br />
* Optional RTC [http://parts.digikey.com/1/parts/1454-battery-lith-coin-3v-12-5mm-vert-vl-1220-vcn.html VL1220 series] backup battery<br />
* Mounting holes conected to ground<br />
* Slightly improved S-Video<br />
<br />
==Revision C4==<br />
Revision C4 boards are the same as Revision C3 except:<br />
* Processor is 720MHz capable OMAP3<br />
* Improved USB Host PHY power rails<br />
<br />
==Clones==<br />
===EBVBeagle===<br />
EBV build and sell their own BeagleBoard called [http://www.ebv.com/en/products/categories/details/product/ebvbeagle-board EBVBeagle], see e.g. [http://fl0rian.wordpress.com/2009/03/08/the-other-beagleboard/].<br />
It is actually a BeagleBoard revision C2 with green PCB boxed with some useful accessories. It comes as a quite complete starter kit with AC adapter, USB to Ethernet adapter, MMC card, USB hub and some cables.<br />
More information in [http://www.ebv.com/en/press-print/news-pr/details/news//press-releas-54.html official press release].<br />
<br />
===Mini Board===<br />
[[Mini_Board|ICETEK-OMAP3530-Mini]] is a chinese BeagleBoard clone.<br />
<br />
===DevKit 8000===<br />
[[DevKit8000]] is a Chinese BeagleBoard clone, slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard).<br />
<br />
===IGEPv2===<br />
[http://www.igep-platform.com/ IGEPv2 Platform] is a Spanish BeagleBoard clone, slightly larger, with additional peripherals like e.g. ethernet connector, wifi+bluetooth.<br />
* 720MHz OMAP3 Processor<br />
* 512MB RAM / 512MB Flash<br />
===SOM3530===<br />
[[SOM3530]] is a chinese BeagleBoard clone [[System-on-Module]],Dimension 40x40x4mm, Maybe the smallest [[OMAP3530]]-based modules in the world! Including 100M high perfomance ethernet I/F<br />
<br />
==BeagleBoard-based products==<br />
* [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book], see [http://gigglehd.com/zbxe/hdforum/files/attach/images/899852/493/987/001/always_innovating_touch_book_0011.jpg]<br />
<br />
==Beagle case==<br />
<br />
*[http://specialcomp.com/beagleboard/ Special Computing]<br />
*[http://groups.google.com/group/beagleboard/browse_thread/thread/1c82316019633e51 SketchUp 3D model]<br />
<br />
=Adapters=<br />
<br />
For quite detailed information about all BeagleBoard peripherals see [http://www.beagleboard.org/uploads/BBSRM_6.pdf BeagleBoard HW Reference Manual (rev. B6)].<br />
<br />
See [[BeagleBoardPeripherals| BeagleBoard peripherals and adapters page]] for useful add ons for Beagle Board.<br />
<br />
==Expansion boards==<br />
See [[:Category:BeagleBoard_Expansion_Boards]] for more information about expansion boards<br />
<br />
[http://www.liquidware.com/shop/show/BB-BT/BeagleTouch BeagleTouch] - A modular "shield" that snaps on top of the Beagle Board and provides a touch-screen OLED interface<br />
<br />
[http://www.liquidware.com/shop/show/BB-BJC/BeagleJuice BeagleJuice] - A lithium ion battery module that snaps on the back of the Beagle Board that powers the Beagle Board.<br />
<br />
<br />
==JTAG==<br />
<br />
Depending on your JTAG tool, you'd need a 14-pin to 20-pin adapter to use an ARM debugger. The 14-pin TI JTAG connector is used on BeagleBoard and is supported by a large number of JTAG emulation products.<br />
See [[BeagleBoardJTAG]] for more information.<br />
<br />
==RS232==<br />
<br />
The pinout on the beagle board is "AT/Everex" or "IDC10". You can buy [http://www.pccables.com/07120.htm IDC10 to DB9M adapters] in many places as they are commonly used for old PCs. Depending on your local configuration, you may need a [http://en.wikipedia.org/wiki/Null_modem 9-Pin NullModem] cable to connect BeagleBoard to serial port of your PC. From [http://www.tincantools.com/ TinCanTools] there is a [http://www.tincantools.com/product.php?productid=16144&cat=0&page=1&featured RS-232 DB-9 adapter] and [[media:flyswatter-ti-uart.pdf|adapter schematic]] available. You can also probably rip one of those cables out of any old desktop computer, where it's being used to support the serial port. Be careful, though -- some of those cables will have that tenth hole filled in so you'd have to snap off the extraneous pin on your BeagleBoard. Keep looking until you find a cable with all 10 holes open.<br />
<br />
Depending on your local configuration, you may need a [http://en.wikipedia.org/wiki/Null_modem 9-Pin NullModem] cable to connect BeagleBoard to serial port of your PC. From [http://www.tincantools.com/ TinCanTools] there is a [http://www.tincantools.com/product.php?productid=16144&cat=0&page=1&featured RS-232 DB-9 adapter] and [[media:flyswatter-ti-uart.pdf|adapter schematic]] available.<br />
<br />
==USB-to-Serial Converter==<br />
<br />
Since many systems no longer come with an actual serial port, you might need to pick up a USB-to-serial converter at your local computer store to connect to your BeagleBoard. Be warned that some of them simply do not work. Many of them are based on the Prolific chip, and require the pl2303 module to be loaded. But even when two converters appear to have exactly the same characteristics as listed in /var/log/messages, if you simply can't get one to work, be ready to try a different one.<br />
<br />
==USB==<br />
There are two USB ports on the BeagleBoard, one with an EHCI controller and another with an OTG controller. As of Rev B4, the usb EHCI has been removed because of a hardware defect. Rev C will include USB EHCI working properly.<br />
<br />
===EHCI===<br />
The HS ([http://en.wikipedia.org/wiki/USB#USB_signalling HighSpeed]) USB [http://en.wikipedia.org/wiki/EHCI ECHI] controller on OMAP3 on BeagleBoard supports high-speed only. This simplifies the logic on the device. FS/LS (FullSpeed/LowSpeed) devices, such as keyboards and mice, require going through a high-speed USB 2.0 hub.<br />
<br />
According to the BeagleBoard System Reference Manual Rev C2, the EHCI port can source 5V at 500mA which is enough to power a hub and several low-power devices. However, this is only true if the BeagleBoard is powered through its power jack from a well-regulated 5V external power supply. If the BeagleBoard is powered through the OTG port, the EHCI port sources an "extremely limited" ampount of power (probably 100mA or so) so you'll need a "self-powered" USB 2.0 hub with its own external power supply. [Reference: Sections 5.6 and 7.2 of the BBSRM Rev C2.2.]<br />
<br />
'''Hardware issue on rev C3''' - the EHCI port on some rev C3 boards is unstable and will disconnect hubs/devices. Symptoms are: devices are disconnected from the port and cannot be reconnected without a reboot. It appears the shared 1.8V rail between the OMAP3530 and the power chip was getting noisy. Suggested solution (works on many boards) is adding a 22 uF 0805 package SMT capacitor atop the existing cap on C97. If SMT parts are not available, some boards can be repaired by a 22 uF through-hole capacitor across GND and VIO_1V8 on the expansion connector. See [http://groups.google.com/group/beagleboard/browse_thread/thread/5b8385f0bb1f63da] for more information.<br />
<br />
===OTG===<br />
The HS USB OTG ([http://en.wikipedia.org/wiki/USB_On-The-Go OnTheGo]) controller on OMAP3 on the BeagleBoard does have support for all the USB 2.0 speeds (LS/FS/HS) and can act as either a host or a gadget/device. The HS USB OTG port is used as the default power input for the BeagleBoard. It is possible to boot the BeagleBoard using this USB port.<br />
<br />
When using the OTG port in host mode, you must power the BeagleBoard using the +5V power jack. If you connect a USB hub, you'll probably also need external power for the USB hub as well, because according to the Hardware Reference manual the BeagleBoard OTG port only sources 100 mA. This is enough to drive a single low-power device, but probably won't work with multiple devices.<br />
<br />
The Linux kernel needs to know you want to use the OTG port in host mode. I believe OTG ports are supposed to figure this out for themselves using the OTG Host Negotiation Protocol, but for now the Linux kernel may need some help. Specifically, Pin 4 (ID) of the OTG connector needs to be shorted to Pin 5 (GND) by using a [http://trisoft.de/pics/ZHost.JPG 5-pin USB Mini-A plug] which shorts these pins together in the plug. A [http://en.wikipedia.org/wiki/USB#USB_cables 5-pin USB Mini-B plug] leaves Pin 4 floating. Unfortunately, most USB Mini plugs are unmarked as to whether they are "A" or "B".<br />
<br />
You can find "mini A" adapters that have Pin 4 shorted and offer out a full-sized USB A Female jack [http://www.electronicproductonline.com/catalog/product_info.php?products_id=2043 here.]<br />
<table><br />
<tr><td><br />
Since the right cables might be hard to get, you simply can<br />
* short circuit the two pins encircled in red in the image to the right. You can do this by running a wire between the two pins. That at least allows easier undoing the change. Actually you could even have a small switch or so between 4 and 5.<br />
or<br />
* use a "mini B" cable (easier to get) and try the soldering of the two pins at the cable's connector. Depending on the cable it should be possible to open the plastic covering of mini-B port with a sharp-edged knife, then solder the two pins together, close the covering again and use some tape. This leaves the BeagleBoard unmodified.<br />
</td><td>[[Image:usb_otg.png]]</td></tr></table><br />
The Rev C BeagleBoard has a pair of pads labeled J6 on the back of the board under the OTG connector. Shorting these pads together with a wire or solder blob connects pins 4 and 5.<br />
See Figure 20 in the BeagleBoard System Reference Manual Rev C2.2.<br />
<br />
==DVI==<br />
<br />
DVI-D connection on BeagleBoard uses a [http://en.wikipedia.org/wiki/HDMI HDMI connector]:<br />
<br />
''HDMI is backward-compatible with the single-link Digital Visual Interface carrying digital video (DVI-D or DVI-I, but not DVI-A) used on modern computer monitors and graphics cards. This means that a DVI-D source can drive a HDMI monitor, or vice versa, by means of a suitable adapter or cable, but the audio and remote control features of HDMI will not be available.''<br />
<br />
BeagleBoard can be connected to a DVI monitor using HDMI female to DVI male cable.<br />
<br />
=BootRom=<br />
<br />
OMAP3 on BeagleBoard contains a BootRom. With this, BeagleBoard can boot without any code in permanent storage (NAND) or from peripherals. This is useful for first board bring up or if your BeagleBoard is bricked. For more information about BootRom booting see [http://www.ti.com/litv/pdf/sprufd6a SPRUFD6]. <br />
<br />
==User button==<br />
<br />
With user button on BeagleBoard you can configure boot order. Depending on this button, the order used to scan boot devices is changed. The boot order is (the first is the default boot source):<br />
<br />
* User button ''not'' pressed: NAND -> USB -> UART -> MMC<br />
* User button ''is'' pressed: USB -> UART -> MMC -> NAND<br />
<br />
Technically speaking, the user button configures pin SYS.BOOT[5]. See [http://focus-webapps.ti.com/general/docs/sitesearch/searchsite.tsp?selectedTopic=1653260327&numRecords=25&searchTerm=sprufd6&statusCode=null SPRUFD6] for more details.<br />
<br />
==Serial and USB boot==<br />
<br />
Historically, using OMAP3's boot ROM for serial and USB boot, there are several tools around. The newest are Nishanth' ''OMAP U-Boot Utils'', while there are still some older tools for serial boot and USB boot. It is also possible to access the [[u-boot environment variables in linux|u-boot env from linux]].<br />
<br />
===OMAP U-Boot Utils===<br />
<br />
Nishanth' [http://code.google.com/p/omap-u-boot-utils/ OMAP U-Boot Utils] provide<br />
<br />
* ''pserial'' - OMAP specific utility which downloads a file in response to ASIC ID over serial port.<br />
* ''pusb'' - OMAP specific utility which downloads a file in response to ASIC ID over USB connection.<br />
* ''ucmd'' - Send a command to U-Boot and wait till a specific match appears.<br />
* ''ukermit - Download a file from host without using kermit to U-Boot.<br />
<br />
See [http://nishanthmenon.blogspot.com/ Nishanth' blog] and [http://groups.google.com/group/beagleboard/browse_thread/thread/c5bfb1b8ed528b52# announce mail], too.<br />
<br />
===Serial boot===<br />
<br />
Besides Nishanth' ''OMAP U-Boot Utils'', to boot from USB or UART, you need a PC tool which talks with OMAP BootRom and speaks the correct protocol to download ARM target code to BeagleBoard. Currently there are two older (experimental) tools for UART boot:<br />
<br />
* [http://omapzoom.org/gf/project/omaptools/wiki PC Serial Boot perl script]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/80ad3da0eb2aa555 Linux C utility] (not working yet with below target code)<br />
<br />
See [http://groups.google.com/group/beagleboard/browse_thread/thread/ae2c601ebe104a4 USB and serial download target code] for some example target code to be downloaded to OMAP3 on BeagleBoard.<br />
<br />
===USB boot===<br />
<br />
Besides Nishanth' ''OMAP U-Boot Utils'', for USB boot, there is currently one (experimental) tool to boot BeagleBoard over USB:<br />
<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/2b9e99886bb7a747 Linux C utility]<br />
<br />
See [http://groups.google.com/group/beagleboard/browse_thread/thread/ae2c601ebe104a4 USB and serial download target code] for some example target code to be downloaded to OMAP3 on BeagleBoard.<br />
<br />
See [[BeagleBoardRecovery#USB_recovery|USB recovery section]] how to use USB boot for board recovery.<br />
<br />
==NAND boot==<br />
<br />
See [[BeagleBoardNAND|NAND boot]] article.<br />
<br />
==MMC/SD boot==<br />
<br />
Currently, [http://code.google.com/p/beagleboard/wiki/BootingBeagleBoard boot the BeagleBoard with MMC/SD] is the only working way for first board bring up.<br />
<br />
===MMC/SD formatting===<br />
<br />
As described in above MMC/SD boot description, you have to ''create a bootable partition on MMC/SD Card''. This can be done using e.g. Windows or Linux tools.<br />
<br />
'''Windows'''<br />
<br />
See ''HP USB Disk Storage Format Tool 2.0.6'' description on [http://code.google.com/p/beagleboard/wiki/BootingBeagleBoard boot the BeagleBoard with MMC/SD] page.<br />
<br />
'''Linux'''<br />
<br />
Please see [http://wiki.omap.com/index.php?title=MMC_Boot_Format OMAP3 MMC Boot Format].<br />
<br />
===Dual partition card===<br />
<br />
You can [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat create a dual-partition card], booting from a FAT partition that can be read by the OMAP3 ROM bootloader and Windows, then utilizing an ext2 partition for the Linux root file system.<br />
<br />
To mount second ext2 partition as root file system (e.g. containing contents of [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode rd-ext2.bin]) use kernel boot arguments (e.g. in uboot using ''setenv bootargs''):<br />
<br />
console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait<br />
<br />
===U-Boot booting===<br />
<br />
If your MMC/SD card formatting is correct and you put [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode MLO, u-boot.bin and uImage] on the card you should get a u-boot prompt after booting beagle board. E.g. (output from terminal program with 115200 8N1):<br />
<br />
...40T.........XH.H.U�..Instruments X-Loader 1.41<br />
Starting on with MMC<br />
Reading boot sector<br />
<br />
717948 Bytes Read from MMC<br />
Starting OS Bootloader from MMC...<br />
<br />
U-Boot 1.1.4 (Apr 2 2008 - 13:42:13)<br />
<br />
OMAP3430-GP rev 2, CPU-OPP2 L3-133MHz<br />
TI 3430Beagle 2.0 Version + mDDR (Boot ONND)<br />
DRAM: 128 MB<br />
Flash: 0 kB<br />
NAND:256 MiB<br />
In: serial<br />
Out: serial<br />
Err: serial<br />
Audio Tone on Speakers ... complete<br />
OMAP3 beagleboard.org #<br />
<br />
Using this u-boot prompt, you now can start kernel uImage stored on MMC card manually:<br />
<br />
OMAP3 beagleboard.org # mmc init<br />
OMAP3 beagleboard.org # fatload mmc 0:1 0x80000000 uimage<br />
OMAP3 beagleboard.org # bootm<br />
<br />
If you like to make that happen every boot:<br />
<br />
OMAP3 beagleboard.org # set bootcmd 'mmc init ; fatload mmc 0:1 0x80000000 uimage ; bootm' ; saveenv<br />
<br />
=Code=<br />
<br />
Code and binaries for BeagleBoard are available at various places.<br />
<br />
==Binaries==<br />
<br />
BeagleBoard pre-built binaries and source code can be found at [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode Beagle source code] and [http://code.google.com/p/beagleboard/downloads/list downloads] page. These are the locations where "official" TI code is available. Please note that this code is mainly for reference and testing. More up to date binaries and code is available by community. Community took (parts) of TI reference code, improves and updates it. <br />
<br />
Actually, [http://www.angstrom-distribution.org/node/47 Koen's prebuilt Beagleboard demo images] are up to date binaries including e17 as window manager, the abiword word processor, the gnumeric spreadsheet application, a NEON accelerated mplayer and the popular NEON accelerated omapfbplay which gives you fullscreen 720p decoding. The [http://www.angstrom-distribution.org/demo/beagleboard www.angstrom-distribution.org/demo/beagleboard] directory should contain all the files you need:<br />
<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/u-boot.bin u-boot.bin]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/MLO MLO]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/uImage uImage]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/Angstrom-Beagleboard-demo-image-glibc-ipk-2009.X-test-20090104-beagleboard.rootfs.tar.bz2 rootfs]<br />
<br />
See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat beagle wiki] on how to setup your SD card to use all this goodness.<br />
<br />
==Source==<br />
<br />
'''Update on April 23 - 2010''': Sources for the X-Loader and U-Boot that ship on the BeagleBoard can be found at [http://gitorious.org/beagleboard-validation/ http://gitorious.org/beagleboard-validation/]. The U-Boot version found in that repository supersedes the one found at [http://gitorious.org/beagleboard-default-u-boot/beagle_uboot_revc4/ http://gitorious.org/beagleboard-default-u-boot/beagle_uboot_revc4/].<br />
<br />
<br />
Besides above binary and source images (TI's and communities one), for various parts of Beagle software stack there are community supported [http://git.or.cz/ git] repositories available. <br />
<br />
===X-Loader===<br />
<br />
Steve did some work to consolidate and update X-Loader from various sources and put it in a [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=x-load-omap3.git;a=summary X-Loader git repository]. Get it by<br />
<br />
git clone git://gitorious.org/x-load-omap3/mainline.git xloader<br />
cd xloader/<br />
<br />
Build:<br />
<br />
make distclean<br />
make omap3530beagle_config<br />
make<br />
<br />
Result will be a ~20k sized ''x-load.bin'' in main directory.<br />
<br />
===U-Boot===<br />
<br />
[http://www.denx.de/wiki/U-Boot/WebHome Mainline U-Boot] has good support for BeagleBoard (except for revision C4; see note below). Get it by:<br />
<br />
git clone git://git.denx.de/u-boot.git u-boot-main<br />
cd u-boot-main<br />
git checkout --track -b omap3 origin/master<br />
<br />
Build (assuming [[ARMCompilers#Recommendations|Code Sourcery GCC]]):<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- mrproper<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- <br />
<br />
Result will be a ~160k sized ''u-boot.bin'' in main directory.<br />
<br />
Note: Due to (patch and binary) size, BeagleBoard splash screen was removed from upstream version. If you want it back, use [http://groups.google.com/group/beagleboard/browse_thread/thread/3ad9b803a3418624 U-Boot v1 BeagleBoard splash screen patch].<br />
<br />
Note: For experimental U-Boot patches not ready for mainline yet, Steve's [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=u-boot-omap3.git;a=summary Beagle U-Boot git repository] is used to test them. Get it by:<br />
<br />
git clone git://gitorious.org/u-boot-omap3/mainline.git u-boot-omap3<br />
cd u-boot-omap3<br />
git checkout --track -b omap3-dev origin/omap3-dev<br />
<br />
Note: For changing the screen resolution there is one option modifying the file in "include/configs/omap3_beagle.h" and adjusting the maximum resolution before compiling as describe in [http://gitorious.org/linux-omap-dss2/linux/blobs/master/Documentation/arm/OMAP/DSS ARM OMAP2/3 Display Subsystem]<br />
<br />
<br />
Note: For beagleboard revision C4, above sources will not work. USB EHCI does not get powered, hence devices are not detected...<br />
get a patched version of u-boot from http://gitorious.org/beagleboard-default-u-boot/beagle_uboot_revc4/<br />
('''Update on April 23 - 2010''': This repository has been superseded by the U-Boot version found at [http://gitorious.org/beagleboard-validation/ http://gitorious.org/beagleboard-validation/])<br />
<br />
<br />
Note: If you want to activate I2C from the expansion header, modify board/ti/beagle/beagle.h :<br />
<br />
MUX_VAL(CP(I2C2_SCL), (IEN | PTU | EN | M4)) /*GPIO_168*/<br />
MUX_VAL(CP(I2C2_SDA), (IEN | PTU | EN | M4)) /*GPIO_183*/<br />
<br />
to<br />
<br />
MUX_VAL(CP(I2C2_SCL), (IEN | PTU | DIS | M0)) /*I2C2_SCL*/<br />
MUX_VAL(CP(I2C2_SDA), (IEN | PTU | DIS | M0)) /*I2C2_SDA*/<br />
<br />
===Linux kernel===<br />
<br />
[http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary Git repository] of [http://muru.com/linux/omap/ OMAP Linux kernel] contains Beagle support. Get it by:<br />
<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git linux-omap-2.6<br />
cd linux-omap-2.6<br />
<br />
Build:<br />
<br />
make distclean<br />
make omap3_beagle_defconfig<br />
make menuconfig # only needed if you want to change the default configuration<br />
make uImage <---- NOTE to developers: this is WRONG. There is no "uImage" target in the Makefile.<br />
<br />
The result will be a ''uImage'' in ''arch/arm/boot/'' directory.<br />
<br />
If you use the OE toolchain and want to build outside of the OE tree you should do<br />
ARCH=arm<br />
export ARCH<br />
PATH=~/oe/tmp/cross/armv7a/bin:~/oe/tmp/staging/i686-linux/usr/bin:$PATH # add cross tools to your path<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- distclean<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- omap3_beagle_defconfig<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- menuconfig # only needed if you want to change the default configuration<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- uImage<br />
Note: the staging dir in the path is for mkimage. If you've build a kernel before with oe, the program should be there<br />
<br />
Note: If you are interested in kernel development have a look to [[BeagleBoardLinuxKernel|manually compiling BeagleBoard kernel]], too.<br />
<br />
===Experimental kernel patches and hacks===<br />
<br />
Some beagle developers maintain their own kernel experimental patches and hacks not ready for upstream:<br />
<br />
* [http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/linux/linux-omap Koen's collection of kernels patches for OE] and the [http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/linux/linux-omap_git.bb list of relevant patches]<br />
* [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/test Steve's kernel tree], a clone of main OMAP git with additional patches, mainly beagle audio (ASOC) related.<br />
* [http://git.mansr.com/?p=linux-omap;a=summary Mans' kernel tree], a clone of main OMAP git with additional patches, mainly display & framebuffer related.<br />
* [http://www.bat.org/~tomba/linux-omap.html Tomi's kernel tree], a clone of main OMAP git with display sub-system patches, replacing the entire display driver with one that is the likely direction moving forward.<br />
<br />
=Compiler=<br />
<br />
TI OMAP3530 processor on BeagleBoard contains an ARM Cortex-A8 general purpose processor and a TMS320C64x+ DSP.<br />
<br />
==ARM==<br />
<br />
There is broad compiler support including gcc - please see [http://www.elinux.org/ARMCompilers ARM Compilers]<br />
<br />
==C64x+ DSP==<br />
<br />
A free C64x DSP compiler is available as [https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html Linux hosted C6x Code Generation Tools] (TMS320C6000 C/C++ CODE GENERATION TOOLS 6.1.3 July 2008).<br />
<br />
Note: my.TI account required. You may create an account [https://my.ti.com here]<br />
<br />
Note: Old c6000 Linux compiler available on [ftp://ftp.ti.com/pub/cs/linux_cgt500.tar.gz TI FTP site]. Does NOT support c64x+ core in OMAP3 devices. Not recommended.<br />
<br />
You can also utilize the [http://focus.ti.com/dsp/docs/dspsupportaut.tsp?familyId=44&sectionId=3&tabId=416&toolTypeId=30 full-CCS free evaluation tools for 120 days], but they currently require purchase to upgrade to service release 9 to support full JTAG debugging with supported JTAG hardware.<br />
<br />
See [[BeagleBoard/DSP_Howto| BeagleBoard DSP howto]] for information about how to use the DSP.<br />
<br />
=Cortex A8 ARM features =<br />
<br />
ARM Cortex-A8 in OMAP3 is a high performance dual-issue applications processor which reaches a performance of 2.0 DMIPS/MHz (compared to ARM11 at 1.2 DMIPS/MHz). It is ARM v7 architecture, which is fully backwards compatible with application code for previous ARM processors.<br />
<br />
It includes a floating point unit (ARM VFPv3 architecture) and the ARM NEON SIMD instruction set.<br />
<br />
See [http://pandorawiki.org/Floating_Point_Optimization Floating Point Optimization] article for an intro into VFP-lite and NEON.<br />
<br />
===ARM NEON===<br />
<br />
NEON is a 64/128-bit wide SIMD vector extension for ARM, which has been architected to be an efficient C compiler target as well as being used from assembly language. It has 32x 64-bit registers (with a dual view as 16x 128-bit registers) which can hold the following datatypes:<br />
* 64-bit signed/unsigned<br />
* 32-bit signed/unsigned<br />
* 32-bit single precision floating point<br />
* 16-bit signed/unsigned<br />
* 8-bit signed/unsigned<br />
<br />
The key advantage of NEON is very high performance vector math processing, whilst being easy to program. It is the same thread of control as the ARM (but different instructions), and is supported by the same tools, debuggers and operating systems.<br />
<br />
The NEON instruction set is documented in ARM's [http://infocenter.arm.com/help/topic/com.arm.doc.dui0204i/DUI0204I_rvct_assembler_guide.pdf RealView Compilation Tools Assembler Guide].<br />
<br />
For NEON optimized libraries see [http://www.us.design-reuse.com/news/18429/aac-mp3-mpeg-4-h-264-fft-openmax-cortex-a8-neon-arm11-processors.html ARM Releases AAC, MP3, MPEG-4, H.264 and FFT OpenMAX DL Libraries, Highly Optimized for Cortex-A8/NEON and ARM11 Processors]. Note: Read the [http://www.arm.com/products/esd/openmax_v7libraries.html EULA].<br />
<br />
NEON is used by various opensource projects:<br />
* [http://www.ffmpeg.org/ ffmpeg] - libavcodec used by mplayer, omapfbplay, and many other linux applications<br />
* libpixman - used by X.org and Mozilla & Webkit browsers to render text and graphics<br />
* [http://www.bluez.org/ Bluez] - official Linux Bluetooth stack<br />
* [http://eigen.tuxfamily.org/ Eigen2] - C++ template library for linear algebra (matrix math etc)<br />
* [http://www.webmproject.org/code/ Webm] - Google's new opensource video codec<br />
<br />
Compilation tools support for NEON:<br />
* ARM RVDS<br />
* gcc<br />
* [http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and.html LLVM]<br />
<br />
=== ARM Cortex-A8 Floating Point ===<br />
<br />
There are two types of instructions in the ARM v7 ISA that handle floating point:<br />
<br />
1) '''VFPv3''' Floating point instruction set (used for single/double precision scalar operations).<br />
These is used by gcc for C floating point operations on 'float' and 'double' since ANSI C can only describe scalar floating point, where there is only one operation at a time.<br />
<br />
2) '''NEON''' [http://www.arm.com/products/multimedia/neon/ NEON] vectorized single precision operations (2 values in a D-register, or 4 values in a Q-register)<br />
These can be use by gcc when -ftree-vectorize is enabled and -mfpu=neon is specified, and the code can be vectorized. In other cases the VFPv3 scalar ops will be used.<br />
<br />
ARM Cortex-A processors have separate floating point pipelines that handle these different instructions.<br />
<br />
On Cortex-A8, the designers' focus was on the NEON unit performance which can sustain 1 cycle/instr throughput (processing 2 single-precision values at once) for consumer multimedia. The scalar VFPv3 FPU cannot achieve this level of performance (cycle timings are in the Cortex-A8 TRM download), but it is still a lot better than doing floating point using integer instructions.<br />
<br />
If you need the highest performance floating point on Cortex-A8, you need to use single precision and ensure the code uses the NEON vectorized instructions:<br />
* use gcc with -ftree-vectorize (possibly modify source code to make it vector friendly)<br />
* use NEON instrinsics (#include <arm_neon.h>, float32x2_t datatype and vmul_f32() etc)<br />
* use NEON asm directly<br />
<br />
On Cortex-A9, there is a much higher performance floating point unit which can sustain 1 cycle/instr throughput, with low result latencies. OMAP4 uses dual-core Cortex-A9+NEON which gives excellent floating-point performance for both FPU and NEON instructions.<br />
<br />
=Board recovery=<br />
<br />
If you played e.g. with the contents of the [http://www.sakoman.net/omap3/flash%20procedure.txt NAND], it might happen that the Board doesn't boot any more (without pressing user button) due to broken NAND content. See [[BeagleBoardRecovery|BeagleBoard recovery]] article how to fix this.<br />
<br />
=Development environments=<br />
<br />
Instead of just using compiler + editor, you can use complete image create "development tool chains" which integrate compiler, build system, packaging tools etc. in one tool chain.<br />
<br />
==OpenEmbedded==<br />
<br />
For [http://www.openembedded.org/ OpenEmbedded] (OE), there are some hints how to [http://www.beagleboard.org/irclogs/index.php?date=2008-04-29#T13:06:25 start with OE for BeagleBoard]. See [[BeagleBoardAndOpenEmbeddedGit|BeagleBoard and OpenEmbedded Git]],[[BeagleBoardOpenEmbeddedDevelopment|OpenEmbedded development]] and [http://wiki.openembedded.org/index.php/Getting_Started OpenEmbedded getting started] as well.<br />
<br />
In the OE getting started document, for BeagleBoard replace ''MACHINE = "om-gta01"'' by ''MACHINE = "beagleboard"''. After confirming ''bitbake nano'' works, try ''bitbake console-image''. The first time you run bitbake OE will download all the needed source and build the tool chain. This will take several hours. After all went fine, the output is in ''${OE_ROOT}/tmp/deploy/glibc/images/beagleboard''.<br />
<br />
Note: Koen has some BeagleBoard [http://amethyst.openembedded.net/~koen/index.php?path=beagleboard/ source and binary images] built with OE. There, ''Angstrom-console*'' images don't include an X server, you can still use a e.g. DVI-D screen with console, but you won't have a GUI. ''Angstrom-x11*'' images contain an X server.<!-- DEAD LINK: resulting in something like [http://scap.linuxtogo.org/files/fc987d4acb2c745fb7e19cf4dca8de70.png this].--><br />
<br />
===One very important note:=== <br />
<br />
It's important to have an X-Loader on your Beagleboard that uses the uImage on the SD Card that goes with Angstrom. The B6 Beagleboards do not appear to come with such an X-Loader. So you likely will have to upgrade the X-Loader. Here's what to do:<br />
* Make an SD Card with the [http://www.angstrom-distribution.org/demo/beagleboard Angstrom Demo files]. See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat Beagleboard Wiki Page] for more info on making the SD Card.<br />
* Put the SD Card in the Beagle, and boot up to the U-Boot Prompt.<br />
* Do the first six instructions in the [http://code.google.com/p/beagleboard/wiki/BeagleNANDFlashing Flashing Commands with U-Boot] section. <br />
* Reboot the Beagle to see that the new X-Loader is properly loaded.<br />
<br />
This will update the X-Loader to a newer version that will automatically load uImage from the SD Card when present -- rather than always using the uImage in the Beagleboard NAND.<br />
<br />
==Eclipse==<br />
The Eclipse [http://www.eclipse.org/cdt/ C Development Tools Project] provides a "fully functional C and C++ Integrated Development Environment (IDE) for the Eclipse platform". The Eclipse [http://www.eclipse.org/dsdp/tm/ DSDP Target Managment Project] provides a "Remote System Explorer" (RSE) plugin that simplifies downloading files to the BeagleBoard and editing files on the BeagleBoard within the Eclipse IDE. A Linux Target Agent is available as part of the [http://wiki.eclipse.org/DSDP/TM/TCF_FAQ Target Communications Framework (TCF) component]. Info on how RSE is used for e.g. Gumstix development is described in [http://groups.google.com/group/beagleboard/browse_thread/thread/509831f7c24cb79f# this post].<br />
<br />
See also [[BeagleBoardEclipse|Using Eclipse with Beagle]] (for JTAG debugging)<br />
<br />
==Android==<br />
[http://source.android.com Android] platform is a software stack for mobile devices including an operating system, middleware and key applications. Developers can create applications for the platform using the [http://code.google.com/android/ Android SDK]. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use which runs on top of a Linux kernel.<br />
<br />
There are several resources for Android on OMAP (Beagle) available:<br />
<br />
'''OMAPZOOM'''<br />
<br />
You can find Android port for OMAP ZOOM architecture on [https://gforge.ti.com/gf/project/omapandroid/ OMAPZoom.org's wiki page on Android]. <br />
<br />
'''EMBINUX'''<br />
<br />
[http://beagleboard.org/project/android Beagleboard.org's Android project page] [http://groups.google.com/group/beagleboard/browse_thread/thread/7b422f113ce489b5 announced], the successful porting of Android on Beagle board by [http://embinux.com EMBINUX&trade;] Team. The [http://labs.embinux.org/git/ source code] and [http://www.embinux.com/download_beagle.php binaries] are available for download and review. <br />
<br />
Detailed instructions, for porting Android on Beagle Board, are available [http://labs.embinux.org/index.php/Main_Page here]. Current release supports input devices (keyboard/mouse), network and sound.<br />
<br />
You can [http://in.youtube.com/watch?v=nADn_vNVEKw watch Android booting] on Beagle Board.<br />
<br />
'''Android on OMAP wiki'''<br />
<br />
Wiki page for Andorid on OMAP can be found [[Android on OMAP|here]]<br />
<br />
'''0xdroid'''<br />
<br />
[http://gitorious.org/0xdroid 0xdroid], the enhanced version of Android on Beagleboard by [http://0xlab.org 0xlab]. The [http://gitorious.org/0xdroid source code], [http://downloads.0xlab.org/ pre-built binaries], and [http://code.google.com/p/0xdroid/issues/list issue tracker] are available for review and reference.<br />
<br />
The latest development supports OMAP audio, OMAP video overlays, ARM Cortex A8 NEON/Thumb2 performance optimizations, mouse cursor, hot-pluggable USB keyboard & mouse, user-friendly installer for system image, and various Android tweaks. Detailed instructions for 0xdroid are available through [http://code.google.com/p/0xdroid/wiki/MainPage Google Code wiki].<br />
<br />
You can [http://www.youtube.com/watch?v=v6wdTOHrwQw watch 0xdroid demo video] on Beagle Board.<br />
* [http://www.youtube.com/watch?v=v6wdTOHrwQw 0xdroid demo video (1)]<br />
* [http://www.youtube.com/watch?v=ol9LWBKXXwQ 0xdroid demo video (2)]<br />
<br />
==Mamona==<br />
<br />
[http://dev.openbossa.org/trac/mamona/wiki Mamona] is an embedded Linux distribution for ARM EABI. The main goal of the Mamona Project is to offer a completely open source alternative/experimental platform for [http://maemo.org/ Maemo] using only free and open source components. Mamona [http://rsalveti.wordpress.com/2008/09/12/mamona-02-is-out 0.2] [http://franciscoalecrim.com/blog/2008/07/29/mamona-working-with-beagleboard/ supports] [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12013&contentId=28741 OMAP3430 Software Development Platform (SDP)], so you can also use it at Beagle (OMAP3530), too. Work is being done to officially support Beagle.<br />
<br />
==Ubuntu==<br />
<br />
See [[BeagleBoardUbuntu|Ubuntu (ARM)]] installation guide how to install Ubuntu (ARM) on BeagleBoard.<br />
* [[BeagleBoardLucid]] Details about Ubuntu Lucid on the BeagleBoard.<br />
* [[BeagleBoardUbuntuKernel]] Details about the Ubuntu Kernel on the BeagleBoard.<br />
<br />
==Debian ARM==<br />
<br />
See [[BeagleBoardDebian|Debian (ARM)]] installation guide how to install Debian (ARM) on BeagleBoard.<br />
<br />
==GeeXboX ARM==<br />
<br />
See [[GeeXboX|GeeXboX (ARM)]] installation guide how to install GeeXboX on BeagleBoard (including clones).<br />
<br />
==Handhelds Mojo ARM==<br />
<br />
See [[BeagleBoardHandheldsMojo|Handhelds Mojo (ARM)]] installation guide how to install Handhelds Mojo (ARM) port of Ubuntu on BeagleBoard. (The Mojo project is no longer active, see the Official Ubuntu ARM-port above instead)<br />
<br />
==Scratchbox==<br />
<br />
[http://www.scratchbox.org/ Scratchbox] is a cross-compilation toolkit designed to make embedded Linux application development easier. It also provides a full set of tools to integrate and cross-compile an entire Linux distribution. See [http://felipec.wordpress.com/2009/06/07/installing-scratchbox-1-and-2-for-arm-cross-compilation/ Felipe's Scratbox 1 and 2 intro], too.<br />
<br />
=Software hints=<br />
<br />
This section collects hints, tips & tricks for various software components running on beagle.<br />
<br />
==QEMU==<br />
<br />
[[Qemu|QEMU]] [http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/ supports OMAP3] being able to boot a BeagleBoard Linux kernel.<br />
<br />
==Linux hints==<br />
<br />
See BeagleBoard [http://code.google.com/p/beagleboard/wiki/LinuxHints Google wiki Linux hints] page (for Linux WTBU (Wireless TI Business Unit) kernel [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode 2.6.22]). Currently featuring:<br />
<br />
* Switching video output between DVI-D and S-Video<br />
* Disabling framebuffer blanking<br />
* Listing USB devices<br />
<br />
==lmbench==<br />
<br />
Avik posted a detailed [http://groups.google.com/group/beagleboard/browse_thread/thread/c8b8f07ce61161a1 step-by-step procedure] to run [http://sourceforge.net/project/showfiles.php?group_id=14418 lmbench] on Beagle.<br />
<br />
==Mediaplayer (FFmpeg)==<br />
<br />
There is a thread how to get a [http://groups.google.com/group/beagleboard/browse_thread/thread/9b8025fc15120fd9# mediaplayer] with NEON optimization (FFmpeg) to run on Beagle. Includes compiler hints and patches.<br />
<br />
==Java==<br />
<br />
When using the [[BeagleBoard#OpenEmbedded|OpenEmbedded]]-based Angstrom image you have the following options of Java support:<br />
* JamVM + GNU Classpath (small vm, fast interpreter, J2SE-like)<br />
* Cacao + GNU Classpath (JIT compiler, J2SE-like)<br />
* PhoneME Advanced Foundation (JIT compiler, CDC)<br />
<br />
Java support in OpenEmbedded/Angstrom ([http://wiki.openembedded.net/index.php/Java details]) is provided voluntarily through [http://jalimo.org Jalimo].<br />
<br />
See a [http://groups.google.com/group/beagleboard/browse_thread/thread/102f627253919783# post at mailing list], too.<br />
<br />
OpenEmbedded users can add the [http://evolvis.org/scm/?group_id=11 Jalimo Subversion repository] as an overlay (instructions are in the repository). This will allow them to build OpenJDK packages. Inclusion of these recipes in mainline OpenEmbedded is planned but still ongoing.<br />
<br />
The recipes offer the following functionality:<br />
<br />
* OpenJDK + Hotspot (Zero port) (all J2SE functionality, including JVMTI, interpreted only)<br />
* OpenJDK + Cacaco (all J2SE library features, missing JVMTI, decent JIT compiler)<br />
* OpenJDK + Hotspot (Shark port) (not working yet)<br />
<br />
[http://camswl.com/ Edward Nevill] from ARM Ltd. is working on interpreter optimization in Zero for ARM.<br />
<br />
People interested in getting this stuff working better should contact people on:<br />
* [http://evolvis.org/mail/?group_id=11 Jalimo Mailinglist]<br />
* [http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev Icedtea Mailinglist]<br />
<br />
You should also check out IcedTea's [http://iced-tea.org/wiki/FrequentlyAskedQuestions FAQ].<br />
<br />
=Graphics accelerator=<br />
<br />
OMAP3530 used on BeagleBoard contains a graphics accelerator (SGX) based on the SGX core from [http://www.imgtec.com/ Imagination Technologies]. [http://www.imgtec.com/powervr/powervr-graphics.asp PowerVR] SGX530 is a new generation of programmable PowerVR graphics and video IP cores. Only the kernel portions of Linux drivers will be open source. The PowerVR folks will provide binary user-space libraries. Using the EMail contact at [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12700&contentId=27458 TIs Mobile Gaming Developers page] there are Linux v2.6 OMAP3430 SDKs for OMAP3 Zoom and SDP supporting OpenGL ES v2.0, OpenGL ES v1.1 and OpenVG 1.0 available.<br />
<br />
Tutorial:<br />
* [http://code.google.com/p/beagleboard/wiki/HowtoUseSGXunderAngstrom How to use SGX with Angstrom in OE]<br />
<br />
Some videos:<br />
<br />
* [http://www.youtube.com/watch?v=3ToYOgP9f9U SGX on Beagle working with Linux 2.6.27]<br />
* [http://www.youtube.com/watch?v=24TXpqa9jG0&feature=related OpenGL ES 2.0 shader effects on OMAP3]<br />
* [http://www.youtube.com/watch?v=-UFUbqoNgs8&feature=related 3D User Interface on OMAP3 Platform]<br />
* [http://www.youtube.com/watch?v=8KcNgeUriqA 3D Mapping using OpenGL ES 2.0 on OMAP3 Platform]<br />
* [http://www.youtube.com/watch?v=7D3V6BUpGLE Video blending in hardware]<br />
* [http://www.hitlabnz.org/wiki/EmbeddedAR An Augmented Reality application combining ARToolkit and OpenGL ES 2.0]<br />
* [http://www.youtube.com/watch?v=cfeqSOYkBJg&feature=player_embedded Video of the Beagle Board turned into a portable battery powered Linux tablet]<br />
<br />
=Beginners guide=<br />
<br />
You just got your new BeagleBoard, and now? See [[BeagleBoardBeginners|beginners guides]].<br />
<br />
=FAQ=<br />
<br />
For BeagleBoard frequently asked questions (FAQ) see [[BeagleBoardFAQ|community FAQ]] and "official" [http://beagleboard.org/support/faq BeagleBoard.org FAQ].<br />
<br />
=Links=<br />
==Home page==<br />
[http://beagleboard.org/ beagleboard.org] (beagle board home)<br />
* Using [http://www.google.de/ Google] you can search beagleboard.org (including [http://www.beagleboard.org/irclogs/ IRC logs]) using ''site:beagleboard.org <search term>''<br />
<br />
==Manuals and resources==<br />
* [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard HW Reference Manual (rev. C2)]<br />
* [http://beagle.s3.amazonaws.com/BBSRM_7_2_0.pdf BeagleBoard HW Reference Manual (rev. B7)]<br />
* [http://www.beagleboard.org/uploads/BBSRM_6.pdf BeagleBoard HW Reference Manual (rev. B6)]<br />
* [http://www.beagleboard.org/uploads/BBSRM_B5.pdf BeagleBoard HW Reference Manual (rev. B5)]<br />
* [http://www.beagleboard.org/uploads/Beagle_HRM_B4.pdf BeagleBoard HW Reference Manual (rev. B4)]<br />
* [http://www.beagleboard.org/uploads/Beagle_HW_Reference_Manual_A_5.pdf BeagleBoard HW Reference Manual (rev. A5)]<br />
* [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor description and manuals<br />
* [http://code.google.com/p/beagleboard/ Beagle at code.google.com]<br />
* [http://focus.ti.com/dsp/docs/dspsupporttechdocs.tsp?sectionId=3&tabId=409&familyId=1526&documentCategoryId=4&techDoc=4 OMAP3530/25 CBB BSDL Model]<br />
* [http://www.micron.com/products/mcps/beagleboard Micron's multi chip packages (MCPs) for Beagle Board]<br />
* [http://beagleboard.org/resources Beagleboard resources page with hw docs]<br />
* Some [http://www.rasterman.com/ performance comparison] of BeagleBoard Rev. B with some other ARM/PC systems.<br />
* OMAP3 pinmux [http://www.hy-research.com/omap3_pinmux.html setup]<br />
* [http://elinux.org/BeagleBoardPinMux OMAP3 eLinux pinmux page]<br />
<br />
==Contact and communication==<br />
* [http://groups.google.com/group/beagleboard Beagle board discussion list]<br />
* [http://code.google.com/p/beagleboard/issues/list Beagle board open point list & issue tracker]<br />
* [http://beagleboard.blogspot.com/ Beagle board blog]<br />
* [http://feeds.feedburner.com/BeagleBoard Beagle board RSS feed]<br />
* Chat:<br />
** [http://beagleboard.org/chat Beagle Board chat]<br />
** IRC: #beagle channel on irc.freenode.net<br />
** [http://www.beagleboard.org/irclogs/index.php IRC archive]<br />
* [http://www.beaglesride.org/ Beagles Ride], a site about building a community around the BeagleBoard focused on in vehicle applications<br />
* [http://www.beagleboard.de/ German Beagle Board Forum and Wiki]<br />
<br />
==TI resources==<br />
* [http://opensource.ti.com/ TI open source page]<br />
* [https://community.ti.com/ TI E2E (Engineer-to-Engineer) Community]<br />
* [http://marc.info/?l=linux-omap&m=120761100810527&w=2 DSP Bridge driver for OMAP3 platform]<br />
* [http://lists.arm.linux.org.uk/lurker/message/20080701.142512.5eeff26b.en.html ARMv7 Oprofile support]<br />
* [http://focus.ti.com/pdfs/wtbu/swpu114g.pdf OMAP34xx Wireless Technical Reference Manual] (swpu114g.pdf, 47 MB)<br />
* [http://amethyst.openembedded.net/~koen/index.php?sort=date&order=desc&path=beagleboard/ Koen's (OpenEmbeded) BeagleBoard source and binaries]<br />
* [http://del.icio.us/tag/beagleboard+peripheral+verified Verified peripherals for BeagleBoard]<br />
* [http://www.celinux.org/elc08_presentations/TI_OMAP3430_Linux_PM_reference.ppt OMAP3430 Linux Power Management presentation]<br />
==Articles==<br />
* [http://linuxdevices.com/news/NS5852740920.html LinuxDevices article about Beagle]<br />
* [http://www.linuxdevices.com/news/NS8479495970.html LinuxDevices article about Digi-Key launch]<br />
* [http://www.linuxdevices.com/news/NS5682470737.html LinuxDevices article about Beagle Rev C, Beagle MID from HY Research, Touch Book and Sponsored Projects Contest]<br />
* [http://www.linuxjournal.com/article/10607 Linuxjournal article on the BeagleBoard]<br />
<br />
==Books==<br />
* [[OMAP_and_DaVinci_Software_for_Dummies|OMAP and DaVinci Software for Dummies]]<br />
<br />
==Beagle based training materials==<br />
* http://free-electrons.com/blog/beagle-labs/<br />
<br />
==Past Beagle events==<br />
* TIDC, February 26-28, 2008: [http://www.beagleboard.org/uploads/tidc_opensource.pdf Slides from TI developer conference (TIDC) open source session], covering also beagle board<br />
* [http://www.lugradio.org/live/USA2008/ LUG RADIO Live USA 2008, April 12-13, 2008]: [http://www.beagleboard.org/uploads/lugradio_20080411.PPT TI/Beagle Presentation] and [http://forums.lugradio.org/viewtopic.php?f=4&t=4094&st=0&sk=t&sd=a&sid=d69cc807569ab41e33f93af698c536b8&start=15#p41549 video]<br />
* LinuxTag, May 28-31, 2008: [http://www.flickr.com/photos/jadon/2551439955/in/pool-beagleboard picture 1] and [http://www.flickr.com/photos/jadon/2535692865/in/pool-beagleboard picture 2]<br />
* [http://lugradio.org/live/UK2008/travel LugRadio Live UK 2008], July 19 - July 20, 2008: [http://www.flickr.com/photos/koenkooi/tags/lugradiolive/ Koen's pictures] showing e.g. [http://www.bigbuckbunny.org/index.php/download/ Big Buck BUNNY] playing at Beagle. [http://linuxoutlaws.com/podcast/48 Interview with Linux Outlaws (52:06)] and the [http://www.youtube.com/watch?v=m9xVbntl-DY video]<br />
* [http://osscamp.in/index.php/OSScamp_Bengaluru_Mobile_2008 OSScamp Bengaluru Mobile 2008], July 19, 2008<br />
* [http://www.linuxworldexpo.com LinuxWorld Conference & Expo], August 4 - August 7, 2008: [http://www.flickr.com/photos/jadon/sets/72157606586084668/ pictures with living beagle] and from [http://www.flickr.com/photos/linuxjournal/2738316951/in/set-72157606634486338/ Linux Journal's photostream]<br />
* BeagleBoard.org event at Jillian's during LinuxWorldExpo, August 5, 2008, 5:30-7:30 pm<br />
* [http://barcamp.pbwiki.com/BarCampHouston3 BarCamp Houston 3], August 9, 2008, 9:00 A.M.: [http://www.flickr.com/photos/jadon/sets/72157606656532041/ pictures]<br />
* NIT Suratkal, India [http://www.nitkieee.com/site/sp-connect2/schedule IEEE SP Connect 2], August 30, 20008<br />
* [http://barcampbangalore.org/wiki/BCB7_Demos BarCamp Bangalore], India, September 13, 2008<br />
* [http://www.ibc.org/ IBC 2008], September 11 - September 16, 2008: [http://www.flickr.com/photos/koenkooi/tags/ibc2008/ pictures]<br />
* Free Open "Embedded Linux" Training for Students in India, [http://code.google.com/p/beagleboard/wiki/Trainings?updated=Trainings&ts=1220250913 beagleboard.org Trainings in India], September 20, 2008: [http://www.youtube.com/watch?v=A6FLdmgQlb4&feature=PlayList&p=1BAB6EE9CC7285AD&index=0 video], [http://www.flickr.com/photos/25691331@N04/sets/72157607419766102/ photos] and [http://lakshmansrikanth.blogspot.com/2008/09/linux-embedded.html blog]<br />
* [http://www.embedded.co.uk/ Embedded Systems Show 2008], Birmingham, UK, October 1-2, 2008<br />
* [http://www.mvista.com/vision/ MontaVista Vision 2008 Embedded Linux Developers Conference], San Francisco, California, October 1-3, 2008 : [http://www.mvista.com/download/topic.php?t=18 Video and presentation overview], [http://www.mvista.com/download/fetchdoc.php?docid=323 William Mills' presentation], [http://www.mvista.com/download/fetchdoc.php?docid=333 Jason Kridner's presentation]<br />
* [http://www.rtcgroup.com/arm/2008/ ARM Developers' Conference], Santa Clara Convention Center, Santa Clara, Calif., USA, October 7-9, 2008<br />
* [http://www.cmp-egevents.com/web/escb Embedded Systems Conference Boston 2008], Hynes Convention Center, Boston, USA, October 26 - October 30, 2008: [http://beagleboard.org/demo/esc Resources]<br />
* [[BeagleBoard/contest|BeagleBoard contest]] #1: Create a cool BeagleBoard application and win a Rev C1! Closed, ran until January 9, 2009<br />
* [http://www.silica.com/events/seminars/seminar-overview/ti-omp-workshop.html OMAP35x training by Silica], January 21, 2009, Cambridge, UK, ARM Holdings Lecture Theatre. [[RichardB's notes from the seminar]]<br />
* [[BeagleBoard/contest|BeagleBoard contest #2]], unitl February 27, 2009: : Create a cool BeagleBoard application and win a Rev C2!<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/b15cf8a5797c73a2 Silica - Free TI - ARM OMAP Workshop], Brussels, Europe, March 31st 2009<br />
* SILICA's [http://www.silica.com/events/seminars/seminar-overview/ti-omap-piccolo-poing.html Texas Instruments 2-in-1 Seminar: OMAP & Piccolo], May 13th 2009: Poing (Munich) - Germany<br />
* 24th until 27th June 2009: [http://www.linuxtag.org/2009/en.html Linux Tag Germany] with [http://groups.google.com/group/beagleboard/msg/27fefef5f1d2ef73 TI booth] and [http://www.linuxtag.org/2009/en/program/freies-vortragsprogramm/all-events/details.html?talkid=183 Beagle presentation]<br />
* until 31st July 2009: [http://www.cranessoftware.com/services/training/beagledesigncontest.html BeagleBoard Design Contest INDIA Edition] ([http://beagleboard.blogspot.com/2009/04/beagleboard-design-contest-india.html blog entry])<br />
* TI Technology Day Dallas, Tex. on June 16 will held a [http://www.linuxdevices.com/news/NS5682470737.html BeagleBoard users group meeting] (see section ''Availability'').<br />
* Thursday, August 27th: [http://wiki.omap.com/index.php/ETechDays_Lightning_Talks ETechDays Lightning Talks]. 15 minute lightning talks via IRC, WebEx or Dial-In.<br />
* 22.- 23.08.2009, Sankt Augustin, Germany: [http://www.froscon.de/en/ FrOSCon 2009] ([http://groups.google.com/group/beagleboard/browse_thread/thread/6aee27a7d121f4f4# call for papers])<br />
<br />
==Beagle wiki pages==<br />
* [[BeagleBoardJTAG|BeagleBoard JTAG]] and [[OMAP3530_ICEPICK|OMAP3530_ICEPICK]] about JTAG on BeagleBoard<br />
* [[BeagleBoardOpenOCD|BeagleBoard OpenOCD]] has infos about status and usage of open source JTAG software OpenOCD with Beagle<br />
* [[Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB|Mount BeagleBoard root file system over NFS via USB]]<br />
* [[BeagleBoardSugar|Sugar on BeagleBoard]]<br />
* [[BeagleBoard/gst-openmax|BeagleBoard OpenMAX usage]]<br />
* [[BeagleBoard/video|BeagleBoard video]]<br />
* [[BeagleBoardOpenCV|Using OpenCV computer vision library with BeagleBoard]]<br />
* [[U-boot_musb_gadget_support|U-boot musb gadget support]]<br />
* [[BeagleBoard-JP|Japanese translation of this Beagle page]]<br />
* [[BeagleEPD|BeagleBoard E-Ink Platform Driver]]<br />
* [[BeagleBoardFedora|Random hacking notes for getting Fedora 10 to kinda work with the BeagleBoard]]<br />
* BeagleBoard specific [[BeagleBoard/GSoC|Google Summer of Code 2009]] page, [[BeagleBoard/Ideas-2009|GSoC project ideas]] and [[BeagleBoard/GSoC/Application|GSoc application]]<br />
* [[BeagleBoard/DSP_Clarification|Info about the various Linux DSP systems for OMAP chips]]<br />
* [http://www.hervanta.com/stuff/Beaglebot Beaglebot]: build an experimental robotics project with Beagle<br />
* [http://code.google.com/p/beagleboard/w/list code.google.com BeagleBoard wiki]<br />
* '''[[BeagleBoard/contest|BeagleBoard contest]]'''<br />
* [http://en.wikipedia.org/wiki/Beagle_Board Wikipedia BeagleBoard page]<br />
* [http://labs.embinux.org/index.php/Android_Porting_Guide_to_Beagle_Board Android port for BeagleBoard]: Instructions for porting Android on BeagleBoard<br />
* [[BeagleBoard/bangalore_user_meet |BeagleBoard Bangalore User Meet]]<br />
* [[Zoom2Beginners|Zoom2 for Beginners]]<br />
* [http://wh1t3s.com/2009/05/11/beagleboard-as-usb-mass-storage-device-via-usb-otg/ BeagleBoard as USB Mass Storage Device via USB OTG]<br />
* [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/index.htm BeagleBoard as solar powered computer]<br />
* [http://blog.makezine.com/archive/2009/02/blinking_leds_with_the_beagle_board.html Blinking LEDs with the Beagle Board] from Make:Online<br />
* [http://www.crashcourse.ca/wiki/index.php/BeagleBoard Robert's private Beagle wiki] (please don't add anything there, do it here. It will help to avoid scattering. Thanks!)<br />
* [http://felipec.wordpress.com/2009/03/26/omap3-public-dsp-binaries-now-work/ Felipe's blog] about D1 MPEG-4 decoding using less than 15% of CPU with help of DSP<br />
* [http://www.syspire.de/node/3 Embedded Mediacenter] based on BeagleBoard (German)<br />
* [http://pandorawiki.org/Floating_Point_Optimization Floating Point Optimization] with VFP-lite and NEON intro<br />
* [http://particolarmente-urgentissimo.blogspot.com/2009/09/beagleboard-setting-date-via-gps.html Beagleboard setting date via GPS]<br />
* [http://free-electrons.com/blog/beagle-labs/ Complete embedded Linux training labs] on the BeageBoard<br />
* [[BeagleBoardPWM]] Details about PWM on the BeagleBoard.<br />
<br />
==Beagle photos==<br />
* [http://www.flickr.com/groups/beagleboard/pool/ Beagle board pictures at flickr]<br />
* [http://www.flickr.com/photos/32615155@N00/2439256116/ Beagle board and USRP]<br />
* [http://www.flickr.com/photos/nishanthmenon/2438406603/ Modify SDP3430 QUART cable for beagle]<br />
* [http://www.flickr.com/photos/koenkooi/2695061759/ MythTV on Beagle]<br />
==Beagle videos==<br />
* [http://uk.youtube.com/watch?v=fL_XMieanSc Beagle Board Beginnings]<br />
* [http://www.youtube.com/watch?v=cXr-D1wROfQ Beagleboard in the Living Room]<br />
* [http://uk.youtube.com/watch?v=FuVwh_VrIxk Beagle Board 3D, Angstrom, and Ubuntu]<br />
* [http://uk.youtube.com/watch?v=TUYOjRGYeYU testsprite with beagleboard]<br />
* [http://uk.youtube.com/watch?v=9Z4ZTovtFKk Beagleboard LED demo]<br />
* [http://uk.youtube.com/watch?v=R33dzREZGEk LCD2USB attached to a beagleboard]<br />
* [http://www.youtube.com/watch?v=7D3V6BUpGLE Video blending in hardware]<br />
* [http://www.youtube.com/watch?v=-tUBXD-KRp4 Beagle Running Angstrom (VGA) on DLP Pico Projector]<br />
* [http://www.youtube.com/watch?v=3ToYOgP9f9U SGX on Beagle working with Linux 2.6.27]<br />
* Not on Beagle OMAP3530: [http://youtube.com/watch?v=5i9cWOK1spw Ubuntu 7.04 on on OMAP3430 SDP]<br />
* [http://in.youtube.com/watch?v=nADn_vNVEKw Beagle Board booting Android]<br />
* [http://www.youtube.com/watch?v=UHQdUS0i-nw Beagleboard, SGX, and libfreespace demo]<br />
<br />
==Beagle manufacturing==<br />
* [http://www.youtube.com/watch?v=C-CwkjT9z_0&feature=related Beagle Solder Paste Screening]<br />
* [http://www.youtube.com/watch?v=9LLjDovIG2M&feature=related Beagle Assembly Inspection]<br />
* [http://www.youtube.com/watch?v=sbOZfBnoVnM&feature=related Beagle Functional Test]<br />
* [http://www.youtube.com/watch?v=cvDtXmJJcEI&feature=related Beagle Reflow]<br />
* [http://www.youtube.com/watch?v=W2o4NTASxN0&feature=related Beagle Board Assembly at Circuitco]<br />
==Fun==<br />
* Enjoy [http://www.beaglegame.com/ BeagleGame]<br />
<br />
=Other OMAP boards=<br />
<br />
*OMAP-L138 Based [[Hawkboard]]<br />
<br />
* OMAP3530 based [http://www.timll.com/chinese/OMAP/DevKit8000.asp DevKit8000], a Chinese BeagleBoard,256MB DDR SDRAM + 256MB NANDFLASH,Fully compatible with BeagleBoard source.<br />
<br />
* OMAP1 OMAP5912 (ARM9 + C5x DSP) based [[OSK|OSK]] board.<br />
* OMAP3 OMAP3430 based [https://gforge.ti.com/gf/project/omapzoom/wiki/?pagename=HardwareInformation Zoom MDK], which has been superseded by the [http://www.logicpd.com/products/development-kits/texas-instruments-zoom%E2%84%A2-omap34x-ii-mdp Zoom II], and other [http://www.logicpd.com/products LogicPD kits].<br />
* OMAP3 OMAP3530 based [http://www.openpandora.org/ Pandora]<br />
* OMAP3 OMAP3503 based [http://www.gumstix.net/Overo/cat/Overo/115.html Gumstix Overo]<br />
* OMAP3 OMAP35x based EVM from [http://mistralsolutions.com/products/omap_3evm.php Mistral] and [http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html TI] (both are the same)<br />
* OMAP3 OMAP3430 based [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12013&contentId=28741 Software Development Platform (SDP)]<br />
* OMAP3 OMAP3530 based board from [http://www.magniel.com/omap3.html Magniel Inc.]<br />
* OMAP3 based [http://www.archos.com/products/imt/index.html?country=us&lang=en Archos 5, ARCHOS 5G and ARCHOS 7]<br />
* OMAP3 OMAP35x based [http://www.logicpd.com/products/som/ti/omap35x OMAP35x SOM-LV]<br />
* OMAP3 based [[Mini_Board|ICETEK-OMAP3530-Mini]], a Chinese BeagleBoard clone, with a [[MiniBoardFAQ|FAQ]]<br />
* OMAP3 based [http://www.ebv.com/en/products/categories/details/product/ebvbeagle-board EBVBeagle], a German BeagleBoard clone<br />
* OMAP3530 based [http://www.bsquare.com/products/hardware_solutions/3530.asp BSQUARE’s Dev Kit OMAP3530]<br />
* OMAP3530 based [http://beaversource.oregonstate.edu/projects/cspfl/wiki/CSPFL_Hardware OSWALD]<br />
* OMAP3 BeagleBoard-based [http://www.alwaysinnovating.com/touchbook/ Touch Book]<br />
* OMAP3530 based [http://www.analogue-micro.com/Cobra3530.html Cobra 3530 OMAP3530 module ]<br />
* OMAP3 based [http://www.kwikbyte.com/KBOC.html KwikByte 35XX System Module]<br />
* OMAP3530 based [[DevKit8000]], a Chinese BeagleBoard clone, slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard)<br />
* OMAP3530 based [http://www.igep-platform.com/ IGEPv2 Platform], a Spanish BeagleBoard clone, slightly larger, with additional peripherals like e.g. ethernet connector, wifi+bluetooth.<br />
* OMAP35x based [http://www.ultratronik.de/mmi-rechnerplattformen.html MMI4 from Ultratronik]<br />
* OMAP35x based [http://www.technexion.com/index.php/tao-3530 TAO-3530 from TechNexion], also sold in North America through [http://www.robotcraft.ca/webshop/index.php?manufacturers_id=21 Robotcraft Systems]<br />
* OMAP35x based [http://www.variscite.com/varomap35xxsbc.html VAR-OM35xxSBC from Variscite]<br />
* OMAP35x based [[EGS3530]],a Chinese BeagleBoard clone from [http://www.ema-tech.com EMA]<br />
* OMAP3 OMAP35x based [http://www.buglabs.net/products BUG] from Bug Labs, Inc.<br />
* OMAP35x System-on-Module [[SOM3530]],The smallest(40x40x4mm) OMAP35XX-based System on Module in the world! (It is not-Gumstix Overo is smaller. at 17mm*58mm)<br />
<br />
=Subpages=<br />
<splist<br />
parent=<br />
showparent=no<br />
sort=desc<br />
sortby=title<br />
liststyle=ordered<br />
showpath=no<br />
kidsonly=no<br />
debug=0<br />
/></div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/USBSniffer&diff=22518BeagleBoard/GSoC/2010 Projects/USBSniffer2010-07-26T20:45:03Z<p>FransMeulenbroeks: /* Build and run instructions */</p>
<hr />
<div>Google Summer of Code 2010 Project<br />
<br />
* Student: Nicolas Boichat<br />
* Mentors: Hunyue Yau, Laine Walker-Avina, Frans Meulenbroeks<br />
<br />
BeagleBoard project: [http://beagleboard.org/project/usbsniffer/ usbsniffer]<br />
<br />
Project at gitorious.org: [http://gitorious.org/beagleboard-usbsniffer http://gitorious.org/beagleboard-usbsniffer]<br />
<br />
Blog: [http://beagleboard-usbsniffer.blogspot.com/ http://beagleboard-usbsniffer.blogspot.com/] ([http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default RSS])<br />
<br />
== Abstract ==<br />
<br />
The goal of this project is to use the BeagleBoard as an USB sniffer. The host computer would be connected to the slave USB port of the BeagleBoard, and the device to be sniffed on the host USB port.<br />
<br />
The BeagleBoard would then forward USB data, while logging it.<br />
<br />
This presents the following advantages over a software-based solution: No software modification is required; support of proprietary OSes; allows debugging of new USB stacks; and possibly lower-level debugging of USB frames...<br />
<br />
== Build and run instructions ==<br />
<br />
To get the proxy driver to work, you need to follow these steps:<br />
<br />
* Clone my kernel git tree. Use the <tt>stable-20100724</tt> branch [http://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel/commits/stable-20100724]. (commands: <tt>git clone git://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel.git; cd beagleboard-usbsniffer-kernel;git branch stable-20100724; git checkout stable-20100724</tt><br />
* Compile the kernel with the default beagleboard configuration (see [[BeagleBoard#Linux_kernel]]). You just need to add <tt>CONFIG_USB_G_PROXY=m</tt>. I also disabled MUSB in host and OTG mode, as well as USB suspend, but this may not be necessary.<br />
* Install the new kernel on the board.<br />
* Install libpcap-1.1.1 and tcpdump-4.1.1. If you don't have a recent enough OpenEmbedded install, the recipes can be found in these 2 commits: [http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=7b9e14891f7d69b5376041fc15df3d5f13f41855] and [http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=d4f0fb310f7d40f7a50f50fb12083fa258aa1eed].<br />
* Clone the helper scripts git tree, branch <tt>stable-20100724</tt> [http://gitorious.org/beagleboard-usbsniffer/helper-scripts/commits/stable-20100724], and copy the content of the arm directory to the BeagleBoard (you need to modify load/setup/sniff scripts if you do not have have a copy of <tt>musb_hdrc.ko</tt> and <tt>g_proxy.ko</tt> in the same directory).<br />
<br />
Then, you have 2 options, the automatic way:<br />
* Plug your device (through a USB hub if it is a low/full-speed device). <br />
* Run <tt>./sniff</tt>, and follow the instructions. Data transfers will be logged to <tt>/media/ram/dump</tt>. This resulting file can be displayed using wireshark.<br />
* Use the device, it should work, and packets are captured.<br />
<br />
or the manual way (mostly for testing purpose, as it does not log packets):<br />
* Run <tt>./setup</tt> on the BeagleBoard, this will unload the <tt>g_ether</tt> gadget driver.<br />
* Plug your device (through a USB hub if it is a low/full-speed device).<br />
* Plug your PC to the BeagleBoard USB slave port (this can be done earlier as well).<br />
* Run <tt>./unbind</tt>: This will unbind the device from the normal Linux driver.<br />
* Run <tt>./load</tt>: this will (re)load the <tt>g_proxy</tt> driver.<br />
* Use the device, it should work.<br />
<br />
== Tested devices ==<br />
<br />
{| border="1"<br />
!Device !! USB ID !! Speed !! Endpoints & types !! Status !! Branch !! Notes<br />
|-<br />
|Logitech (M-BJ58/M-BJ69) Optical Wheel Mouse ||<tt>046d:c00e</tt>/<tt>046d:c018</tt><br />
|align="center"|LS<br />
|<br />
* EP1 IN, interrupt<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|<br />
|-<br />
|Logitech Internet Keyboard ||<tt>046d:c309</tt><br />
|align="center"|LS<br />
|<br />
* EP1 IN, interrupt (keyboard itself)<br />
* EP2 IN, interrupt (wheel on the side, like a mouse)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>stable-20100618</tt><br />
|<br />
|-<br />
|FTDI FT232 USB-Serial (on Arduino) ||<tt>0403:6001</tt><br />
|align="center"|FS<br />
|<br />
* EP1 IN, bulk (Arduino->host)<br />
* EP2 OUT, bulk (host->Arduino)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|Programming + bidirectional serial communication<br />
|-<br />
|CSR Bluetooth Dongle ||<tt>0a12:0001</tt><br />
|align="center"|FS<br />
|<br />
* EP1 IN, interrupt<br />
* EP2 IN, bulk<br />
* EP2 OUT, bulk<br />
* EP3 IN, iso<br />
* EP3 OUT, iso<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|Scanning devices (<tt>hcitool -i hci1 scan</tt>), and file transfers (<tt>odp</tt> and <tt>ussp-push</tt>) work. Didn't check anything that would use isochronous endpoints.<br />
|-<br />
|Imation 4GB Flash Drive||<tt>0718:0348</tt><br />
|align="center"|HS<br />
|<br />
* EP1 OUT, bulk<br />
* EP2 IN, bulk<br />
* EP3 IN, interrupt<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100702</tt><br />
| Works <tt>hdparm -t --direct /dev/sdX</tt>. On PC: 19.76 MB/sec; on BeagleBoard: 17.64 MB/sec; on PC through the BeagleBoard proxy: 19.18 MB/sec.<br />
|-<br />
|AVerMedia Volar DVB-T dongle||<tt>07ca:b808</tt><br />
|align="center"|HS<br />
|<br />
* EP1 OUT, bulk<br />
* EP1 IN, bulk<br />
* EP2 IN, bulk<br />
* EP3 IN, bulk<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
| No visible problem.<br />
|-<br />
|Logitech, Inc. QuickCam Messanger (<i>sic</i>)||<tt>046d:08da</tt><br />
|align="center"|FS<br />
|<br />
<br />
* EP1 IN, isochronous (video)<br />
* EP2 IN, interrupt (button status)<br />
* EP3 IN, isochronous (audio)<br />
|style="background-color:#c0ff00; font-style:bold" align="center"|OK<br>(audio+video at the same time doesn't work)<br />
|<tt>>stable-20100717</tt><br />
| No visible problem (video 640x480 OR audio). Needs <tt>musb_hdrc</tt> parameter <tt>fifo_mode=6</tt>. The FIFO mode is required, because EP1 needs 768 bytes per packet (and the default is only 512). The DMA has been fixed to handle ISO packets properly.<br><br />
Enabling both video + audio at the same time doesn't work (bandwidth allocation problem, but this is probably an USB hub problem).<br />
|-<br />
|Logitech, Inc. Premium Stereo USB Headset 350||<tt>046d:0a02</tt><br />
|align="center"|FS<br />
|<br />
<br />
* EP1 OUT, isochronous (audio stereo output, max 192 bytes per packet)<br />
* EP3 IN, interrupt (button status)<br />
* EP4 IN, isochronous (audio input, 96 bytes per packet)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>stable-20100717</tt><br />
| No visible problem (audio loopback with something like: <tt>arecord -D default:CARD=Headset -f dat | aplay -D default:CARD=Headset -</tt> works). Needs <tt>musb_hdrc</tt> parameter <tt>fifo_mode=7</tt>. The FIFO mode is required, because EP4 needs 96 bytes per packet (and the default is only 32).<br />
|-<br />
|}<br />
<br />
== MUSB testing code ==<br />
<br />
Some instructions on how to use the code to trigger the MUSB bug with short isochronous packets:<br />
<br />
Checkout [http://gitorious.org/beagleboard-usbsniffer/musb-test|http://gitorious.org/beagleboard-usbsniffer/musb-test]. There are 2 directories: <tt>host</tt>, and <tt>device</tt>.<br />
<br />
For the device side (on the beagleboard), you need to cross-compile <tt>usbtest</tt>. You need <tt>libaio</tt>, which can be built using Angstrom, and <tt>gadgetfs</tt> in the Linux kernel. Then, the gadgetfs driver is loaded as follows:<br />
<br />
modprobe gadgetfs<br />
mkdir /dev/gadget/ -p<br />
mount -t gadgetfs none /dev/gadget<br />
./usbtest -v -s 512 -p 2 -a 1 -I0 -x 18<br />
<br />
The host code must be run on your host PC. It requires the <tt>usbtest</tt> module (<tt>CONFIG_USB_TEST=m</tt>), then isochronous IN transfers are tested with the following command:<br />
./testusb -a -t 16 -g 1 -c 10<br />
<br />
While running the test, you can monitor the USB traffic using usbmon, you should see isochronous packets of length 18, i.e., something like this:<br />
... S Zi:2:100:1 -115:8:5232 1 -18:0:512 512 <<br />
... C Zi:2:100:1 0:8:5240:0 1 0:0:18 18 = e6010203 e6050607 e6090a0b e60d0e0f e611<br />
<br />
Every 4 bytes contains some kind of packet id (incrementing), the rest of the bytes are given by a mod 63 counter.<br />
<br />
Bulk transfers can also be tested, with the following commands (device and host):<br />
./usbtest -a 5 -s 514<br />
./testusb -a -t 4 -c 10 -s 1024<br />
<br />
<tt>testusb</tt> will complain, since the packet is short (514 instead of 1024), but usbmon still shows that the transfer has been done correctly:<br />
... S Bi:2:101:1 -115 1024 <<br />
... C Bi:2:101:1 -121 514 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/2010_Projects/USBSniffer&diff=22517BeagleBoard/GSoC/2010 Projects/USBSniffer2010-07-26T17:17:57Z<p>FransMeulenbroeks: /* Build and run instructions */ added more explicit git instructions</p>
<hr />
<div>Google Summer of Code 2010 Project<br />
<br />
* Student: Nicolas Boichat<br />
* Mentors: Hunyue Yau, Laine Walker-Avina, Frans Meulenbroeks<br />
<br />
BeagleBoard project: [http://beagleboard.org/project/usbsniffer/ usbsniffer]<br />
<br />
Project at gitorious.org: [http://gitorious.org/beagleboard-usbsniffer http://gitorious.org/beagleboard-usbsniffer]<br />
<br />
Blog: [http://beagleboard-usbsniffer.blogspot.com/ http://beagleboard-usbsniffer.blogspot.com/] ([http://beagleboard-usbsniffer.blogspot.com/feeds/posts/default RSS])<br />
<br />
== Abstract ==<br />
<br />
The goal of this project is to use the BeagleBoard as an USB sniffer. The host computer would be connected to the slave USB port of the BeagleBoard, and the device to be sniffed on the host USB port.<br />
<br />
The BeagleBoard would then forward USB data, while logging it.<br />
<br />
This presents the following advantages over a software-based solution: No software modification is required; support of proprietary OSes; allows debugging of new USB stacks; and possibly lower-level debugging of USB frames...<br />
<br />
== Build and run instructions ==<br />
<br />
To get the proxy driver to work, you need to follow these steps:<br />
<br />
* Clone my kernel git tree. Use the <tt>stable-20100724</tt> branch [http://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel/commits/stable-20100724]. (commands: <tt>git clone git://gitorious.org/beagleboard-usbsniffer/beagleboard-usbsniffer-kernel.git; git branch stable-20100724; git checkout stable-20100724</tt><br />
* Compile the kernel with the default beagleboard configuration (see [[BeagleBoard#Linux_kernel]]). You just need to add <tt>CONFIG_USB_G_PROXY=m</tt>. I also disabled MUSB in host and OTG mode, as well as USB suspend, but this may not be necessary.<br />
* Install the new kernel on the board.<br />
* Install libpcap-1.1.1 and tcpdump-4.1.1. If you don't have a recent enough OpenEmbedded install, the recipes can be found in these 2 commits: [http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=7b9e14891f7d69b5376041fc15df3d5f13f41855] and [http://git.openembedded.org/cgit.cgi/openembedded/commit/?id=d4f0fb310f7d40f7a50f50fb12083fa258aa1eed].<br />
* Clone the helper scripts git tree, branch <tt>stable-20100724</tt> [http://gitorious.org/beagleboard-usbsniffer/helper-scripts/commits/stable-20100724], and copy the content of the arm directory to the BeagleBoard (you need to modify load/setup/sniff scripts if you do not have have a copy of <tt>musb_hdrc.ko</tt> and <tt>g_proxy.ko</tt> in the same directory).<br />
<br />
Then, you have 2 options, the automatic way:<br />
* Plug your device (through a USB hub if it is a low/full-speed device). <br />
* Run <tt>./sniff</tt>, and follow the instructions. Data transfers will be logged to <tt>/media/ram/dump</tt>. This resulting file can be displayed using wireshark.<br />
* Use the device, it should work, and packets are captured.<br />
<br />
or the manual way (mostly for testing purpose, as it does not log packets):<br />
* Run <tt>./setup</tt> on the BeagleBoard, this will unload the <tt>g_ether</tt> gadget driver.<br />
* Plug your device (through a USB hub if it is a low/full-speed device).<br />
* Plug your PC to the BeagleBoard USB slave port (this can be done earlier as well).<br />
* Run <tt>./unbind</tt>: This will unbind the device from the normal Linux driver.<br />
* Run <tt>./load</tt>: this will (re)load the <tt>g_proxy</tt> driver.<br />
* Use the device, it should work.<br />
<br />
== Tested devices ==<br />
<br />
{| border="1"<br />
!Device !! USB ID !! Speed !! Endpoints & types !! Status !! Branch !! Notes<br />
|-<br />
|Logitech (M-BJ58/M-BJ69) Optical Wheel Mouse ||<tt>046d:c00e</tt>/<tt>046d:c018</tt><br />
|align="center"|LS<br />
|<br />
* EP1 IN, interrupt<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|<br />
|-<br />
|Logitech Internet Keyboard ||<tt>046d:c309</tt><br />
|align="center"|LS<br />
|<br />
* EP1 IN, interrupt (keyboard itself)<br />
* EP2 IN, interrupt (wheel on the side, like a mouse)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>stable-20100618</tt><br />
|<br />
|-<br />
|FTDI FT232 USB-Serial (on Arduino) ||<tt>0403:6001</tt><br />
|align="center"|FS<br />
|<br />
* EP1 IN, bulk (Arduino->host)<br />
* EP2 OUT, bulk (host->Arduino)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|Programming + bidirectional serial communication<br />
|-<br />
|CSR Bluetooth Dongle ||<tt>0a12:0001</tt><br />
|align="center"|FS<br />
|<br />
* EP1 IN, interrupt<br />
* EP2 IN, bulk<br />
* EP2 OUT, bulk<br />
* EP3 IN, iso<br />
* EP3 OUT, iso<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
|Scanning devices (<tt>hcitool -i hci1 scan</tt>), and file transfers (<tt>odp</tt> and <tt>ussp-push</tt>) work. Didn't check anything that would use isochronous endpoints.<br />
|-<br />
|Imation 4GB Flash Drive||<tt>0718:0348</tt><br />
|align="center"|HS<br />
|<br />
* EP1 OUT, bulk<br />
* EP2 IN, bulk<br />
* EP3 IN, interrupt<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100702</tt><br />
| Works <tt>hdparm -t --direct /dev/sdX</tt>. On PC: 19.76 MB/sec; on BeagleBoard: 17.64 MB/sec; on PC through the BeagleBoard proxy: 19.18 MB/sec.<br />
|-<br />
|AVerMedia Volar DVB-T dongle||<tt>07ca:b808</tt><br />
|align="center"|HS<br />
|<br />
* EP1 OUT, bulk<br />
* EP1 IN, bulk<br />
* EP2 IN, bulk<br />
* EP3 IN, bulk<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>=stable-20100618</tt><br />
| No visible problem.<br />
|-<br />
|Logitech, Inc. QuickCam Messanger (<i>sic</i>)||<tt>046d:08da</tt><br />
|align="center"|FS<br />
|<br />
<br />
* EP1 IN, isochronous (video)<br />
* EP2 IN, interrupt (button status)<br />
* EP3 IN, isochronous (audio)<br />
|style="background-color:#c0ff00; font-style:bold" align="center"|OK<br>(audio+video at the same time doesn't work)<br />
|<tt>>stable-20100717</tt><br />
| No visible problem (video 640x480 OR audio). Needs <tt>musb_hdrc</tt> parameter <tt>fifo_mode=6</tt>. The FIFO mode is required, because EP1 needs 768 bytes per packet (and the default is only 512). The DMA has been fixed to handle ISO packets properly.<br><br />
Enabling both video + audio at the same time doesn't work (bandwidth allocation problem, but this is probably an USB hub problem).<br />
|-<br />
|Logitech, Inc. Premium Stereo USB Headset 350||<tt>046d:0a02</tt><br />
|align="center"|FS<br />
|<br />
<br />
* EP1 OUT, isochronous (audio stereo output, max 192 bytes per packet)<br />
* EP3 IN, interrupt (button status)<br />
* EP4 IN, isochronous (audio input, 96 bytes per packet)<br />
|style="background-color:#00ff00; font-style:bold" align="center"|OK<br />
|<tt>>stable-20100717</tt><br />
| No visible problem (audio loopback with something like: <tt>arecord -D default:CARD=Headset -f dat | aplay -D default:CARD=Headset -</tt> works). Needs <tt>musb_hdrc</tt> parameter <tt>fifo_mode=7</tt>. The FIFO mode is required, because EP4 needs 96 bytes per packet (and the default is only 32).<br />
|-<br />
|}<br />
<br />
== MUSB testing code ==<br />
<br />
Some instructions on how to use the code to trigger the MUSB bug with short isochronous packets:<br />
<br />
Checkout [http://gitorious.org/beagleboard-usbsniffer/musb-test|http://gitorious.org/beagleboard-usbsniffer/musb-test]. There are 2 directories: <tt>host</tt>, and <tt>device</tt>.<br />
<br />
For the device side (on the beagleboard), you need to cross-compile <tt>usbtest</tt>. You need <tt>libaio</tt>, which can be built using Angstrom, and <tt>gadgetfs</tt> in the Linux kernel. Then, the gadgetfs driver is loaded as follows:<br />
<br />
modprobe gadgetfs<br />
mkdir /dev/gadget/ -p<br />
mount -t gadgetfs none /dev/gadget<br />
./usbtest -v -s 512 -p 2 -a 1 -I0 -x 18<br />
<br />
The host code must be run on your host PC. It requires the <tt>usbtest</tt> module (<tt>CONFIG_USB_TEST=m</tt>), then isochronous IN transfers are tested with the following command:<br />
./testusb -a -t 16 -g 1 -c 10<br />
<br />
While running the test, you can monitor the USB traffic using usbmon, you should see isochronous packets of length 18, i.e., something like this:<br />
... S Zi:2:100:1 -115:8:5232 1 -18:0:512 512 <<br />
... C Zi:2:100:1 0:8:5240:0 1 0:0:18 18 = e6010203 e6050607 e6090a0b e60d0e0f e611<br />
<br />
Every 4 bytes contains some kind of packet id (incrementing), the rest of the bytes are given by a mod 63 counter.<br />
<br />
Bulk transfers can also be tested, with the following commands (device and host):<br />
./usbtest -a 5 -s 514<br />
./testusb -a -t 4 -c 10 -s 1024<br />
<br />
<tt>testusb</tt> will complain, since the packet is short (514 instead of 1024), but usbmon still shows that the transfer has been done correctly:<br />
... S Bi:2:101:1 -115 1024 <<br />
... C Bi:2:101:1 -121 514 = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Meetings/20100517&diff=21198BeagleBoard/GSoC/Meetings/201005172010-05-18T06:23:43Z<p>FransMeulenbroeks: /* Shirt sizes */ added eFfeM</p>
<hr />
<div>==Attendees==<br />
===Mentors===<br />
* jkridner (Jason Kridner - BeagleBoard.org GSoC admin)<br />
* cwicks (Cathy Wicks - University Program Manager for TI and backup BeagleBoard.org GSoC admin)<br />
* av500 (Vladimir Pantelic)<br />
* koen (Koen Kooi)<br />
* katie (Katie Roberts)<br />
* notzed (Michael Zucchi)<br />
* cmurillo (Cristina Murillo)<br />
* SSC (Søren Steen Christensen)<br />
* eFfeM (Frans Meulenbroeks)<br />
* mru (Mans Rullgard)<br />
===Students===<br />
* maltanar (Yaman Umuroglu - POSIX for DSPEasy)<br />
* drinkcat (Nicolas Boichat - USB Sniffer)<br />
* topfs2 (Tobias Arrskog - XBMC)<br />
* neo01124 (Varun Jewalikar - PWM)<br />
* cfriedt (Christopher Friedt - FFTW)<br />
<br />
==Agenda==<br />
* boards<br />
* repositories<br />
* blogging and weekly reports - how, where and what<br />
* future meetings<br />
* shirt sizes<br />
* bonding - enough and how to improve, including best practices from other orgs<br />
* wrap-up - review any missed agenda items<br />
<br />
==Boards==<br />
* Goal was to have C4 boards and cables to all students by last week.<br />
* maltanar got a board.<br />
* Pramod got a board, but was not in attendance to confirm.<br />
* drinkcat (Nicolas) already has a 5V adapter and IDC10-DB9 cable.<br />
* varunPWM needs a 5V adapter, IDC10-DB9 cable and a XDS100v2 (if possible).<br />
* TobiasArrskog needs a 5V adapter.<br />
* cfriedt already has the needed power adapter and cables.<br />
* '''Action: jkridner''': provide e-mail of all shipping addresses summarized to cwicks<br />
* '''Action: jkridner''': see if we can get some XDS100v2's, especially for students doing kernel work<br />
<br />
==Repositories==<br />
* Ultimately, all projects need to have a final release loaded on code.google.com.<br />
* Students should align with their mentors on the best working place for their code.<br />
* Students should publish their repository and bug tracking links on their blog.<br />
<br />
==Reporting==<br />
* I'd like to make sure students provide blog posts that indicate where their code is currently hosted, where bugs should be filed, and what the status of the latest build is.<br />
* Maltanar: http://maltanar.blogspot.com<br />
* TobiasArrskog: http://xbmc.org/topfs2/<br />
* drinkcat: http://beagleboard-usbsniffer.blogspot.com/<br />
* cfriedt: http://gsoc2010-fftw-neon.blogspot.com/<br />
* varun: http://beagleboard-pwm.blogspot.com/<br />
* Pramod: http://pramodpoudel.blogspot.com/<br />
<br />
==Future meetings==<br />
* Future meetings will be held at the same time every week (Mondays, 14:00UTC) on #beagleboard-gsoc until further notice.<br />
* '''Action: jkridner''': will provide wiki link and agenda outline ahead of every meeting.<br />
* '''Action: jkridner''': will send out reminder e-mail on beagleboard-gsoc 1 hour ahead of the meeting.<br />
* '''Action: jkridner''': will create a sharable Google Calendar entry.<br />
<br />
==Shirt sizes==<br />
* '''Action: jkridner''': log here what was reported on IRC<br />
* '''Action: ALL''': review this page in 24 hours for accuracy/completeness<br />
* drinkcat: L<br />
* cmurillo: XS<br />
* av500: XXL<br />
* maltanar: S<br />
* topfs2: S<br />
* mru: S<br />
* koen: L<br />
* SSC: L<br />
* varunPWM: M<br />
* cfriedt: M<br />
* notzed: L<br />
* jkridner: L<br />
* katie: M<br />
* Pramod: M<br />
* eFfeM: XL</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18655BeagleBoard/GSoC/Ideas-20162010-03-22T10:49:22Z<p>FransMeulenbroeks: /* Mentors */ updated eFfeM info</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying startign March 29 and we still need several more mentors to register before then.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' Improve the capabilities of the Linux kernel, especially for embedded devices including ARM Cortex-A8 and OMAP3-based devices.<br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''Power Management'''<br><br />
Good power management is crucial to embedded systems. There are many areas that need continued development:<br />
* [http://elinux.org/OMAP_Power_Management#Run-time_PM runtime PM framework for OMAP]<br />
* full off-mode support in drivers (SoC is powered off during suspend and idle)<br />
* optimize board-specific inactive power (requires board/hardware/PMIC experience)<br />
* power measurement and analysis tools<br />
<br />
''Existing project:'' [[OMAP_Power_Management|OMAP Power Management]]<br><br />
''Software skills:'' C, Linux kernel driver development<br><br />
''Mentor:'' Kevin Hilman (english, français)<br><br />
<br />
'''MUSB enhancements'''<br><br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
''Possible mentors:'' Felipe Balbi, Kevin Hilman, Swami, Hunyue Yau<br><br />
<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
''Possible mentors:'' Mugdha Kamoolkar<br><br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
'''boot.kernel.org'''<br><br />
There is a new network-based way to boot Linux hosted on kernel.org called [http://boot.kernel.org/ boot.kernel.org]. How about adding support there for the BeagleBoard (or BeagleBoard-xM, since it includes an Ethernet adapter).<br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
==Minix3 support==<br />
Porting Minix3 (www.minix3.org) to beagleboard. Minix3 is a highly reliable operating system. Currently it only runs on x86 hardware, but some work has been done to get it running on ARM.<br />
<br />
''Goal:'' Getting Minix3 to run on BeagleBoard; adding drivers for the BeagleBoard peripherals<br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' Frans Meulenbroeks, _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Maria Rodriguez, Cristina Murillo, Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
TI has released [https://gforge.ti.com/gf/project/tiesr/ source for a speech recognition library] that runs on the ARM processor of the OMAP3 on the BeagleBoard. Currently, it is under a TI license, so it might not qualify as-is for inclusion in GSoC, but that can be explored. There may be other libraries that can be utilized for this project. Using speech recognition library, several tasks could be performed:<br />
* Voice recognition integrated into Ubiquity: Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application. This has been done under an emulation environment today on PCs, but that might not be fast enough for embedded systems. This should provide minimal overhead and look as close to running only Android as possible to the Android application and core tasks.<br />
<br />
''Goal:'' Execute Android .apk-distributed applications within a more full-featured GNU/Linux distribution as a windowed application.<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers.<br />
<br />
Some work has already been done to get this going by ''TheUni'' on the IRC channel. He's also made blog postings about his work.<br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
* Enable local control through touch screen.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=Community infrastructure projects=<br />
==Updating BeagleBoard.org UI/backend==<br />
The BeagleBoard.org website is currently written in JavaScript using Helma and makes use of several Java components through JavaScript. One advantage of this is you can actually run an instance of the BeagleBoard.org web server on the BeagleBoard with a full clone of the website.<br />
* Improve OpenID support<br />
* Create Ubiquity scripts to simplify page editing<br />
* Add tags to project entries and improve the views<br />
* Import RSS feed items into pages for ranking/tagging<br />
* Add microblogging support integrated with the IRC channel<br />
** See http://code.google.com/p/beagleboard/issues/detail?id=46<br />
** Enable users to store http://beagleboard.org/user user profiles<br />
** Have the chat show Twitter and Identica update<br />
* Translate BeagleBoard.org into other languages<br />
** http://code.google.com/p/beagleboard/issues/detail?id=4<br />
* Update the site for the BeagleBoard-xM launch occurring in June<br />
<br />
''Software skills:'' JavaScript, XML, HTML/CSS<br><br />
''Mentor:'' Jason Kridner<br><br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
Need to examine http://code.google.com/p/swiftbeagle/ as a starting point. Improvements include getting into a more functional environment.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
<br />
* RTEMS BSP for Beagle board: '''Medium''' [http://www.rtems.org RTEMS] is a free real-time operating system. This project would require developing an RTEMS Board Support Package for the Beagle board. The Beagle board has come up multiple times in our community as a excellent device for students, hobbyists, and a starting point for customized boards. I am the maintainer of RTEMS and would be willing to co-mentor this with someone from the Beagle board community. --[[User:JoelSherrill|JoelSherrill]] 23:12, 18 March 2010 (UTC)<br />
<br />
* VNC client on Beagle board: '''Done/Easy''' Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy''' Porting Ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium''' [http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source community and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Audio-based translator: '''Medium''' Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium''' Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium''' Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium''' Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium''' GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100. There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium''' Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard''' Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard''' BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard''' Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard''' Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard''' Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time. Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard''' The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard''' Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard''' Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard''' Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard''' Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard''' Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Done/Easy''' GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html. Has been done already using a Bluetooth GPS.<br />
<br />
* Jogger’s Friend: '''Hard''' Gather heart-rate data and GPS position information. Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard''' Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard''' Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections. Some project has been kicked off here on on [[BeagleBoard/Contest]]<br />
<br />
* Brain Mouse: '''Hard''' Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard''' Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as DLNA/upnp renderer, server, controller, or media player.<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* OpenCL implementation that uses the DSP and/or NEON (could be used as framework for any dsp/neon acceleration)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera). Could/should be implemented using DLNA protocols (e.g. view on ps3 or tv's).<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too FM: lirc already works, as do usb-ir dongles<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver FM: what would this have above a setup with samba/nfs/etc (e.g. the openembedded nas-server-image) ?<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone: (existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard: (http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Mentors=<br />
<br />
{|<br />
! Name<br />
! IRC nickname<br />
! Native language<br />
! Other languages<br />
! Timezone<br />
! Software help<br />
! Hardware help<br />
! Focus projects<br />
|-<br />
| Jason Kridner<br />
| jkridner<br />
| English<br />
| -<br />
| US Central<br />
| web development, C, shell/perl scripting<br />
| wiring, timing diagrams, basic debug<br />
| infrastructure improvements<br />
|-<br />
| Hunyue Yau<br />
| ds2<br />
|<br />
|<br />
| US Pacific<br />
|-<br />
| Frans Meulenbroeks<br />
| eFfeM<br />
| Dutch<br />
| English, basic understanding of German<br />
| CET<br />
| C, User Interface, Linux, booting, performance improvement, networking technology<br />
| no<br />
|-<br />
| Kevin Hilman<br />
| khilman<br />
| English<br />
| fluent in French<br />
| US Pacific<br />
|-<br />
| Luis Gustavo Lira<br />
|<br />
| Spanish<br />
| fluent in English and French)<br />
|}</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18597BeagleBoard/GSoC/Ideas-20162010-03-20T15:32:50Z<p>FransMeulenbroeks: /* Raw ideas that need to be fleshed out */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying startign March 29 and we still need several more mentors to register before then.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' <br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===Power Management===<br />
<br />
Good power management is crucial to embedded systems. There are many areas that need continued development<br />
<br />
* [http://elinux.org/OMAP_Power_Management#Run-time_PM runtime PM framework for OMAP]<br />
* full off-mode support in drivers (SoC is powered off during suspend and idle)<br />
* optimize board-specific inactive power (requires board/hardware/PMIC experience)<br />
* power measurement and analysis tools<br />
<br />
''Existing project:'' [http://eLinux.org/OMAP_Power_Management/ OMAP Power Management]<br><br />
''Software skills:'' C, Linux kernel driver development<br><br />
''Mentor:'' Kevin Hilman (english, français)<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
<br />
''Possible mentors:'' Mugdha Kamoolkar<br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
==Minix3 support==<br />
Porting Minix3 (www.minix3.org) to beagleboard. Minix3 is a highly reliable operating system. Currently it only runs on x86 hardware, but some work has been done to get it running on ARM.<br />
<br />
''Goal:'' Getting Minix3 to run on BeagleBoard; adding drivers for the BeagleBoard peripherals<br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' Frans Meulenbroeks, _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
https://gforge.ti.com/gf/project/tiesr/<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers. <br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
* Enable local control through touch screen.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=Community infrastructure projects=<br />
==Updating BeagleBoard.org UI/backend==<br />
The BeagleBoard.org website is currently written in Helma<br />
* Improve OpenID support<br />
* Create Ubiquity scripts to simplify page editing<br />
* Add tags to project entries and improve the views<br />
* Import RSS feed items into pages for ranking/tagging<br />
<br />
''Mentor:'' Jason Kridner<br><br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
<br />
* RTEMS BSP for Beagle board: '''Medium''' [http://www.rtems.org RTEMS] is a free real-time operating system. This project would require developing an RTEMS Board Support Package for the Beagle board. The Beagle board has come up multiple times in our community as a excellent device for students, hobbyists, and a starting point for customized boards. I am the maintainer of RTEMS and would be willing to co-mentor this with someone from the Beagle board community. --[[User:JoelSherrill|JoelSherrill]] 23:12, 18 March 2010 (UTC)<br />
<br />
* VNC client on Beagle board: '''Done/Easy'''<br />
Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy'''<br />
Porting Ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium'''<br />
[http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source community and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Voice recognition integrated into Ubiquity: '''Medium'''<br />
Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
* Audio-based translator: '''Medium'''<br />
Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium'''<br />
Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium'''<br />
Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium'''<br />
Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium'''<br />
GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100<br />
<br />
There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium'''<br />
Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard'''<br />
Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard'''<br />
BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard'''<br />
Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard'''<br />
Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard'''<br />
Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard'''<br />
The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard'''<br />
Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* MUSB enhancements: '''Hard'''<br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard'''<br />
Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard'''<br />
Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard'''<br />
Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard'''<br />
Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Done/Easy'''<br />
GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html. Has been done already using a Bluetooth GPS.<br />
<br />
* Jogger’s Friend: '''Hard'''<br />
Gather heart-rate data and GPS position information<br />
Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard'''<br />
Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard'''<br />
Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections.<br />
<br />
* Brain Mouse: '''Hard'''<br />
Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard'''<br />
Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as DLNA/upnp renderer, server, controller, or media player.<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* OpenCL implementation that uses the DSP and/or NEON (could be used as framework for any dsp/neon acceleration)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera). Could/should be implemented using DLNA protocols (e.g. view on ps3 or tv's).<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too FM: lirc already works, as do usb-ir dongles<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver FM: what would this have above a setup with samba/nfs/etc (e.g. the openembedded nas-server-image) ?<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone:<br />
(existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard:<br />
(http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Mentors=<br />
* Hunyue Yau<br />
* Frans Meulenbroeks (native language Dutch, reasonable to good English speaker, basic understanding of German)<br />
* Kevin Hilman (native language: English, fluent in French)</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18596BeagleBoard/GSoC/Ideas-20162010-03-20T13:08:50Z<p>FransMeulenbroeks: added minix3 project</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying startign March 29 and we still need several more mentors to register before then.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' <br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===Power Management===<br />
<br />
Good power management is crucial to embedded systems. There are many areas that need continued development<br />
<br />
* [http://elinux.org/OMAP_Power_Management#Run-time_PM runtime PM framework for OMAP]<br />
* full off-mode support in drivers (SoC is powered off during suspend and idle)<br />
* optimize board-specific inactive power (requires board/hardware/PMIC experience)<br />
* power measurement and analysis tools<br />
<br />
''Existing project:'' [http://eLinux.org/OMAP_Power_Management/ OMAP Power Management]<br><br />
''Software skills:'' C, Linux kernel driver development<br><br />
''Mentor:'' Kevin Hilman (english, français)<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
<br />
''Possible mentors:'' Mugdha Kamoolkar<br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
==Minix3 support==<br />
Porting Minix3 (www.minix3.org) to beagleboard. Minix3 is a highly reliable operating system. Currently it only runs on x86 hardware, but some work has been done to get it running on ARM.<br />
<br />
''Goal:'' Getting Minix3 to run on BeagleBoard; adding drivers for the BeagleBoard peripherals<br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' Frans Meulenbroeks, _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
https://gforge.ti.com/gf/project/tiesr/<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers. <br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
* Enable local control through touch screen.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=Community infrastructure projects=<br />
==Updating BeagleBoard.org UI/backend==<br />
The BeagleBoard.org website is currently written in Helma<br />
* Improve OpenID support<br />
* Create Ubiquity scripts to simplify page editing<br />
* Add tags to project entries and improve the views<br />
* Import RSS feed items into pages for ranking/tagging<br />
<br />
''Mentor:'' Jason Kridner<br><br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
<br />
* RTEMS BSP for Beagle board: '''Medium''' [http://www.rtems.org RTEMS] is a free real-time operating system. This project would require developing an RTEMS Board Support Package for the Beagle board. The Beagle board has come up multiple times in our community as a excellent device for students, hobbyists, and a starting point for customized boards. I am the maintainer of RTEMS and would be willing to co-mentor this with someone from the Beagle board community. --[[User:JoelSherrill|JoelSherrill]] 23:12, 18 March 2010 (UTC)<br />
<br />
* VNC client on Beagle board: '''Done/Easy'''<br />
Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy'''<br />
Porting Ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium'''<br />
[http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source community and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Voice recognition integrated into Ubiquity: '''Medium'''<br />
Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
* Audio-based translator: '''Medium'''<br />
Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium'''<br />
Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium'''<br />
Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium'''<br />
Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium'''<br />
GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100<br />
<br />
There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium'''<br />
Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard'''<br />
Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard'''<br />
BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard'''<br />
Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard'''<br />
Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard'''<br />
Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard'''<br />
The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard'''<br />
Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* MUSB enhancements: '''Hard'''<br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard'''<br />
Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard'''<br />
Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard'''<br />
Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard'''<br />
Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Done/Easy'''<br />
GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html. Has been done already using a Bluetooth GPS.<br />
<br />
* Jogger’s Friend: '''Hard'''<br />
Gather heart-rate data and GPS position information<br />
Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard'''<br />
Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard'''<br />
Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections.<br />
<br />
* Brain Mouse: '''Hard'''<br />
Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard'''<br />
Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as DLNA/upnp renderer, server, controller, or media player.<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* OpenCL implementation that uses the DSP and/or NEON (could be used as framework for any dsp/neon acceleration)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera). Could/should be implemented using DLNA protocols (e.g. view on ps3 or tv's).<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone:<br />
(existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard:<br />
(http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Mentors=<br />
* Hunyue Yau<br />
* Frans Meulenbroeks (native language Dutch, reasonable to good English speaker, basic understanding of German)<br />
* Kevin Hilman (native language: English, fluent in French)</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18532BeagleBoard/GSoC/Ideas-20162010-03-18T21:45:18Z<p>FransMeulenbroeks: /* Raw ideas that need to be fleshed out */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying startign March 29 and we still need several more mentors to register before then.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' <br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
<br />
''Possible mentors:'' Mugdha Kamoolkar<br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
https://gforge.ti.com/gf/project/tiesr/<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers. <br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
* Enable local control through touch screen.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
* VNC client on Beagle board: '''Done/Easy'''<br />
Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy'''<br />
Porting ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium'''<br />
[http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source sommunity and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Voice recognition integrated into Ubiquity: '''Medium'''<br />
Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
* Audio-based translator: '''Medium'''<br />
Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium'''<br />
Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium'''<br />
Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium'''<br />
Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium'''<br />
GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100<br />
<br />
There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium'''<br />
Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard'''<br />
Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard'''<br />
BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard'''<br />
Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard'''<br />
Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard'''<br />
Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard'''<br />
The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard'''<br />
Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* MUSB enhancements: '''Hard'''<br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard'''<br />
Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard'''<br />
Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard'''<br />
Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard'''<br />
Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Done/Easy'''<br />
GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html. Has been done already using a Bluetooth GPS.<br />
<br />
* Jogger’s Friend: '''Hard'''<br />
Gather heart-rate data and GPS position information<br />
Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard'''<br />
Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard'''<br />
Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections.<br />
<br />
* Brain Mouse: '''Hard'''<br />
Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard'''<br />
Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as upnp renderer<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera)<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone:<br />
(existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard:<br />
(http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Other possible mentors=<br />
* Hunyue Yau<br />
* Frans Meulenbroeks (native language Dutch, reasonable to good English speaker, basic understanding of German)</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18531BeagleBoard/GSoC/Ideas-20162010-03-18T21:30:31Z<p>FransMeulenbroeks: /* Intelligent thermostat that utilizes weather forecasts */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying startign March 29 and we still need several more mentors to register before then.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' <br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
<br />
''Possible mentors:'' Mugdha Kamoolkar<br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
https://gforge.ti.com/gf/project/tiesr/<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers. <br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
* Enable local control through touch screen.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
* VNC client on Beagle board: '''Done/Easy'''<br />
Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy'''<br />
Porting ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium'''<br />
[http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source sommunity and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Voice recognition integrated into Ubiquity: '''Medium'''<br />
Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
* Audio-based translator: '''Medium'''<br />
Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium'''<br />
Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium'''<br />
Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium'''<br />
Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium'''<br />
GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100<br />
<br />
There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* USB Webcam: '''Medium'''<br />
Implement a USB Webcam (video input) driver for the BeagleBoard.<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium'''<br />
Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard'''<br />
Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard'''<br />
BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard'''<br />
Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard'''<br />
Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard'''<br />
Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard'''<br />
The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard'''<br />
Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* MUSB enhancements: '''Hard'''<br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard'''<br />
Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard'''<br />
Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard'''<br />
Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard'''<br />
Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Hard'''<br />
GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html <br />
<br />
* Jogger’s Friend: '''Hard'''<br />
Gather heart-rate data and GPS position information<br />
Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard'''<br />
Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard'''<br />
Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections.<br />
<br />
* Brain Mouse: '''Hard'''<br />
Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard'''<br />
Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as upnp renderer<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera)<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone:<br />
(existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard:<br />
(http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Other possible mentors=<br />
* Hunyue Yau<br />
* Frans Meulenbroeks (native language Dutch, reasonable to good English speaker, basic understanding of German)</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18528BeagleBoard/GSoC/Ideas-20162010-03-18T21:12:07Z<p>FransMeulenbroeks: /* Other possible mentors */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying March 18-March 29 and we still need several more mentors to register.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' <br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
<br />
''Possible mentors:'' Mugdha Kamoolkar<br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
https://gforge.ti.com/gf/project/tiesr/<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers. <br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
* VNC client on Beagle board: '''Done/Easy'''<br />
Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy'''<br />
Porting ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium'''<br />
[http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source sommunity and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Voice recognition integrated into Ubiquity: '''Medium'''<br />
Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
* Audio-based translator: '''Medium'''<br />
Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium'''<br />
Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium'''<br />
Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium'''<br />
Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium'''<br />
GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100<br />
<br />
There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* USB Webcam: '''Medium'''<br />
Implement a USB Webcam (video input) driver for the BeagleBoard.<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium'''<br />
Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard'''<br />
Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard'''<br />
BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard'''<br />
Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard'''<br />
Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard'''<br />
Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard'''<br />
The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard'''<br />
Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* MUSB enhancements: '''Hard'''<br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard'''<br />
Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard'''<br />
Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard'''<br />
Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard'''<br />
Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Hard'''<br />
GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html <br />
<br />
* Jogger’s Friend: '''Hard'''<br />
Gather heart-rate data and GPS position information<br />
Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard'''<br />
Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard'''<br />
Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections.<br />
<br />
* Brain Mouse: '''Hard'''<br />
Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard'''<br />
Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as upnp renderer<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera)<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone:<br />
(existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard:<br />
(http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Other possible mentors=<br />
* Hunyue Yau<br />
* Frans Meulenbroeks (native language Dutch, reasonable to good English speaker, basic understanding of German)</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/GSoC/Ideas-2016&diff=18527BeagleBoard/GSoC/Ideas-20162010-03-18T21:07:19Z<p>FransMeulenbroeks: /* Other possible mentors */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: BeagleBoard]]<br />
<br />
=Welcome!=<br />
BeagleBoard.org has been accepted as a mentoring organization in the [[BeagleBoard/GSoC|Google Summer of Code]] for 2010!! Students will be applying March 18-March 29 and we still need several more mentors to register.<br />
<br />
'''Background'''<br><br />
For a quick view of how the BeagleBoard relates to the open source development community, take a listen to [http://www.youtube.com/watch?v=m9xVbntl-DY Mans and Koen's interview with the Linux Outlaws]. The BeagleBoard is a popular [http://en.wikipedia.org/wiki/Open-source_hardware open-source hardware] project utilizing the first broadly available ARM Cortex-A8 processor. Over 10,000 people are experimenting with the BeagleBoard today to bring their ideas for the future of everywhere-computing to life and you can be one of them.<br />
<br />
Because the BeagleBoard:<br />
* utilizes a complex SoC with 3 primary processing cores,<br />
** one for general-purpose activities such as running Linux and applications (ARM Cortex-A8),<br />
** one for running real-time signal processing algorithms (C64x+ VLIW fixed-point DSP), and <br />
** one for rendering 3D graphics (Imagination SGX), and <br />
* is specifically designed for low-power (typically running under 2W at full processing load), and<br />
* has a very small foot-print that includes standard peripheral expansion like USB,<br />
there are many opportunities to explore challenges in computer science in areas of<br />
* optimal execution of applications/algorithms on additional instruction set architectures like ARM or C6000,<br />
* splitting tasks appropriately between processing cores to minimize task execution time and power consumption, and<br />
* integrating computation into new form-factors.<br />
<br />
'''Students and mentors'''<br><br />
Student proposals can create projects from the following ideas or propose their own project based on their own ideas. From reading about previous Google Summer of Code projects, the key to success is being passionate about your project, so propose something that is extremely interesting to you, even if it not on the list. We will be glad to help students develop ideas into projects on [http://webchat.freenode.net/?channels=beagle the BeagleBoard IRC] or [http://groups.google.com/beagleboard the BeagleBoard mailing list]. There are many more ideas of what can be done and we will match projects to students interest and help scope the proposal to something that can be completed in the Summer of Code time-frame.<br />
<br />
There are more than 100 exiting projects list at http://beagleboard.org/project. If you are interested in one of those projects, talk with the project members to see if there are any aspects of their projects with which they can help you contribute. There are also several ideas on the [[ECE597_Project_Ideas|ECE597 class project idea list]].<br />
<br />
__TOC__<br />
<br />
=General requirements=<br />
All projects have the following basic requirements:<br />
* The project must be registered on http://beagleboard.org/project.<br />
* All newly generated materials must be released under an [http://www.opensource.org/licenses open source license].<br />
* Individual students shall retain copyright on their works.<br />
* Source code generated during the project must be released on gitorious.org, github.com, repo.or.cz, sourceforge, code.google.com, gforge.ti.com, or omapzoom.org.<br />
* The registration on http://beagleboard.org/project must include an RSS feed with project announcements and updates at every milestone. Sources for the RSS feed should be blogger.com, wordpress.com, or some other established blog hosting service with known reliability.<br />
* To help you to break your project down into manageable chunks and also help the project's mentors to better support your efforts, weekly project status reports should be e-mailed to the project's mentors and the organization administrator (Jason Kridner). Each status report should outline:<br />
** what was accomplished that week, <br />
** any issues that prevented that week's goals from being completed, and<br />
** your goals for the next week.<br />
<br />
=Fundamental infrastructure projects=<br />
These projects fundamentally improve support of existing open source projects for ARM-based devices in general and the BeagleBoard in specific, bringing the broad body of high-level open source applications into smaller, lower-cost, lower-power systems that can go anywhere.<br />
<br />
==JTAG debugging==<br />
Implement, configure and document a complete open source based JTAG debugging development chain for ARM Cortex A8 in OMAP3 used on Beagle Board. This includes final port of open source JTAG software [[BeagleBoardOpenOCD|OpenOCD]] for OMAP3 on Beagle, and then configure and document all software (and hardware) components involved. This could look like:<br />
<br />
''ARM Cortex A8 <-> OMAP3 <-> BeagleBoard <-> Flyswatter (*)'' <-> OpenOCD <-> GDB <-> Eclipse (CDT)<br />
<br />
(*) Note: [[BeagleBoardJTAG#TinCanTools_Flyswatter|Flyswatter]] is used as example JTAG dongle here. All OpenOCD JTAG dongles able to deal with 1.8V and configure EMUx pins correctly can be used.<br />
<br />
''Goal:'' Able to single step kernel code using OpenOCD, GDB, and Eclipse<br><br />
''Existing project:'' [http://beagleboard.org/project/OpenOCD+OMAP3+JTAG+support/ OpenOCD]<br><br />
''Hardware skills:'' Able to monitor logic-level digital signals<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
''Possible mentors:'' Dirk Behme, _TBD_<br><br />
<br />
'''NOTE: [http://www.tincantools.com TinCanTools] will donate [[Flyswatter]] boards for this project<br />
'''<br />
<br />
==Linux kernel improvements==<br />
Several improvements are desired in the Linux kernel to make it more useful for embedded/device applications.<br />
<br />
''Goal:'' <br><br />
''Existing project:'' [http://beagleboard.org/project/linux linux-omap]<br><br />
''Software skills:'' C, ARMv7 assembly (desired), Linux kernel driver development<br><br />
''Possible mentors:'' Kevin Hilman, Tony Lindgren, Khasim Syed Mohammed, Russell King<br><br />
<br />
===More detailed kernel improvement ideas===<br />
'''USB device audio support'''<br><br />
The Linux USB gadget infrastructure doesn't have audio device class support (but Linux does have [http://www.linux-usb.org/USB-guide/x319.html USB host audio] support. There is some work on a [http://docs.blackfin.uclinux.org/doku.php?id=gadget_midi gadget MIDI audio driver]. Some work has been done over at [http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=4212 Blackfin], but is reported as not working very well. Getting USB isochronous endpoint, gadget audio driver connected to audio on BeagleBoard would be beneficial to all OMAP3 isochronous USB needs, better isochronous gadget support in Linux (there are no standard gadgets test for isochronous endpoints), and a prove out a real gadget driver that requires isochronous endpoints. Anyone wanting to learn about communication protocols, a well designed layered communication implementation, and a chance to work at the driver level will enjoy this project.<br />
<br />
''Possible mentors:'' Swami<br />
<br />
'''SYS/Link support in the mainline kernel'''<br><br />
<br />
''Possible mentors:'' Mugdha Kamoolkar<br />
<br />
==Improve bootloader support==<br />
There are many bootloaders available for the BeagleBoard and other ARM embedded devices, but all can be given improvements for ease-of-use for new users. Places where many bootloaders fall down is in reliance on a limited set of user inputs (such as only the serial port) or not connecting to every boot device (such as a USB flash drive). They also might rely on commands that are difficult to understand or not familiar to the user.<br />
<br />
''Goal:'' Create a bootloader, or a set of bootloaders, that:<br />
* is open source without requiring giving away rights over the operating system or applications,<br />
* can be built using open source tools,<br />
* can be loaded from NAND, SD, USB, or serial port directly by the ROM code and executed,<br />
* provides a user interface to Windows and Linux PCs over both the USB OTG and serial ports,<br />
* provides a user interface to the user via keyboard, mouse, and monitor,<br />
* loads quickly from the ROM and can load an operating system quickly, and<br />
* can load operating systems from and format new SD cards and USB flash drives with bootable copies of itself.<br><br />
''Existing projects:'' [http://beagleboard.org/project/tianocore Tianocore], [http://beagleboard.org/project/U-Boot+%28V1%29/ U-boot], [http://beagleboard.org/project/OMAP+U-Boot+Utils/ u-boot utilities], [http://beagleboard.org/project/x-loader X-load bootloader-loader], [http://beagleboard.org/project/U-Boot+V2/ Barebox], [[APEX]], and [http://code.google.com/p/0xlab-bootloader/ Qi]<br><br />
''Additional references:'' [http://beagleboard.org/project/puppybits/ PuppyBits]<br><br />
''Hardware skills:'' Configure hardware at boot<br><br />
''Software skills:'' C, ARMv7 assembly<br><br />
<br />
===More detailed bootloader improvement ideas===<br />
'''U-boot'''<br><br />
This is the bootloader shipped with the BeagleBoard today. We like it, but we don't love it. Because the development is moving to GPLv3, many commercial developers are likely to be frightened away from it at some point. Still, it would be nice to improve some of its fundamental short-comings on the BeagleBoard, such as:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code). This works on a branch, but isn't in good shape for getting accepted upstream.<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support (for flash drives).<br />
* Add a boot configuration header to eliminate the need for x-loader.<br />
<br />
''Possible mentors:'' Jason Kridner, Khasim Syed Mohammed, Steve Sakoman, Dirk Behme<br><br />
<br />
'''TianoCore'''<br><br />
It is unlikely that any has more standards momentum and flexibility than the TianoCore implementation of the UEFI boot specification. EFI bootloaders are further interesting in their ability to run EFI byte code (EBC) applications. There is already basic support of the BeagleBoard in TianoCore, but the functionality is a bit limited and the build instructions currently rely on non-free tools. At least the following improvements are required:<br />
* Add support for the USB host port (to connect a hub, keyboard, and mouse).<br />
* Add USB Ethernet adapter support.<br />
* Add USB OTG port (to connect to a PC to download code).<br />
* Add DVI-D display.<br />
* Add USB mass-storage class host support for flash drives.<br />
* Add USB device serial adapter emulation.<br />
* Build with GCC.<br />
* Performance optimizations.<br />
<br />
All of the desired functionality is already demonstrated in Linux, one of the other boot-loaders, or in one of the additional references above.<br />
<br />
'''Barebox'''<br><br />
It has already been shown that the Barebox bootloader can be scaled very reasonably down to something that can fit into the on-chip memory of the OMAP3, without using the DRAM. Maintaining this sort of scalability can be critical to providing the fastest possible boot times.<br />
<br />
''Possible mentors:'' Nishanth Menon<br><br />
<br />
==x86 instruction emulation==<br />
Development or tuning the an emulator like qemu to emulate the x86 instruction set at a reasonable speed to run legacy x86 apps developed for another non Linux OS. Possibilities include Windows 9x, 2000, etc. An alternative approach to use qemu to emulate an x86 Linux system and run Wine up top of that. Yet another approach might be to add an emulation engine inside wine. The goals is to be able to run x86 applications. The OS is optional. Task could possibly be split between the ARM and DSP.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' C, x86 assembly, ARMv7 assembly<br><br />
''Possible mentors:'' _TBD_<br><br />
''Complexity:'' High<br><br />
<br />
=Projects for heterogeneous multicore processing=<br />
==Vala bindings for Codec Engine algorithms==<br />
''Goal:'' _TBD_<br><br />
''Existing project:'' [http://beagleboard.org/project/disptec dispTEC]<br><br />
''Software skills:'' C, Vala, _TBD_<br><br />
''Possible mentors:'' Todd Fischer, Diego Dompe, _TBD_<br><br />
<br />
==Erlang for ARM and C6000 in heterogeneous compute environments==<br />
[http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 Erlang] is a concurrent programming language that can theoretically be used to spread tasks across the processing cores on a BeagleBoard or across BeagleBoards on a network. There is a project advancing on putting Erlang on the BeagleBoard and I'm sure there will be some additional tasks that could be suitable for GSoC students.<br />
<br />
''Goal:'' Distribute tasks across multiple BeagleBoards and between the ARM and DSP processors on a BeagleBoard using Erlang.<br><br />
''Software skills:'' Erlang, _TBD_<br><br />
''Possible mentors:'' Marcus Taylor, _TBD_<br><br />
<br />
==Simple SDK for building ANSI C code for heterogeneous slave processors under Linux==<br />
''Goal:'' <br><br />
''Existing project:'' [https://gforge.ti.com/gf/project/dspeasy/ DSPEasy]<br><br />
''Software skills:'' C, JavaScript, shell scripting<br><br />
''Mentors:'' Jason Kridner, Daniel Allred<br><br />
<br />
==Add DSP support to GNU radio==<br />
''Goal:'' GNU Radio is a popular Software Defined Radio package for PC based computers. GNU Radio also runs on the Beagleboard and can make use of the floating point unit on the ARM. However, the DSP on the Beagleboard has tremendous potential for increasing GNU Radio's capability on small hardware. The project difficulty is based on the level of effort desired by the student, it should be fairly easy to create a standalone GNU Radio block that talks to the DSP via dsplink, or very complex to modify the GNU Radio block scheduler to launch block on the DSP directly.<br><br />
''Existing project:'' [http://gnuradio.org GNURadio]<br><br />
''Software skills:'' C++<br><br />
''Mentors:'' Philip Balister<br><br />
<br />
=Multimedia and user experience projects=<br />
==Speech recognition==<br />
https://gforge.ti.com/gf/project/tiesr/<br />
<br />
''Existing project:'' http://beagleboard.org/project/tiesr<br><br />
''Possible mentors:'' Lorin Netsch, Sourabh Ravindran<br><br />
<br />
==Android running as a windowed application==<br />
Modify Android to work within an embedded system as a windowed application.<br />
<br />
''Goal:'' <br><br />
''Hardware skills:'' n/a<br><br />
''Software skills:'' Java, C, shell scripting<br><br />
''Possible mentors:'' Jason Kridner, Katie Roberts-Hoffman, _TBD_<br><br />
<br />
==XBMC Media Center to Beagle Board==<br />
XBMC is an open-source, cross platform media center that would allow you to display high definition video on your TV that is streamed from your local network or the internet. XBMC on Beagle Board would would be a very low cost, low power platform that would allow the media center to literally be embedded ''in'' the TV. XBMC could run on an Ubuntu distribution of Linux and would requiring the development of OpenGL ES complaint DirectFBGL drivers. <br />
<br />
=Hardware + software projects=<br />
These are "Make"-style projects that advance general knowledge for creating and improving end products for consumers.<br />
<br />
Multiple prototype hardware systems should be made to complete these projects. The process should be documented and be something that the mentor reproduces and that anyone else can reproduce at a reasonable expense with only some minimal hardware skills (soldering, using a volt meter, etc.).<br />
<br />
==Intelligent thermostat that utilizes weather forecasts==<br />
* Improve the thermostatic control of a domestic heating system by more intelligent control based on the analysis of forecast weather.<br />
* Enable remote control of the system through IP Internet access.<br />
<br />
''Possible mentor:'' Todd Fischer<br />
<br />
==Adding Sense to Beagle==<br />
Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. <br />
<br />
The Freespace module is already working with the BeagleBoard as are many other sensors. This project should seek to summarize how to connect as many sensors as possible on one place on the eLinux wiki.<br />
<br />
''Possible mentor:'' Mark Yoder<br />
<br />
=To be classified=<br />
=== BeaglePOD ===<br />
'''Easy'''<br />
MP3 player based on Beagle Board. This could involve porting Rockbox (www.rockbox.org) - an open source firmware for mp3 players to Beagle Board. Additional effort would involve creating Rockbox plugins to port the audio decoders and encoders to the DSP side. MTP device class support need to be added on USB as well. <br />
<br />
=== BeagleChat ===<br />
'''Easy'''<br />
Video Chat Client on Beagle Board. Porting Ekiga (www.ekiga.org) - an open source VoIP and video conferencing application for GNOME. The client should be able to talk to ekiga software running on PC as well as another beagle board. Optimizations would involve porting audio and video codecs on Ekiga to DSP plus supporting video streaming over USB for webcam support.<br />
<br />
===Fast Linux boot===<br />
Beagle variant of "from 0 to 60 in 5 seconds" make a beagle that starts in < 5 seconds<br />
<br />
Modify Beagle boot loader and OS to boot in < 5 seconds. While for desktop systems boot time might not be critical, for an embedded system like Beagle Board it often is. For an embedded system there often are external requirements which need fast boot to react properly to external events. For example external sensor signals, user input or even wake up signals in extremely deep sleep which needs re-start of operating system.<br />
<br />
For Linux OS, there are already several resources how to reduce boot time available, e.g. [[Boot_Time|boot time]] and [[Suspend_To_Disk_For_ARM|suspend to disk for ARM]] articles.<br />
<br />
Review, select, and apply some of the known technologies for BeagleBoard.<br />
<br />
Ideally, should come up to a GUI prompt, such as with Android, Angstrom, or Ubuntu.<br />
<br />
=== Ogg Theora integration into Firefox and performance improvements ===<br />
'''Medium'''<br />
Codec Engine (C64x+) implementation of Ogg Theora<br />
<br />
There was a Neuros GSoC project to port Ogg Theora to the C64x+ last year, but it was never finished. See the [http://wiki.neurostechnology.com/index.php/Summer_of_Code_2008/Ogg_Theora_Codec Neuros project page] to understand the status.<br />
<br />
=Raw ideas that need to be fleshed out=<br />
Some additional ideas can be found on the [[BeagleBoard/contest|BeagleBoard contest page]] and the [http://beagleboard.org/project BeagleBoard project page].<br />
* VNC client on Beagle board: '''Done/Easy'''<br />
Enable Virtual Network Computing on Beagle board to allow remote access to desktops. TightVNC (http://www.tightvnc.com/index.html) derived from VNC can be ported to a Embedded Linux distribution. <br />
<br />
* Ubuntu Mobile on Beagle MID: '''Done/Easy'''<br />
Porting ubuntu mobile version on Beagle board (http://elinux.org/BeagleBoardUbuntu) and enable support for standard applications used in standard internet tablets/MIDs - media player, browser.<br />
<br />
* NEON Support for FFTW: '''Medium'''<br />
[http://www.fftw.org| FFTW] is a library for calculating the [http://mathworld.wolfram.com/FastFourierTransform.html| Fast Fourier Transform]. The current implementation of FFTW contains SIMD optimizations for several instructions sets. It should be possible to add optimizations for the NEON SIMD co-processor in the Beagle Board. FFTW is widely used in the open source sommunity and this project would make FFTW far more useful on processors with NEON instructions. The mentor is particularly interested in improving GNU Radio on the OMAP3 and improving FFTW performance would be very useful.<br />
<br />
* Voice recognition integrated into Ubiquity: '''Medium'''<br />
Integrate Mozilla Firefox, Mozilla Ubiquity, and voice recognition on the BeagleBoard with a microphone. Use of a Wiimote could provide additional interactive capabilities.<br />
<br />
* Audio-based translator: '''Medium'''<br />
Utilizing voice recognition on the BeagleBoard with a microphone, submit text to Google Translator, then perform text-to-speech.<br />
<br />
* Spectrum analyzer using the DSP: '''Medium'''<br />
Write a program that uses the DSP to take an alsa input and to all the math and a GUI on the arm that display the realtime spectrum. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Android integrated into embedded distributions: '''Medium'''<br />
Utilize Open Embedded to build Android including Android kernel patches and integration of accelerated multimedia. Add the 'repo' tool to Open Embedded to pull the Android open source code, apply kernel patches, and patch Android to utilize OpenGLES and GStreamer with the GStreamer-TI plugins. Android file system would co-exist with Angstrom file system.<br />
<br />
* Cairo support for OpenVG: '''Medium'''<br />
Cairo has an experimental openvg backend (found at http://lists.cairographics.org/archives/cairo/2008-January/012833.html). And there is some work that shows noticeable performance improvements on top level applications like webkit (http://www.atoker.com/blog/2008/01/28/accelerating-webkit-with-openvg/).<br />
<br />
* Port MPlayer or GStreamer with DSP codec support: '''Medium'''<br />
GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100<br />
<br />
There's a lot of work done in the GStreamer arena: [[BeagleBoard/gst-openmax]] and there's also the [http://github.com/felipec/gst-dsp gst-dsp]. These projects are targeted for the [[BeagleBoard/DSP_Howto|bridgedriver]].<br />
<br />
* USB Webcam: '''Medium'''<br />
Implement a USB Webcam (video input) driver for the BeagleBoard.<br />
<br />
* Ogg Vorbis audio xDM encode and decode codecs: '''Medium'''<br />
<br />
* Implement NTFS and/or Mac OSX file systems: '''Medium'''<br />
Read/write for SD cards and such<br />
<br />
* Develop a ‘simple’ DSP loader Linux application that will allow user to load DSP image from ARM side: '''Medium'''<br />
<br />
* Porting open-source codec to DSP (MadPlay, VLC, some of the mplayer codecs …: '''Medium'''<br />
<br />
* USB sniffer: '''Hard'''<br />
Come up with a USB sniffer solution. Idea is that the device to be sniffed is connected to the USB host port of the beagle and the beagle itself to the original host. The beagle will pass-trhu all usb data while logging that data. This could be a great help diagnosing USB problems or reengineering USB communication to a device (by logging the behaviour of a device when connected to a PC (software solutions for that exist too (usbsnoop), but a hardware solution could also support replay etc.<br />
<br />
* Touchscreen and LCD open hardware design: '''Hard'''<br />
BeagleBoard rev C has a new connector for attaching an LCD. The Touchscreen and LCD open hardware design project would consist of a schematic, PCB layout, and bill of materials that can be purchased easily over the Internet. On online PCB fab could make the PCBs cheaply. Only a soldering iron should be needed to populate the PCB. Once built, the user could connect the PCB to their BeagleBoard had have an LCD with touchscreen support. This project is targeted toward those interested in hardware and shouldn't require any complex software if a well supported touch screen controller chip is selected.<br />
<br />
* OpenCV DSP acceleration: '''Hard'''<br />
Research and implement hardware acceleration for OpenCV using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
<br />
* Power Aware Computing APIs: '''Hard'''<br />
Power consumption is a major problem in mobile devices. While there are many HW level power management features in processors such as the OMAP35x, SW lacks the ability to manipulate and control those features. Research those power features and implement kernel APIs to allow applications to manage their power more efficiently.<br />
<br />
* OpenGL DSP acceleration: '''Hard'''<br />
Research and implement OpenGL ES using the DSP on beagleboard. The DSP side needs to use xdais so other DSP programs can run at the same time.<br />
Can take a look at Vincent OpenGL ES open source implementation and add DSP to it<br />
<br />
* Smart Energy Monitoring Console: '''Hard'''<br />
The ZigBee Smart Energy profile is a wireless standard for utility companies and consumers to securely monitor and manage home energy consumption by communicating directly with smart appliances that report their power usage. By interfacing the Beagle Board to an MCU and RF transceiver monitoring the energy consumption of a home and it's appliances, the Beagle Board could act as a dedicated terminal to track ''and control'' energy usage of power hungry devices. <br />
<br />
* Wiigle Board (low cost video game platform): '''Hard'''<br />
Develop an open source platform for video game development by generating the drivers to standard interfaces such as wireless accelerometers or game controllers. Off the self microcontrollers can be leverages to handle the I/O and RF interfaces, and the Beagle Board would handle all processing and display. By generating a clean, open standard, the community could port existing games or use this as their preferred platform for video game development. The concept could be extended by porting known console emulators (NES, Genesis, SNES, etc) to run classic games on a unified, low cost platform.<br />
<br />
* MUSB enhancements: '''Hard'''<br />
The MUSB block on the Beagle has a lot of potential but the driver is currently rather buggy. This project will be to fix the driver so the MUSB implementation as paired with the PHY used on the Beagle board can work reliably as a USB OTG device. This means it should be able to at least reliably go back and forth between host and device mode without a reboot by just changing from a A to a B cable AND be able to force host or device mode in software. See the Nokia N8x0 devices for a sample behavior of how software can force this. An initial estimate is code needs to be implemented to force the PHY into host or device mode as requested by SysFS.<br />
<br />
* Real-time audio room analyzer/equalizer: '''Hard'''<br />
Implement a real-time audio room analyzer/equalizer. Using techniques such as PN sequence “noise” correlation, analyze the acoustic characteristics of a room and adjust the multiband filter responses for the high fidelity music output, all in real-time. If the room acoustics change, even with something as transient as a person walking into the room, the filters adjust in real time to maintain the same frequency response for the specified region of the room.<br />
<br />
* Adjustable sweet spot for a high-end sound system: '''Hard'''<br />
Create an adjustable sweet spot for a high-end sound system. Use a sensor (thermal, webcam, whatever) to determine the placement of humans in the audience of a home theater or small concert hall. Using appropriate timing delays in all pass filters and perhaps adjusting the frequency response, provide an optimized “sweet spot” for a 5.1, 6.1, or 7.1 sound system. The program will be able to “move, ” “grow,” or “shrink” the sweet spot area to provide the best acoustic experience for the greatest number of audience members, or as determined by some other user selectable criteria.<br />
<br />
* Inexpensive teleprompter that adapts to the speaker: '''Hard'''<br />
Design a small inexpensive teleprompter that adapts to the speaker. Using an image sensor and appropriate algorithms to determine the speaker’s location and direction of gaze, use a picoprojector to project the teleprompter output on a variety of predetermined surfaces. The surfaces could be special glass as with current teleprompters or simply a convenient wall of the room! As the speaker moves their head or even moves around the stage or room, the teleprompter provides the projected output where needed.<br />
<br />
* Protect the ears of concert-goers: '''Hard'''<br />
Protect the ears of concert-goers. Design a wideband real-time beamformer that would direct less sound energy to the front rows of a concert hall or stadium and more to the back rows, to equalize the relative volume. Since beamforming algorithms are frequency (wavelength) dependent, the BeagleBoard would need to analyze the music content and adjust the beamforming parameters as needed in real-time.<br />
<br />
* GPS: '''Hard'''<br />
GPS application that works with USB GPS receiver (e.g. http://www.amazon.com/USB-12-Channel-NMEA-0183-Receiver-UT-41/dp/B000G6TYC8) or http://www.electronics-lab.com/projects/robotics/003/index.html <br />
<br />
* Jogger’s Friend: '''Hard'''<br />
Gather heart-rate data and GPS position information<br />
Use it to analyse the value of exercise and to suggest different exercise patterns to optimise the benefit to each individual.<br />
<br />
* HiFi Companion: '''Hard'''<br />
Develop analysis algorithms to characterise the acoustic properties of a room, then present suggestions to optimise those characteristics to get best results from audio systems<br />
<br />
* Voice Scrambler: '''Hard'''<br />
Develop algorithms for real-time scrambling of voice conversations for transmission across unsedcured connections.<br />
<br />
* Brain Mouse: '''Hard'''<br />
Interpret brain signals so that a PC cursor can be controlled by thoughts to point and click on the screen.<br />
<br />
* Open Source PLC: '''Hard'''<br />
Imagine Beagle opening and closing curtains, rendering audio when someone enters a room, turning on a fan as the temperature rises in a trombe wall - but only if the room temperature is cool, or a million other control applications. There are several automation standards, including [http://en.wikipedia.org/wiki/IEC_61131 [IEC 61131]] and [http://www.automationml.org [AutomationML]]. However, there is no open source software available that implements any of these standards (puffin/MatPLC seems to have fizzled)! Create an Open Source PLC project supporting a freely accessible standard.<br />
<br />
* One-laptop-per-child (http://laptop.org/en/ ) with Beagle: '''Hard'''<br />
<br />
* Move Firefox to Cairo on OpenVG and minimize memory footprint<br />
* Implement OpenVG with the C64x and DMAs<br />
* more codecs on the dsp (e.g. mp3 encoder/decoder, mpeg2 decoder, codecs for IP telephony (with video), ...)<br />
* port LXDE (see www.lxde.org)<br />
* beagle as upnp renderer<br />
* good text to speech support, xDM-based algorithm<br />
* Clean MythTV, Boxee, XBMC, or Miro builds<br />
* facial recognition with depth analysis using pico projector and webcam<br />
* Port face-recognition and/or fingerprint recognition user app running on top of Android OS thru USB webcam<br />
* high-speed 3d scanning with pico projector and webcam<br />
* implementing a single pixel camera with beagleboard, pico projector and webcam; accelerate processing using DSP<br />
* USB class converters (MTP to mass-storage, audio to midi, ...) or invasive sniffer<br />
* Wiimote + Pico Projector + 3D art tool<br />
* Extend Android with extra sensory operations (GPIO/PWM controls, temperature sensors, barometers, etc.)<br />
* DSP libraries for Android (both portable C and optimized implementations with C64x+ and/or NEON)<br />
* Gesture-controlled web browser<br />
* Power monitoring (http://www.google.org/powermeter/smarterpower.html)<br />
* Off-line Google App host on an SD card<br />
* Commodore 64 emulator via S-Video and Bluetooth keyboard<br />
* Printer and Scanner Drivers for Beagle<br />
* JPEG2000 codec running on BeagleBoard<br />
* Video extender – take in video via usb webcam, compress it using video encoder, stream it over ethernet (could be like a security camera)<br />
* DVD player – hook up USB dvdrom drive and playback video and audio<br />
* Receive and/or transmit IR signals (like from a remote control. Since I don’t think Beagle has an IR receiver, you’d probably need something like http://www.usbuirt.com/ (there are many others out there, too<br />
* Recording/logging data coming from instrumentation (e.g. Fluke multi-meter) … even better, combine with some DSP algorithm to “crunch” the data.<br />
* Telescope interface that let a telescope track items in the sky (important if you’re trying to photograph things). Something along these lines for Beagle might be neat.<br />
** http://www.telescopes.com/telescope-accessories/general-accessories/meade15foot20usbcable.cfm <br />
** http://www.instructables.com/id/Usb_PTZ_webcam_tracking_system/<br />
* USB midi keyboard interfacing<br />
* Beagle-based Linux Fileserver<br />
* Beagle-based Skype phone (VOIP application that connects microphone & speaker to ethernet). Could use either USB or Audio headset/mic-speaker<br />
* Solar cell powered beagle-board (hardware/software). For potential laptop/computer applications<br />
* Incorporate accelerometer (SPI or I2C interface) to lay the foundation for neat motion detection apps (hardware/software)<br />
* Youtube on Linux (Angstrom) on Beagleboard:<br />
* ekiga Wi Fi Video Softphone:<br />
(existing open source video conferencing code )that works on Linux (Angstrom) on Beagleboard Ekiga is already compiled for the arm-7 on Angstrom (http://www.angstrom-distribution.org/repo/?pkgname=ekiga). So The project would be to optimize it for the Beagle (and probably some debugging as Ekiga on beagle apparently is not that stable).<br />
<br />
* Cellular Wireless card plug into USB on Beagleboard:<br />
(http://www.wireless.att.com/cell-phone-service/cell-phone-details/?device=AT%26T+USBConnect+Quicksilver&q_sku=sku3020359<br />
* Windows CE 6.0R2 running on Beagleboard using armv7 (Cortex A8) instruction set<br />
* 2D Graphics acceleration using Cortex A8 Neon Coprocessor on Beagleboard<br />
* SWFDEC using Cortex A8 / Neon coprocessor for acceleration<br />
<br />
=Other possible mentors=<br />
* Hunyue Yau<br />
* Frans Meulenbroeks</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=17616Hawkboard2010-02-21T10:28:10Z<p>FransMeulenbroeks: added booting from usb</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool] ([http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe Needs .NET Framework])<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
<br />
Following process used on Windows family of Operating System: <br />
* User can use mono utility with dvflasher.ext program to load u-boot on Linux system. <br />
* Details To be updated <br />
<br />
Following process used on Windows family of Operating System: <br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses, For e.g. <br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58<br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
<br />
You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [http://code.google.com/p/hawkboard/downloads/list]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running. <br><br />
At the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
$setenv serverip <PC ipaddress><br />
$setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer files to the board:<br />
<br />
$tftp c0700000 uImage_v1<br />
$tftp c1180000 ramdisk_v1.gz<br />
<br />
If you broke your bootargs previously then:<br />
<br />
$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M"<br />
<br />
And finally boot the images:<br />
<br />
$bootm c0700000<br />
<br />
==== MISC ====<br />
If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code<br />
<br />
mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;<br />
<br />
For booting over MMC the bootargs should be<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off<br />
<br />
For booting android over MMC the bootargs should be<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2<br />
<br />
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard<br />
<br />
<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
You should find a kernel and a root file system image if you haven't found already. Then copy the kernel to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running.<br />
<br />
Next as root create a directory /nfsroot and populate it with your root filesystem. Under linux make sure you have a file /etc/exports that contains:<br />
<br />
/nfsroot 192.168.1.0/255.255.255.0(rw)<br />
<br />
Assuming your subnet is 192.168.1.0. Make sure you install and start an nfs server.<br />
<br />
Then, at the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
setenv serverip <PC ipaddress><br />
setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer the to the board:<br />
<br />
tftp c0700000 uImage_v1<br />
<br />
Set boot arguments:<br />
<br />
setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/nfs nfsroot=<PC ipaddress>:/nfsroot ip=dhcp"<br />
<br />
Of course again with filling in the PC ip address.<br />
<br />
And finally boot the image:<br />
<br />
bootm c0700000<br />
<br />
Note: you probably want to avoid that you have to retype these commands every time you want to boot. <br />
This can be achieved easily by issuing the following commands on the u-boot prompt:<br />
<br />
setenv serverip <PC ipaddress><br />
setenv ipaddr <board ipaddress><br />
setenv bootargs_nfs mem=128M console=ttyS2,115200n8 root=/dev/nfs nfsroot=<PC ipaddress>:/nfsroot ip=dhcp<br />
setenv bootcmd 'setenv bootargs $bootargs_nfs;tftp c0700000 uImage.v1; bootm c0700000'<br />
saveenv<br />
<br />
Make sure to use single quotes in the last setenv command. Of course you can replace uImage.v1 with whatever name your file has in your /tftpboot directory.<br><br />
After issueing these five commands the board will automatically boot (after a timeout) whenever you power the board or press the reset button (of course assuming the right files are in your /tftpboot and /nfsroot directories and the nfsserver and tftp server are running).<br />
<br />
==== Booting Linux Kernel from USB ====<br />
<br />
u-boot does allow booting from USB, but only using the USB 2.0 mini connector. u-boot cannot boot from the USB 1.1 port (the standard A-type port), so you need to get yourself an adapter cable to go from the mini port to an A-female type.<br />
I think I got mine from ebay or dealextreme.<br />
<br />
In order to boot from usb, prepare an usb disk with two partitions. <br />
The first one should be small (50M or so) and should contain a fat16 filesystem.<br />
The second one can dover the rest of the disk and should contain an ext2 fileysystem<br />
<br />
I have partitioned the disk on my linux desktop with fdisk, and made the filesystems with mkfs.vfat /dev/sdX1 ; mkfs.ext2 /dev/sdX2 (where X is the letter for your card (e.g, f, g, h). Take care to use the right letter otherwise you might destroy valuable data (and start with an empty card).<br />
<br />
After partitioning copy your uImage file to the fat partition. I named it uImage.bin. Also put your root filesystem on the ext2 partition.<br />
<br />
Then, in u-boot set your u-boot environment variables as<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 root=/dev/sda2 rootwait<br />
setenv bootcmd 'usb reset;fatload usb 0 c0700000 uImage.bin; bootm c0700000'<br />
<br />
Optionally followed by a saveenv to make your settings persistent.<br />
<br />
Unfortunately this is where things start to go wrong for me<br><br />
If I connect the usb stick to the 2.0 port the kernel boots, but crashes when trying to access the root filesystem (although I can access the root filesystem when board is booted through tftp and I insert the usb stick afterwards).<br />
And if I try using a hub, my usb stick is not detected at all. Guess there are some issues left, but as it can also be due to my kernel, I've chosen to report my findings here. If you have more success please add to this text (probably specifying what kernel you used and where you got it from).<br />
<br />
PS: in order to access an USB device on the mini port it might be needed to put a jumper on the two pins that are closest to the connector. Whether or not this is needed depends on your cable (if you have a readl mini a cable this is not needed, but unfortunately lots of cables out there are not the right ones).<br />
<br />
==== Booting Linux Kernel from SD or SATA ====<br />
<br />
Currentlythe provided u-boot does not allow booting from either SD or SATA.<br />
However, it is possible to boot from nand and have the root filesystem loaded from SD or SATA.<br><br />
If you want to do so, you have to figure out the right partition for the root filesystem and add that to your bootargs.<br />
<br />
E.g. in u-boot say something like:<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 root=/dev/sda1 rootwait<br />
<br />
Where you replace /dev/sda1 with the name of the device that contains your root filesystem. /dev/sda1 is a good name for sata partition 1 if no usb or sd devices are present.<br />
Note that the rootwait argument is needed. It tells the kernel to wait until the disk has settled.<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Wikipedia : http://en.wikipedia.org/wiki/Hawk_Board<br />
* Photos(Flickr): http://www.flickr.com/photos/hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1<br />
<br />
==Guide Links==<br />
<br />
* Ubunty Jaunty on the hawkboard : http://blog.binaerwelt.com/2010/02/ubuntu-on-the-hawkboard/<br />
* Android on the hawkboard : http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=17615Hawkboard2010-02-21T10:04:10Z<p>FransMeulenbroeks: added: Booting Linux Kernel from SD or SATA</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool] ([http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe Needs .NET Framework])<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
<br />
Following process used on Windows family of Operating System: <br />
* User can use mono utility with dvflasher.ext program to load u-boot on Linux system. <br />
* Details To be updated <br />
<br />
Following process used on Windows family of Operating System: <br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses, For e.g. <br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58<br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
<br />
You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [http://code.google.com/p/hawkboard/downloads/list]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running. <br><br />
At the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
$setenv serverip <PC ipaddress><br />
$setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer files to the board:<br />
<br />
$tftp c0700000 uImage_v1<br />
$tftp c1180000 ramdisk_v1.gz<br />
<br />
If you broke your bootargs previously then:<br />
<br />
$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M"<br />
<br />
And finally boot the images:<br />
<br />
$bootm c0700000<br />
<br />
==== MISC ====<br />
If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code<br />
<br />
mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;<br />
<br />
For booting over MMC the bootargs should be<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off<br />
<br />
For booting android over MMC the bootargs should be<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2<br />
<br />
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard<br />
<br />
<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
You should find a kernel and a root file system image if you haven't found already. Then copy the kernel to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running.<br />
<br />
Next as root create a directory /nfsroot and populate it with your root filesystem. Under linux make sure you have a file /etc/exports that contains:<br />
<br />
/nfsroot 192.168.1.0/255.255.255.0(rw)<br />
<br />
Assuming your subnet is 192.168.1.0. Make sure you install and start an nfs server.<br />
<br />
Then, at the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
setenv serverip <PC ipaddress><br />
setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer the to the board:<br />
<br />
tftp c0700000 uImage_v1<br />
<br />
Set boot arguments:<br />
<br />
setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/nfs nfsroot=<PC ipaddress>:/nfsroot ip=dhcp"<br />
<br />
Of course again with filling in the PC ip address.<br />
<br />
And finally boot the image:<br />
<br />
bootm c0700000<br />
<br />
Note: you probably want to avoid that you have to retype these commands every time you want to boot. <br />
This can be achieved easily by issuing the following commands on the u-boot prompt:<br />
<br />
setenv serverip <PC ipaddress><br />
setenv ipaddr <board ipaddress><br />
setenv bootargs_nfs mem=128M console=ttyS2,115200n8 root=/dev/nfs nfsroot=<PC ipaddress>:/nfsroot ip=dhcp<br />
setenv bootcmd 'setenv bootargs $bootargs_nfs;tftp c0700000 uImage.v1; bootm c0700000'<br />
saveenv<br />
<br />
Make sure to use single quotes in the last setenv command. Of course you can replace uImage.v1 with whatever name your file has in your /tftpboot directory.<br><br />
After issueing these five commands the board will automatically boot (after a timeout) whenever you power the board or press the reset button (of course assuming the right files are in your /tftpboot and /nfsroot directories and the nfsserver and tftp server are running).<br />
<br />
==== Booting Linux Kernel from SD or SATA ====<br />
<br />
Currentlythe provided u-boot does not allow booting from either SD or SATA.<br />
However, it is possible to boot from nand and have the root filesystem loaded from SD or SATA.<br><br />
If you want to do so, you have to figure out the right partition for the root filesystem and add that to your bootargs.<br />
<br />
E.g. in u-boot say something like:<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 root=/dev/sda1 rootwait<br />
<br />
Where you replace /dev/sda1 with the name of the device that contains your root filesystem. /dev/sda1 is a good name for sata partition 1 if no usb or sd devices are present.<br />
Note that the rootwait argument is needed. It tells the kernel to wait until the disk has settled.<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Wikipedia : http://en.wikipedia.org/wiki/Hawk_Board<br />
* Photos(Flickr): http://www.flickr.com/photos/hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1<br />
<br />
==Guide Links==<br />
<br />
* Ubunty Jaunty on the hawkboard : http://blog.binaerwelt.com/2010/02/ubuntu-on-the-hawkboard/<br />
* Android on the hawkboard : http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=17540Hawkboard2010-02-18T20:23:40Z<p>FransMeulenbroeks: /* Booting Linux Kernel and Mounting NFS (Network File System) */ added content</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool] ([http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe Needs .NET Framework])<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
<br />
Following process used on Windows family of Operating System: <br />
* User can use mono utility with dvflasher.ext program to load u-boot on Linux system. <br />
* Details To be updated <br />
<br />
Following process used on Windows family of Operating System: <br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses, For e.g. <br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58<br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
<br />
You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [http://code.google.com/p/hawkboard/downloads/list]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running. <br><br />
At the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
$setenv serverip <PC ipaddress><br />
$setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer files to the board:<br />
<br />
$tftp c0700000 uImage_v1<br />
$tftp c1180000 ramdisk_v1.gz<br />
<br />
If you broke your bootargs previously then:<br />
<br />
$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M"<br />
<br />
And finally boot the images:<br />
<br />
$bootm c0700000<br />
<br />
==== MISC ====<br />
If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code<br />
<br />
mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;<br />
<br />
For booting over MMC the bootargs should be<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off<br />
<br />
For booting android over MMC the bootargs should be<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2<br />
<br />
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard<br />
<br />
<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
You should find a kernel and a root file system image if you haven't found already. Then copy the kernel to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running.<br />
<br />
Next as root create a directory /nfsroot and populate it with your root filesystem. Under linux make sure you have a file /etc/exports that contains:<br />
<br />
/nfsroot 192.168.1.0/255.255.255.0(rw)<br />
<br />
Assuming your subnet is 192.168.1.0. Make sure you install and start an nfs server.<br />
<br />
Then, at the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
setenv serverip <PC ipaddress><br />
setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer the to the board:<br />
<br />
tftp c0700000 uImage_v1<br />
<br />
Set boot arguments:<br />
<br />
setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/nfs nfsroot=<PC ipaddress>:/nfsroot ip=dhcp"<br />
<br />
Of course again with filling in the PC ip address.<br />
<br />
And finally boot the image:<br />
<br />
bootm c0700000<br />
<br />
Note: you probably want to avoid that you have to retype these commands every time you want to boot. <br />
This can be achieved easily by issuing the following commands on the u-boot prompt:<br />
<br />
setenv serverip <PC ipaddress><br />
setenv ipaddr <board ipaddress><br />
setenv bootargs_nfs mem=128M console=ttyS2,115200n8 root=/dev/nfs nfsroot=<PC ipaddress>:/nfsroot ip=dhcp<br />
setenv bootcmd 'setenv bootargs $bootargs_nfs;tftp c0700000 uImage.v1; bootm c0700000'<br />
saveenv<br />
<br />
Make sure to use single quotes in the last setenv command. Of course you can replace uImage.v1 with whatever name your file has in your /tftpboot directory.<br><br />
After issueing these five commands the board will automatically boot (after a timeout) whenever you power the board or press the reset button (of course assuming the right files are in your /tftpboot and /nfsroot directories and the nfsserver and tftp server are running).<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Wikipedia : http://en.wikipedia.org/wiki/Hawk_Board<br />
* Photos(Flickr): http://www.flickr.com/photos/hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=17539Hawkboard2010-02-18T20:11:16Z<p>FransMeulenbroeks: updated instructions</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool] ([http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe Needs .NET Framework])<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
<br />
Following process used on Windows family of Operating System: <br />
* User can use mono utility with dvflasher.ext program to load u-boot on Linux system. <br />
* Details To be updated <br />
<br />
Following process used on Windows family of Operating System: <br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses, For e.g. <br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58<br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
<br />
You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [http://code.google.com/p/hawkboard/downloads/list]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. In order to do so you need to run a tftp server on your system. Under linux a good choice is atfptd, but you can also use others. Typically a linux tftp server exports the directory /tftpboot. Make sure before you continue that your ftp server is running. <br><br />
At the u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
$setenv serverip <PC ipaddress><br />
$setenv ipaddr <board ipaddress><br />
<br />
<PC ipaddress> should be the address of the PC running the tftp server.<br><br />
<board ipaaddress> should be an address that is not in use on the same subnet as the tftp server.<br><br />
Transfer files to the board:<br />
<br />
$tftp c0700000 uImage_v1<br />
$tftp c1180000 ramdisk_v1.gz<br />
<br />
If you broke your bootargs previously then:<br />
<br />
$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M"<br />
<br />
And finally boot the images:<br />
<br />
$bootm c0700000<br />
<br />
==== MISC ====<br />
If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code<br />
<br />
mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;<br />
<br />
For booting over MMC the bootargs should be<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off<br />
<br />
For booting android over MMC the bootargs should be<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2<br />
<br />
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard<br />
<br />
<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Wikipedia : http://en.wikipedia.org/wiki/Hawk_Board<br />
* Photos(Flickr): http://www.flickr.com/photos/hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=17538Hawkboard2010-02-18T19:53:17Z<p>FransMeulenbroeks: /* Booting Linux Kernel and Mounting RAMDISK */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool] ([http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe Needs .NET Framework])<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
<br />
Following process used on Windows family of Operating System: <br />
* User can use mono utility with dvflasher.ext program to load u-boot on Linux system. <br />
* Details To be updated <br />
<br />
Following process used on Windows family of Operating System: <br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses, For e.g. <br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58<br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
<br />
You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [http://code.google.com/p/hawkboard/downloads/list]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. At u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
$setenv serverip <PC ipaddress><br />
$setenv ipaddr <board ipaddress><br />
<br />
Transfer files to the board:<br />
<br />
$tftp c0700000 uImage_v1<br />
$tftp c1180000 ramdisk_v1.gz<br />
<br />
If you broke your bootargs previously then:<br />
<br />
$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M"<br />
<br />
And finally boot the images:<br />
<br />
$bootm c0700000<br />
<br />
==== MISC ====<br />
If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code<br />
<br />
mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;<br />
<br />
For booting over MMC the bootargs should be<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off<br />
<br />
For booting android over MMC the bootargs should be<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2<br />
<br />
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard<br />
<br />
<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Wikipedia : http://en.wikipedia.org/wiki/Hawk_Board<br />
* Photos(Flickr): http://www.flickr.com/photos/hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=17537Hawkboard2010-02-18T18:54:36Z<p>FransMeulenbroeks: removed reference to contest that is over</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool] ([http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe Needs .NET Framework])<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
<br />
Following process used on Windows family of Operating System: <br />
* User can use mono utility with dvflasher.ext program to load u-boot on Linux system. <br />
* Details To be updated <br />
<br />
Following process used on Windows family of Operating System: <br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses, For e.g. <br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58<br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
<br />
You should find a kernel and a ramdisk image if you haven't found already. You can download samples from [http://code.google.com/p/hawkboard/downloads/list]. Then copy these files to your "/tftpboot" directory assuming you will use tftp for transferring files to your board. At u-boot prompt:<br />
<br />
Set ethernet connection:<br />
<br />
$setenv serverip <PC ipaddress><br />
$setenv ipaddr <board ipaddress><br />
<br />
Transfer files to the board:<br />
<br />
$tftp c0700000 uImage_v1<br />
$tftp c1180000 ramdisk_v1.gz<br />
<br />
If you broke your bootargs previously then:<br />
<br />
$setenv bootargs "mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M<br />
<br />
And finally boot the images:<br />
<br />
$bootm c0700000<br />
<br />
==== MISC ====<br />
If you find screen broken, do this before bootm in u-boot, ideally this should go into kernel code<br />
<br />
mw.l 0x01c14110 0x44442222 1;mw.l 0x01c14114 0x44400000 1;mw.l 0x01c14118 0x04604404 1;<br />
<br />
For booting over MMC the bootargs should be<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait ip=off<br />
<br />
For booting android over MMC the bootargs should be<br />
<br />
setenv bootargs mem=128M console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p1 rootwait ip=off init=/init androidboot.console=ttyS2<br />
<br />
Android for hawkboard is here http://labs.embinux.org/index.php/Android_Porting_Guide_to_OMAP-L_138_HawkBoard<br />
<br />
<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Wikipedia : http://en.wikipedia.org/wiki/Hawk_Board<br />
* Photos(Flickr): http://www.flickr.com/photos/hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard_Community&diff=15978BeagleBoard Community2009-12-28T15:35:51Z<p>FransMeulenbroeks: added training materials</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
This page collects information about [http://www.ti.com/ TI's] [http://www.arm.com/ ARM] based [http://focus.ti.com/general/docs/gencontent.tsp?contentId=36915&amp;DCMP=OMAP_Feb27_2008&amp;HQS=Other+PR+omap3503pr OMAP3] [http://beagleboard.org Beagle Board].<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:''' [http://www.tincantools.com/product.php?productid=16147&cat=0&page=1&featured Zippy] Expansion boards for the [[BeagleBoard]] are now available! In Canada, check out [http://robotcraft.ca RobotCraft] in London, Ontario</div><br />
<br />
<br />
=Events=<br />
* Each last Saturday of the month, next August 29, 2009: [[BeagleBoard/bangalore user meet|BeagleBoard Bangalore user meeting]] (Beagle Clinic India)<br />
* all over the world 2009: [http://www.ti.com/corp/docs/landing/techday09/index.shtml# TI Technology Days 2009]. <br />
* ongoing 2009: [[BeagleBoard/contest|Beagle Sponsored Project Program]] - add a cool project and get a free BeagleBoard to realize it!<br />
<br />
=Hardware=<br />
<br />
The Beagle Board is ''a low-cost, fan-less single-board computer based on TI's OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise'' (from [http://beagleboard.org/ beagleboard.org]). It uses a TI [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor (ARM Cortex-A8 superscalar core ~600MHz paired with a TMS320C64x+ DSP ~430MHz and an Imagination SGX 2D/3D graphics processor). See [http://focus.ti.com/docs/prod/folders/print/omap3530.html#features OMAP3530 features] for more processor features. [[BeagleBoard#Availability|Price is USD 149]]. The design goal was to make it as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See [http://beagleboard.org/brief What is Beagle?] and [http://linuxdevices.com/news/NS5852740920.html LinuxDevices article] for more details.<br />
<br />
The videos [http://uk.youtube.com/watch?v=fL_XMieanSc Beagle Board Beginnings] and [http://uk.youtube.com/watch?v=FuVwh_VrIxk Beagle Board 3D, Angstrom, and Ubuntu] give you a good intro about what BeagleBoard is about and its capabilities.<br />
<br />
==Components==<br />
<br />
{|border=0<br />
!Top view of rev B:<br />
!Top view of rev C:<br />
|-<br />
|[[Image:Bb revb top numbered.jpg]]<br />
|[[Image:Bb revc top numbered.jpg]]<br />
|-<br />
|}<br />
{|border=1<br />
!No.<br />
!Name<br />
!Comment<br />
|-<br />
|'''1'''<br />
|[http://www.ti.com/omap35x OMAP3530] processor + 256MB NAND<br />
<br />
+ 128MB DDR (rev B)<br />
<br />
+ 256MB DDR (rev C)<br />
|PoP: Package-On-Package implementation for Memory Stacking<br />
[http://www.micron.com/products/partdetail?part=MT29C2G24MAKLAJG-6%20IT 256MB NAND/128MB Mobile DDR SDRAM] available from [http://www.digikey.com/scripts/US/DKSUS.dll?Detail?name=557-1435-ND DigiKey]<br />
<br />
([http://www.micron.com/products/partdetail?part=MT29C4G48MAPLCJI-6%20IT 512MB NAND/256MB Mobile DDR SDRAM] available from [http://www.digikey.com/scripts/US/DKSUS.dll?Detail?name=557-1436-ND DigiKey])<br />
<br />
[http://www.micron.com/products/mcps/beagleboard Micron's multi chip packages (MCPs) for Beagle Board]<br />
|-<br />
|'''2'''<br />
|[http://focus.ti.com/docs/prod/folders/print/tfp410.html DVI chip (TFP410)]<br />
|<br />
|-<br />
|'''3'''<br />
|[[BeagleBoard#DVI|DVI-D]]<br />
|Connection via HDMI connector<br />
|-<br />
|'''4'''<br />
|[[BeagleBoard#JTAG|14-pin JTAG]]<br />
|1.8V only!<br />
|-<br />
|'''5'''<br />
|Expansion connector: I2C, I2S, SPI, MMC/SD<br />
|User must solder desired header into place<br />
|-<br />
|'''6'''<br />
|[[BeagleBoard#User_button|User button]] <br />
|Allows setting boot order.<br />
|-<br />
|'''7'''<br />
| Reset button<br />
|<br />
|-<br />
| '''8'''<br />
|[[BeagleBoard#EHCI|USB 2.0 EHCI HS]]<br />
|Rev A and B: not working, unpopulated<br />
<br />
Rev C: populated and working<br />
|-<br />
|'''9'''<br />
|SD/MMC+<br />
| SDHC cards are supported<br />
|-<br />
|'''10'''<br />
|[[BeagleBoard#RS232|RS-232 serial]]<br />
|<br />
|-<br />
|'''11'''<br />
|Alternate power <br />
|normally powered by USB (unmounted on REV Ax boards, see [[BeagleBoard#Errata|errata]])<br />
|-<br />
|'''12'''<br />
|[[BeagleBoard#OTG|USB 2.0 HS OTG]] <br />
|Mini-AB connector. Board can be powered from port. <br />
|-<br />
|'''13'''<br />
|Stereo In<br />
|<br />
|-<br />
|'''14'''<br />
|Stereo Out<br />
|<br />
|-<br />
|'''15'''<br />
|S-Video<br />
|<br />
|-<br />
|'''16'''<br />
|TWL4030 (Rev A thru C2 inc.)<br />
[http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] (Rev C3 onwards)<br />
|Audio CODEC, USB port, power-on reset and power management. The TWL4030 is pin-compatible with the [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] chip and was used due to the very limited availability of the TPS65950 in early board revisions.<br />
|-<br />
|'''17'''<br />
|LCD<br />
|only rev C<br />
|-<br />
|'''18'''<br />
|USB power<br />
|<br />
|-<br />
|'''19'''<br />
|Host PHY<br />
|<br />
|-<br />
|'''20'''<br />
|32kHz<br />
|<br />
|-<br />
|'''21'''<br />
|12MHz<br />
|<br />
|-<br />
|'''22'''<br />
|RS232 XVCR<br />
|<br />
|-<br />
|'''23'''<br />
|PWR SW<br />
|<br />
|-<br />
|'''24'''<br />
|VBAT<br />
|<br />
|-<br />
|}<br />
<br />
* Board size: 3" x 3" (about 76.2 x 76.2 mm)<br />
* Weight: [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/beagleboard.png ~37g]<br />
* Currently 6 layer PCB; target: 4 layer<br />
<br />
'''Bottom of rev B:'''<br />
<br />
[[Image:Beagle_bottom.jpg]]<br />
<br />
See [http://www.flickr.com/photos/jadon/sets/72157606050144396/ jadonk's photostream] for some more detailed BeagleBoard pictures.<br />
<br />
==Manual==<br />
<br />
See [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)].<br />
<br />
==Schematic==<br />
<br />
Schematic of BeagleBoard Rev. C3 is available as part of [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)]. Rev C3 and previous are also available from [http://beagleboard.org/hardware/design BeagleBoard.org design page] including in PDF format. Please make sure that you ''read, understand and agree'' [http://groups.google.com/group/beagleboard/msg/ee3e1bc927551ffc Jason's mail] before using this.<br />
<br />
==Layout== <br />
<br />
Layout of BeagleBoard Rev. C3 is available as part of [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)]. Rev C3 and previous layouts are also available from the [http://beagleboard.org/hardware/design BeagleBoard.org design page]. Please make sure that you ''read, understand and agree'' [http://groups.google.com/group/beagleboard/msg/ee3e1bc927551ffc Jason's mail] before using this.<br />
<br />
==Errata==<br />
<br />
# ''Boards revision A only'': The DC power jack pinout is incorrect on the PCB layout. DC_5V and GND are switched on PCB layout. Normally, the power jack has DC_5V on the center pin and GND on the sleeve (see Figure 20 of [http://www.beagleboard.org/uploads/BBSRM_6.pdf Beagle HW manual]). But on revision Ax boards the PCB layout has GND on center and DC_5V on sleeve. For this reason it is currently removed. It will be back on the Rev B board. Workaround is to remove wire connecting the two power pins on revision Ax boards and use external [http://amethyst.openembedded.net/~koen/beagleboard/beagle-power-pads.jpg power supply with switched connector] (do not connect anything to the “?” terminal. USB power will be permanently disabled and the board can only be powered from the 5V.) See [http://www.flickr.com/photos/koenkooi/2512038988/ Koen's Beagleboard powermod picture] with short descriptions, too.<br />
# ''Boards revision < A5 only'': There is excess voltage drop across R6 which is used to measure the current consumption on the board. This needs to be a .1 ohm instead of a 1 ohm resistor (SMD 0805). All revision A5 boards have been updated to .1. You can also just solder in a jumper to J2 bypassing the current read point. This issue can cause issues with the USB host port as the voltage supplied to that port can be too low.<br />
# ''Boards revision A only'': User LEDs 0 and 1 are shorted on the layout preventing them from being controlled individually. You need to control both GPIO_149 and GPIO_150 to turn on or off both LEDs. This is fixed in the Rev B boards.<br />
# ''Boards revision < A5 only'': There is an issue where on some boards the 1.8V has excessive noise on it. This is the result of two incorrect parts L1 and L3 being installed on the board. The inductors that were initially installed in the switchers are 100uH and need to be 1uH. This change will require that the board be returned for update. To check for correct parts, have a look to bottom of BeagleBoard. L1 - L3 are the larger parts there. They all have to be labeled with "102" (== 1uH). If any of these three inductors are labeled with "104" (== 100uH) they are wrong and have to be exchanged.<br />
# ''Boards revision A and B'': USB HOST (EHCI) failures. See [http://code.google.com/p/beagleboard/issues/detail?id=15 issue 15] and [http://code.google.com/p/beagleboard/wiki/USBHostTestREPRODUCE USB host test reproduce]. This is a hardware defect. [http://www.beagleboard.org/irclogs/index.php?date=2008-05-29#T00:27:06 Most probably] Rev. B board does not have the EHCI USB connector mounted. Workaround: Use [[BeagleBoard#OTG|OTG port]] with something like [http://trisoft.de/pics/ZHost.JPG mini A to USB A adapter] instead.<br />
# ''Boards revision A and < B4'': Plugging in a USB OTG cable will prevent Beagle from booting (with git kernel), see [http://code.google.com/p/beagleboard/issues/detail?id=19 issue #19], too. This is due to missing filtering capacitor at USB OTG VBUS. When the kernel driver detects that a USB OTG cable is inserted it enables the charge pump to generate VBUS. With no filtering VBUS looks like any switching regulator output with no filtering -- a huge voltage spike when the switch is on, followed by a rapid decay to a low voltage until the next switch on period. The capacitor is there to store energy between the output switch ON and OFF time, the feedback loop in the regulator does sample the cap voltage. Fix is to piggy-back solder a 0603 2.2uF ceramic capacitor to D3, see [http://www.sakoman.net/omap3/beagle/vbus-mod-d3.jpg VBUS modification D3 picture]. Revision B4 boards and newer have this fix applied. Thanks to [http://groups.google.com/group/beagleboard/msg/eb789e15c99a673d Steve] for debugging this!<br />
# ''Boards revision A and < B5'': There is some issue with 32kHz clock depending on system configuration used to clock some OMAP3 peripherals. From this e.g. GPIOs, GPTIMERs, and USB on Beagle might be affected. See [http://code.google.com/p/beagleboard/issues/detail?id=22 Issue 22]. Symptom from this is that after booting Linux kernel serial console hangs after some time and no serial input/output is possible any more. There is one software workaround and one hardware fix for this: (A) Software workaround: Don't use 32kHz timer to clock Linux, instead use MPU timer. (B) Hardware workaround: Remove [http://www.flickr.com/photos/25691331@N04/2766671437/in/pool-beagleboard capacitor C70], which improves the 32kHz clock quality and avoids hang-up. Note: Revision A boards have capacitor C70 [http://www.flickr.com/photos/25691331@N04/2766671437/in/pool-beagleboard at the same location] as rev. B boards. Note: Board revision >= B5 removes capacitor C70.<br />
# ''Random boards, quite rare, revision < B6'': Some random boards and quite rare, show directly after purchasing broken serial communication from host PC to BeagleBoard. Symptom is that you get a new board, get serial output from BeagleBoard in terminal program, but can't type anything at U-Boot prompt (Note: Don't mix this with errata #7. With errata #7 you are able to use U-Boot normally, but Linux prompt input stops after some time). Most users don't have this issue, though. So, first double check your serial configuration ([[BeagleBoardFAQ#Serial_connection_.231|FAQ1]], [[BeagleBoardFAQ#Serial_connection_.232|FAQ2]] and [[BeagleBoardFAQ#Serial_connection_.233|FAQ3]]). Only if you are really, really sure that anything with your serial connection is fine, consider sending the board back doing a [http://beagleboard.org/support/rma RMA request]. This issue was resolved on revision B6 and later boards.<br />
<br />
For additional (software) issues and enhancement requests see [http://code.google.com/p/beagleboard/issues/list Beagle board open point list & issue tracker], too.<br />
<br />
Note: BeagleBoard revision B6 uses different package for U9/U11.<br />
<br />
==Clocking==<br />
<br />
Some [http://www.beagleboard.org/irclogs/index.php?date=2008-07-08#T21:12:23 notes] about (ARM processor) clock rates at BeagleBoard:<br />
<br />
* ARM Cortex-A8 processor is currently clocked at 500MHz<br />
* 500MHz is the default used because it is a balance of performance and longevity<br />
* For OMAP35x 600MHz is max recommended<br />
* At 600MHz OMAP35x is considered to be 'overdrive' and it does not have the same life expectancy<br />
* Higher than 600MHz is out of spec and no guarantee it will work at all (or not damage itself)<br />
* Also keep in mind that if you go higher you probably want to increase the core voltage. Some of this is mentioned in table 3-3 of the [http://focus.ti.com/lit/ds/symlink/omap3530.pdf OMAP3530 data sheet]. Some numbers:<br />
<br />
{| border="1"<br />
||'''ARM'''||'''DSP'''||'''core voltage'''<br />
|-<br />
|600 MHz||430 MHz||1.35V<br />
|-<br />
|550 MHz||400 MHz||1.27V<br />
|-<br />
|500 MHz||360 MHz||1.2V<br />
|}<br />
<br />
* For some OMAP3 clock, voltage and power management discussion see [http://focus.ti.com/lit/an/sprt495/sprt495.pdf OMAP3 power management white paper], too.<br />
* The OMAP3 chip on the Beagle lacks the efuses needed for using the SmartReflex technology, see [http://www.beagleboard.org/irclogs/index.php?date=2009-02-26#T10:44:24].<br />
* There is a thermal monitor in the core, you could use to scale frequency up and down<br />
<br />
To set CPU clock to 600 MHz, there are two options. Both '''do not''' adjust the voltage, so the system may become unstable:<br />
<br />
* The u-boot command "mw 48004940 0012580c" will temporarily set the CPU clock to 600 MHz (not permanent over reset).<br />
* To permanently set the CPU clock to 600 MHz, include the above command in the "bootcmd" variable or equivalent script.<br />
<br />
==Power management==<br />
<br />
* Detailed OMAP3 Power Management Information can be found [[OMAP_Power_Management|HERE]]<br />
* Latest Linux kernel power management development for TI OMAP SoCs is maintained in [http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=summary Kevin's linux-omap-pm git tree]<br />
* Russ' Beagle HW modifications resulted in [http://groups.google.com/group/beagleboard/browse_thread/thread/197a8ef6b46cc828 8mW sleep for Beagle Board]<br />
<br />
Without PM kernel, the Beagle [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/index.htm consumes ~1.5 watts idle, however it also uses the same amount under load] (see bottom of that page).<br />
<br />
==DLP Pico projector==<br />
<br />
Texas Instruments is developing a Pico Video Projector Kit (PVPK) as a peripheral for the Beagle Board. The stand alone pico projector will support VGA resolution (640 x 480), RGB 888 input through a DVI interface. The physical connector on the projector will be HDMI. See [http://groups.google.com/group/beagleboard/msg/10e218972380ee48 mailing list] and [http://www.youtube.com/watch?v=-tUBXD-KRp4 Beagle Running Angstrom (VGA) on DLP Pico Projector] for more details.<br />
<br />
It is available from [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-23836-ND DigiKey] for $349.<br />
<br />
See [http://blog.makezine.com/archive/2009/01/tis_beagleboard_and_dlp_pico_projector.html?CMP=OTC-0D6B48984890 article from Make], too.<br />
<br />
DigiKey videos [http://www.youtube.com/watch?v=KBbCdnOj5vg part 1], [http://www.youtube.com/watch?v=zymOmduNWyI part 2] and [http://www.youtube.com/watch?v=Uj19Bi5NYeU part 3].<br />
<br />
==Interfacing to Raw LCD Panels==<br />
<br />
Currently on Rev A / B boards there is no direct access to the LCD lines before they enter the DVI framer. The REV C2 provides access to these lines. Several projects to interface an LCD to the beagleboard exist:<br />
<br />
* [[BeagleBoardRawLCD|interfacing to Raw LCD Panels]] article <br />
* [http://digitalsurveyinstruments.com/beagleperiphials/hdmi2parallel/doc/index.htm hdmi to parallel] workaround method<br />
* [http://www.harbaum.org/till/dvi2par/index.shtml dvi2par cheap diy HDMI to parallel converter]<br />
<br />
=Availability=<br />
<br />
BeagleBoards, currently Rev. C3 boards, are available from<br />
<br />
* [http://www.mouser.com/beagleboard Mouser]<br />
* [http://dkc1.digikey.com/us/mkt/beagleboard.html Digi-Key] with part number [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-23428-ND 296-23428-ND].<br />
<br />
Note: For non-US Digi-Key free shipping orders:<br />
<br />
* Click the US flag on the top right corner of [http://dkc1.digikey.com/us/mkt/beagleboard.html Digi-Key] BeagleBoard page to come to the international page<br />
* Select ''Order Online'' for your country<br />
* Add quantity ''1'' and part number ''296-23428-ND''<br />
* Click ''Add to order''<br />
<br />
When ordering over 65 EUR / GBP 50 product (BeagleBoard is above), for Europe the price depends on the actual dollar to EUR/GBP rate. On nov 9, 2008 the price was EUR 124 with free shipping.<br />
<br />
Note: Some users report that they got some questions from DigiKey to be answered before board shipping is done.<br />
<br />
Note: While you get free shipping, most probably you have to pay tax e.g. ordering from Europe. Users report that they had to pay EUR ~34 - 44 VAT + importing taxes (depending on european country), resulting in EUR 137 - 147 ordering from Europe.<br />
<br />
Note: For European users, [http://www.ebv.com/fileadmin/products/Press_Print/Campaigns/2009/Product_Campaigns/Texas_Beagle_Board_englisch.pdf EBV Elektronik] sells its own blue version of the board for 179 EUR, which includes all useful accessories (DVI cable, serial cable, USB 2.0 Ethernet, USB hub, 2 GB MMC, power supply, Linux BSP).<br />
<br />
Note: German (Europe) users can order through German shops, too. For higher price, though. <br />
* [http://shop.embedded-projects.net/product_info.php/info/p159_BeagleBoard--OMAP-3-.html Embedded Projects Shop] sells BeagleBoard for EUR 199.00 + shipping.<br />
* [http://www.handheld-linux.com/wiki.php?page=Beagle%20Board Handheld-Linux]<br />
<br />
See below for ''hardware'' differences of the revisions. There are no ''software'' differences. <br />
<br />
==Revision A==<br />
<br />
There are some limited early revision Ax prototypes out there used by some hackers hanging around at #beagle channel on irc.freenode.net. See [[BeagleBoard#Errata|errata]] for limitations.<br />
<br />
==Revision B==<br />
<br />
Revision B is same as revision A, except<br />
* fix for shorted LEDs 0/1<br />
* fix for wrong power jack pinout<br />
* revision B6 uses different package for U9/U11<br />
Still has USB HOST (EHCI) failures. USB HOST (EHCI) connector isn't mounted.<br />
<br />
There are 4 revisions of the B board in the field: B4, B5, B6 and B7.<br />
<br />
The most notable difference is the use of the ES3.0 silicon in B6 and B7, other changes are not relevant to software developers.<br />
<br />
==Revision C2==<br />
Revision C2 is same as revision B7 except:<br />
* USB HOST (EHCI) is operational on revision C2, with standard USB A female connector.<br />
* Add interface for raw LCDs ([http://groups.google.com/group/beagleboard/msg/2e82c3ed6061d9d2 mockup])<br />
* It uses updated OMAP3 revision. BeagleBoard revisions B4+B5 uses OMAP3 ES 2.1 (engineering sample), while BeagleBoard revision C2 uses ES 3.0. OMAP3 ES 3.0 fixes minor issues:<br />
** updated ARM Cortex A8 silicon (r1p3) fixing a very rare [http://elinux.org/BeagleBoardFAQ#NEON_performance NEON issue] that has not been seen in real code<br />
* Power measurement feature<br />
* Uses [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] OMAP power controller instead of TWL4030<br />
* Three additional PWM signals on the expansion connector added as pin mux options to existing pins ([http://groups.google.com/group/beagleboard/browse_thread/thread/d5872b7c6d74592c?hl=en# message])<br />
* Revision detection (to be able to identify C2 board from older boards by software, e.g. for different pin mux)<br />
* 256MB RAM ([http://groups.google.com/group/beagleboard/msg/3a38d0f21cefd6b1?hl=en message]) (and still 256MB NAND like rev B)<br />
<br />
Note: Revision C2 is the first production version, and all orders from from Digi-Key are shipped as Rev C2.<br />
<br />
==Revision C3==<br />
As revision C2 boards are [http://groups.google.com/group/beagleboard/msg/e41d3c97aa7d4951 sold out], revision C3 will ship now.<br />
<br />
Revision C3 is same as revision C2 [http://groups.google.com/group/beagleboard/msg/037318fbc44139d5 except]:<br />
* Optional RTC [http://parts.digikey.com/1/parts/1454-battery-lith-coin-3v-12-5mm-vert-vl-1220-vcn.html VL1220 series] backup battery<br />
* Mounting holes conected to ground<br />
* Slightly improved S-Video<br />
<br />
==Clones==<br />
===EBVBeagle===<br />
EBV build and sell their own BeagleBoard called [http://www.ebv.com/en/products/categories/details/product/ebvbeagle-board EBVBeagle], see e.g. [http://fl0rian.wordpress.com/2009/03/08/the-other-beagleboard/].<br />
It is actually a BeagleBoard revision C2 with green PCB boxed with some useful accessories. It comes as a quite complete starter kit with AC adapter, USB to Ethernet adapter, MMC card, USB hub and some cables.<br />
More information in [http://www.ebv.com/en/press-print/news-pr/details/news//press-releas-54.html official press release].<br />
<br />
===Mini Board===<br />
[[Mini_Board|ICETEK-OMAP3530-Mini]] is a chinese BeagleBoard clone.<br />
<br />
===DevKit 8000===<br />
[[DevKit8000]] is a Chinese BeagleBoard clone, slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard).<br />
<br />
===IGEPv2===<br />
[http://www.igep-platform.com/ IGEPv2 Platform] is a Spanish BeagleBoard clone, slightly larger, with additional peripherals like e.g. ethernet connector, wifi+bluetooth.<br />
<br />
==BeagleBoard-based products==<br />
* [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book], see [http://gigglehd.com/zbxe/hdforum/files/attach/images/899852/493/987/001/always_innovating_touch_book_0011.jpg]<br />
<br />
==Beagle case==<br />
<br />
*[http://specialcomp.com/beagleboard/ Special Computing]<br />
*[http://groups.google.com/group/beagleboard/browse_thread/thread/1c82316019633e51 SketchUp 3D model]<br />
<br />
=Adapters=<br />
<br />
For quite detailed information about all BeagleBoard peripherals see [http://www.beagleboard.org/uploads/BBSRM_6.pdf BeagleBoard HW Reference Manual (rev. B6)].<br />
<br />
See [[BeagleBoardPeripherals| BeagleBoard peripherals and adapters page]] for useful add ons for Beagle Board.<br />
<br />
==Expansion boards==<br />
* [[BeagleBoardPinMux|Expansion Board Support Information]]<br />
* [[BeagleBoard Zippy]] expansion board is now available from [http://www.tincantools.com/product.php?productid=16147&cat=0&page=1&featured TinCanTools] for $79.00. basic specs are:<br />
** Battery Backed RTC<br />
** Second MMC slot<br />
** 10BaseT Ethernet<br />
** Second RS-232<br />
** +5V level I2C<br />
** AT24 EEPROM<br />
* [https://sourceforge.net/apps/mediawiki/beagleserver/index.php?title=Main_Page BeagleServer expansion board] is an Open Hardware project. Currently a high level design note is available, which describes the components to be used. It aims at the following specifications :<br />
** Aims at transforming a Beagleboard or IGEPv2 into a full-blown home server that could cater to home automation needs<br />
** Compatible with both the Beagleboard and the IGEPv2<br />
** 12V battery powered, or mains-powered (accepts 9 ~ 18V)<br />
** Enough power for an internal 2.5" or 3.5" hard-disk, USB-attached<br />
** +3.3V and +5V I2C; +5V I2C is buffered with a line buffer accepting a larger capacitance which allows I2C devices at distances up to 50m<br />
** I2C to 1-wire hub (using DS2482-800 which is supported by OWFS); plugging in 1-wire devices lights a LED which makes it easy to confirm if a 1-wire device is detected.<br />
** Real time clock with super-capacitor backup<br />
** Internal monitoring of the HW health (power supplies + temperature)<br />
** Some relays<br />
** Ethernet-based console port<br />
** a few other options (RS232 interface with CTS and RTS, SPI port, S-video, additional SD-card)<br />
* [http://www.hy-research.com/beagle_expansion.html HY Research] has some expansion board basics and example.<br />
* [http://www.hervanta.com/stuff/Beaglebot#Expansion_Board Beaglebot] uses a custom extension board.<br />
* [http://beagleboard.org/leopard Leopard Board], a Beagle buddy web camera<br />
* There is also a VGA DB15 adapter board under development for the Rev C2 board. It should be available through a yet to be annnounced outlet.<br />
<br />
In Canada, check out [[http://robotcraft.ca RobotCraft]] in London, Ontario for expansion boards.<br />
<br />
==JTAG==<br />
<br />
Depending on your JTAG tool, you'd need a 14-pin to 20-pin adapter to use an ARM debugger. The 14-pin TI JTAG connector is used on BeagleBoard and is supported by a large number of JTAG emulation products.<br />
See [[BeagleBoardJTAG]] for more information.<br />
<br />
==RS232==<br />
<br />
The pinout on the beagle board is "AT/Everex" or "IDC10". You can buy [http://www.pccables.com/07120.htm IDC10 to DB9M adapters] in many places as they are commonly used for old PCs. Depending on your local configuration, you may need a [http://en.wikipedia.org/wiki/Null_modem 9-Pin NullModem] cable to connect BeagleBoard to serial port of your PC. From [http://www.tincantools.com/ TinCanTools] there is a [http://www.tincantools.com/product.php?productid=16144&cat=0&page=1&featured RS-232 DB-9 adapter] and [[media:flyswatter-ti-uart.pdf|adapter schematic]] available. You can also probably rip one of those cables out of any old desktop computer, where it's being used to support the serial port. Be careful, though -- some of those cables will have that tenth hole filled in so you'd have to snap off the extraneous pin on your BeagleBoard. Keep looking until you find a cable with all 10 holes open.<br />
<br />
Depending on your local configuration, you may need a [http://en.wikipedia.org/wiki/Null_modem 9-Pin NullModem] cable to connect BeagleBoard to serial port of your PC. From [http://www.tincantools.com/ TinCanTools] there is a [http://www.tincantools.com/product.php?productid=16144&cat=0&page=1&featured RS-232 DB-9 adapter] and [[media:flyswatter-ti-uart.pdf|adapter schematic]] available.<br />
<br />
==USB-to-Serial Converter==<br />
<br />
Since many systems no longer come with an actual serial port, you might need to pick up a USB-to-serial converter at your local computer store to connect to your BeagleBoard. Be warned that some of them simply do not work. Many of them are based on the Prolific chip, and require the pl2303 module to be loaded. But even when two converters appear to have exactly the same characteristics as listed in /var/log/messages, if you simply can't get one to work, be ready to try a different one.<br />
<br />
==USB==<br />
There are two USB ports on the BeagleBoard, one with an EHCI controller and another with an OTG controller. As of Rev B4, the usb EHCI has been removed because of a hardware defect. Rev C will include USB EHCI working properly.<br />
<br />
===EHCI===<br />
The HS ([http://en.wikipedia.org/wiki/USB#USB_signalling HighSpeed]) USB [http://en.wikipedia.org/wiki/EHCI ECHI] controller on OMAP3 on BeagleBoard supports high-speed only. This simplifies the logic on the device. FS/LS (FullSpeed/LowSpeed) devices, such as keyboards and mice, require going through a high-speed USB 2.0 hub.<br />
<br />
According to the BeagleBoard System Reference Manual Rev C2, the EHCI port can source 5V at 500mA which is enough to power a hub and several low-power devices. However, this is only true if the BeagleBoard is powered through its power jack from a well-regulated 5V external power supply. If the BeagleBoard is powered through the OTG port, the EHCI port sources an "extremely limited" ampount of power (probably 100mA or so) so you'll need a "self-powered" USB 2.0 hub with its own external power supply. [Reference: Sections 5.6 and 7.2 of the BBSRM Rev C2.2.]<br />
<br />
===OTG===<br />
The HS USB OTG ([http://en.wikipedia.org/wiki/USB_On-The-Go OnTheGo]) controller on OMAP3 on the BeagleBoard does have support for all the USB 2.0 speeds (LS/FS/HS) and can act as either a host or a gadget/device. The HS USB OTG port is used as the default power input for the BeagleBoard. It is possible to boot the BeagleBoard using this USB port.<br />
<br />
When using the OTG port in host mode, you must power the BeagleBoard using the +5V power jack. If you connect a USB hub, you'll probably also need external power for the USB hub as well, because according to the Hardware Reference manual the BeagleBoard OTG port only sources 100 mA. This is enough to drive a single low-power device, but probably won't work with multiple devices.<br />
<br />
The Linux kernel needs to know you want to use the OTG port in host mode. I believe OTG ports are supposed to figure this out for themselves using the OTG Host Negotiation Protocol, but for now the Linux kernel may need some help. Specifically, Pin 4 (ID) of the OTG connector needs to be shorted to Pin 5 (GND) by using a [http://trisoft.de/pics/ZHost.JPG 5-pin USB Mini-A plug] which shorts these pins together in the plug. A [http://en.wikipedia.org/wiki/USB#USB_cables 5-pin USB Mini-B plug] leaves Pin 4 floating. Unfortunately, most USB Mini plugs are unmarked as to whether they are "A" or "B".<br />
<br />
You can find "mini A" adapters that have Pin 4 shorted and offer out a full-sized USB A Female jack [http://www.electronicproductonline.com/catalog/product_info.php?products_id=2043 here.]<br />
<table><br />
<tr><td><br />
Since the right cables might be hard to get, you simply can<br />
* short circuit the two pins encircled in red in the image to the right. You can do this by running a wire between the two pins. That at least allows easier undoing the change. Actually you could even have a small switch or so between 4 and 5.<br />
or<br />
* use a "mini B" cable (easier to get) and try the soldering of the two pins at the cable's connector. Depending on the cable it should be possible to open the plastic covering of mini-B port with a sharp-edged knife, then solder the two pins together, close the covering again and use some tape. This leaves the BeagleBoard unmodified.<br />
</td><td>[[Image:usb_otg.png]]</td></tr></table><br />
The Rev C BeagleBoard has a pair of pads labeled J6 on the back of the board under the OTG connector. Shorting these pads together with a wire or solder blob connects pins 4 and 5.<br />
See Figure 20 in the BeagleBoard System Reference Manual Rev C2.2.<br />
<br />
==DVI==<br />
<br />
DVI-D connection on BeagleBoard uses a [http://en.wikipedia.org/wiki/HDMI HDMI connector]:<br />
<br />
''HDMI is backward-compatible with the single-link Digital Visual Interface carrying digital video (DVI-D or DVI-I, but not DVI-A) used on modern computer monitors and graphics cards. This means that a DVI-D source can drive a HDMI monitor, or vice versa, by means of a suitable adapter or cable, but the audio and remote control features of HDMI will not be available.''<br />
<br />
BeagleBoard can be connected to a DVI monitor using HDMI female to DVI male cable.<br />
<br />
=BootRom=<br />
<br />
OMAP3 on BeagleBoard contains a BootRom. With this, BeagleBoard can boot without any code in permanent storage (NAND) or from peripherals. This is useful for first board bring up or if your BeagleBoard is bricked. For more information about BootRom booting see [http://www.ti.com/litv/pdf/sprufd6a SPRUFD6]. <br />
<br />
==User button==<br />
<br />
With user button on BeagleBoard you can configure boot order. Depending on this button, the order used to scan boot devices is changed. The boot order is (the first is the default boot source):<br />
<br />
* User button ''not'' pressed: NAND -> USB -> UART -> MMC<br />
* User button ''is'' pressed: USB -> UART -> MMC -> NAND<br />
<br />
Technically speaking, the user button configures pin SYS.BOOT[5]. See [http://focus-webapps.ti.com/general/docs/sitesearch/searchsite.tsp?selectedTopic=1653260327&numRecords=25&searchTerm=sprufd6&statusCode=null SPRUFD6] for more details.<br />
<br />
==Serial and USB boot==<br />
<br />
Historically, using OMAP3's boot ROM for serial and USB boot, there are several tools around. The newest are Nishanth' ''OMAP U-Boot Utils'', while there are still some older tools for serial boot and USB boot. It is also possible to access the [[u-boot environment variables in linux|u-boot env from linux]].<br />
<br />
===OMAP U-Boot Utils===<br />
<br />
Nishanth' [http://code.google.com/p/omap-u-boot-utils/ OMAP U-Boot Utils] provide<br />
<br />
* ''pserial'' - OMAP specific utility which downloads a file in response to ASIC ID over serial port.<br />
* ''pusb'' - OMAP specific utility which downloads a file in response to ASIC ID over USB connection.<br />
* ''ucmd'' - Send a command to U-Boot and wait till a specific match appears.<br />
* ''ukermit - Download a file from host without using kermit to U-Boot.<br />
<br />
See [http://nishanthmenon.blogspot.com/ Nishanth' blog] and [http://groups.google.com/group/beagleboard/browse_thread/thread/c5bfb1b8ed528b52# announce mail], too.<br />
<br />
===Serial boot===<br />
<br />
Besides Nishanth' ''OMAP U-Boot Utils'', to boot from USB or UART, you need a PC tool which talks with OMAP BootRom and speaks the correct protocol to download ARM target code to BeagleBoard. Currently there are two older (experimental) tools for UART boot:<br />
<br />
* [http://omapzoom.org/gf/project/omaptools/wiki PC Serial Boot perl script]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/80ad3da0eb2aa555 Linux C utility] (not working yet with below target code)<br />
<br />
See [http://groups.google.com/group/beagleboard/browse_thread/thread/ae2c601ebe104a4 USB and serial download target code] for some example target code to be downloaded to OMAP3 on BeagleBoard.<br />
<br />
===USB boot===<br />
<br />
Besides Nishanth' ''OMAP U-Boot Utils'', for USB boot, there is currently one (experimental) tool to boot BeagleBoard over USB:<br />
<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/2b9e99886bb7a747 Linux C utility]<br />
<br />
See [http://groups.google.com/group/beagleboard/browse_thread/thread/ae2c601ebe104a4 USB and serial download target code] for some example target code to be downloaded to OMAP3 on BeagleBoard.<br />
<br />
See [[BeagleBoardRecovery#USB_recovery|USB recovery section]] how to use USB boot for board recovery.<br />
<br />
==NAND boot==<br />
<br />
See [[BeagleBoardNAND|NAND boot]] article.<br />
<br />
==MMC/SD boot==<br />
<br />
Currently, [http://code.google.com/p/beagleboard/wiki/BootingBeagleBoard boot the BeagleBoard with MMC/SD] is the only working way for first board bring up.<br />
<br />
===MMC/SD formatting===<br />
<br />
As described in above MMC/SD boot description, you have to ''create a bootable partition on MMC/SD Card''. This can be done using e.g. Windows or Linux tools.<br />
<br />
'''Windows'''<br />
<br />
See ''HP USB Disk Storage Format Tool 2.0.6'' description on [http://code.google.com/p/beagleboard/wiki/BootingBeagleBoard boot the BeagleBoard with MMC/SD] page.<br />
<br />
'''Linux'''<br />
<br />
Please see [http://wiki.omap.com/index.php?title=MMC_Boot_Format OMAP3 MMC Boot Format].<br />
<br />
===Dual partition card===<br />
<br />
You can [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat create a dual-partition card], booting from a FAT partition that can be read by the OMAP3 ROM bootloader and Windows, then utilizing an ext2 partition for the Linux root file system.<br />
<br />
To mount second ext2 partition as root file system (e.g. containing contents of [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode rd-ext2.bin]) use kernel boot arguments (e.g. in uboot using ''setenv bootargs''):<br />
<br />
console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait<br />
<br />
===U-Boot booting===<br />
<br />
If your MMC/SD card formatting is correct and you put [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode MLO, u-boot.bin and uImage] on the card you should get a u-boot prompt after booting beagle board. E.g. (output from terminal program with 115200 8N1):<br />
<br />
...40T.........XH.H.U�..Instruments X-Loader 1.41<br />
Starting on with MMC<br />
Reading boot sector<br />
<br />
717948 Bytes Read from MMC<br />
Starting OS Bootloader from MMC...<br />
<br />
U-Boot 1.1.4 (Apr 2 2008 - 13:42:13)<br />
<br />
OMAP3430-GP rev 2, CPU-OPP2 L3-133MHz<br />
TI 3430Beagle 2.0 Version + mDDR (Boot ONND)<br />
DRAM: 128 MB<br />
Flash: 0 kB<br />
NAND:256 MiB<br />
In: serial<br />
Out: serial<br />
Err: serial<br />
Audio Tone on Speakers ... complete<br />
OMAP3 beagleboard.org #<br />
<br />
Using this u-boot prompt, you now can start kernel uImage stored on MMC card manually:<br />
<br />
OMAP3 beagleboard.org # mmc init<br />
OMAP3 beagleboard.org # fatload mmc 0:1 0x80000000 uimage<br />
OMAP3 beagleboard.org # bootm<br />
<br />
If you like to make that happen every boot:<br />
<br />
OMAP3 beagleboard.org # set bootcmd 'mmc init ; fatload mmc 0:1 0x80000000 uimage ; bootm' ; saveenv<br />
<br />
=Code=<br />
<br />
Code and binaries for BeagleBoard are available at various places.<br />
<br />
==Binaries==<br />
<br />
BeagleBoard pre-built binaries and source code can be found at [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode Beagle source code] and [http://code.google.com/p/beagleboard/downloads/list downloads] page. These are the locations where "official" TI code is available. Please note that this code is mainly for reference and testing. More up to date binaries and code is available by community. Community took (parts) of TI reference code, improves and updates it. <br />
<br />
Actually, [http://www.angstrom-distribution.org/node/47 Koen's prebuilt Beagleboard demo images] are up to date binaries including e17 as window manager, the abiword word processor, the gnumeric spreadsheet application, a NEON accelerated mplayer and the popular NEON accelerated omapfbplay which gives you fullscreen 720p decoding. The [http://www.angstrom-distribution.org/demo/beagleboard www.angstrom-distribution.org/demo/beagleboard] directory should contain all the files you need:<br />
<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/u-boot.bin u-boot.bin]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/MLO MLO]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/uImage uImage]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/Angstrom-Beagleboard-demo-image-glibc-ipk-2009.X-test-20090104-beagleboard.rootfs.tar.bz2 rootfs]<br />
<br />
See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat beagle wiki] on how to setup your SD card to use all this goodness.<br />
<br />
==Source==<br />
<br />
Besides above binary and source images (TI's and communities one), for various parts of Beagle software stack there are community supported [http://git.or.cz/ git] repositories available. <br />
<br />
===X-Loader===<br />
<br />
Steve did some work to consolidate and update X-Loader from various sources and put it in a [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=x-load-omap3.git;a=summary X-Loader git repository]. Get it by<br />
<br />
git clone git://gitorious.org/x-load-omap3/mainline.git xloader<br />
cd xloader/<br />
<br />
Build:<br />
<br />
make distclean<br />
make omap3530beagle_config<br />
make<br />
<br />
Result will be a ~20k sized ''x-load.bin'' in main directory.<br />
<br />
===U-Boot===<br />
<br />
[http://www.denx.de/wiki/U-Boot/WebHome Mainline U-Boot] has good support for BeagleBoard. Get it by:<br />
<br />
git clone git://git.denx.de/u-boot.git u-boot-main<br />
cd u-boot-main<br />
git checkout --track -b omap3 origin/master<br />
<br />
Build (assuming [[ARMCompilers#Recommendations|Code Sourcery GCC]]):<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- mrproper<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- <br />
<br />
Result will be a ~160k sized ''u-boot.bin'' in main directory.<br />
<br />
Note: Due to (patch and binary) size, BeagleBoard splash screen was removed from upstream version. If you want it back, use [http://groups.google.com/group/beagleboard/browse_thread/thread/3ad9b803a3418624 U-Boot v1 BeagleBoard splash screen patch].<br />
<br />
Note: For experimental U-Boot patches not ready for mainline yet, Steve's [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=u-boot-omap3.git;a=summary Beagle U-Boot git repository] is used to test them. Get it by:<br />
<br />
git clone git://gitorious.org/u-boot-omap3/mainline.git u-boot-omap3<br />
cd u-boot-omap3<br />
git checkout --track -b omap3-dev origin/omap3-dev<br />
<br />
===Linux kernel===<br />
<br />
[http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary Git repository] of [http://muru.com/linux/omap/ OMAP Linux kernel] contains Beagle support. Get it by:<br />
<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git linux-omap-2.6<br />
cd linux-omap-2.6<br />
<br />
Build:<br />
<br />
make distclean<br />
make omap3_beagle_defconfig<br />
make menuconfig # only needed if you want to change the default configuration<br />
make uImage<br />
<br />
The result will be a ''uImage'' in ''arch/arm/boot/'' directory.<br />
<br />
If you use the OE toolchain and want to build outside of the OE tree you should do<br />
ARCH=arm<br />
PATH=~/oe/tmp/cross/armv7a/bin:~/oe/tmp/staging/i686-linux/usr/bin:$PATH # add cross tools to your path<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- distclean<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- omap3_beagle_defconfig<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- menuconfig # only needed if you want to change the default configuration<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- uImage<br />
Note: the staging dir in the path is for mkimage. If you've build a kernel before with oe, the program should be there<br />
<br />
Note: If you are interested in kernel development have a look to [[BeagleBoardLinuxKernel|manually compiling BeagleBoard kernel]], too.<br />
<br />
===Experimental kernel patches and hacks===<br />
<br />
Some beagle developers maintain their own kernel experimental patches and hacks not ready for upstream:<br />
<br />
* [http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/linux/linux-omap Koen's collection of kernels patches for OE] and the [http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/linux/linux-omap_git.bb list of relevant patches]<br />
* [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/test Steve's kernel tree], a clone of main OMAP git with additional patches, mainly beagle audio (ASOC) related.<br />
* [http://git.mansr.com/?p=linux-omap;a=summary Mans' kernel tree], a clone of main OMAP git with additional patches, mainly display & framebuffer related.<br />
* [http://www.bat.org/~tomba/linux-omap.html Tomi's kernel tree], a clone of main OMAP git with display sub-system patches, replacing the entire display driver with one that is the likely direction moving forward.<br />
<br />
=Compiler=<br />
<br />
TI OMAP3530 processor on BeagleBoard contains an ARM Cortex-A8 general purpose processor and a TMS320C64x+ DSP.<br />
<br />
==ARM==<br />
<br />
There is broad compiler support including gcc - please see [http://www.elinux.org/ARMCompilers ARM Compilers]<br />
<br />
==C64x+ DSP==<br />
<br />
A free C64x DSP compiler is available as [https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html Linux hosted C6x Code Generation Tools] (TMS320C6000 C/C++ CODE GENERATION TOOLS 6.1.3 July 2008).<br />
<br />
Note: my.TI account required. You may create an account [https://my.ti.com here]<br />
<br />
Note: Old c6000 Linux compiler available on [ftp://ftp.ti.com/pub/cs/linux_cgt500.tar.gz TI FTP site]. Does NOT support c64x+ core in OMAP3 devices. Not recommended.<br />
<br />
You can also utilize the [http://focus.ti.com/dsp/docs/dspsupportaut.tsp?familyId=44&sectionId=3&tabId=416&toolTypeId=30 full-CCS free evaluation tools for 120 days], but they currently require purchase to upgrade to service release 9 to support full JTAG debugging with supported JTAG hardware.<br />
<br />
See [[BeagleBoard/DSP_Howto| BeagleBoard DSP howto]] for information about how to use the DSP.<br />
<br />
=Cortex A8 ARM features =<br />
<br />
ARM Cortex-A8 in OMAP3 is a high performance dual-issue applications processor which reaches a performance of 2.0 DMIPS/MHz (compared to ARM11 at 1.2 DMIPS/MHz). It is ARM v7 architecture, which is fully backwards compatible with application code for previous ARM processors.<br />
<br />
It includes a floating point unit (ARM VFPv3 architecture) and the ARM NEON SIMD instruction set.<br />
<br />
See [http://pandorawiki.org/Floating_Point_Optimization Floating Point Optimization] article for an intro into VFP-lite and NEON.<br />
<br />
===ARM NEON===<br />
<br />
NEON is a 64/128-bit wide SIMD vector extension for ARM, which has been architected to be an efficient C compiler target as well as being used from assembly language. It has 32x 64-bit registers (with a dual view as 16x 128-bit registers) which can hold the following datatypes:<br />
* 64-bit signed/unsigned<br />
* 32-bit signed/unsigned<br />
* 32-bit single precision floating point<br />
* 16-bit signed/unsigned<br />
* 8-bit signed/unsigned<br />
<br />
The key advantage of NEON is very high performance vector math processing, whilst being easy to program. It is the same thread of control as the ARM (but different instructions), and is supported by the same tools, debuggers and operating systems.<br />
<br />
The NEON instruction set is documented in ARM's [http://infocenter.arm.com/help/topic/com.arm.doc.dui0204i/DUI0204I_rvct_assembler_guide.pdf RealView Compilation Tools Assembler Guide].<br />
<br />
For NEON optimized libraries see [http://www.us.design-reuse.com/news/18429/aac-mp3-mpeg-4-h-264-fft-openmax-cortex-a8-neon-arm11-processors.html ARM Releases AAC, MP3, MPEG-4, H.264 and FFT OpenMAX DL Libraries, Highly Optimized for Cortex-A8/NEON and ARM11 Processors]. Note: Read the [http://www.arm.com/products/esd/openmax_v7libraries.html EULA].<br />
<br />
NEON is currently used by<br />
* ffmpeg - libavcodec used by mplayer, omapfbplay, and many other linux applications<br />
* libpixman - used by X.org and Mozilla & Webkit browsers to render text and graphics<br />
* Bluez - official Linux Bluetooth stack<br />
<br />
=== ARM Cortex Floating Point ===<br />
<br />
There are two types of instructions in the ARM v7 ISA that handle floating point:<br />
<br />
1) '''VFPv3''' Floating point instruction set (used for single/double precision scalar operations).<br />
These is used by gcc for C floating point operations on 'float' and 'double'<br />
<br />
2) '''NEON''' [http://www.arm.com/products/multimedia/neon/ NEON] vectorized single precision operations (2 values in a D-register, or 4 values in a Q-register)<br />
These can be use by gcc when -ftree-vectorize is enabled and -mfpu=neon is specified, and the code can be vectorized. In other cases the VFPv3 scalar ops will be used.<br />
<br />
ARM Cortex-A processors have separate floating point pipelines that handle these different instructions.<br />
<br />
On Cortex-A8, the designers' focus was on the NEON unit performance which can sustain 1 cycle/instr throughput (processing 2 single-precision values at once). The scalar VFPv3 FPU cannot achieve this level of performance (cycle timings are in the Cortex-A8 TRM download), but it is still a lot better than doing floating point using integer instructions.<br />
<br />
If you need the highest performance floating point on Cortex-A8, you need to use single precision and ensure the code uses the NEON vectorized instructions:<br />
* use gcc with -ftree-vectorize (possibly modify source code to make it vector friendly)<br />
* use NEON instrinsics (#include <arm_neon.h>, float32x2_t datatype and vmul_f32() etc)<br />
* use NEON asm directly<br />
<br />
Keep in mind that mixing NEON and ARM load/stores can sometimes stall significantly. See [http://hardwarebug.org/2008/12/31/arm-neon-memory-hazards/ this link] for more info.<br />
<br />
On Cortex-A9, there is a much higher performance floating point unit which can sustain 1 cycle/instr throughput, with low result latencies.<br />
<br />
=Board recovery=<br />
<br />
If you played e.g. with the contents of the [http://www.sakoman.net/omap3/flash%20procedure.txt NAND], it might happen that the Board doesn't boot any more (without pressing user button) due to broken NAND content. See [[BeagleBoardRecovery|BeagleBoard recovery]] article how to fix this.<br />
<br />
=Development environments=<br />
<br />
Instead of just using compiler + editor, you can use complete image create "development tool chains" which integrate compiler, build system, packaging tools etc. in one tool chain.<br />
<br />
==OpenEmbedded==<br />
<br />
For [http://www.openembedded.org/ OpenEmbedded] (OE), there are some hints how to [http://www.beagleboard.org/irclogs/index.php?date=2008-04-29#T13:06:25 start with OE for BeagleBoard]. See [[BeagleBoardAndOpenEmbeddedGit|BeagleBoard and OpenEmbedded Git]] and [http://wiki.openembedded.org/index.php/Getting_Started OpenEmbedded getting started] as well.<br />
<br />
In the OE getting started document, for BeagleBoard replace ''MACHINE = "om-gta01"'' by ''MACHINE = "beagleboard"''. After confirming ''bitbake nano'' works, try ''bitbake console-image''. The first time you run bitbake OE will download all the needed source and build the tool chain. This will take several hours. After all went fine, the output is in ''${OE_ROOT}/tmp/deploy/glibc/images/beagleboard''.<br />
<br />
Note: Koen has some BeagleBoard [http://amethyst.openembedded.net/~koen/index.php?path=beagleboard/ source and binary images] built with OE. There, ''Angstrom-console*'' images don't include an X server, you can still use a e.g. DVI-D screen with console, but you won't have a GUI. ''Angstrom-x11*'' images contain an X server.<!-- DEAD LINK: resulting in something like [http://scap.linuxtogo.org/files/fc987d4acb2c745fb7e19cf4dca8de70.png this].--><br />
<br />
===One very important note:=== <br />
<br />
It's important to have an X-Loader on your Beagleboard that uses the uImage on the SD Card that goes with Angstrom. The B6 Beagleboards do not appear to come with such an X-Loader. So you likely will have to upgrade the X-Loader. Here's what to do:<br />
* Make an SD Card with the [http://www.angstrom-distribution.org/demo/beagleboard Angstrom Demo files]. See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat Beagleboard Wiki Page] for more info on making the SD Card.<br />
* Put the SD Card in the Beagle, and boot up to the U-Boot Prompt.<br />
* Do the first six instructions in the [http://code.google.com/p/beagleboard/wiki/BeagleNANDFlashing Flashing Commands with U-Boot] section. <br />
* Reboot the Beagle to see that the new X-Loader is properly loaded.<br />
<br />
This will update the X-Loader to a newer version that will automatically load uImage from the SD Card when present -- rather than always using the uImage in the Beagleboard NAND.<br />
<br />
==Eclipse==<br />
The Eclipse [http://www.eclipse.org/cdt/ C Development Tools Project] provides a "fully functional C and C++ Integrated Development Environment (IDE) for the Eclipse platform". The Eclipse [http://www.eclipse.org/dsdp/tm/ DSDP Target Managment Project] provides a "Remote System Explorer" (RSE) plugin that simplifies downloading files to the BeagleBoard and editing files on the BeagleBoard within the Eclipse IDE. A Linux Target Agent is available as part of the [http://wiki.eclipse.org/DSDP/TM/TCF_FAQ Target Communications Framework (TCF) component]. Info on how RSE is used for e.g. Gumstix development is described in [http://groups.google.com/group/beagleboard/browse_thread/thread/509831f7c24cb79f# this post].<br />
<br />
==Android==<br />
[http://source.android.com Android] platform is a software stack for mobile devices including an operating system, middleware and key applications. Developers can create applications for the platform using the [http://code.google.com/android/ Android SDK]. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use which runs on top of a Linux kernel.<br />
<br />
There are several resources for Android on OMAP (Beagle) available:<br />
<br />
'''OMAPZOOM'''<br />
<br />
You can find Android port for OMAP ZOOM architecture on [https://omapzoom.org/gf/project/omapandroid/wiki/ OMAPZoom.org's wiki page on Android]. <br />
<br />
'''EMBINUX'''<br />
<br />
[http://beagleboard.org/project/android Beagleboard.org's Android project page] [http://groups.google.com/group/beagleboard/browse_thread/thread/7b422f113ce489b5 announced], the successful porting of Android on Beagle board by [http://embinux.com EMBINUX&trade;] Team. The [http://labs.embinux.org/git/ source code] and [http://www.embinux.com/download_beagle.php binaries] are available for download and review. <br />
<br />
Detailed instructions, for porting Android on Beagle Board, are available [http://labs.embinux.org/index.php/Main_Page here]. Current release supports input devices (keyboard/mouse), network and sound.<br />
<br />
You can [http://in.youtube.com/watch?v=nADn_vNVEKw watch Android booting] on Beagle Board.<br />
<br />
'''Android on OMAP wiki'''<br />
<br />
Wiki page for Andorid on OMAP can be found [[Android on OMAP|here]]<br />
<br />
'''0xdroid'''<br />
<br />
[http://gitorious.org/0xdroid 0xdroid], the enhanced version of Android on Beagleboard by [http://0xlab.org 0xlab]. The [http://gitorious.org/0xdroid source code], [http://downloads.0xlab.org/ pre-built binaries], and [http://code.google.com/p/0xdroid/issues/list issue tracker] are available for review and reference.<br />
<br />
The latest development supports OMAP audio, OMAP video overlays, ARM Cortex A8 NEON/Thumb2 performance optimizations, mouse cursor, hot-pluggable USB keyboard & mouse, user-friendly installer for system image, and various Android tweaks. Detailed instructions for 0xdroid are available through [http://code.google.com/p/0xdroid/wiki/MainPage Google Code wiki].<br />
<br />
You can [http://www.youtube.com/watch?v=v6wdTOHrwQw watch 0xdroid demo video] on Beagle Board.<br />
* [http://www.youtube.com/watch?v=v6wdTOHrwQw 0xdroid demo video (1)]<br />
* [http://www.youtube.com/watch?v=ol9LWBKXXwQ 0xdroid demo video (2)]<br />
<br />
==Mamona==<br />
<br />
[http://dev.openbossa.org/trac/mamona/wiki Mamona] is an embedded Linux distribution for ARM EABI. The main goal of the Mamona Project is to offer a completely open source alternative/experimental platform for [http://maemo.org/ Maemo] using only free and open source components. Mamona [http://rsalveti.wordpress.com/2008/09/12/mamona-02-is-out 0.2] [http://franciscoalecrim.com/blog/2008/07/29/mamona-working-with-beagleboard/ supports] [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12013&contentId=28741 OMAP3430 Software Development Platform (SDP)], so you can also use it at Beagle (OMAP3530), too. Work is being done to officially support Beagle.<br />
<br />
==Ubuntu==<br />
<br />
See [[BeagleBoardUbuntu|Ubuntu (ARM)]] installation guide how to install Ubuntu (ARM) on BeagleBoard.<br />
<br />
==Debian ARM==<br />
<br />
See [[BeagleBoardDebian|Debian (ARM)]] installation guide how to install Debian (ARM) on BeagleBoard.<br />
<br />
==Handhelds Mojo ARM==<br />
<br />
See [[BeagleBoardHandheldsMojo|Handhelds Mojo (ARM)]] installation guide how to install Handhelds Mojo (ARM) port of Ubuntu on BeagleBoard. (The Mojo project is no longer active, see the Official Ubuntu ARM-port above instead)<br />
<br />
==Scratchbox==<br />
<br />
[http://www.scratchbox.org/ Scratchbox] is a cross-compilation toolkit designed to make embedded Linux application development easier. It also provides a full set of tools to integrate and cross-compile an entire Linux distribution. See [http://felipec.wordpress.com/2009/06/07/installing-scratchbox-1-and-2-for-arm-cross-compilation/ Felipe's Scratbox 1 and 2 intro], too.<br />
<br />
=Software hints=<br />
<br />
This section collects hints, tips & tricks for various software components running on beagle.<br />
<br />
==QEMU==<br />
<br />
[[Qemu|QEMU]] [http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/ supports OMAP3] being able to boot a BeagleBoard Linux kernel.<br />
<br />
==Linux hints==<br />
<br />
See BeagleBoard [http://code.google.com/p/beagleboard/wiki/LinuxHints Google wiki Linux hints] page (for Linux WTBU (Wireless TI Business Unit) kernel [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode 2.6.22]). Currently featuring:<br />
<br />
* Switching video output between DVI-D and S-Video<br />
* Disabling framebuffer blanking<br />
* Listing USB devices<br />
<br />
==lmbench==<br />
<br />
Avik posted a detailed [http://groups.google.com/group/beagleboard/browse_thread/thread/c8b8f07ce61161a1 step-by-step procedure] to run [http://sourceforge.net/project/showfiles.php?group_id=14418 lmbench] on Beagle.<br />
<br />
==Mediaplayer (FFmpeg)==<br />
<br />
There is a thread how to get a [http://groups.google.com/group/beagleboard/browse_thread/thread/9b8025fc15120fd9# mediaplayer] with NEON optimization (FFmpeg) to run on Beagle. Includes compiler hints and patches.<br />
<br />
==Java==<br />
<br />
When using the [[BeagleBoard#OpenEmbedded|OpenEmbedded]]-based Angstrom image you have the following options of Java support:<br />
* JamVM + GNU Classpath (small vm, fast interpreter, J2SE-like)<br />
* Cacao + GNU Classpath (JIT compiler, J2SE-like)<br />
* PhoneME Advanced Foundation (JIT compiler, CDC)<br />
<br />
Java support in OpenEmbedded/Angstrom ([http://wiki.openembedded.net/index.php/Java details]) is provided voluntarily through [http://jalimo.org Jalimo].<br />
<br />
See a [http://groups.google.com/group/beagleboard/browse_thread/thread/102f627253919783# post at mailing list], too.<br />
<br />
OpenEmbedded users can add the [http://evolvis.org/scm/?group_id=11 Jalimo Subversion repository] as an overlay (instructions are in the repository). This will allow them to build OpenJDK packages. Inclusion of these recipes in mainline OpenEmbedded is planned but still ongoing.<br />
<br />
The recipes offer the following functionality:<br />
<br />
* OpenJDK + Hotspot (Zero port) (all J2SE functionality, including JVMTI, interpreted only)<br />
* OpenJDK + Cacaco (all J2SE library features, missing JVMTI, decent JIT compiler)<br />
* OpenJDK + Hotspot (Shark port) (not working yet)<br />
<br />
Some guy from ARM Ltd. is working on interpreter optimization in Zero for ARM.<br />
<br />
People interested in getting this stuff working better should contact people on:<br />
* [http://evolvis.org/mail/?group_id=11 Jalimo Mailinglist]<br />
* [http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev Icedtea Mailinglist]<br />
<br />
You should also check out IcedTea's [http://iced-tea.org/wiki/FrequentlyAskedQuestions FAQ].<br />
<br />
=Graphics accelerator=<br />
<br />
OMAP3530 used on BeagleBoard contains a graphics accelerator (SGX) based on the SGX core from [http://www.imgtec.com/ Imagination Technologies]. [http://www.imgtec.com/powervr/powervr-graphics.asp PowerVR] SGX530 is a new generation of programmable PowerVR graphics and video IP cores. Only the kernel portions of Linux drivers will be open source. The PowerVR folks will provide binary user-space libraries. Using the EMail contact at [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12700&contentId=27458 TIs Mobile Gaming Developers page] there are Linux v2.6 OMAP3430 SDKs for OMAP3 Zoom and SDP supporting OpenGL ES v2.0, OpenGL ES v1.1 and OpenVG 1.0 available.<br />
<br />
Tutorial:<br />
* [http://code.google.com/p/beagleboard/wiki/HowtoUseSGXunderAngstrom How to use SGX with Angstrom in OE]<br />
<br />
Some videos:<br />
<br />
* [http://www.youtube.com/watch?v=3ToYOgP9f9U SGX on Beagle working with Linux 2.6.27]<br />
* [http://www.youtube.com/watch?v=24TXpqa9jG0&feature=related OpenGL ES 2.0 shader effects on OMAP3]<br />
* [http://www.youtube.com/watch?v=-UFUbqoNgs8&feature=related 3D User Interface on OMAP3 Platform]<br />
* [http://www.youtube.com/watch?v=8KcNgeUriqA 3D Mapping using OpenGL ES 2.0 on OMAP3 Platform]<br />
* [http://www.youtube.com/watch?v=7D3V6BUpGLE Video blending in hardware]<br />
* [http://www.hitlabnz.org/wiki/EmbeddedAR An Augmented Reality application combining ARToolkit and OpenGL ES 2.0]<br />
<br />
=Beginners guide=<br />
<br />
You just got your new BeagleBoard, and now? See [[BeagleBoardBeginners|beginners guides]].<br />
<br />
=FAQ=<br />
<br />
For BeagleBoard frequently asked questions (FAQ) see [[BeagleBoardFAQ|community FAQ]] and "official" [http://beagleboard.org/support/faq BeagleBoard.org FAQ].<br />
<br />
=Links=<br />
==Home page==<br />
[http://beagleboard.org/ beagleboard.org] (beagle board home)<br />
* Using [http://www.google.de/ Google] you can search beagleboard.org (including [http://www.beagleboard.org/irclogs/ IRC logs]) using ''site:beagleboard.org <search term>''<br />
<br />
==Manuals and resources==<br />
* [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard HW Reference Manual (rev. C2)]<br />
* [http://beagle.s3.amazonaws.com/BBSRM_7_2_0.pdf BeagleBoard HW Reference Manual (rev. B7)]<br />
* [http://www.beagleboard.org/uploads/BBSRM_6.pdf BeagleBoard HW Reference Manual (rev. B6)]<br />
* [http://www.beagleboard.org/uploads/BBSRM_B5.pdf BeagleBoard HW Reference Manual (rev. B5)]<br />
* [http://www.beagleboard.org/uploads/Beagle_HRM_B4.pdf BeagleBoard HW Reference Manual (rev. B4)]<br />
* [http://www.beagleboard.org/uploads/Beagle_HW_Reference_Manual_A_5.pdf BeagleBoard HW Reference Manual (rev. A5)]<br />
* [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor description and manuals<br />
* [http://code.google.com/p/beagleboard/ Beagle at code.google.com]<br />
* [http://focus.ti.com/dsp/docs/dspsupporttechdocs.tsp?sectionId=3&tabId=409&familyId=1526&documentCategoryId=4&techDoc=4 OMAP3530/25 CBB BSDL Model]<br />
* [http://www.micron.com/products/mcps/beagleboard Micron's multi chip packages (MCPs) for Beagle Board]<br />
* [http://beagleboard.org/resources Beagleboard resources page with hw docs]<br />
* Some [http://www.rasterman.com/ performance comparison] of BeagleBoard Rev. B with some other ARM/PC systems.<br />
* OMAP3 pinmux [http://www.hy-research.com/omap3_pinmux.html setup]<br />
* [http://elinux.org/BeagleBoardPinMux OMAP3 eLinux pinmux page]<br />
<br />
==Contact and communication==<br />
* [http://groups.google.com/group/beagleboard Beagle board discussion list]<br />
* [http://code.google.com/p/beagleboard/issues/list Beagle board open point list & issue tracker]<br />
* [http://beagleboard.blogspot.com/ Beagle board blog]<br />
* [http://feeds.feedburner.com/BeagleBoard Beagle board RSS feed]<br />
* Chat:<br />
** [http://beagleboard.org/chat Beagle Board chat]<br />
** IRC: #beagle channel on irc.freenode.net<br />
** [http://www.beagleboard.org/irclogs/index.php IRC archive]<br />
* [http://www.beaglesride.org/ Beagles Ride], a site about building a community around the BeagleBoard focused on in vehicle applications<br />
* [http://www.beagleboard.de/ German Beagle Board Forum and Wiki]<br />
<br />
==TI resources==<br />
* [http://opensource.ti.com/ TI open source page]<br />
* [https://community.ti.com/ TI E2E (Engineer-to-Engineer) Community]<br />
* [http://marc.info/?l=linux-omap&m=120761100810527&w=2 DSP Bridge driver for OMAP3 platform]<br />
* [http://lists.arm.linux.org.uk/lurker/message/20080701.142512.5eeff26b.en.html ARMv7 Oprofile support]<br />
* [http://focus.ti.com/pdfs/wtbu/swpu114g.pdf OMAP34xx Wireless Technical Reference Manual] (swpu114g.pdf, 47 MB)<br />
* [http://amethyst.openembedded.net/~koen/index.php?sort=date&order=desc&path=beagleboard/ Koen's (OpenEmbeded) BeagleBoard source and binaries]<br />
* [http://del.icio.us/tag/beagleboard+peripheral+verified Verified peripherals for BeagleBoard]<br />
* [http://www.celinux.org/elc08_presentations/TI_OMAP3430_Linux_PM_reference.ppt OMAP3430 Linux Power Management presentation]<br />
==Articles==<br />
* [http://linuxdevices.com/news/NS5852740920.html LinuxDevices article about Beagle]<br />
* [http://www.linuxdevices.com/news/NS8479495970.html LinuxDevices article about Digi-Key launch]<br />
* [http://www.linuxdevices.com/news/NS5682470737.html LinuxDevices article about Beagle Rev C, Beagle MID from HY Research, Touch Book and Sponsored Projects Contest]<br />
* [http://www.linuxjournal.com/article/10607 Linuxjournal article on the BeagleBoard]<br />
<br />
==Books==<br />
* [[OMAP_and_DaVinci_Software_for_Dummies|OMAP and DaVinci Software for Dummies]]<br />
<br />
==Beagle based training materials==<br />
* http://free-electrons.com/doc/training/beagle/<br />
<br />
==Past Beagle events==<br />
* TIDC, February 26-28, 2008: [http://www.beagleboard.org/uploads/tidc_opensource.pdf Slides from TI developer conference (TIDC) open source session], covering also beagle board<br />
* [http://www.lugradio.org/live/USA2008/ LUG RADIO Live USA 2008, April 12-13, 2008]: [http://www.beagleboard.org/uploads/lugradio_20080411.PPT TI/Beagle Presentation] and [http://forums.lugradio.org/viewtopic.php?f=4&t=4094&st=0&sk=t&sd=a&sid=d69cc807569ab41e33f93af698c536b8&start=15#p41549 video]<br />
* LinuxTag, May 28-31, 2008: [http://www.flickr.com/photos/jadon/2551439955/in/pool-beagleboard picture 1] and [http://www.flickr.com/photos/jadon/2535692865/in/pool-beagleboard picture 2]<br />
* [http://lugradio.org/live/UK2008/travel LugRadio Live UK 2008], July 19 - July 20, 2008: [http://www.flickr.com/photos/koenkooi/tags/lugradiolive/ Koen's pictures] showing e.g. [http://www.bigbuckbunny.org/index.php/download/ Big Buck BUNNY] playing at Beagle. [http://linuxoutlaws.com/podcast/48 Interview with Linux Outlaws (52:06)] and the [http://www.youtube.com/watch?v=m9xVbntl-DY video]<br />
* [http://osscamp.in/index.php/OSScamp_Bengaluru_Mobile_2008 OSScamp Bengaluru Mobile 2008], July 19, 2008<br />
* [http://www.linuxworldexpo.com LinuxWorld Conference & Expo], August 4 - August 7, 2008: [http://www.flickr.com/photos/jadon/sets/72157606586084668/ pictures with living beagle] and from [http://www.flickr.com/photos/linuxjournal/2738316951/in/set-72157606634486338/ Linux Journal's photostream]<br />
* BeagleBoard.org event at Jillian's during LinuxWorldExpo, August 5, 2008, 5:30-7:30 pm<br />
* [http://barcamp.pbwiki.com/BarCampHouston3 BarCamp Houston 3], August 9, 2008, 9:00 A.M.: [http://www.flickr.com/photos/jadon/sets/72157606656532041/ pictures]<br />
* NIT Suratkal, India [http://www.nitkieee.com/site/sp-connect2/schedule IEEE SP Connect 2], August 30, 20008<br />
* [http://barcampbangalore.org/wiki/BCB7_Demos BarCamp Bangalore], India, September 13, 2008<br />
* [http://www.ibc.org/ IBC 2008], September 11 - September 16, 2008: [http://www.flickr.com/photos/koenkooi/tags/ibc2008/ pictures]<br />
* Free Open "Embedded Linux" Training for Students in India, [http://code.google.com/p/beagleboard/wiki/Trainings?updated=Trainings&ts=1220250913 beagleboard.org Trainings in India], September 20, 2008: [http://www.youtube.com/watch?v=A6FLdmgQlb4&feature=PlayList&p=1BAB6EE9CC7285AD&index=0 video], [http://www.flickr.com/photos/25691331@N04/sets/72157607419766102/ photos] and [http://lakshmansrikanth.blogspot.com/2008/09/linux-embedded.html blog]<br />
* [http://www.embedded.co.uk/ Embedded Systems Show 2008], Birmingham, UK, October 1-2, 2008<br />
* [http://www.mvista.com/vision/ MontaVista Vision 2008 Embedded Linux Developers Conference], San Francisco, California, October 1-3, 2008 : [http://www.mvista.com/download/topic.php?t=18 Video and presentation overview], [http://www.mvista.com/download/fetchdoc.php?docid=323 William Mills' presentation], [http://www.mvista.com/download/fetchdoc.php?docid=333 Jason Kridner's presentation]<br />
* [http://www.rtcgroup.com/arm/2008/ ARM Developers' Conference], Santa Clara Convention Center, Santa Clara, Calif., USA, October 7-9, 2008<br />
* [http://www.cmp-egevents.com/web/escb Embedded Systems Conference Boston 2008], Hynes Convention Center, Boston, USA, October 26 - October 30, 2008: [http://beagleboard.org/demo/esc Resources]<br />
* [[BeagleBoard/contest|BeagleBoard contest]] #1: Create a cool BeagleBoard application and win a Rev C1! Closed, ran until January 9, 2009<br />
* [http://www.silica.com/events/seminars/seminar-overview/ti-omp-workshop.html OMAP35x training by Silica], January 21, 2009, Cambridge, UK, ARM Holdings Lecture Theatre. [[RichardB's notes from the seminar]]<br />
* [[BeagleBoard/contest|BeagleBoard contest #2]], unitl February 27, 2009: : Create a cool BeagleBoard application and win a Rev C2!<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/b15cf8a5797c73a2 Silica - Free TI - ARM OMAP Workshop], Brussels, Europe, March 31st 2009<br />
* SILICA's [http://www.silica.com/events/seminars/seminar-overview/ti-omap-piccolo-poing.html Texas Instruments 2-in-1 Seminar: OMAP & Piccolo], May 13th 2009: Poing (Munich) - Germany<br />
* 24th until 27th June 2009: [http://www.linuxtag.org/2009/en.html Linux Tag Germany] with [http://groups.google.com/group/beagleboard/msg/27fefef5f1d2ef73 TI booth] and [http://www.linuxtag.org/2009/en/program/freies-vortragsprogramm/all-events/details.html?talkid=183 Beagle presentation]<br />
* until 31st July 2009: [http://www.cranessoftware.com/services/training/beagledesigncontest.html BeagleBoard Design Contest INDIA Edition] ([http://beagleboard.blogspot.com/2009/04/beagleboard-design-contest-india.html blog entry])<br />
* TI Technology Day Dallas, Tex. on June 16 will held a [http://www.linuxdevices.com/news/NS5682470737.html BeagleBoard users group meeting] (see section ''Availability'').<br />
* Thursday, August 27th: [http://wiki.omap.com/index.php/ETechDays_Lightning_Talks ETechDays Lightning Talks]. 15 minute lightning talks via IRC, WebEx or Dial-In.<br />
* 22.- 23.08.2009, Sankt Augustin, Germany: [http://www.froscon.de/en/ FrOSCon 2009] ([http://groups.google.com/group/beagleboard/browse_thread/thread/6aee27a7d121f4f4# call for papers])<br />
<br />
==Beagle wiki pages==<br />
* [[BeagleBoardBeginners|BeagleBoard beginners guides]]<br />
* [[BeagleBoardAndOpenEmbeddedGit|BeagleBoard and OpenEmbedded Git]] installation guide and [[BeagleBoardOpenEmbeddedDevelopment|OpenEmbedded development]]<br />
* [[BeagleBoardDebian|Debian on BeagleBoard]] usage guide<br />
* [[BeagleBoardHandheldsMojo|Handhelds Mojo (ARM) on BeagleBoard]] usage guide (formerly known as Ubuntu (ARM))<br />
* [[BeagleBoardUbuntu|Ubuntu (ARM EABI) distribution at BeagleBoard]]<br />
* [[BeagleBoardRecovery|BeagleBoard recovery]] about fixing boards not booting any more because of broken NAND content<br />
* [[BeagleBoardJTAG|BeagleBoard JTAG]] and [[OMAP3530_ICEPICK|OMAP3530_ICEPICK]] about JTAG on BeagleBoard<br />
* [[BeagleBoardOpenOCD|BeagleBoard OpenOCD]] has infos about status and usage of open source JTAG software OpenOCD with Beagle<br />
* [[BeagleBoardNAND|BeagleBoard NAND boot]] about how to boot BeagleBoard from NAND flash<br />
* [[BeagleBoardPeripherals|BeagleBoard peripherals and adapters page]] about useful BeagleBoard add ons.<br />
* [[Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB|Mount BeagleBoard root file system over NFS via USB]]<br />
* [[BeagleBoardFAQ|BeagleBoard FAQ]]<br />
* [[BeagleBoardSugar|Sugar on BeagleBoard]]<br />
* [[BeagleBoard/DSP_Howto|BeagleBoard DSP howto]]<br />
* [[BeagleBoardRawLCD|Interfacing BeagleBoard to Raw LCD]]<br />
* [[BeagleBoard/gst-openmax|BeagleBoard OpenMAX usage]]<br />
* [[BeagleBoard/video|BeagleBoard video]]<br />
* [[BeagleBoardOpenCV|Using OpenCV computer vision library with BeagleBoard]]<br />
* [[BeagleBoard/James|James]]: Just A Miniature Entertainment System<br />
* [[U-boot_musb_gadget_support|U-boot musb gadget support]]<br />
* [[BeagleBoard-JP|Japanese translation of this Beagle page]]<br />
* [[BeagleEPD|BeagleBoard E-Ink Platform Driver]]<br />
* [[BeagleBoardFedora|Random hacking notes for getting Fedora 10 to kinda work with the BeagleBoard]]<br />
* BeagleBoard specific [[BeagleBoard/GSoC|Google Summer of Code 2009]] page, [[BeagleBoard/Ideas-2009|GSoC project ideas]] and [[BeagleBoard/GSoC/Application|GSoc application]]<br />
* [[BeagleBoard/Poky|Poky]] for BeagleBoard<br />
* [[Xenarc_USB_touchscreen_for_Beagleboard/OMAP3_EVM|Xenarc USB touchscreen for Beagleboard/OMAP3 EVM]]<br />
* [[BeagleBoard/BugAdapter|BeagleBoard Bug Adapter board]]<br />
* [[BeagleBoardDebianWifiInstallInfo|BeagleBoard Debian WiFi install info]]<br />
* [[BeagleBoard/DSP_Clarification|Info about the various Linux DSP systems for OMAP chips]]<br />
* [[BeagleBoardPinMux|BeagleBoard PinMux]]<br />
* [[BeagleBoardLinuxKernel|BeagleBoard Linux kernel manual compile]]<br />
* [http://www.hervanta.com/stuff/Beaglebot Beaglebot]: build an experimental robotics project with Beagle<br />
* [http://code.google.com/p/beagleboard/w/list code.google.com BeagleBoard wiki]<br />
* '''[[BeagleBoard/contest|BeagleBoard contest]]'''<br />
* [http://en.wikipedia.org/wiki/Beagle_Board Wikipedia BeagleBoard page]<br />
* [http://labs.embinux.org/index.php/Android_Porting_Guide_to_Beagle_Board Android port for BeagleBoard]: Instructions for porting Android on BeagleBoard<br />
* [[BeagleBoard/bangalore_user_meet |BeagleBoard Bangalore User Meet]]<br />
* [[BeagleBoardEclipse|Using Eclipse with Beagle]] (for JTAG debugging)<br />
* [[Zoom2Beginners|Zoom2 for Beginners]]<br />
* [http://wh1t3s.com/2009/05/11/beagleboard-as-usb-mass-storage-device-via-usb-otg/ BeagleBoard as USB Mass Storage Device via USB OTG]<br />
* [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/index.htm BeagleBoard as solar powered computer]<br />
* [http://blog.makezine.com/archive/2009/02/blinking_leds_with_the_beagle_board.html Blinking LEDs with the Beagle Board] from Make:Online<br />
* [http://www.crashcourse.ca/wiki/index.php/BeagleBoard Robert's private Beagle wiki] (please don't add anything there, do it here. It will help to avoid scattering. Thanks!)<br />
* [http://felipec.wordpress.com/2009/03/26/omap3-public-dsp-binaries-now-work/ Felipe's blog] about D1 MPEG-4 decoding using less than 15% of CPU with help of DSP<br />
* [http://www.syspire.de/node/3 Embedded Mediacenter] based on BeagleBoard (German)<br />
* [http://pandorawiki.org/Floating_Point_Optimization Floating Point Optimization] with VFP-lite and NEON intro<br />
* [http://particolarmente-urgentissimo.blogspot.com/2009/09/beagleboard-setting-date-via-gps.html Beagleboard setting date via GPS]<br />
* [http://free-electrons.com/blog/beagle-labs/ Complete embedded Linux training labs] on the BeageBoard<br />
<br />
==Beagle photos==<br />
* [http://www.flickr.com/groups/beagleboard/pool/ Beagle board pictures at flickr]<br />
* [http://www.flickr.com/photos/32615155@N00/2439256116/ Beagle board and USRP]<br />
* [http://www.flickr.com/photos/nishanthmenon/2438406603/ Modify SDP3430 QUART cable for beagle]<br />
* [http://www.flickr.com/photos/koenkooi/2695061759/ MythTV on Beagle]<br />
==Beagle videos==<br />
* [http://uk.youtube.com/watch?v=fL_XMieanSc Beagle Board Beginnings]<br />
* [http://www.youtube.com/watch?v=cXr-D1wROfQ Beagleboard in the Living Room]<br />
* [http://uk.youtube.com/watch?v=FuVwh_VrIxk Beagle Board 3D, Angstrom, and Ubuntu]<br />
* [http://uk.youtube.com/watch?v=TUYOjRGYeYU testsprite with beagleboard]<br />
* [http://uk.youtube.com/watch?v=9Z4ZTovtFKk Beagleboard LED demo]<br />
* [http://uk.youtube.com/watch?v=R33dzREZGEk LCD2USB attached to a beagleboard]<br />
* [http://www.youtube.com/watch?v=7D3V6BUpGLE Video blending in hardware]<br />
* [http://www.youtube.com/watch?v=-tUBXD-KRp4 Beagle Running Angstrom (VGA) on DLP Pico Projector]<br />
* [http://www.youtube.com/watch?v=3ToYOgP9f9U SGX on Beagle working with Linux 2.6.27]<br />
* Not on Beagle OMAP3530: [http://youtube.com/watch?v=5i9cWOK1spw Ubuntu 7.04 on on OMAP3430 SDP]<br />
* [http://in.youtube.com/watch?v=nADn_vNVEKw Beagle Board booting Android]<br />
* [http://www.youtube.com/watch?v=UHQdUS0i-nw Beagleboard, SGX, and libfreespace demo]<br />
<br />
==Beagle manufacturing==<br />
* [http://www.youtube.com/watch?v=C-CwkjT9z_0&feature=related Beagle Solder Paste Screening]<br />
* [http://www.youtube.com/watch?v=9LLjDovIG2M&feature=related Beagle Assembly Inspection]<br />
* [http://www.youtube.com/watch?v=sbOZfBnoVnM&feature=related Beagle Functional Test]<br />
* [http://www.youtube.com/watch?v=cvDtXmJJcEI&feature=related Beagle Reflow]<br />
* [http://www.youtube.com/watch?v=W2o4NTASxN0&feature=related Beagle Board Assembly at Circuitco]<br />
==Fun==<br />
* Enjoy [http://www.beaglegame.com/ BeagleGame]<br />
<br />
=Other OMAP boards=<br />
<br />
* OMAP1 OMAP5912 (ARM9 + C5x DSP) based [[OSK|OSK]] board.<br />
* OMAP3 OMAP3430 based [https://gforge.ti.com/gf/project/omapzoom/wiki/?pagename=HardwareInformation Zoom MDK], which has been superseded by the [http://www.logicpd.com/products/development-kits/texas-instruments-zoom%E2%84%A2-omap34x-ii-mdp Zoom II], and other [http://www.logicpd.com/products LogicPD kits].<br />
* OMAP3 OMAP3530 based [http://www.openpandora.org/ Pandora]<br />
* OMAP3 OMAP3503 based [http://www.gumstix.net/Overo/cat/Overo/115.html Gumstix Overo]<br />
* OMAP3 OMAP35x based EVM from [http://mistralsolutions.com/products/omap_3evm.php Mistral] and [http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html TI] (both are the same)<br />
* OMAP3 OMAP3430 based [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12013&contentId=28741 Software Development Platform (SDP)]<br />
* OMAP3 OMAP3530 based board from [http://www.magniel.com/omap3.html Magniel Inc.]<br />
* OMAP3 based [http://www.archos.com/products/imt/index.html?country=us&lang=en Archos 5, ARCHOS 5G and ARCHOS 7]<br />
* OMAP3 OMAP35x based [http://www.logicpd.com/products/som/ti/omap35x OMAP35x SOM-LV]<br />
* OMAP3 based [[Mini_Board|ICETEK-OMAP3530-Mini]], a Chinese BeagleBoard clone, with a [[MiniBoardFAQ|FAQ]]<br />
* OMAP3 based [http://www.ebv.com/en/products/categories/details/product/ebvbeagle-board EBVBeagle], a German BeagleBoard clone<br />
* OMAP3530 based [http://www.bsquare.com/products/hardware_solutions/3530.asp BSQUARE’s Dev Kit OMAP3530]<br />
* OMAP3530 based [http://beaversource.oregonstate.edu/projects/cspfl/wiki/CSPFL_Hardware OSWALD]<br />
* OMAP3 BeagleBoard-based [http://www.alwaysinnovating.com/touchbook/ Touch Book]<br />
* OMAP3530 based [http://www.analogue-micro.com/Cobra3530.html Cobra 3530 OMAP3530 module ]<br />
* OMAP3 based [http://www.kwikbyte.com/KBOC.html KwikByte 35XX System Module]<br />
* OMAP3530 based [[DevKit8000]], a Chinese BeagleBoard clone, slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard)<br />
* OMAP3530 based [http://www.igep-platform.com/ IGEPv2 Platform], a Spanish BeagleBoard clone, slightly larger, with additional peripherals like e.g. ethernet connector, wifi+bluetooth.<br />
* OMAP35x based [http://www.ultratronik.de/mmi-rechnerplattformen.html MMI4 from Ultratronik]<br />
* OMAP35x based [http://www.technexion.com/index.php/tao-3530 TAO-3530 from TechNexion]<br />
* OMAP35x based [http://www.variscite.com/varomap35xxsbc.html VAR-OM35xxSBC from Variscite]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard_Community&diff=15830BeagleBoard Community2009-12-19T10:30:21Z<p>FransMeulenbroeks: /* Articles */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
This page collects information about [http://www.ti.com/ TI's] [http://www.arm.com/ ARM] based [http://focus.ti.com/general/docs/gencontent.tsp?contentId=36915&amp;DCMP=OMAP_Feb27_2008&amp;HQS=Other+PR+omap3503pr OMAP3] [http://beagleboard.org Beagle Board].<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:''' [http://www.tincantools.com/product.php?productid=16147&cat=0&page=1&featured Zippy] Expansion boards for the [[BeagleBoard]] are now available! In Canada, check out [http://robotcraft.ca RobotCraft] in London, Ontario</div><br />
<br />
<br />
=Events=<br />
* Each last Saturday of the month, next August 29, 2009: [[BeagleBoard/bangalore user meet|BeagleBoard Bangalore user meeting]] (Beagle Clinic India)<br />
* all over the world 2009: [http://www.ti.com/corp/docs/landing/techday09/index.shtml# TI Technology Days 2009]. <br />
* ongoing 2009: [[BeagleBoard/contest|Beagle Sponsored Project Program]] - add a cool project and get a free BeagleBoard to realize it!<br />
<br />
=Hardware=<br />
<br />
The Beagle Board is ''a low-cost, fan-less single-board computer based on TI's OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise'' (from [http://beagleboard.org/ beagleboard.org]). It uses a TI [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor (ARM Cortex-A8 superscalar core ~600MHz paired with a TMS320C64x+ DSP ~430MHz and an Imagination SGX 2D/3D graphics processor). See [http://focus.ti.com/docs/prod/folders/print/omap3530.html#features OMAP3530 features] for more processor features. [[BeagleBoard#Availability|Price is USD 149]]. The design goal was to make it as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See [http://beagleboard.org/brief What is Beagle?] and [http://linuxdevices.com/news/NS5852740920.html LinuxDevices article] for more details.<br />
<br />
The videos [http://uk.youtube.com/watch?v=fL_XMieanSc Beagle Board Beginnings] and [http://uk.youtube.com/watch?v=FuVwh_VrIxk Beagle Board 3D, Angstrom, and Ubuntu] give you a good intro about what BeagleBoard is about and its capabilities.<br />
<br />
==Components==<br />
<br />
{|border=0<br />
!Top view of rev B:<br />
!Top view of rev C:<br />
|-<br />
|[[Image:Bb revb top numbered.jpg]]<br />
|[[Image:Bb revc top numbered.jpg]]<br />
|-<br />
|}<br />
{|border=1<br />
!No.<br />
!Name<br />
!Comment<br />
|-<br />
|'''1'''<br />
|[http://www.ti.com/omap35x OMAP3530] processor + 256MB NAND<br />
<br />
+ 128MB DDR (rev B)<br />
<br />
+ 256MB DDR (rev C)<br />
|PoP: Package-On-Package implementation for Memory Stacking<br />
[http://www.micron.com/products/partdetail?part=MT29C2G24MAKLAJG-6%20IT 256MB NAND/128MB Mobile DDR SDRAM] available from [http://www.digikey.com/scripts/US/DKSUS.dll?Detail?name=557-1435-ND DigiKey]<br />
<br />
([http://www.micron.com/products/partdetail?part=MT29C4G48MAPLCJI-6%20IT 512MB NAND/256MB Mobile DDR SDRAM] available from [http://www.digikey.com/scripts/US/DKSUS.dll?Detail?name=557-1436-ND DigiKey])<br />
<br />
[http://www.micron.com/products/mcps/beagleboard Micron's multi chip packages (MCPs) for Beagle Board]<br />
|-<br />
|'''2'''<br />
|[http://focus.ti.com/docs/prod/folders/print/tfp410.html DVI chip (TFP410)]<br />
|<br />
|-<br />
|'''3'''<br />
|[[BeagleBoard#DVI|DVI-D]]<br />
|Connection via HDMI connector<br />
|-<br />
|'''4'''<br />
|[[BeagleBoard#JTAG|14-pin JTAG]]<br />
|1.8V only!<br />
|-<br />
|'''5'''<br />
|Expansion connector: I2C, I2S, SPI, MMC/SD<br />
|User must solder desired header into place<br />
|-<br />
|'''6'''<br />
|[[BeagleBoard#User_button|User button]] <br />
|Allows setting boot order.<br />
|-<br />
|'''7'''<br />
| Reset button<br />
|<br />
|-<br />
| '''8'''<br />
|[[BeagleBoard#EHCI|USB 2.0 EHCI HS]]<br />
|Rev A and B: not working, unpopulated<br />
<br />
Rev C: populated and working<br />
|-<br />
|'''9'''<br />
|SD/MMC+<br />
| SDHC cards are supported<br />
|-<br />
|'''10'''<br />
|[[BeagleBoard#RS232|RS-232 serial]]<br />
|<br />
|-<br />
|'''11'''<br />
|Alternate power <br />
|normally powered by USB (unmounted on REV Ax boards, see [[BeagleBoard#Errata|errata]])<br />
|-<br />
|'''12'''<br />
|[[BeagleBoard#OTG|USB 2.0 HS OTG]] <br />
|Mini-AB connector. Board can be powered from port. <br />
|-<br />
|'''13'''<br />
|Stereo In<br />
|<br />
|-<br />
|'''14'''<br />
|Stereo Out<br />
|<br />
|-<br />
|'''15'''<br />
|S-Video<br />
|<br />
|-<br />
|'''16'''<br />
|TWL4030 (Rev A thru C2 inc.)<br />
[http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] (Rev C3 onwards)<br />
|Audio CODEC, USB port, power-on reset and power management. The TWL4030 is pin-compatible with the [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] chip and was used due to the very limited availability of the TPS65950 in early board revisions.<br />
|-<br />
|'''17'''<br />
|LCD<br />
|only rev C<br />
|-<br />
|'''18'''<br />
|USB power<br />
|<br />
|-<br />
|'''19'''<br />
|Host PHY<br />
|<br />
|-<br />
|'''20'''<br />
|32kHz<br />
|<br />
|-<br />
|'''21'''<br />
|12MHz<br />
|<br />
|-<br />
|'''22'''<br />
|RS232 XVCR<br />
|<br />
|-<br />
|'''23'''<br />
|PWR SW<br />
|<br />
|-<br />
|'''24'''<br />
|VBAT<br />
|<br />
|-<br />
|}<br />
<br />
* Board size: 3" x 3" (about 76.2 x 76.2 mm)<br />
* Weight: [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/beagleboard.png ~37g]<br />
* Currently 6 layer PCB; target: 4 layer<br />
<br />
'''Bottom of rev B:'''<br />
<br />
[[Image:Beagle_bottom.jpg]]<br />
<br />
See [http://www.flickr.com/photos/jadon/sets/72157606050144396/ jadonk's photostream] for some more detailed BeagleBoard pictures.<br />
<br />
==Manual==<br />
<br />
See [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)].<br />
<br />
==Schematic==<br />
<br />
Schematic of BeagleBoard Rev. C3 is available as part of [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)]. Rev C3 and previous are also available from [http://beagleboard.org/hardware/design BeagleBoard.org design page] including in PDF format. Please make sure that you ''read, understand and agree'' [http://groups.google.com/group/beagleboard/msg/ee3e1bc927551ffc Jason's mail] before using this.<br />
<br />
==Layout== <br />
<br />
Layout of BeagleBoard Rev. C3 is available as part of [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard System Reference Manual (rev. C3.0)]. Rev C3 and previous layouts are also available from the [http://beagleboard.org/hardware/design BeagleBoard.org design page]. Please make sure that you ''read, understand and agree'' [http://groups.google.com/group/beagleboard/msg/ee3e1bc927551ffc Jason's mail] before using this.<br />
<br />
==Errata==<br />
<br />
# ''Boards revision A only'': The DC power jack pinout is incorrect on the PCB layout. DC_5V and GND are switched on PCB layout. Normally, the power jack has DC_5V on the center pin and GND on the sleeve (see Figure 20 of [http://www.beagleboard.org/uploads/BBSRM_6.pdf Beagle HW manual]). But on revision Ax boards the PCB layout has GND on center and DC_5V on sleeve. For this reason it is currently removed. It will be back on the Rev B board. Workaround is to remove wire connecting the two power pins on revision Ax boards and use external [http://amethyst.openembedded.net/~koen/beagleboard/beagle-power-pads.jpg power supply with switched connector] (do not connect anything to the “?” terminal. USB power will be permanently disabled and the board can only be powered from the 5V.) See [http://www.flickr.com/photos/koenkooi/2512038988/ Koen's Beagleboard powermod picture] with short descriptions, too.<br />
# ''Boards revision < A5 only'': There is excess voltage drop across R6 which is used to measure the current consumption on the board. This needs to be a .1 ohm instead of a 1 ohm resistor (SMD 0805). All revision A5 boards have been updated to .1. You can also just solder in a jumper to J2 bypassing the current read point. This issue can cause issues with the USB host port as the voltage supplied to that port can be too low.<br />
# ''Boards revision A only'': User LEDs 0 and 1 are shorted on the layout preventing them from being controlled individually. You need to control both GPIO_149 and GPIO_150 to turn on or off both LEDs. This is fixed in the Rev B boards.<br />
# ''Boards revision < A5 only'': There is an issue where on some boards the 1.8V has excessive noise on it. This is the result of two incorrect parts L1 and L3 being installed on the board. The inductors that were initially installed in the switchers are 100uH and need to be 1uH. This change will require that the board be returned for update. To check for correct parts, have a look to bottom of BeagleBoard. L1 - L3 are the larger parts there. They all have to be labeled with "102" (== 1uH). If any of these three inductors are labeled with "104" (== 100uH) they are wrong and have to be exchanged.<br />
# ''Boards revision A and B'': USB HOST (EHCI) failures. See [http://code.google.com/p/beagleboard/issues/detail?id=15 issue 15] and [http://code.google.com/p/beagleboard/wiki/USBHostTestREPRODUCE USB host test reproduce]. This is a hardware defect. [http://www.beagleboard.org/irclogs/index.php?date=2008-05-29#T00:27:06 Most probably] Rev. B board does not have the EHCI USB connector mounted. Workaround: Use [[BeagleBoard#OTG|OTG port]] with something like [http://trisoft.de/pics/ZHost.JPG mini A to USB A adapter] instead.<br />
# ''Boards revision A and < B4'': Plugging in a USB OTG cable will prevent Beagle from booting (with git kernel), see [http://code.google.com/p/beagleboard/issues/detail?id=19 issue #19], too. This is due to missing filtering capacitor at USB OTG VBUS. When the kernel driver detects that a USB OTG cable is inserted it enables the charge pump to generate VBUS. With no filtering VBUS looks like any switching regulator output with no filtering -- a huge voltage spike when the switch is on, followed by a rapid decay to a low voltage until the next switch on period. The capacitor is there to store energy between the output switch ON and OFF time, the feedback loop in the regulator does sample the cap voltage. Fix is to piggy-back solder a 0603 2.2uF ceramic capacitor to D3, see [http://www.sakoman.net/omap3/beagle/vbus-mod-d3.jpg VBUS modification D3 picture]. Revision B4 boards and newer have this fix applied. Thanks to [http://groups.google.com/group/beagleboard/msg/eb789e15c99a673d Steve] for debugging this!<br />
# ''Boards revision A and < B5'': There is some issue with 32kHz clock depending on system configuration used to clock some OMAP3 peripherals. From this e.g. GPIOs, GPTIMERs, and USB on Beagle might be affected. See [http://code.google.com/p/beagleboard/issues/detail?id=22 Issue 22]. Symptom from this is that after booting Linux kernel serial console hangs after some time and no serial input/output is possible any more. There is one software workaround and one hardware fix for this: (A) Software workaround: Don't use 32kHz timer to clock Linux, instead use MPU timer. (B) Hardware workaround: Remove [http://www.flickr.com/photos/25691331@N04/2766671437/in/pool-beagleboard capacitor C70], which improves the 32kHz clock quality and avoids hang-up. Note: Revision A boards have capacitor C70 [http://www.flickr.com/photos/25691331@N04/2766671437/in/pool-beagleboard at the same location] as rev. B boards. Note: Board revision >= B5 removes capacitor C70.<br />
# ''Random boards, quite rare, revision < B6'': Some random boards and quite rare, show directly after purchasing broken serial communication from host PC to BeagleBoard. Symptom is that you get a new board, get serial output from BeagleBoard in terminal program, but can't type anything at U-Boot prompt (Note: Don't mix this with errata #7. With errata #7 you are able to use U-Boot normally, but Linux prompt input stops after some time). Most users don't have this issue, though. So, first double check your serial configuration ([[BeagleBoardFAQ#Serial_connection_.231|FAQ1]], [[BeagleBoardFAQ#Serial_connection_.232|FAQ2]] and [[BeagleBoardFAQ#Serial_connection_.233|FAQ3]]). Only if you are really, really sure that anything with your serial connection is fine, consider sending the board back doing a [http://beagleboard.org/support/rma RMA request]. This issue was resolved on revision B6 and later boards.<br />
<br />
For additional (software) issues and enhancement requests see [http://code.google.com/p/beagleboard/issues/list Beagle board open point list & issue tracker], too.<br />
<br />
Note: BeagleBoard revision B6 uses different package for U9/U11.<br />
<br />
==Clocking==<br />
<br />
Some [http://www.beagleboard.org/irclogs/index.php?date=2008-07-08#T21:12:23 notes] about (ARM processor) clock rates at BeagleBoard:<br />
<br />
* ARM Cortex-A8 processor is currently clocked at 500MHz<br />
* 500MHz is the default used because it is a balance of performance and longevity<br />
* For OMAP35x 600MHz is max recommended<br />
* At 600MHz OMAP35x is considered to be 'overdrive' and it does not have the same life expectancy<br />
* Higher than 600MHz is out of spec and no guarantee it will work at all (or not damage itself)<br />
* Also keep in mind that if you go higher you probably want to increase the core voltage. Some of this is mentioned in table 3-3 of the [http://focus.ti.com/lit/ds/symlink/omap3530.pdf OMAP3530 data sheet]. Some numbers:<br />
<br />
{| border="1"<br />
||'''ARM'''||'''DSP'''||'''core voltage'''<br />
|-<br />
|600 MHz||430 MHz||1.35V<br />
|-<br />
|550 MHz||400 MHz||1.27V<br />
|-<br />
|500 MHz||360 MHz||1.2V<br />
|}<br />
<br />
* For some OMAP3 clock, voltage and power management discussion see [http://focus.ti.com/lit/an/sprt495/sprt495.pdf OMAP3 power management white paper], too.<br />
* The OMAP3 chip on the Beagle lacks the efuses needed for using the SmartReflex technology, see [http://www.beagleboard.org/irclogs/index.php?date=2009-02-26#T10:44:24].<br />
* There is a thermal monitor in the core, you could use to scale frequency up and down<br />
<br />
To set CPU clock to 600 MHz, there are two options. Both '''do not''' adjust the voltage, so the system may become unstable:<br />
<br />
* The u-boot command "mw 48004940 0012580c" will temporarily set the CPU clock to 600 MHz (not permanent over reset).<br />
* To permanently set the CPU clock to 600 MHz, include the above command in the "bootcmd" variable or equivalent script.<br />
<br />
==Power management==<br />
<br />
* Detailed OMAP3 Power Management Information can be found [[OMAP_Power_Management|HERE]]<br />
* Latest Linux kernel power management development for TI OMAP SoCs is maintained in [http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=summary Kevin's linux-omap-pm git tree]<br />
* Russ' Beagle HW modifications resulted in [http://groups.google.com/group/beagleboard/browse_thread/thread/197a8ef6b46cc828 8mW sleep for Beagle Board]<br />
<br />
Without PM kernel, the Beagle [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/index.htm consumes ~1.5 watts idle, however it also uses the same amount under load] (see bottom of that page).<br />
<br />
==DLP Pico projector==<br />
<br />
Texas Instruments is developing a Pico Video Projector Kit (PVPK) as a peripheral for the Beagle Board. The stand alone pico projector will support VGA resolution (640 x 480), RGB 888 input through a DVI interface. The physical connector on the projector will be HDMI. See [http://groups.google.com/group/beagleboard/msg/10e218972380ee48 mailing list] and [http://www.youtube.com/watch?v=-tUBXD-KRp4 Beagle Running Angstrom (VGA) on DLP Pico Projector] for more details.<br />
<br />
It is available from [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-23836-ND DigiKey] for $349.<br />
<br />
See [http://blog.makezine.com/archive/2009/01/tis_beagleboard_and_dlp_pico_projector.html?CMP=OTC-0D6B48984890 article from Make], too.<br />
<br />
DigiKey videos [http://www.youtube.com/watch?v=KBbCdnOj5vg part 1], [http://www.youtube.com/watch?v=zymOmduNWyI part 2] and [http://www.youtube.com/watch?v=Uj19Bi5NYeU part 3].<br />
<br />
==Interfacing to Raw LCD Panels==<br />
<br />
Currently on Rev A / B boards there is no direct access to the LCD lines before they enter the DVI framer. The REV C2 provides access to these lines. Several projects to interface an LCD to the beagleboard exist:<br />
<br />
* [[BeagleBoardRawLCD|interfacing to Raw LCD Panels]] article <br />
* [http://digitalsurveyinstruments.com/beagleperiphials/hdmi2parallel/doc/index.htm hdmi to parallel] workaround method<br />
* [http://www.harbaum.org/till/dvi2par/index.shtml dvi2par cheap diy HDMI to parallel converter]<br />
<br />
=Availability=<br />
<br />
BeagleBoards, currently Rev. C3 boards, are available from<br />
<br />
* [http://www.mouser.com/beagleboard Mouser]<br />
* [http://dkc1.digikey.com/us/mkt/beagleboard.html Digi-Key] with part number [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-23428-ND 296-23428-ND].<br />
<br />
Note: For non-US Digi-Key free shipping orders:<br />
<br />
* Click the US flag on the top right corner of [http://dkc1.digikey.com/us/mkt/beagleboard.html Digi-Key] BeagleBoard page to come to the international page<br />
* Select ''Order Online'' for your country<br />
* Add quantity ''1'' and part number ''296-23428-ND''<br />
* Click ''Add to order''<br />
<br />
When ordering over 65 EUR / GBP 50 product (BeagleBoard is above), for Europe the price depends on the actual dollar to EUR/GBP rate. On nov 9, 2008 the price was EUR 124 with free shipping.<br />
<br />
Note: Some users report that they got some questions from DigiKey to be answered before board shipping is done.<br />
<br />
Note: While you get free shipping, most probably you have to pay tax e.g. ordering from Europe. Users report that they had to pay EUR ~34 - 44 VAT + importing taxes (depending on european country), resulting in EUR 137 - 147 ordering from Europe.<br />
<br />
Note: For European users, [http://www.ebv.com/fileadmin/products/Press_Print/Campaigns/2009/Product_Campaigns/Texas_Beagle_Board_englisch.pdf EBV Elektronik] sells its own blue version of the board for 179 EUR, which includes all useful accessories (DVI cable, serial cable, USB 2.0 Ethernet, USB hub, 2 GB MMC, power supply, Linux BSP).<br />
<br />
Note: German (Europe) users can order through German shops, too. For higher price, though. <br />
* [http://shop.embedded-projects.net/product_info.php/info/p159_BeagleBoard--OMAP-3-.html Embedded Projects Shop] sells BeagleBoard for EUR 199.00 + shipping.<br />
* [http://www.handheld-linux.com/wiki.php?page=Beagle%20Board Handheld-Linux]<br />
<br />
See below for ''hardware'' differences of the revisions. There are no ''software'' differences. <br />
<br />
==Revision A==<br />
<br />
There are some limited early revision Ax prototypes out there used by some hackers hanging around at #beagle channel on irc.freenode.net. See [[BeagleBoard#Errata|errata]] for limitations.<br />
<br />
==Revision B==<br />
<br />
Revision B is same as revision A, except<br />
* fix for shorted LEDs 0/1<br />
* fix for wrong power jack pinout<br />
* revision B6 uses different package for U9/U11<br />
Still has USB HOST (EHCI) failures. USB HOST (EHCI) connector isn't mounted.<br />
<br />
There are 4 revisions of the B board in the field: B4, B5, B6 and B7.<br />
<br />
The most notable difference is the use of the ES3.0 silicon in B6 and B7, other changes are not relevant to software developers.<br />
<br />
==Revision C2==<br />
Revision C2 is same as revision B7 except:<br />
* USB HOST (EHCI) is operational on revision C2, with standard USB A female connector.<br />
* Add interface for raw LCDs ([http://groups.google.com/group/beagleboard/msg/2e82c3ed6061d9d2 mockup])<br />
* It uses updated OMAP3 revision. BeagleBoard revisions B4+B5 uses OMAP3 ES 2.1 (engineering sample), while BeagleBoard revision C2 uses ES 3.0. OMAP3 ES 3.0 fixes minor issues:<br />
** updated ARM Cortex A8 silicon (r1p3) fixing a very rare [http://elinux.org/BeagleBoardFAQ#NEON_performance NEON issue] that has not been seen in real code<br />
* Power measurement feature<br />
* Uses [http://focus.ti.com/docs/prod/folders/print/tps65950.html TPS65950] OMAP power controller instead of TWL4030<br />
* Three additional PWM signals on the expansion connector added as pin mux options to existing pins ([http://groups.google.com/group/beagleboard/browse_thread/thread/d5872b7c6d74592c?hl=en# message])<br />
* Revision detection (to be able to identify C2 board from older boards by software, e.g. for different pin mux)<br />
* 256MB RAM ([http://groups.google.com/group/beagleboard/msg/3a38d0f21cefd6b1?hl=en message]) (and still 256MB NAND like rev B)<br />
<br />
Note: Revision C2 is the first production version, and all orders from from Digi-Key are shipped as Rev C2.<br />
<br />
==Revision C3==<br />
As revision C2 boards are [http://groups.google.com/group/beagleboard/msg/e41d3c97aa7d4951 sold out], revision C3 will ship now.<br />
<br />
Revision C3 is same as revision C2 [http://groups.google.com/group/beagleboard/msg/037318fbc44139d5 except]:<br />
* Optional RTC [http://parts.digikey.com/1/parts/1454-battery-lith-coin-3v-12-5mm-vert-vl-1220-vcn.html VL1220 series] backup battery<br />
* Mounting holes conected to ground<br />
* Slightly improved S-Video<br />
<br />
==Clones==<br />
===EBVBeagle===<br />
EBV build and sell their own BeagleBoard called [http://www.ebv.com/en/products/categories/details/product/ebvbeagle-board EBVBeagle], see e.g. [http://fl0rian.wordpress.com/2009/03/08/the-other-beagleboard/].<br />
It is actually a BeagleBoard revision C2 with green PCB boxed with some useful accessories. It comes as a quite complete starter kit with AC adapter, USB to Ethernet adapter, MMC card, USB hub and some cables.<br />
More information in [http://www.ebv.com/en/press-print/news-pr/details/news//press-releas-54.html official press release].<br />
<br />
===Mini Board===<br />
[[Mini_Board|ICETEK-OMAP3530-Mini]] is a chinese BeagleBoard clone.<br />
<br />
===DevKit 8000===<br />
[[DevKit8000]] is a Chinese BeagleBoard clone, slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard).<br />
<br />
===IGEPv2===<br />
[http://www.igep-platform.com/ IGEPv2 Platform] is a Spanish BeagleBoard clone, slightly larger, with additional peripherals like e.g. ethernet connector, wifi+bluetooth.<br />
<br />
==BeagleBoard-based products==<br />
* [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book], see [http://gigglehd.com/zbxe/hdforum/files/attach/images/899852/493/987/001/always_innovating_touch_book_0011.jpg]<br />
<br />
==Beagle case==<br />
<br />
*[http://specialcomp.com/beagleboard/ Special Computing]<br />
*[http://groups.google.com/group/beagleboard/browse_thread/thread/1c82316019633e51 SketchUp 3D model]<br />
<br />
=Adapters=<br />
<br />
For quite detailed information about all BeagleBoard peripherals see [http://www.beagleboard.org/uploads/BBSRM_6.pdf BeagleBoard HW Reference Manual (rev. B6)].<br />
<br />
See [[BeagleBoardPeripherals| BeagleBoard peripherals and adapters page]] for useful add ons for Beagle Board.<br />
<br />
==Expansion boards==<br />
* [[BeagleBoardPinMux|Expansion Board Support Information]]<br />
* [[BeagleBoard Zippy]] expansion board is now available from [http://www.tincantools.com/product.php?productid=16147&cat=0&page=1&featured TinCanTools] for $79.00. basic specs are:<br />
** Battery Backed RTC<br />
** Second MMC slot<br />
** 10BaseT Ethernet<br />
** Second RS-232<br />
** +5V level I2C<br />
** AT24 EEPROM<br />
* [https://sourceforge.net/apps/mediawiki/beagleserver/index.php?title=Main_Page BeagleServer expansion board] is an Open Hardware project. Currently a high level design note is available, which describes the components to be used. It aims at the following specifications :<br />
** Aims at transforming a Beagleboard or IGEPv2 into a full-blown home server that could cater to home automation needs<br />
** Compatible with both the Beagleboard and the IGEPv2<br />
** 12V battery powered, or mains-powered (accepts 9 ~ 18V)<br />
** Enough power for an internal 2.5" or 3.5" hard-disk, USB-attached<br />
** +3.3V and +5V I2C; +5V I2C is buffered with a line buffer accepting a larger capacitance which allows I2C devices at distances up to 50m<br />
** I2C to 1-wire hub (using DS2482-800 which is supported by OWFS); plugging in 1-wire devices lights a LED which makes it easy to confirm if a 1-wire device is detected.<br />
** Real time clock with super-capacitor backup<br />
** Internal monitoring of the HW health (power supplies + temperature)<br />
** Some relays<br />
** Ethernet-based console port<br />
** a few other options (RS232 interface with CTS and RTS, SPI port, S-video, additional SD-card)<br />
* [http://www.hy-research.com/beagle_expansion.html HY Research] has some expansion board basics and example.<br />
* [http://www.hervanta.com/stuff/Beaglebot#Expansion_Board Beaglebot] uses a custom extension board.<br />
* [http://beagleboard.org/leopard Leopard Board], a Beagle buddy web camera<br />
* There is also a VGA DB15 adapter board under development for the Rev C2 board. It should be available through a yet to be annnounced outlet.<br />
<br />
In Canada, check out [[http://robotcraft.ca RobotCraft]] in London, Ontario for expansion boards.<br />
<br />
==JTAG==<br />
<br />
Depending on your JTAG tool, you'd need a 14-pin to 20-pin adapter to use an ARM debugger. The 14-pin TI JTAG connector is used on BeagleBoard and is supported by a large number of JTAG emulation products.<br />
See [[BeagleBoardJTAG]] for more information.<br />
<br />
==RS232==<br />
<br />
The pinout on the beagle board is "AT/Everex" or "IDC10". You can buy [http://www.pccables.com/07120.htm IDC10 to DB9M adapters] in many places as they are commonly used for old PCs. Depending on your local configuration, you may need a [http://en.wikipedia.org/wiki/Null_modem 9-Pin NullModem] cable to connect BeagleBoard to serial port of your PC. From [http://www.tincantools.com/ TinCanTools] there is a [http://www.tincantools.com/product.php?productid=16144&cat=0&page=1&featured RS-232 DB-9 adapter] and [[media:flyswatter-ti-uart.pdf|adapter schematic]] available. You can also probably rip one of those cables out of any old desktop computer, where it's being used to support the serial port. Be careful, though -- some of those cables will have that tenth hole filled in so you'd have to snap off the extraneous pin on your BeagleBoard. Keep looking until you find a cable with all 10 holes open.<br />
<br />
Depending on your local configuration, you may need a [http://en.wikipedia.org/wiki/Null_modem 9-Pin NullModem] cable to connect BeagleBoard to serial port of your PC. From [http://www.tincantools.com/ TinCanTools] there is a [http://www.tincantools.com/product.php?productid=16144&cat=0&page=1&featured RS-232 DB-9 adapter] and [[media:flyswatter-ti-uart.pdf|adapter schematic]] available.<br />
<br />
==USB-to-Serial Converter==<br />
<br />
Since many systems no longer come with an actual serial port, you might need to pick up a USB-to-serial converter at your local computer store to connect to your BeagleBoard. Be warned that some of them simply do not work. Many of them are based on the Prolific chip, and require the pl2303 module to be loaded. But even when two converters appear to have exactly the same characteristics as listed in /var/log/messages, if you simply can't get one to work, be ready to try a different one.<br />
<br />
==USB==<br />
There are two USB ports on the BeagleBoard, one with an EHCI controller and another with an OTG controller. As of Rev B4, the usb EHCI has been removed because of a hardware defect. Rev C will include USB EHCI working properly.<br />
<br />
===EHCI===<br />
The HS ([http://en.wikipedia.org/wiki/USB#USB_signalling HighSpeed]) USB [http://en.wikipedia.org/wiki/EHCI ECHI] controller on OMAP3 on BeagleBoard supports high-speed only. This simplifies the logic on the device. FS/LS (FullSpeed/LowSpeed) devices, such as keyboards and mice, require going through a high-speed USB 2.0 hub.<br />
<br />
According to the BeagleBoard System Reference Manual Rev C2, the EHCI port can source 5V at 500mA which is enough to power a hub and several low-power devices. However, this is only true if the BeagleBoard is powered through its power jack from a well-regulated 5V external power supply. If the BeagleBoard is powered through the OTG port, the EHCI port sources an "extremely limited" ampount of power (probably 100mA or so) so you'll need a "self-powered" USB 2.0 hub with its own external power supply. [Reference: Sections 5.6 and 7.2 of the BBSRM Rev C2.2.]<br />
<br />
===OTG===<br />
The HS USB OTG ([http://en.wikipedia.org/wiki/USB_On-The-Go OnTheGo]) controller on OMAP3 on the BeagleBoard does have support for all the USB 2.0 speeds (LS/FS/HS) and can act as either a host or a gadget/device. The HS USB OTG port is used as the default power input for the BeagleBoard. It is possible to boot the BeagleBoard using this USB port.<br />
<br />
When using the OTG port in host mode, you must power the BeagleBoard using the +5V power jack. If you connect a USB hub, you'll probably also need external power for the USB hub as well, because according to the Hardware Reference manual the BeagleBoard OTG port only sources 100 mA. This is enough to drive a single low-power device, but probably won't work with multiple devices.<br />
<br />
The Linux kernel needs to know you want to use the OTG port in host mode. I believe OTG ports are supposed to figure this out for themselves using the OTG Host Negotiation Protocol, but for now the Linux kernel may need some help. Specifically, Pin 4 (ID) of the OTG connector needs to be shorted to Pin 5 (GND) by using a [http://trisoft.de/pics/ZHost.JPG 5-pin USB Mini-A plug] which shorts these pins together in the plug. A [http://en.wikipedia.org/wiki/USB#USB_cables 5-pin USB Mini-B plug] leaves Pin 4 floating. Unfortunately, most USB Mini plugs are unmarked as to whether they are "A" or "B".<br />
<br />
You can find "mini A" adapters that have Pin 4 shorted and offer out a full-sized USB A Female jack [http://www.electronicproductonline.com/catalog/product_info.php?products_id=2043 here.]<br />
<table><br />
<tr><td><br />
Since the right cables might be hard to get, you simply can<br />
* short circuit the two pins encircled in red in the image to the right. You can do this by running a wire between the two pins. That at least allows easier undoing the change. Actually you could even have a small switch or so between 4 and 5.<br />
or<br />
* use a "mini B" cable (easier to get) and try the soldering of the two pins at the cable's connector. Depending on the cable it should be possible to open the plastic covering of mini-B port with a sharp-edged knife, then solder the two pins together, close the covering again and use some tape. This leaves the BeagleBoard unmodified.<br />
</td><td>[[Image:usb_otg.png]]</td></tr></table><br />
The Rev C BeagleBoard has a pair of pads labeled J6 on the back of the board under the OTG connector. Shorting these pads together with a wire or solder blob connects pins 4 and 5.<br />
See Figure 20 in the BeagleBoard System Reference Manual Rev C2.2.<br />
<br />
==DVI==<br />
<br />
DVI-D connection on BeagleBoard uses a [http://en.wikipedia.org/wiki/HDMI HDMI connector]:<br />
<br />
''HDMI is backward-compatible with the single-link Digital Visual Interface carrying digital video (DVI-D or DVI-I, but not DVI-A) used on modern computer monitors and graphics cards. This means that a DVI-D source can drive a HDMI monitor, or vice versa, by means of a suitable adapter or cable, but the audio and remote control features of HDMI will not be available.''<br />
<br />
BeagleBoard can be connected to a DVI monitor using HDMI female to DVI male cable.<br />
<br />
=BootRom=<br />
<br />
OMAP3 on BeagleBoard contains a BootRom. With this, BeagleBoard can boot without any code in permanent storage (NAND) or from peripherals. This is useful for first board bring up or if your BeagleBoard is bricked. For more information about BootRom booting see [http://www.ti.com/litv/pdf/sprufd6a SPRUFD6]. <br />
<br />
==User button==<br />
<br />
With user button on BeagleBoard you can configure boot order. Depending on this button, the order used to scan boot devices is changed. The boot order is (the first is the default boot source):<br />
<br />
* User button ''not'' pressed: NAND -> USB -> UART -> MMC<br />
* User button ''is'' pressed: USB -> UART -> MMC -> NAND<br />
<br />
Technically speaking, the user button configures pin SYS.BOOT[5]. See [http://focus-webapps.ti.com/general/docs/sitesearch/searchsite.tsp?selectedTopic=1653260327&numRecords=25&searchTerm=sprufd6&statusCode=null SPRUFD6] for more details.<br />
<br />
==Serial and USB boot==<br />
<br />
Historically, using OMAP3's boot ROM for serial and USB boot, there are several tools around. The newest are Nishanth' ''OMAP U-Boot Utils'', while there are still some older tools for serial boot and USB boot. It is also possible to access the [[u-boot environment variables in linux|u-boot env from linux]].<br />
<br />
===OMAP U-Boot Utils===<br />
<br />
Nishanth' [http://code.google.com/p/omap-u-boot-utils/ OMAP U-Boot Utils] provide<br />
<br />
* ''pserial'' - OMAP specific utility which downloads a file in response to ASIC ID over serial port.<br />
* ''pusb'' - OMAP specific utility which downloads a file in response to ASIC ID over USB connection.<br />
* ''ucmd'' - Send a command to U-Boot and wait till a specific match appears.<br />
* ''ukermit - Download a file from host without using kermit to U-Boot.<br />
<br />
See [http://nishanthmenon.blogspot.com/ Nishanth' blog] and [http://groups.google.com/group/beagleboard/browse_thread/thread/c5bfb1b8ed528b52# announce mail], too.<br />
<br />
===Serial boot===<br />
<br />
Besides Nishanth' ''OMAP U-Boot Utils'', to boot from USB or UART, you need a PC tool which talks with OMAP BootRom and speaks the correct protocol to download ARM target code to BeagleBoard. Currently there are two older (experimental) tools for UART boot:<br />
<br />
* [http://omapzoom.org/gf/project/omaptools/wiki PC Serial Boot perl script]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/80ad3da0eb2aa555 Linux C utility] (not working yet with below target code)<br />
<br />
See [http://groups.google.com/group/beagleboard/browse_thread/thread/ae2c601ebe104a4 USB and serial download target code] for some example target code to be downloaded to OMAP3 on BeagleBoard.<br />
<br />
===USB boot===<br />
<br />
Besides Nishanth' ''OMAP U-Boot Utils'', for USB boot, there is currently one (experimental) tool to boot BeagleBoard over USB:<br />
<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/2b9e99886bb7a747 Linux C utility]<br />
<br />
See [http://groups.google.com/group/beagleboard/browse_thread/thread/ae2c601ebe104a4 USB and serial download target code] for some example target code to be downloaded to OMAP3 on BeagleBoard.<br />
<br />
See [[BeagleBoardRecovery#USB_recovery|USB recovery section]] how to use USB boot for board recovery.<br />
<br />
==NAND boot==<br />
<br />
See [[BeagleBoardNAND|NAND boot]] article.<br />
<br />
==MMC/SD boot==<br />
<br />
Currently, [http://code.google.com/p/beagleboard/wiki/BootingBeagleBoard boot the BeagleBoard with MMC/SD] is the only working way for first board bring up.<br />
<br />
===MMC/SD formatting===<br />
<br />
As described in above MMC/SD boot description, you have to ''create a bootable partition on MMC/SD Card''. This can be done using e.g. Windows or Linux tools.<br />
<br />
'''Windows'''<br />
<br />
See ''HP USB Disk Storage Format Tool 2.0.6'' description on [http://code.google.com/p/beagleboard/wiki/BootingBeagleBoard boot the BeagleBoard with MMC/SD] page.<br />
<br />
'''Linux'''<br />
<br />
Please see [http://wiki.omap.com/index.php?title=MMC_Boot_Format OMAP3 MMC Boot Format].<br />
<br />
===Dual partition card===<br />
<br />
You can [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat create a dual-partition card], booting from a FAT partition that can be read by the OMAP3 ROM bootloader and Windows, then utilizing an ext2 partition for the Linux root file system.<br />
<br />
To mount second ext2 partition as root file system (e.g. containing contents of [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode rd-ext2.bin]) use kernel boot arguments (e.g. in uboot using ''setenv bootargs''):<br />
<br />
console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait<br />
<br />
===U-Boot booting===<br />
<br />
If your MMC/SD card formatting is correct and you put [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode MLO, u-boot.bin and uImage] on the card you should get a u-boot prompt after booting beagle board. E.g. (output from terminal program with 115200 8N1):<br />
<br />
...40T.........XH.H.U�..Instruments X-Loader 1.41<br />
Starting on with MMC<br />
Reading boot sector<br />
<br />
717948 Bytes Read from MMC<br />
Starting OS Bootloader from MMC...<br />
<br />
U-Boot 1.1.4 (Apr 2 2008 - 13:42:13)<br />
<br />
OMAP3430-GP rev 2, CPU-OPP2 L3-133MHz<br />
TI 3430Beagle 2.0 Version + mDDR (Boot ONND)<br />
DRAM: 128 MB<br />
Flash: 0 kB<br />
NAND:256 MiB<br />
In: serial<br />
Out: serial<br />
Err: serial<br />
Audio Tone on Speakers ... complete<br />
OMAP3 beagleboard.org #<br />
<br />
Using this u-boot prompt, you now can start kernel uImage stored on MMC card manually:<br />
<br />
OMAP3 beagleboard.org # mmc init<br />
OMAP3 beagleboard.org # fatload mmc 0:1 0x80000000 uimage<br />
OMAP3 beagleboard.org # bootm<br />
<br />
If you like to make that happen every boot:<br />
<br />
OMAP3 beagleboard.org # set bootcmd 'mmc init ; fatload mmc 0:1 0x80000000 uimage ; bootm' ; saveenv<br />
<br />
=Code=<br />
<br />
Code and binaries for BeagleBoard are available at various places.<br />
<br />
==Binaries==<br />
<br />
BeagleBoard pre-built binaries and source code can be found at [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode Beagle source code] and [http://code.google.com/p/beagleboard/downloads/list downloads] page. These are the locations where "official" TI code is available. Please note that this code is mainly for reference and testing. More up to date binaries and code is available by community. Community took (parts) of TI reference code, improves and updates it. <br />
<br />
Actually, [http://www.angstrom-distribution.org/node/47 Koen's prebuilt Beagleboard demo images] are up to date binaries including e17 as window manager, the abiword word processor, the gnumeric spreadsheet application, a NEON accelerated mplayer and the popular NEON accelerated omapfbplay which gives you fullscreen 720p decoding. The [http://www.angstrom-distribution.org/demo/beagleboard www.angstrom-distribution.org/demo/beagleboard] directory should contain all the files you need:<br />
<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/u-boot.bin u-boot.bin]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/MLO MLO]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/uImage uImage]<br />
* [http://www.angstrom-distribution.org/demo/beagleboard/Angstrom-Beagleboard-demo-image-glibc-ipk-2009.X-test-20090104-beagleboard.rootfs.tar.bz2 rootfs]<br />
<br />
See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat beagle wiki] on how to setup your SD card to use all this goodness.<br />
<br />
==Source==<br />
<br />
Besides above binary and source images (TI's and communities one), for various parts of Beagle software stack there are community supported [http://git.or.cz/ git] repositories available. <br />
<br />
===X-Loader===<br />
<br />
Steve did some work to consolidate and update X-Loader from various sources and put it in a [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=x-load-omap3.git;a=summary X-Loader git repository]. Get it by<br />
<br />
git clone git://gitorious.org/x-load-omap3/mainline.git xloader<br />
cd xloader/<br />
<br />
Build:<br />
<br />
make distclean<br />
make omap3530beagle_config<br />
make<br />
<br />
Result will be a ~20k sized ''x-load.bin'' in main directory.<br />
<br />
===U-Boot===<br />
<br />
[http://www.denx.de/wiki/U-Boot/WebHome Mainline U-Boot] has good support for BeagleBoard. Get it by:<br />
<br />
git clone git://git.denx.de/u-boot.git u-boot-main<br />
cd u-boot-main<br />
git checkout --track -b omap3 origin/master<br />
<br />
Build (assuming [[ARMCompilers#Recommendations|Code Sourcery GCC]]):<br />
<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- mrproper<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config<br />
make CROSS_COMPILE=arm-none-linux-gnueabi- <br />
<br />
Result will be a ~160k sized ''u-boot.bin'' in main directory.<br />
<br />
Note: Due to (patch and binary) size, BeagleBoard splash screen was removed from upstream version. If you want it back, use [http://groups.google.com/group/beagleboard/browse_thread/thread/3ad9b803a3418624 U-Boot v1 BeagleBoard splash screen patch].<br />
<br />
Note: For experimental U-Boot patches not ready for mainline yet, Steve's [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=u-boot-omap3.git;a=summary Beagle U-Boot git repository] is used to test them. Get it by:<br />
<br />
git clone git://gitorious.org/u-boot-omap3/mainline.git u-boot-omap3<br />
cd u-boot-omap3<br />
git checkout --track -b omap3-dev origin/omap3-dev<br />
<br />
===Linux kernel===<br />
<br />
[http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary Git repository] of [http://muru.com/linux/omap/ OMAP Linux kernel] contains Beagle support. Get it by:<br />
<br />
git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git linux-omap-2.6<br />
cd linux-omap-2.6<br />
<br />
Build:<br />
<br />
make distclean<br />
make omap3_beagle_defconfig<br />
make menuconfig # only needed if you want to change the default configuration<br />
make uImage<br />
<br />
The result will be a ''uImage'' in ''arch/arm/boot/'' directory.<br />
<br />
If you use the OE toolchain and want to build outside of the OE tree you should do<br />
ARCH=arm<br />
PATH=~/oe/tmp/cross/armv7a/bin:~/oe/tmp/staging/i686-linux/usr/bin:$PATH # add cross tools to your path<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- distclean<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- omap3_beagle_defconfig<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- menuconfig # only needed if you want to change the default configuration<br />
make CROSS_COMPILE=arm-angstrom-linux-gnueabi- uImage<br />
Note: the staging dir in the path is for mkimage. If you've build a kernel before with oe, the program should be there<br />
<br />
Note: If you are interested in kernel development have a look to [[BeagleBoardLinuxKernel|manually compiling BeagleBoard kernel]], too.<br />
<br />
===Experimental kernel patches and hacks===<br />
<br />
Some beagle developers maintain their own kernel experimental patches and hacks not ready for upstream:<br />
<br />
* [http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/linux/linux-omap Koen's collection of kernels patches for OE] and the [http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/packages/linux/linux-omap_git.bb list of relevant patches]<br />
* [http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/test Steve's kernel tree], a clone of main OMAP git with additional patches, mainly beagle audio (ASOC) related.<br />
* [http://git.mansr.com/?p=linux-omap;a=summary Mans' kernel tree], a clone of main OMAP git with additional patches, mainly display & framebuffer related.<br />
* [http://www.bat.org/~tomba/linux-omap.html Tomi's kernel tree], a clone of main OMAP git with display sub-system patches, replacing the entire display driver with one that is the likely direction moving forward.<br />
<br />
=Compiler=<br />
<br />
TI OMAP3530 processor on BeagleBoard contains an ARM Cortex-A8 general purpose processor and a TMS320C64x+ DSP.<br />
<br />
==ARM==<br />
<br />
There is broad compiler support including gcc - please see [http://www.elinux.org/ARMCompilers ARM Compilers]<br />
<br />
==C64x+ DSP==<br />
<br />
A free C64x DSP compiler is available as [https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html Linux hosted C6x Code Generation Tools] (TMS320C6000 C/C++ CODE GENERATION TOOLS 6.1.3 July 2008).<br />
<br />
Note: my.TI account required. You may create an account [https://my.ti.com here]<br />
<br />
Note: Old c6000 Linux compiler available on [ftp://ftp.ti.com/pub/cs/linux_cgt500.tar.gz TI FTP site]. Does NOT support c64x+ core in OMAP3 devices. Not recommended.<br />
<br />
You can also utilize the [http://focus.ti.com/dsp/docs/dspsupportaut.tsp?familyId=44&sectionId=3&tabId=416&toolTypeId=30 full-CCS free evaluation tools for 120 days], but they currently require purchase to upgrade to service release 9 to support full JTAG debugging with supported JTAG hardware.<br />
<br />
See [[BeagleBoard/DSP_Howto| BeagleBoard DSP howto]] for information about how to use the DSP.<br />
<br />
=Cortex A8 ARM features =<br />
<br />
ARM Cortex-A8 in OMAP3 is a high performance dual-issue applications processor which reaches a performance of 2.0 DMIPS/MHz (compared to ARM11 at 1.2 DMIPS/MHz). It is ARM v7 architecture, which is fully backwards compatible with application code for previous ARM processors.<br />
<br />
It includes a floating point unit (ARM VFPv3 architecture) and the ARM NEON SIMD instruction set.<br />
<br />
See [http://pandorawiki.org/Floating_Point_Optimization Floating Point Optimization] article for an intro into VFP-lite and NEON.<br />
<br />
===ARM NEON===<br />
<br />
NEON is a 64/128-bit wide SIMD vector extension for ARM, which has been architected to be an efficient C compiler target as well as being used from assembly language. It has 32x 64-bit registers (with a dual view as 16x 128-bit registers) which can hold the following datatypes:<br />
* 64-bit signed/unsigned<br />
* 32-bit signed/unsigned<br />
* 32-bit single precision floating point<br />
* 16-bit signed/unsigned<br />
* 8-bit signed/unsigned<br />
<br />
The key advantage of NEON is very high performance vector math processing, whilst being easy to program. It is the same thread of control as the ARM (but different instructions), and is supported by the same tools, debuggers and operating systems.<br />
<br />
The NEON instruction set is documented in ARM's [http://infocenter.arm.com/help/topic/com.arm.doc.dui0204i/DUI0204I_rvct_assembler_guide.pdf RealView Compilation Tools Assembler Guide].<br />
<br />
For NEON optimized libraries see [http://www.us.design-reuse.com/news/18429/aac-mp3-mpeg-4-h-264-fft-openmax-cortex-a8-neon-arm11-processors.html ARM Releases AAC, MP3, MPEG-4, H.264 and FFT OpenMAX DL Libraries, Highly Optimized for Cortex-A8/NEON and ARM11 Processors]. Note: Read the [http://www.arm.com/products/esd/openmax_v7libraries.html EULA].<br />
<br />
NEON is currently used by<br />
* ffmpeg - libavcodec used by mplayer, omapfbplay, and many other linux applications<br />
* libpixman - used by X.org and Mozilla & Webkit browsers to render text and graphics<br />
* Bluez - official Linux Bluetooth stack<br />
<br />
=== ARM Cortex Floating Point ===<br />
<br />
There are two types of instructions in the ARM v7 ISA that handle floating point:<br />
<br />
1) '''VFPv3''' Floating point instruction set (used for single/double precision scalar operations).<br />
These is used by gcc for C floating point operations on 'float' and 'double'<br />
<br />
2) '''NEON''' [http://www.arm.com/products/multimedia/neon/ NEON] vectorized single precision operations (2 values in a D-register, or 4 values in a Q-register)<br />
These can be use by gcc when -ftree-vectorize is enabled and -mfpu=neon is specified, and the code can be vectorized. In other cases the VFPv3 scalar ops will be used.<br />
<br />
ARM Cortex-A processors have separate floating point pipelines that handle these different instructions.<br />
<br />
On Cortex-A8, the designers' focus was on the NEON unit performance which can sustain 1 cycle/instr throughput (processing 2 single-precision values at once). The scalar VFPv3 FPU cannot achieve this level of performance (cycle timings are in the Cortex-A8 TRM download), but it is still a lot better than doing floating point using integer instructions.<br />
<br />
If you need the highest performance floating point on Cortex-A8, you need to use single precision and ensure the code uses the NEON vectorized instructions:<br />
* use gcc with -ftree-vectorize (possibly modify source code to make it vector friendly)<br />
* use NEON instrinsics (#include <arm_neon.h>, float32x2_t datatype and vmul_f32() etc)<br />
* use NEON asm directly<br />
<br />
Keep in mind that mixing NEON and ARM load/stores can sometimes stall significantly. See [http://hardwarebug.org/2008/12/31/arm-neon-memory-hazards/ this link] for more info.<br />
<br />
On Cortex-A9, there is a much higher performance floating point unit which can sustain 1 cycle/instr throughput, with low result latencies.<br />
<br />
=Board recovery=<br />
<br />
If you played e.g. with the contents of the [http://www.sakoman.net/omap3/flash%20procedure.txt NAND], it might happen that the Board doesn't boot any more (without pressing user button) due to broken NAND content. See [[BeagleBoardRecovery|BeagleBoard recovery]] article how to fix this.<br />
<br />
=Development environments=<br />
<br />
Instead of just using compiler + editor, you can use complete image create "development tool chains" which integrate compiler, build system, packaging tools etc. in one tool chain.<br />
<br />
==OpenEmbedded==<br />
<br />
For [http://www.openembedded.org/ OpenEmbedded] (OE), there are some hints how to [http://www.beagleboard.org/irclogs/index.php?date=2008-04-29#T13:06:25 start with OE for BeagleBoard]. See [[BeagleBoardAndOpenEmbeddedGit|BeagleBoard and OpenEmbedded Git]] and [http://wiki.openembedded.org/index.php/Getting_Started OpenEmbedded getting started] as well.<br />
<br />
In the OE getting started document, for BeagleBoard replace ''MACHINE = "om-gta01"'' by ''MACHINE = "beagleboard"''. After confirming ''bitbake nano'' works, try ''bitbake console-image''. The first time you run bitbake OE will download all the needed source and build the tool chain. This will take several hours. After all went fine, the output is in ''${OE_ROOT}/tmp/deploy/glibc/images/beagleboard''.<br />
<br />
Note: Koen has some BeagleBoard [http://amethyst.openembedded.net/~koen/index.php?path=beagleboard/ source and binary images] built with OE. There, ''Angstrom-console*'' images don't include an X server, you can still use a e.g. DVI-D screen with console, but you won't have a GUI. ''Angstrom-x11*'' images contain an X server.<!-- DEAD LINK: resulting in something like [http://scap.linuxtogo.org/files/fc987d4acb2c745fb7e19cf4dca8de70.png this].--><br />
<br />
===One very important note:=== <br />
<br />
It's important to have an X-Loader on your Beagleboard that uses the uImage on the SD Card that goes with Angstrom. The B6 Beagleboards do not appear to come with such an X-Loader. So you likely will have to upgrade the X-Loader. Here's what to do:<br />
* Make an SD Card with the [http://www.angstrom-distribution.org/demo/beagleboard Angstrom Demo files]. See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat Beagleboard Wiki Page] for more info on making the SD Card.<br />
* Put the SD Card in the Beagle, and boot up to the U-Boot Prompt.<br />
* Do the first six instructions in the [http://code.google.com/p/beagleboard/wiki/BeagleNANDFlashing Flashing Commands with U-Boot] section. <br />
* Reboot the Beagle to see that the new X-Loader is properly loaded.<br />
<br />
This will update the X-Loader to a newer version that will automatically load uImage from the SD Card when present -- rather than always using the uImage in the Beagleboard NAND.<br />
<br />
==Eclipse==<br />
The Eclipse [http://www.eclipse.org/cdt/ C Development Tools Project] provides a "fully functional C and C++ Integrated Development Environment (IDE) for the Eclipse platform". The Eclipse [http://www.eclipse.org/dsdp/tm/ DSDP Target Managment Project] provides a "Remote System Explorer" (RSE) plugin that simplifies downloading files to the BeagleBoard and editing files on the BeagleBoard within the Eclipse IDE. A Linux Target Agent is available as part of the [http://wiki.eclipse.org/DSDP/TM/TCF_FAQ Target Communications Framework (TCF) component]. Info on how RSE is used for e.g. Gumstix development is described in [http://groups.google.com/group/beagleboard/browse_thread/thread/509831f7c24cb79f# this post].<br />
<br />
==Android==<br />
[http://source.android.com Android] platform is a software stack for mobile devices including an operating system, middleware and key applications. Developers can create applications for the platform using the [http://code.google.com/android/ Android SDK]. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use which runs on top of a Linux kernel.<br />
<br />
There are several resources for Android on OMAP (Beagle) available:<br />
<br />
'''OMAPZOOM'''<br />
<br />
You can find Android port for OMAP ZOOM architecture on [https://omapzoom.org/gf/project/omapandroid/wiki/ OMAPZoom.org's wiki page on Android]. <br />
<br />
'''EMBINUX'''<br />
<br />
[http://beagleboard.org/project/android Beagleboard.org's Android project page] [http://groups.google.com/group/beagleboard/browse_thread/thread/7b422f113ce489b5 announced], the successful porting of Android on Beagle board by [http://embinux.com EMBINUX&trade;] Team. The [http://labs.embinux.org/git/ source code] and [http://www.embinux.com/download_beagle.php binaries] are available for download and review. <br />
<br />
Detailed instructions, for porting Android on Beagle Board, are available [http://labs.embinux.org/index.php/Main_Page here]. Current release supports input devices (keyboard/mouse), network and sound.<br />
<br />
You can [http://in.youtube.com/watch?v=nADn_vNVEKw watch Android booting] on Beagle Board.<br />
<br />
'''Android on OMAP wiki'''<br />
<br />
Wiki page for Andorid on OMAP can be found [[Android on OMAP|here]]<br />
<br />
'''0xdroid'''<br />
<br />
[http://gitorious.org/0xdroid 0xdroid], the enhanced version of Android on Beagleboard by [http://0xlab.org 0xlab]. The [http://gitorious.org/0xdroid source code], [http://downloads.0xlab.org/ pre-built binaries], and [http://code.google.com/p/0xdroid/issues/list issue tracker] are available for review and reference.<br />
<br />
The latest development supports OMAP audio, OMAP video overlays, ARM Cortex A8 NEON/Thumb2 performance optimizations, mouse cursor, hot-pluggable USB keyboard & mouse, user-friendly installer for system image, and various Android tweaks. Detailed instructions for 0xdroid are available through [http://gitorious.org/0xdroid/pages/Home gitorious wiki].<br />
<br />
You can [http://www.youtube.com/watch?v=v6wdTOHrwQw watch 0xdroid demo video] on Beagle Board.<br />
<br />
==Mamona==<br />
<br />
[http://dev.openbossa.org/trac/mamona/wiki Mamona] is an embedded Linux distribution for ARM EABI. The main goal of the Mamona Project is to offer a completely open source alternative/experimental platform for [http://maemo.org/ Maemo] using only free and open source components. Mamona [http://rsalveti.wordpress.com/2008/09/12/mamona-02-is-out 0.2] [http://franciscoalecrim.com/blog/2008/07/29/mamona-working-with-beagleboard/ supports] [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12013&contentId=28741 OMAP3430 Software Development Platform (SDP)], so you can also use it at Beagle (OMAP3530), too. Work is being done to officially support Beagle.<br />
<br />
==Ubuntu==<br />
<br />
See [[BeagleBoardUbuntu|Ubuntu (ARM)]] installation guide how to install Ubuntu (ARM) on BeagleBoard.<br />
<br />
==Debian ARM==<br />
<br />
See [[BeagleBoardDebian|Debian (ARM)]] installation guide how to install Debian (ARM) on BeagleBoard.<br />
<br />
==Handhelds Mojo ARM==<br />
<br />
See [[BeagleBoardHandheldsMojo|Handhelds Mojo (ARM)]] installation guide how to install Handhelds Mojo (ARM) port of Ubuntu on BeagleBoard. (The Mojo project is no longer active, see the Official Ubuntu ARM-port above instead)<br />
<br />
==Scratchbox==<br />
<br />
[http://www.scratchbox.org/ Scratchbox] is a cross-compilation toolkit designed to make embedded Linux application development easier. It also provides a full set of tools to integrate and cross-compile an entire Linux distribution. See [http://felipec.wordpress.com/2009/06/07/installing-scratchbox-1-and-2-for-arm-cross-compilation/ Felipe's Scratbox 1 and 2 intro], too.<br />
<br />
=Software hints=<br />
<br />
This section collects hints, tips & tricks for various software components running on beagle.<br />
<br />
==QEMU==<br />
<br />
[[Qemu|QEMU]] [http://vm-kernel.org/blog/2008/12/15/linux-is-running-on-qemu-omap3/ supports OMAP3] being able to boot a BeagleBoard Linux kernel.<br />
<br />
==Linux hints==<br />
<br />
See BeagleBoard [http://code.google.com/p/beagleboard/wiki/LinuxHints Google wiki Linux hints] page (for Linux WTBU (Wireless TI Business Unit) kernel [http://code.google.com/p/beagleboard/wiki/BeagleSourceCode 2.6.22]). Currently featuring:<br />
<br />
* Switching video output between DVI-D and S-Video<br />
* Disabling framebuffer blanking<br />
* Listing USB devices<br />
<br />
==lmbench==<br />
<br />
Avik posted a detailed [http://groups.google.com/group/beagleboard/browse_thread/thread/c8b8f07ce61161a1 step-by-step procedure] to run [http://sourceforge.net/project/showfiles.php?group_id=14418 lmbench] on Beagle.<br />
<br />
==Mediaplayer (FFmpeg)==<br />
<br />
There is a thread how to get a [http://groups.google.com/group/beagleboard/browse_thread/thread/9b8025fc15120fd9# mediaplayer] with NEON optimization (FFmpeg) to run on Beagle. Includes compiler hints and patches.<br />
<br />
==Java==<br />
<br />
When using the [[BeagleBoard#OpenEmbedded|OpenEmbedded]]-based Angstrom image you have the following options of Java support:<br />
* JamVM + GNU Classpath (small vm, fast interpreter, J2SE-like)<br />
* Cacao + GNU Classpath (JIT compiler, J2SE-like)<br />
* PhoneME Advanced Foundation (JIT compiler, CDC)<br />
<br />
Java support in OpenEmbedded/Angstrom ([http://wiki.openembedded.net/index.php/Java details]) is provided voluntarily through [http://jalimo.org Jalimo].<br />
<br />
See a [http://groups.google.com/group/beagleboard/browse_thread/thread/102f627253919783# post at mailing list], too.<br />
<br />
OpenEmbedded users can add the [http://evolvis.org/scm/?group_id=11 Jalimo Subversion repository] as an overlay (instructions are in the repository). This will allow them to build OpenJDK packages. Inclusion of these recipes in mainline OpenEmbedded is planned but still ongoing.<br />
<br />
The recipes offer the following functionality:<br />
<br />
* OpenJDK + Hotspot (Zero port) (all J2SE functionality, including JVMTI, interpreted only)<br />
* OpenJDK + Cacaco (all J2SE library features, missing JVMTI, decent JIT compiler)<br />
* OpenJDK + Hotspot (Shark port) (not working yet)<br />
<br />
Some guy from ARM Ltd. is working on interpreter optimization in Zero for ARM.<br />
<br />
People interested in getting this stuff working better should contact people on:<br />
* [http://evolvis.org/mail/?group_id=11 Jalimo Mailinglist]<br />
* [http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev Icedtea Mailinglist]<br />
<br />
You should also check out IcedTea's [http://iced-tea.org/wiki/FrequentlyAskedQuestions FAQ].<br />
<br />
=Graphics accelerator=<br />
<br />
OMAP3530 used on BeagleBoard contains a graphics accelerator (SGX) based on the SGX core from [http://www.imgtec.com/ Imagination Technologies]. [http://www.imgtec.com/powervr/powervr-graphics.asp PowerVR] SGX530 is a new generation of programmable PowerVR graphics and video IP cores. Only the kernel portions of Linux drivers will be open source. The PowerVR folks will provide binary user-space libraries. Using the EMail contact at [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12700&contentId=27458 TIs Mobile Gaming Developers page] there are Linux v2.6 OMAP3430 SDKs for OMAP3 Zoom and SDP supporting OpenGL ES v2.0, OpenGL ES v1.1 and OpenVG 1.0 available.<br />
<br />
Tutorial:<br />
* [http://code.google.com/p/beagleboard/wiki/HowtoUseSGXunderAngstrom How to use SGX with Angstrom in OE]<br />
<br />
Some videos:<br />
<br />
* [http://www.youtube.com/watch?v=3ToYOgP9f9U SGX on Beagle working with Linux 2.6.27]<br />
* [http://www.youtube.com/watch?v=24TXpqa9jG0&feature=related OpenGL ES 2.0 shader effects on OMAP3]<br />
* [http://www.youtube.com/watch?v=-UFUbqoNgs8&feature=related 3D User Interface on OMAP3 Platform]<br />
* [http://www.youtube.com/watch?v=8KcNgeUriqA 3D Mapping using OpenGL ES 2.0 on OMAP3 Platform]<br />
* [http://www.youtube.com/watch?v=7D3V6BUpGLE Video blending in hardware]<br />
* [http://www.hitlabnz.org/wiki/EmbeddedAR An Augmented Reality application combining ARToolkit and OpenGL ES 2.0]<br />
<br />
=Beginners guide=<br />
<br />
You just got your new BeagleBoard, and now? See [[BeagleBoardBeginners|beginners guides]].<br />
<br />
=FAQ=<br />
<br />
For BeagleBoard frequently asked questions (FAQ) see [[BeagleBoardFAQ|community FAQ]] and "official" [http://beagleboard.org/support/faq BeagleBoard.org FAQ].<br />
<br />
=Links=<br />
==Home page==<br />
[http://beagleboard.org/ beagleboard.org] (beagle board home)<br />
* Using [http://www.google.de/ Google] you can search beagleboard.org (including [http://www.beagleboard.org/irclogs/ IRC logs]) using ''site:beagleboard.org <search term>''<br />
<br />
==Manuals and resources==<br />
* [http://beagleboard.org/static/BBSRM_latest.pdf BeagleBoard HW Reference Manual (rev. C2)]<br />
* [http://beagle.s3.amazonaws.com/BBSRM_7_2_0.pdf BeagleBoard HW Reference Manual (rev. B7)]<br />
* [http://www.beagleboard.org/uploads/BBSRM_6.pdf BeagleBoard HW Reference Manual (rev. B6)]<br />
* [http://www.beagleboard.org/uploads/BBSRM_B5.pdf BeagleBoard HW Reference Manual (rev. B5)]<br />
* [http://www.beagleboard.org/uploads/Beagle_HRM_B4.pdf BeagleBoard HW Reference Manual (rev. B4)]<br />
* [http://www.beagleboard.org/uploads/Beagle_HW_Reference_Manual_A_5.pdf BeagleBoard HW Reference Manual (rev. A5)]<br />
* [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor description and manuals<br />
* [http://code.google.com/p/beagleboard/ Beagle at code.google.com]<br />
* [http://focus.ti.com/dsp/docs/dspsupporttechdocs.tsp?sectionId=3&tabId=409&familyId=1526&documentCategoryId=4&techDoc=4 OMAP3530/25 CBB BSDL Model]<br />
* [http://www.micron.com/products/mcps/beagleboard Micron's multi chip packages (MCPs) for Beagle Board]<br />
* [http://beagleboard.org/resources Beagleboard resources page with hw docs]<br />
* Some [http://www.rasterman.com/ performance comparison] of BeagleBoard Rev. B with some other ARM/PC systems.<br />
* OMAP3 pinmux [http://www.hy-research.com/omap3_pinmux.html setup]<br />
* [http://elinux.org/BeagleBoardPinMux OMAP3 eLinux pinmux page]<br />
<br />
==Contact and communication==<br />
* [http://groups.google.com/group/beagleboard Beagle board discussion list]<br />
* [http://code.google.com/p/beagleboard/issues/list Beagle board open point list & issue tracker]<br />
* [http://beagleboard.blogspot.com/ Beagle board blog]<br />
* [http://feeds.feedburner.com/BeagleBoard Beagle board RSS feed]<br />
* Chat:<br />
** [http://beagleboard.org/chat Beagle Board chat]<br />
** IRC: #beagle channel on irc.freenode.net<br />
** [http://www.beagleboard.org/irclogs/index.php IRC archive]<br />
* [http://www.beaglesride.org/ Beagles Ride], a site about building a community around the BeagleBoard focused on in vehicle applications<br />
* [http://www.beagleboard.de/ German Beagle Board Forum and Wiki]<br />
<br />
==TI resources==<br />
* [http://opensource.ti.com/ TI open source page]<br />
* [https://community.ti.com/ TI E2E (Engineer-to-Engineer) Community]<br />
* [http://marc.info/?l=linux-omap&m=120761100810527&w=2 DSP Bridge driver for OMAP3 platform]<br />
* [http://lists.arm.linux.org.uk/lurker/message/20080701.142512.5eeff26b.en.html ARMv7 Oprofile support]<br />
* [http://focus.ti.com/pdfs/wtbu/swpu114g.pdf OMAP34xx Wireless Technical Reference Manual] (swpu114g.pdf, 47 MB)<br />
* [http://amethyst.openembedded.net/~koen/index.php?sort=date&order=desc&path=beagleboard/ Koen's (OpenEmbeded) BeagleBoard source and binaries]<br />
* [http://del.icio.us/tag/beagleboard+peripheral+verified Verified peripherals for BeagleBoard]<br />
* [http://www.celinux.org/elc08_presentations/TI_OMAP3430_Linux_PM_reference.ppt OMAP3430 Linux Power Management presentation]<br />
==Articles==<br />
* [http://linuxdevices.com/news/NS5852740920.html LinuxDevices article about Beagle]<br />
* [http://www.linuxdevices.com/news/NS8479495970.html LinuxDevices article about Digi-Key launch]<br />
* [http://www.linuxdevices.com/news/NS5682470737.html LinuxDevices article about Beagle Rev C, Beagle MID from HY Research, Touch Book and Sponsored Projects Contest]<br />
* [http://www.linuxjournal.com/article/10607 Linuxjournal article on the BeagleBoard]<br />
<br />
==Books==<br />
* [[OMAP_and_DaVinci_Software_for_Dummies|OMAP and DaVinci Software for Dummies]]<br />
==Past Beagle events==<br />
* TIDC, February 26-28, 2008: [http://www.beagleboard.org/uploads/tidc_opensource.pdf Slides from TI developer conference (TIDC) open source session], covering also beagle board<br />
* [http://www.lugradio.org/live/USA2008/ LUG RADIO Live USA 2008, April 12-13, 2008]: [http://www.beagleboard.org/uploads/lugradio_20080411.PPT TI/Beagle Presentation] and [http://forums.lugradio.org/viewtopic.php?f=4&t=4094&st=0&sk=t&sd=a&sid=d69cc807569ab41e33f93af698c536b8&start=15#p41549 video]<br />
* LinuxTag, May 28-31, 2008: [http://www.flickr.com/photos/jadon/2551439955/in/pool-beagleboard picture 1] and [http://www.flickr.com/photos/jadon/2535692865/in/pool-beagleboard picture 2]<br />
* [http://lugradio.org/live/UK2008/travel LugRadio Live UK 2008], July 19 - July 20, 2008: [http://www.flickr.com/photos/koenkooi/tags/lugradiolive/ Koen's pictures] showing e.g. [http://www.bigbuckbunny.org/index.php/download/ Big Buck BUNNY] playing at Beagle. [http://linuxoutlaws.com/podcast/48 Interview with Linux Outlaws (52:06)] and the [http://www.youtube.com/watch?v=m9xVbntl-DY video]<br />
* [http://osscamp.in/index.php/OSScamp_Bengaluru_Mobile_2008 OSScamp Bengaluru Mobile 2008], July 19, 2008<br />
* [http://www.linuxworldexpo.com LinuxWorld Conference & Expo], August 4 - August 7, 2008: [http://www.flickr.com/photos/jadon/sets/72157606586084668/ pictures with living beagle] and from [http://www.flickr.com/photos/linuxjournal/2738316951/in/set-72157606634486338/ Linux Journal's photostream]<br />
* BeagleBoard.org event at Jillian's during LinuxWorldExpo, August 5, 2008, 5:30-7:30 pm<br />
* [http://barcamp.pbwiki.com/BarCampHouston3 BarCamp Houston 3], August 9, 2008, 9:00 A.M.: [http://www.flickr.com/photos/jadon/sets/72157606656532041/ pictures]<br />
* NIT Suratkal, India [http://www.nitkieee.com/site/sp-connect2/schedule IEEE SP Connect 2], August 30, 20008<br />
* [http://barcampbangalore.org/wiki/BCB7_Demos BarCamp Bangalore], India, September 13, 2008<br />
* [http://www.ibc.org/ IBC 2008], September 11 - September 16, 2008: [http://www.flickr.com/photos/koenkooi/tags/ibc2008/ pictures]<br />
* Free Open "Embedded Linux" Training for Students in India, [http://code.google.com/p/beagleboard/wiki/Trainings?updated=Trainings&ts=1220250913 beagleboard.org Trainings in India], September 20, 2008: [http://www.youtube.com/watch?v=A6FLdmgQlb4&feature=PlayList&p=1BAB6EE9CC7285AD&index=0 video], [http://www.flickr.com/photos/25691331@N04/sets/72157607419766102/ photos] and [http://lakshmansrikanth.blogspot.com/2008/09/linux-embedded.html blog]<br />
* [http://www.embedded.co.uk/ Embedded Systems Show 2008], Birmingham, UK, October 1-2, 2008<br />
* [http://www.mvista.com/vision/ MontaVista Vision 2008 Embedded Linux Developers Conference], San Francisco, California, October 1-3, 2008 : [http://www.mvista.com/download/topic.php?t=18 Video and presentation overview], [http://www.mvista.com/download/fetchdoc.php?docid=323 William Mills' presentation], [http://www.mvista.com/download/fetchdoc.php?docid=333 Jason Kridner's presentation]<br />
* [http://www.rtcgroup.com/arm/2008/ ARM Developers' Conference], Santa Clara Convention Center, Santa Clara, Calif., USA, October 7-9, 2008<br />
* [http://www.cmp-egevents.com/web/escb Embedded Systems Conference Boston 2008], Hynes Convention Center, Boston, USA, October 26 - October 30, 2008: [http://beagleboard.org/demo/esc Resources]<br />
* [[BeagleBoard/contest|BeagleBoard contest]] #1: Create a cool BeagleBoard application and win a Rev C1! Closed, ran until January 9, 2009<br />
* [http://www.silica.com/events/seminars/seminar-overview/ti-omp-workshop.html OMAP35x training by Silica], January 21, 2009, Cambridge, UK, ARM Holdings Lecture Theatre. [[RichardB's notes from the seminar]]<br />
* [[BeagleBoard/contest|BeagleBoard contest #2]], unitl February 27, 2009: : Create a cool BeagleBoard application and win a Rev C2!<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/b15cf8a5797c73a2 Silica - Free TI - ARM OMAP Workshop], Brussels, Europe, March 31st 2009<br />
* SILICA's [http://www.silica.com/events/seminars/seminar-overview/ti-omap-piccolo-poing.html Texas Instruments 2-in-1 Seminar: OMAP & Piccolo], May 13th 2009: Poing (Munich) - Germany<br />
* 24th until 27th June 2009: [http://www.linuxtag.org/2009/en.html Linux Tag Germany] with [http://groups.google.com/group/beagleboard/msg/27fefef5f1d2ef73 TI booth] and [http://www.linuxtag.org/2009/en/program/freies-vortragsprogramm/all-events/details.html?talkid=183 Beagle presentation]<br />
* until 31st July 2009: [http://www.cranessoftware.com/services/training/beagledesigncontest.html BeagleBoard Design Contest INDIA Edition] ([http://beagleboard.blogspot.com/2009/04/beagleboard-design-contest-india.html blog entry])<br />
* TI Technology Day Dallas, Tex. on June 16 will held a [http://www.linuxdevices.com/news/NS5682470737.html BeagleBoard users group meeting] (see section ''Availability'').<br />
* Thursday, August 27th: [http://wiki.omap.com/index.php/ETechDays_Lightning_Talks ETechDays Lightning Talks]. 15 minute lightning talks via IRC, WebEx or Dial-In.<br />
* 22.- 23.08.2009, Sankt Augustin, Germany: [http://www.froscon.de/en/ FrOSCon 2009] ([http://groups.google.com/group/beagleboard/browse_thread/thread/6aee27a7d121f4f4# call for papers])<br />
<br />
==Beagle wiki pages==<br />
* [[BeagleBoardBeginners|BeagleBoard beginners guides]]<br />
* [[BeagleBoardAndOpenEmbeddedGit|BeagleBoard and OpenEmbedded Git]] installation guide and [[BeagleBoardOpenEmbeddedDevelopment|OpenEmbedded development]]<br />
* [[BeagleBoardDebian|Debian on BeagleBoard]] usage guide<br />
* [[BeagleBoardHandheldsMojo|Handhelds Mojo (ARM) on BeagleBoard]] usage guide (formerly known as Ubuntu (ARM))<br />
* [[BeagleBoardUbuntu|Ubuntu (ARM EABI) distribution at BeagleBoard]]<br />
* [[BeagleBoardRecovery|BeagleBoard recovery]] about fixing boards not booting any more because of broken NAND content<br />
* [[BeagleBoardJTAG|BeagleBoard JTAG]] and [[OMAP3530_ICEPICK|OMAP3530_ICEPICK]] about JTAG on BeagleBoard<br />
* [[BeagleBoardOpenOCD|BeagleBoard OpenOCD]] has infos about status and usage of open source JTAG software OpenOCD with Beagle<br />
* [[BeagleBoardNAND|BeagleBoard NAND boot]] about how to boot BeagleBoard from NAND flash<br />
* [[BeagleBoardPeripherals|BeagleBoard peripherals and adapters page]] about useful BeagleBoard add ons.<br />
* [[Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB|Mount BeagleBoard root file system over NFS via USB]]<br />
* [[BeagleBoardFAQ|BeagleBoard FAQ]]<br />
* [[BeagleBoardSugar|Sugar on BeagleBoard]]<br />
* [[BeagleBoard/DSP_Howto|BeagleBoard DSP howto]]<br />
* [[BeagleBoardRawLCD|Interfacing BeagleBoard to Raw LCD]]<br />
* [[BeagleBoard/gst-openmax|BeagleBoard OpenMAX usage]]<br />
* [[BeagleBoard/video|BeagleBoard video]]<br />
* [[BeagleBoardOpenCV|Using OpenCV computer vision library with BeagleBoard]]<br />
* [[BeagleBoard/James|James]]: Just A Miniature Entertainment System<br />
* [[U-boot_musb_gadget_support|U-boot musb gadget support]]<br />
* [[BeagleBoard-JP|Japanese translation of this Beagle page]]<br />
* [[BeagleEPD|BeagleBoard E-Ink Platform Driver]]<br />
* [[BeagleBoardFedora|Random hacking notes for getting Fedora 10 to kinda work with the BeagleBoard]]<br />
* BeagleBoard specific [[BeagleBoard/GSoC|Google Summer of Code 2009]] page, [[BeagleBoard/Ideas-2009|GSoC project ideas]] and [[BeagleBoard/GSoC/Application|GSoc application]]<br />
* [[BeagleBoard/Poky|Poky]] for BeagleBoard<br />
* [[Xenarc_USB_touchscreen_for_Beagleboard/OMAP3_EVM|Xenarc USB touchscreen for Beagleboard/OMAP3 EVM]]<br />
* [[BeagleBoard/BugAdapter|BeagleBoard Bug Adapter board]]<br />
* [[BeagleBoardDebianWifiInstallInfo|BeagleBoard Debian WiFi install info]]<br />
* [[BeagleBoard/DSP_Clarification|Info about the various Linux DSP systems for OMAP chips]]<br />
* [[BeagleBoardPinMux|BeagleBoard PinMux]]<br />
* [[BeagleBoardLinuxKernel|BeagleBoard Linux kernel manual compile]]<br />
* [http://www.hervanta.com/stuff/Beaglebot Beaglebot]: build an experimental robotics project with Beagle<br />
* [http://code.google.com/p/beagleboard/w/list code.google.com BeagleBoard wiki]<br />
* '''[[BeagleBoard/contest|BeagleBoard contest]]'''<br />
* [http://en.wikipedia.org/wiki/Beagle_Board Wikipedia BeagleBoard page]<br />
* [http://labs.embinux.org/index.php/Android_Porting_Guide_to_Beagle_Board Android port for BeagleBoard]: Instructions for porting Android on BeagleBoard<br />
* [[BeagleBoard/bangalore_user_meet |BeagleBoard Bangalore User Meet]]<br />
* [[BeagleBoardEclipse|Using Eclipse with Beagle]] (for JTAG debugging)<br />
* [[Zoom2Beginners|Zoom2 for Beginners]]<br />
* [http://wh1t3s.com/2009/05/11/beagleboard-as-usb-mass-storage-device-via-usb-otg/ BeagleBoard as USB Mass Storage Device via USB OTG]<br />
* [http://digitalsurveyinstruments.com/beagleperiphials/solarcomputer/index.htm BeagleBoard as solar powered computer]<br />
* [http://blog.makezine.com/archive/2009/02/blinking_leds_with_the_beagle_board.html Blinking LEDs with the Beagle Board] from Make:Online<br />
* [http://www.crashcourse.ca/wiki/index.php/BeagleBoard Robert's private Beagle wiki] (please don't add anything there, do it here. It will help to avoid scattering. Thanks!)<br />
* [http://felipec.wordpress.com/2009/03/26/omap3-public-dsp-binaries-now-work/ Felipe's blog] about D1 MPEG-4 decoding using less than 15% of CPU with help of DSP<br />
* [http://www.syspire.de/node/3 Embedded Mediacenter] based on BeagleBoard (German)<br />
* [http://pandorawiki.org/Floating_Point_Optimization Floating Point Optimization] with VFP-lite and NEON intro<br />
* [http://particolarmente-urgentissimo.blogspot.com/2009/09/beagleboard-setting-date-via-gps.html Beagleboard setting date via GPS]<br />
* [http://free-electrons.com/blog/beagle-labs/ Complete embedded Linux training labs] on the BeageBoard<br />
<br />
==Beagle photos==<br />
* [http://www.flickr.com/groups/beagleboard/pool/ Beagle board pictures at flickr]<br />
* [http://www.flickr.com/photos/32615155@N00/2439256116/ Beagle board and USRP]<br />
* [http://www.flickr.com/photos/nishanthmenon/2438406603/ Modify SDP3430 QUART cable for beagle]<br />
* [http://www.flickr.com/photos/koenkooi/2695061759/ MythTV on Beagle]<br />
==Beagle videos==<br />
* [http://uk.youtube.com/watch?v=fL_XMieanSc Beagle Board Beginnings]<br />
* [http://www.youtube.com/watch?v=cXr-D1wROfQ Beagleboard in the Living Room]<br />
* [http://uk.youtube.com/watch?v=FuVwh_VrIxk Beagle Board 3D, Angstrom, and Ubuntu]<br />
* [http://uk.youtube.com/watch?v=TUYOjRGYeYU testsprite with beagleboard]<br />
* [http://uk.youtube.com/watch?v=9Z4ZTovtFKk Beagleboard LED demo]<br />
* [http://uk.youtube.com/watch?v=R33dzREZGEk LCD2USB attached to a beagleboard]<br />
* [http://www.youtube.com/watch?v=7D3V6BUpGLE Video blending in hardware]<br />
* [http://www.youtube.com/watch?v=-tUBXD-KRp4 Beagle Running Angstrom (VGA) on DLP Pico Projector]<br />
* [http://www.youtube.com/watch?v=3ToYOgP9f9U SGX on Beagle working with Linux 2.6.27]<br />
* Not on Beagle OMAP3530: [http://youtube.com/watch?v=5i9cWOK1spw Ubuntu 7.04 on on OMAP3430 SDP]<br />
* [http://in.youtube.com/watch?v=nADn_vNVEKw Beagle Board booting Android]<br />
* [http://www.youtube.com/watch?v=UHQdUS0i-nw Beagleboard, SGX, and libfreespace demo]<br />
<br />
==Beagle manufacturing==<br />
* [http://www.youtube.com/watch?v=C-CwkjT9z_0&feature=related Beagle Solder Paste Screening]<br />
* [http://www.youtube.com/watch?v=9LLjDovIG2M&feature=related Beagle Assembly Inspection]<br />
* [http://www.youtube.com/watch?v=sbOZfBnoVnM&feature=related Beagle Functional Test]<br />
* [http://www.youtube.com/watch?v=cvDtXmJJcEI&feature=related Beagle Reflow]<br />
* [http://www.youtube.com/watch?v=W2o4NTASxN0&feature=related Beagle Board Assembly at Circuitco]<br />
==Fun==<br />
* Enjoy [http://www.beaglegame.com/ BeagleGame]<br />
<br />
=Other OMAP boards=<br />
<br />
* OMAP1 OMAP5912 (ARM9 + C5x DSP) based [[OSK|OSK]] board.<br />
* OMAP3 OMAP3430 based [https://gforge.ti.com/gf/project/omapzoom/wiki/?pagename=HardwareInformation Zoom MDK], which has been superseded by the [http://www.logicpd.com/products/development-kits/texas-instruments-zoom%E2%84%A2-omap34x-ii-mdp Zoom II], and other [http://www.logicpd.com/products LogicPD kits].<br />
* OMAP3 OMAP3530 based [http://www.openpandora.org/ Pandora]<br />
* OMAP3 OMAP3503 based [http://www.gumstix.net/Overo/cat/Overo/115.html Gumstix Overo]<br />
* OMAP3 OMAP35x based EVM from [http://mistralsolutions.com/products/omap_3evm.php Mistral] and [http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html TI] (both are the same)<br />
* OMAP3 OMAP3430 based [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12013&contentId=28741 Software Development Platform (SDP)]<br />
* OMAP3 OMAP3530 based board from [http://www.magniel.com/omap3.html Magniel Inc.]<br />
* OMAP3 based [http://www.archos.com/products/imt/index.html?country=us&lang=en Archos 5, ARCHOS 5G and ARCHOS 7]<br />
* OMAP3 OMAP35x based [http://www.logicpd.com/products/som/ti/omap35x OMAP35x SOM-LV]<br />
* OMAP3 based [[Mini_Board|ICETEK-OMAP3530-Mini]], a Chinese BeagleBoard clone, with a [[MiniBoardFAQ|FAQ]]<br />
* OMAP3 based [http://www.ebv.com/en/products/categories/details/product/ebvbeagle-board EBVBeagle], a German BeagleBoard clone<br />
* OMAP3530 based [http://www.bsquare.com/products/hardware_solutions/3530.asp BSQUARE’s Dev Kit OMAP3530]<br />
* OMAP3530 based [http://beaversource.oregonstate.edu/projects/cspfl/wiki/CSPFL_Hardware OSWALD]<br />
* OMAP3 BeagleBoard-based [http://www.alwaysinnovating.com/touchbook/ Touch Book]<br />
* OMAP3530 based [http://www.analogue-micro.com/Cobra3530.html Cobra 3530 OMAP3530 module ]<br />
* OMAP3 based [http://www.kwikbyte.com/KBOC.html KwikByte 35XX System Module]<br />
* OMAP3530 based [[DevKit8000]], a Chinese BeagleBoard clone, slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard)<br />
* OMAP3530 based [http://www.igep-platform.com/ IGEPv2 Platform], a Spanish BeagleBoard clone, slightly larger, with additional peripherals like e.g. ethernet connector, wifi+bluetooth.<br />
* OMAP35x based [http://www.ultratronik.de/mmi-rechnerplattformen.html MMI4 from Ultratronik]<br />
* OMAP35x based [http://www.technexion.com/index.php/tao-3530 TAO-3530 from TechNexion]<br />
* OMAP35x based [http://www.variscite.com/varomap35xxsbc.html VAR-OM35xxSBC from Variscite]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=15821BeagleBoard/contest2009-12-18T08:38:03Z<p>FransMeulenbroeks: /* Contest #3 */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
If your project is listed as a winner and you haven't received your board, check with ''beagleship at list.ti.com''.<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Accelerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]</font><br />
|<font color="#C0C0C0">Week 21</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle Synth |Beagle Synth]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#USB Scope |USB Scope]]</font><br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Irrlicht|Irrlicht]]<br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleHam|BeagleHam]]</font><br />
|<font color="#C0C0C0">Week 24</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<font color="#C0C0C0">Week 25</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Handheld_Lab|Handheld Lab]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TCF_Agent_Port|TCF Agent Port]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Traveler|Beagle-Traveler]]</font><br />
|<font color="#C0C0C0">Week 27</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#OMAP Emulator|OMAP Emulator]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#QEMUonARM|QEMUonARM]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#EGLIBC|EGLIBC Support]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#RT-Beagle|RT-Beagle]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ONAS|ONAS]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Math-NEON|Math-NEON]]<br />
|<font color="#C0C0C0">Week 32<br />
|<font color="#C0C0C0">5 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Happiness_Device_for_Cerebral_Palsy_Kids|Device for Cerebral Palsy Kids]]</font><br />
|<font color="#C0C0C0">Week 32</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Turk|Turk Platform]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#hApplause|hApplause]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#eLazarillo|eLazarillo]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">1 vote</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#PREEMPT_RT|PREEMPT_RT]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#HDDM|HDDM]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleVision|BeagleVision]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#DJ Audio / Video Mixer|DJ Audio / Video Mixer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#schooldog|An individual lowcost schoolcomputer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Disko|Disko - UI Application Framework]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ESITeam|ESITeam]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">|[[BeagleBoard/contest#DVB-T_Receiver|DVB-T_Receiver]]</font><br />
|<font color="#C0C0C0">Week 43</font><br />
|<font color="#C0C0C0">8 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#UPnP.2FDLNA_AV_client_renderer_and_transcoding_server|UPnP/DLNA AV client renderer and transcoding server]]</font><br />
|<font color="#C0C0C0">Week 43</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Speed-Reader|Speed-Reader]]</font><br />
|<font color="#C0C0C0">Week 45</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Arduino_hybrid_robot|Beagle-Arduino hybrid robot]]</font><br />
|<font color="#C0C0C0">Week 45</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#XBMC_ARM_Port|XBMC Arm Port]]</font><br />
|<font color="#C0C0C0">Week 49</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#GuideBeagle:_Portable_monocular_SLAM_system|Portable monocular SLAM system]]</font><br />
|<font color="#C0C0C0">Week 49</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Touchscreen_LCD_support| Touchscreen LCD support]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleSCI |BeagleSCI]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Pictouch|Pictouch]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Fotogenic |Fotogenic]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyGTee|MyGTee handheld]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Tourister_using_Hand_Gestures_and_HMD_on_Beagleboard|Beagle Tourister]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Medical Notebook|Medical Notebook]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#miniECG|miniECG]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#remoteBillBoard|Remote Bill Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleWacom|Wacom Tablet driver for Beagle Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleLAB|BeagleLAB]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FETCH|FETCH]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#PupLC|PupLC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#ArchMobile:_ArchLinux_ARM_Port|ArchMobile]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#MythBeagle|MythBeagle]]<br />
|<br />
|<br />
|1<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#Homebrew_SmartPhone|Homebrew SmartPhone]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagleboard_Carputer|Beagleboard Carputer]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#AutoRobo|AutoRobo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Walker|Beagle-Walker]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|<br />
|<br />
|1<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyoVox|MyoVox]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Eye|Beagle-Eye]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeaglePod|BeaglePod]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MART|MART]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#CamCast|CamCast]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_SecMon|Beagle SecMon]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects with the most votes will be approved. The plan is to have final decision every Friday morning.<br />
<br />
==== Revolt 2405====<br />
<font color="#C0C0C0"><br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Revolt2405/<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405/wordpress<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
</font><br />
==== Touchscreen LCD support ====<br />
<br />
* '''Title''': Touchscreen LCD support <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The project will add the touch screen support to Beagle board<br />
The following are the components that i am planning of using<br />
:*The LCD breakout board is http://www.sparkfun.com/commerce/product_info.php?products_id=8600<br />
:*The touch screen is http://www.sparkfun.com/commerce/product_info.php?products_id=8977<br />
:*The touch screen connector is http://www.sparkfun.com/commerce/product_info.php?products_id=9104<br />
<br />
Another option is buying a full LCD with touch screen option<br />
:*The product link is http://www.sparkfun.com/commerce/product_info.php?products_id=257.<br />
:*I would create a system and hardware like this video http://www.youtube.com/watch?v=foWnDZ3eQto&feature=related<br />
<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
<br />
* '''Expected results''': <br />
**Linux driver to add LCD with touch screen support<br />
**The breakout board(preferably single layered as it can be created at home)gerber for attaching with beagle which will be created using FreePcb(www.freepcb.com).You can see the photos of my RFID Based Access Control system project there.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
</font><br />
==== TUD:OS on Beagleboard ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/TUD%3AOS+on+the+Beagleboard/]<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Description''': <br />
** '''What the heck?''' The TUD:OS operating system is a L4 microkernel based operating system, with good real-time and security properties, developed at the TU Dresden. <br />
** '''Microkernel-based''': The microkernel approach allows it to to reduce the trusted computing base (the amount of code that has to be trusted) by running small trusted applications side by side with non-trusted applications, all as unprivileged user mode applications. Further, it is possible to run real-time applications side-by side with non real-time applications. Also device driver run in user-mode and thus a crash of a device driver will not lead to an whole system crash and in the best case the driver can be restarted and the system will keep on running.<br />
** '''Familiar Environment''': While offering the above mentioned vantages, TUD:OS still offers a familiar environment by the possibility to run one or more instances of L4Linux. L4Linux is a Linux port the Fiasco microkernel which is binary compatible to native Linux but runs in deprivilieged usermode.<br />
** '''What do we get from this project?''' ''Briefly: A fundament to build embedded [realtime] systems [with a exceptionally small trusted computing base].'' Further a possibility to run multiple virtualized linux instances on the beagleboard. A good documentation how to build such systems. And last but not least a (hopefully cool ;) demo showing that it acutally works , perhaps like the one found at [http://demo.tudos.org demo.tudos.org] (somewhat outdated). <br />
*'''Contact:''' dvogt[at]os[.]inf[.]tu-dresden[.]de ([[User:Dvogt|Dvogt]])<br />
</font><br />
==== picoFlamingo ====<br />
<font color="#C0C0C0"><br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
</font><br />
==== Accelerated USB Graphics Adapter ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
</font><br />
==== Apertus open source/hardware cinema camera ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
</font><br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== BeagleSCI ====<br />
<br />
* '''Title''': BeagleSCI<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': BeagleSCI aims to use the BeagleBoard as a platform for scientific computation and instrumentation (SCI).<br />
* '''Homepage''': http://sourceforge.net/projects/beaglesci/<br />
* '''Expected results''': As a start, the initial goal would be to use the BeagleBoard as a logger of a seismometer. This would involve interfacing a 12-bit ADC chip and writing a driver for it. Data read from the instrument can be displayed by the BeagleBoard through a monitor or send the data to a remote computer via RS-232/RS-485.<br />
* '''Contact''': sherdon dot uy at gmail dot com<br />
<br />
==== Pictouch====<br />
<br />
* '''Title''': Pictouch<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Mobile and Projected Touch user interface<br />
* '''Homepage''': not yet<br />
* '''Expected results''': The goal is to build a new Tactile Interface system based on beagleboard and the DLP picoprojector. Currently, the project make the use of JavaFX to support Multi-Touch (and Multi-User) and of 2 basic webcam, in order to build a low cost gesture recognition system.In the classical case of use, the interface is projected onto a classical table.Users interact directly with their fingers on the projected interface.<br />
<br />
* '''Contact''': maxired at gmail dot com<br />
<br />
==== Fotogenic ====<br />
<br />
* '''Title''': Fotogenic<br />
* '''beagleboard.org project''': not yet - but project is already in progress<br />
* '''Short project description''': Bring network connectivity to plain old vanilla picture frames<br />
* '''Homepage''': www.sourceforge.net/projects/fotogenic<br />
* '''Expected results''': This project brings wired, WiFi and bluetooth connectivity and management to plain old picture frames. The project selects pictures from your photo database, resizes them for the picture frame's native resolution, embellishes them with web and home automation information sources before presenting them to the photo frame by making the BeagleBoard appear to be a USB pendrive...! Right click a photo on your laptop and select "Show on picture frame now!". Manage many photo frames centrally and much much more... Includes "wave gesture" interface to wave over picture frame for next photo... Also works with Eye-Fi SD memory cards to make photos appear on photoframe moments after taken...!!<br />
* '''Contact''': horse_dung at hotmail dot com<br />
<br />
==== Beagle Synth ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Synth<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-synth/<br />
* '''Short project description''': DSP MIDI synthesizer based around the beagleboard<br />
* '''Homepage''': http://code.google.com/p/beagle-synth/<br />
* '''Expected results''': Initially a basic MIDI controllable subtractive synth with 3 oscillators, low pass, high pass, and band pass filters, 2 envelope generators, and 2 LFO's. From there the intention is to add some type of control surface (either physical controls or perhaps a touch screen), some effects (phaser, distortion, reverb), and perhaps other types of synthesis options (FM, additive, maybe some type of patchibility). The result will be a fully featured MIDI instrument comparable to many commercial synths. This project is to be a learning experience with the intention of exploring using DSP for music synthesis. As of now this project is in the concept phase and is still in need of hardware for implementation.<br />
* '''Contact''': dpanseri [at] gmail [dot] com<br />
</font><br />
==== USB Scope ====<br />
<font color="#C0C0C0"><br />
* '''Title''': USB Scope<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': USB diagnostics to aid driver development for USB devices<br />
* '''Homepage''': none yet<br />
* '''Expected results''': This project will use the BeagleBoard as a USB proxy between any USB device and a host computer connected via the OTG port. This will allow the BeagleBoard to snoop, compare and modify USB traffic which can assist both commercial and open source development of drivers and diagnosis of issues. Other ideas could be examined such as a USB-TCP/IP-USB proxy to remotely connect USB devices. Open or free software equivalents exist, but hardware monitoring devices only exist as expensive commercial products. <br />
* '''Contact''': horse_dung at hotmail dot com<br />
</font><br />
==== Irrlicht ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Irrlicht<br />
* '''beagleboard.org project''': no<br />
* '''Short project description''': A fully-featured 3D render engine with ogl-es 1.x and 2.x support<br />
* '''Homepage''': http://irrlicht.sourceforge.net<br />
* '''Expected results''': <br />
** Hardware optimized core routines for optimal OMAP support<br />
** Support of ogl-es 2.x (the 1.x driver is reportedly running on the board)<br />
** Full framerate (60FPS) rendering of q3 alike scenes<br />
** The engine also offers SW rendering, allowing to target for other OMAPs as well, but would require more tweaking in the render optimizations<br />
** We can port one of the demo apps from our apps contest to show the full applicability <br />
* '''Contact''': hybrid[at]users[.]sourceforge[.]net<br />
</font><br />
==== BeagleHam ====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleHam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleham/<br />
* '''Short project description''': Bringing the BeagleBoard to the world of Amateur Radio.<br />
* '''Homepage''': None at this time.<br />
* '''Expected results''': <br />
** AX.25 Packet support, enabling full APRS support (operating as tracker, fill-in or permanent digipeater, and KISS TNC).<br />
** Encode and decode of HF digital modes, using DSP functionality where possible:<br />
*** BPSK, QPSK 31/63/125/250<br />
*** Olivia<br />
*** WSPR/MEPT<br />
*** MT-63<br />
*** DominoEX<br />
*** RTTY<br />
*** Throb<br />
** CW encode and decode<br />
** Capability to display on small (sub-6-inch) screens for mobile and field use<br />
* '''Contact''': xunil at xunil dot net<br />
</font><br />
==== TCF Agent Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TCF Agent Port<br />
* '''beagleboard.org project''': http://beagleboard.org/project/TCF+agent+port/<br />
* '''Short project description''': Support remote debugging and run control by porting the Eclipse Target Communication Framework (TCF) Agent to beagleboard+Ångström<br />
* '''Homepage''': Not yet<br />
* '''Expected results''': <br />
** A working port of the TCF "Reference implementation of a target agent" to BB/Ångström<br />
** screenshots and information on the TCF: http://dsdp.eclipse.org/dsdp/tm/tcf/docs/TCF%20Project.html<br />
** TCF agent running on a beagle board would provide the host computer following capabilities (see link above for details):<br />
*** Run control of userspace processes and threads<br />
*** Breakpoints<br />
*** Registers<br />
*** Stack traces<br />
*** Memory access<br />
*** Processes - list, start, stop, attach and debug.<br />
*** Sys monitor - CPU and memory utilization info<br />
*** File System - browsing and copying files<br />
<br />
* '''Contact''': terrella at terrella dot mobi<br />
</font><br />
<br />
==== RT-Beagle ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Real-Time patch for the beagleboard<br />
* '''beagleboard.org project''': http://beagleboard.org/project/omap-rt-patch/<br />
* '''Short project description''': Porting the linux rt patch to the omap linux kernel and providing testing applications. This project is developed at the INSA of Rennes (Engineer school in FRANCE) to allow next year Real Time course to be run on the BeagleBoard.<br />
* '''Homepage''': http://sourceforge.net/projects/linux-omap-rt-p/<br />
* '''Expected results''': <br />
** Porting the linux real-time patch (http://www.kernel.org/pub/linux/kernel/projects/rt/) to the linux omap kernel and providing recipes for openembedded allowing to build the patched kernel.<br />
** Providing testing applications allowing to evaluate the real-time behavior of the platform<br />
** Providing applications that could be used for teaching purposes<br />
* '''Current Results''':<br />
** patch-2.6.29.5-rt21 was modified to successfully patch linux-omap-2.6.29 (modified patch available through project page).<br />
** kernel compile and boots with minor error concerning two IRQs (72,73) <br />
* '''Contact''': piat_jonathan[at]users[.]sourceforge[.]net<br />
</font><br />
==== MyGTee ====<br />
<br />
* '''Title''': MyGTee <br />
* '''beagleboard.org project''': http://beagleboard.org/project/MyGTee/<br />
* '''Short project description''': A handheld device exploiting all the OMAP3530 capabilities<br />
* '''Homepage''': http://enco2009.webs.com/<br />
* '''Expected results''': I stage: building a prototype hopefully based on the BeagleBoard; II stage: the actual handheld that may allow for further software opensource development<br />
* '''Contact''': doctorc[at]o2[.]pl<br />
<br />
==== ONAS ====<br />
<font color="#C0C0C0"><br />
* '''Title''': ONAS<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ONAS/<br />
* '''Short project description''': An open source NAS<br />
* '''Homepage''': http://code.google.com/p/onas/<br />
* '''Expected results''': Development of a full featured NAS running Linux <br />
* '''Contact''': electrogeek[at]wp[.]pl<br />
</font><br />
==== Handheld Lab ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Handheld Lab<br />
* '''beagleboard.org project''': http://beagleboard.org/project/handheld_lab/<br />
* '''Short project description''': The goal of this project is to create a little, yet powerful, handheld laboratory with as much functions as possible. It will be easy of use thanks to the integrated LCD touchscreen and nice GUI.<br />
* '''Homepage''': http://www.mipixel.com/handheld-lab<br />
* '''Expected results''': First result will be working LCD showing oscilloscope. After this spectrum analyzer and logic analyzer. All this stuff will need extra electronics.<br />
* '''Contact''': fran[at]mipixel[.]com<br />
</font><br />
====Beagle Tourister using Hand Gestures and HMD on Beagleboard ====<br />
* '''Title''': Travel Buddy using Hand Gestures and HMD on Beagleboard <br />
* '''beagleboard.org project''': http://beagleboard.org/project/travelbuddy/<br />
* '''Short project description''': A device which will assist a traveller/tourist giving them mobile computing power and the following features: <br />
*1) A Compact HMD (Head mountable device) instead of the conventional projector (Problem of Projection Surface while on the move) <br />
*2) Use of standard cam for Image processing i.e recognising simple hand gestures to interact with the GUI seen in the HMD <br />
*3) Scanning of images (street name plates/hotel names/landmarks/book titles as indicated by user) to provide useful feedback data(directions/reviews/record *videos/take pictures/information) <br />
*4) Mode for Speech2text and text2speech conversion for inter-language communication. <br />
* '''Homepage''': Under Construction <br />
* '''Expected results''':<br />
*1) V-NAV: Virtual Navigator - Streaming Google Street View data according to your current location <br />
*2) ULA: Universal Language Assistant: Scan any text by positioning your fingers and the the scanned text is translated to your default language.<br />
*3) Say goodbye to the camera/ cell phone/tourguide/maps. Good platform for further expansion to include newer features. <br />
*4) Virtual Reality Mapping to the Real World: Overlay of relevant information on the on the HMD.<br />
* '''Contact''': sisilmet2000 at gmail dot com , dhairyadand at gmail dot com <br />
<br />
==== Happiness Device for Cerebral Palsy Kids ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Happiness Device for Cerebral Palsy Kids<br />
* '''beagleboard.org project''': http://beagleboard.org/project/HappyCP/<br />
* '''Project description''':<br />
It is an attempt to bridge the gap in communication between those affected by cerebral palsy and those not. The focus of the problem has been on facilitating communication in the emotional domain since this remains a completely unaddressed area. It is possible that some of the ensuing product functions will additionally facilitate communication problems in the physical domain, as well as be physically therapeutic for the cerebral palsy child in the manner of a comfort blanket. The basis of the product is an Emotional Language Protocol (elp) that works as its interface and is driven by four concurrently acting features - color, shape, motion and sound - corresponding to the sensory modes of the visual, the tactile and the aural. The interaction itself is facilitated by touch of varying intensities including pressing, thumping, squeezing, turning and, of course, by touching. Those not affected by cerebral palsy may additionally use speech along with touch. The interplay of this interface and interaction allows the cerebral palsy child to express his different needs and emotions to another person cerebral palsy or otherwise.Also, the device's mobile connectivity allows its users to communicate with someone far away<br />
* '''Homepage''': http://www.dhairyadand.com/Home/jellow<br />
* '''Expected results''': I have uploaded the basic designs at the above link to the homepage. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangable memory sticks which allow two or more device's to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.<br />
* '''Contact''': dhairya AT cyber DOT law DOT harvard DOT edu<br />
</font><br />
==== UPnP/DLNA AV client renderer and transcoding server ====<br />
<font color="#C0C0C0"><br />
* '''Title''': UPnP/DLNA AV client renderer and transcoding server <br />
* '''beagleboard.org project''': http://beagleboard.org/project/UPnP_AV_MediaServer/<br />
* '''Project description''':<br />
Enable the beagleboard as a fully featured UPnP AV rendering client, and as a UPnP AV (transcoding!) server. <br />
<br />
Work will be based upon vlc+djmount (for client side) and fuppes (for server side). Server side transcoding to be hardware assisted via hardware DSP codecs. Initial target for the transcoding server on beagleboard is to drive the Neuros OSD (an underpowered DM320-based device). <br />
<br />
* '''Homepage''': Will be an extension and complement to my work on the DM320-based Nueros OSD: http://osd.oddren.com<br />
* '''Expected results''': Beagleboard can act as either as rendering UPnP client, or as a transcoding UPnP server to drive weaker client devices like the Neuros OSD with their preferred streaming format.<br />
* '''Contact''': bmcarnes_beagleboard AT oddren DOT com<br />
</font><br />
==== Beagle-Traveler====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Traveler<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-traveler/<br />
* '''Short project description''': Automotive media and vehicle management controller. Comparable to BeaglesRide.org (no activity).<br />
* '''Homepage''': http://beagletraveler.wordpress.com<br />
* '''Expected results''': intergrate major automotive subsystem management and communications. Improved vehicle notification of subsystems status'. <br />
* '''Contact''': wheeler dawt larry (at) gmail dawt com<br />
**Please send sponsored information and project questions to the email address above.<br />
</font><br />
==== OMAP Emulator====<br />
<font color="#C0C0C0"><br />
* '''Title''': OMAP Emulator<br />
* '''beagleboard.org project''': http://beagleboard.org/project/OMAP+Emulator/<br />
* '''Short project description''': Emulator for rapid prototyping<br />
* '''Homepage''': no homepage yet<br />
* '''Expected results''': Open source implementation of an IDE environment for rapid code development and testing<br />
* '''Contact''': hwtester (at) myway (dot) com<br />
</font><br />
==== eLazarillo====<br />
<font color="#C0C0C0"><br />
[[File:Elazarillo.png|thumb|300px|eLazarillo sketch]]<br />
* '''Title''': eLazarillo (electronic helper for blind persons)<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': Gadget designed for blind persons or with vision problems. <br />
* '''Homepage''': http://elazarillo.blogspot.com/<br />
* '''Full description''':<br />
Lazarillo is a spanish word that means "blind person's guide" and this is the objetive of this project. This gadget will have features like reading non-braille books, assist to blind persons to get places like markets, drugstores, etc. (based on previous GPS tagged places and using google maps). Other functionalities will be spoken weather information, personal calendar, function keys, etc.<br />
<br />
The gadget will be voice controlled, will need GPS, 3G modem, camera and battery. Size will be 4x5 inches (approx.).<br />
<br />
* '''Expected results''': Open source hardware and software platform for blind persons gadgets. My device will have most of the above described.<br />
* '''Contact''': villanuevaborrego (at) gmail (dot) com<br />
</font><br />
<br />
==== QEMUonARM ====<br />
<font color="#C0C0C0"><br />
* '''Title''': QEMUonARM<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': QEMU on ARM. <br />
* '''Homepage''': http://elinux.org/QEMUonARM<br />
* '''Full description''':<br />
This project aims at resurrect and improve QEMU on ARM hosts.<br />
For more information: http://www.qemu.org<br />
* '''Expected results''': Demonstrate user mode and system mode examples, such as running some simple Linux applications or booting an i386 OS. If there's enough interest, making Wine and QEMU work together might be considered.<br />
* '''Contact''': laurent.desnogues (at) gmail (dot) com<br />
</font><br />
<br />
==== Math-NEON ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Math-NEON<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Math-Neon/<br />
* '''Short project description''': NEON optimized cmath like library <br />
* '''Homepage''': http://code.google.com/p/math-neon/<br />
* '''Full description''': <br />
This project aims to overcome the shortcomings of the VFP-lite based cmath implementation. It is targeted at games and other high performance low accuracy applications. The project will consist of C functions, for PC development, which mirror (as near as possible) the hand optimized NEON assembly routines. In order to gain the best performance i will make use of the NEON Unit's Integer and Floating point pipelines in conjunction with minimizing branches (where they cannot be precalculated on the ARM) and creating new algorithms. <br />
* '''Expected results''': Fast approximate implementations of trigonometric, exponential, logarithmic and power functions for use with future Beagleboard / Cortex A8 based projects. <br />
* '''Contact''': lachlan.ts (at) gmail (dot) com<br />
</font><br />
==== Medical Notebook ====<br />
* '''Title''': Medical Notebook<br />
* '''beagleboard.org project''': yet to register<br />
* '''Short project description''': The Ultimate Notebook for Hospitals<br />
* '''Homepage''': coming soon...<br />
* '''Full description''': <br />
A handheld device to improve hospital functionality/efficiency. To add intelligence to the mundane hospital softwares. <br />
Features are:<br />
<br />
View and Update Patient status, medical history, medication details, appointments, billing - stored as a database in central server.<br />
<br />
Touchscreen with handwriting recognition & hand support pad for data entry.<br />
<br />
Light Weight < 1kg<br />
<br />
VoIP, video conferencing/recording for consulting other doctors <br />
<br />
Wifi, bluetooth & ethernet support <br />
<br />
Docking station for charging<br />
<br />
Support for usb keyboard & mouse on docking station<br />
<br />
* '''Expected results''': <br />
<br />
1) Driver for touch pen tablet with support for hand writing recognition<br />
2) Porting of VoIP software for beagleboard (H.323 ???)<br />
3) Video conferencing software for beagleboard<br />
4) WiFi ?& bluetooth support on beagle board<br />
5) Speech recogntion software for beagleboard<br />
6) Entry of beagle board based products to hospital autmation market<br />
7) Improved, efficient & intelligent patient care in hospitals<br />
<br />
* '''Contact''': noorshaheen.m.n (at) gmail (dot) com<br />
<br />
==== EGLIBC ====<br />
<font color="#C0C0C0"><br />
* '''Title''': EGLIBC support<br />
* '''beagleboard.org project''':<br />
* '''Short project description''': Use EGLIBC as system library for beagleboard project in OpenEmbedded.<br />
* '''Homepage''': www.eglibc.org<br />
* '''Expected results''': EGLIBC becomes the default system library on the distribution and can be used instead of glibc<br />
with the newly added configurability support to selec/deselect features. I would also like to make it compile as pure thumb2<br />
code.<br />
* '''Contact''': raj[.]khem[at]gmail[.]com<br />
</font><br />
==== miniECG ====<br />
* '''Title''': miniECG<br />
* '''beagleboard.org project''': http://beagleboard.org/project/miniECG/<br />
* '''Short project description''': Little device that cares for heart when heart patients are busy carrying out their duties<br />
* '''Homepage''': http://code.google.com/p/miniecg/<br />
* '''Full description''': <br />
miniECG is a wearable device that monitors ECG signal, processes it and can transmit it over wireless internet connection to doctors clinic. It has following features are:<br />
(all the hardware components required are available through digikey.com including LCD and touch screen)<br />
<br />
1) It has touch screen that enable user to give commands like store, display old ECG data, transmit, etc. Device also has a LCD display which is used to display ECG waveform.<br />
<br />
2) A tiny server runs on device that enables doctor to login to device any time he wants and extract patients ECG data. The device is connected to internet through wireless USB dongle. <br />
<br />
3) DSP core does the job of compressing ECG signal, doing PCA (principal component analysis) on ECG signal, detect QRS, measuring heart beats and digital filtering.<br />
<br />
4) DSP along with Cortex A8 runs algorithm that determines critical state of heart by doing feature extraction over ECG signals. It also does PCA over set of stored ECG signal to obtain information about any substantial drift in normal functionality of heart. <br />
<br />
5) Wireless USB dongle provides connectivity to internet and data is transmitted over internet as per schedule programmed into the device. ECG signal can also be streamed over internet using this dongle. <br />
<br />
6) Keyboard & mouse (USB) interface is provided for more flexibility and quick access. LCD monitor interface is also be provided. Key-board, mouse and LCD monitor interface will work only when device is powered by adaptor. For device powered by battery only input option is touch screen and only output option is LCD display.<br />
<br />
7) Device also has small software support to give reminder on when to consume which drug. The prescription of drug and its timing information is feed in as per doctors advice. (keyboard and mouse interface with miniECG can be of great advantage here)<br />
<br />
8) USB memory devices will be used to store ECG data.<br />
<br />
9) miniECG will be dual powered. It can be powered by adaptor as well as with rechargeable battery. <br />
<br />
Website link has block diagram of miniECG and also picture of ECG pre-amplifier which is already designed. In future all the source codes will be uploaded on the link as and when available.<br />
<br />
* '''Expected results''': a) Ability to login from remote PC onto miniECG and read data b) Should be able to send stored data or stream live ECG signal over internet c) Robust interface of LCD & touch screen with controller d) Data storage and retrieval from USB storage device e) Successful implementation of DSP algorithms for feature extraction, PCA, QRS detection, filtering and compression. f) As the whole device is battery powered, software & driver which are very specific to the desired application should only be installed & made working. Thus providing a low power system architecture. <br />
<br />
* '''Future Work''': Once the desire basic funtions of ECG storing, retrieval and transmitting is meet, miniECG can be programmed into miniPA (mini personal assistance) mainly targeting senior citizens. miniPA will have much advanced features that can help them elderly person in their day-to-day activity.<br />
* '''Contact''': mehta.nandish (at) gmail (dot) com<br />
<br />
<br />
==== remoteBillBoard ====<br />
* '''Title''': Remote Bill Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/remoteBillBoard/<br />
* '''Short project description''': Video bill boards, remotely controlled via web over a 3G modem<br />
* '''Homepage''': http://www.greensoftware.net/remoteBillBoard<br />
* '''Full description''': <br />
Play HD video on billboards, remotely manage the billboards, upload new advertisements, remove old ones etc..<br />
<br />
<br />
* '''Expected results''': <br />
a) 3g modem support, so flexiblity.<br />
b) a full working web based system<br />
<br />
* '''Future Work''':<br />
a) a more advanced desktop application to replaced the web based solution.<br />
<br />
* '''Contact''': ahmad.mushtaq (at) gmail (dot) com<br />
<br />
<br />
==== Turk ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Turk Platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Turk/<br />
* '''Short project description''': A wireless dynamically-mappable interface platform for small devices<br />
* '''Homepage''': http://www.turkinnovations.com/<br />
* '''Full Description''': Turk will be an open-source wireless interface platform that allows interfacing of small wireless (Zigbee or Wi-Fi enabled) devices through a dynamic mapping framework and web interface. Developers can implement their device's protocol easily through small user-space drivers called 'Gadgets' and host them on our server. The platform is then capable of automatically downloading and starting appropriate gadgets for new devices that are compatible with the basic Turk protocol. Gadgets reveal their services to the user and other gadgets through our growing library of data endpoint types (such as colors, URLs, booleans, xml strings) and user controls (like sliders, switches and color pickers), and can then be connected to each other through a themable web interface.<br />
<br />
* '''Expected results''': <br />
**A platform that allows developers to write simple user-space drivers that expose interfaces through XML-RPC<br />
**A web interface and remote configuration capabilities through a central server. <br />
**A simple and well-tested protocol and driver for a kernel-managed point-to-multipoint Zigbee network. <br />
**More hardware connectivity besides the Wi-Fi and Zigbee interfaces will hopefully be developed by collaborating with other beagleboard projects and developers.<br />
* '''Contact''': rob.odwyer [at] turkinnovations [dot] com<br />
</font><br />
==== BeagleWacom ====<br />
* '''Title''': Wacom Tablet driver for Beagle Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-wacom/<br />
* '''Short project description''': Linux drivers of wacom tablet ported for Beagle Board<br />
* '''Homepage''': <br />
* '''Full Description''': beagle-wacom will be port of linux drivers for configuring & running wacom tablets with the beagle board. The idea is to have support for wacom-components, so that they can be used by OEMs of beagleboard based products using linux as their OS<br />
<br />
* '''Expected results''': <br />
**easy integration of wacom tablet with Beagle Board. <br />
**OEMs of beagleboard based products using linux as their OS can integrate wacom-components in their product with minimal fuss<br />
* '''Contact''': najath [at] gmail [dot] com<br />
<br />
<br />
====hApplause====<br />
<font color="#C0C0C0"><br />
* '''Title''': hApplause<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Hardware Platform that You can use to play with Audio Synthesis<br />
* '''Homepage''': not yet<br />
* '''Description''': ''hApplause'' will be multi-functional flexible audio hardware platform. The goal is to make a tool that can allow to develop audio software and hardware (e.g. DSP synthesizers, FX units, hardware expansion boards, etc.). The concept is inspired by [http://www.chameleon.synth.net/ Chameleon] and [http://www.ucapps.de/ MIDIbox]. ''BeagleBoard'' will give ''Chameleon'' like software flexibility while planed hardware with ''Expansion Interface'' and ''Audio Multiplexer'' will give ''MIDIbox'' like hardware flexibility.<br />
*; Hardware features<br />
*: Audio Stereo In/Out<br />
*: MIDI In/Out/Thru<br />
*: General purpose USB port - function depends on user application<br />
*: General purpose SD/MMC Card (e.g. for user data storage) - function depends on user application<br />
*: Front panel interface (1U rack version) with:<br />
*:* LCD<br />
*:* Volume potentiometer<br />
*:* Headphones jack<br />
*:* Power switch with LED indicator<br />
*:* programmable rotary encoders (5 are planed)<br />
*:* programmable buttons and LEDs (12 are planed)<br />
*: Expansion Interface with audio signal buses (1-4 planed, depends on final implementation) and data/command bus (I2C and/or CAN)<br />
*: Audio Multiplexer for flexible routing of audio signal between ''BeagleBoard'', ''Audio In/Out'' and ''Expansion Interface''<br />
*: USB and RS232C for developers<br />
*; Software features<br />
*: All hardware will be fully accessible from ''BeagleBoard'' by API<br />
*: hApplause OS is planed (abstract layer over hardware, user program loading, self configuration on power on)<br />
* '''Expected results''':<br />
*# 19" 1U rackmount unit ready to play with.<br />
*# Libs and additional software for developers (at least API for hApplause's hardware)<br />
*# Example implementation of software synth<br />
*# Single size eurocard unit for 3U rack, like in [http://www.doepfer.de/a100e.htm Doepfer A-100 System] modules<br />
* '''Contact''': tawezik at gmail dot com<br />
</font><br />
==== BeagleLAB====<br />
* '''Title''': BeagleLAB<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleLAB/<br />
* '''Short project description''': BeagleLAB is an Embedded developer's workbench comprising of must-have hardware/software utilities.<br />
* '''Homepage''': http://code.google.com/p/beaglelab/<br />
* '''Expected results''': <br />
:* A PC free host providing a development environment based on beagle board (running ubuntu 9.04 or later)<br />
:* Host environment with software applications and hardware interfaces to substitute oscilloscope, multimeter & logic analyzers<br />
:* GNOME widgets (software apps) & Linux device drivers for capturing data,storing,comparing and visualization<br />
:* Legacy ports like the serial, parallel ports for device interfacing and control<br />
:* Making an embedded developer's life easier and workbench neater<br />
* '''Contact''': amarendermail[at]gmail[dot]com and saurabhg84[at]gmail[dot]com<br />
<br />
====PREEMPT_RT====<br />
<font color="#C0C0C0"><br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
</font><br />
<br />
====HDDM====<br />
<font color="#C0C0C0"><br />
* '''Title''': HDDM<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/HDDM/]<br />
* '''Short project description''': A multimedia system based on OMAP and linux.<br />
* '''Homepage''': Under construction<br />
* '''Expected results''': Beagleboard as a control center for home theatre system<br />
* '''Contact''': grover.ankur (at) gmail (dot) com<br />
<br />
Note from Dirk: Please see [http://www.syspire.de/node/3 Embedded Mediacenter], too (sorry, German only, use Google translate if needed).<br />
</font><br />
====BeagleVision====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleVision<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beaglevision/<br />
* '''Short project description''': An efficient object recognition framework <br />
* '''Homepage''': http://code.google.com/p/beaglevision/<br />
* '''Description''': BeagleVision will be a fast object recognition framework. The aim of the project is to have a hardware optimized implementation (utilising the DSP and NEON) of state-of-the-art local feature detectors and descriptors on the Beagle Board. BeagleVision will include [http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001018 our recent work] on efficient feature detectors and descriptors, other well-known algorithms (e.g. FAST corner detector and SURF), and efficient matching algorithms for very large datasets (>1M images).<br />
* '''Expected results''':<br />
:* An open source library for developers (a project hosted on code.google.com)<br />
:* A sample application for building recognition in a city scale dataset, to show how: to add new images to the dataset, to use it for location based services, and how to reduce the search time if a GPS is available to get geolocations<br />
:* A wiki for interested developers<br />
:* Reporting the running times of new algorithms on OMAP (as a benchmark) in scientific publications<br />
* '''Contact''': m.ebrahimi at ieee dot org<br />
</font><br />
====Beagle-Arduino hybrid robot====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Arduino hybrid robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Beagle-Arduino+hybrid+robot/<br />
* '''Short project description''': A robot using a Beagleboard for high-level processing and Arduino for low-level control<br />
* '''Homepage''': http://mechomaniac.com/robots<br />
* '''Description''': The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:<br />
** image processing<br />
** artificial intelligence<br />
** speech synthesis<br />
** voice recognition<br />
** internet connectivity<br />
And an Arduino for low-level functions:<br />
** motor / servo control<br />
** sensor input & output<br />
** battery monitoring<br />
The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.<br />
* '''Expected results''':<br />
:* Easy physical interfacing to the Beagle without having to design and build special expansion boards<br />
:* Image processing using OpenCV with a USB webcam<br />
:* Speech synthesis and voice recognition<br />
* '''Contact''': tim at mechomaniac dot com<br />
</font><br />
<br />
====DJ Audio / Video Mixer====<br />
<font color="#C0C0C0"><br />
* '''Title''': DJ Audio / Video Mixer* '''Contact''': <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/djvideomixer/]<br />
* '''Description''': This is a small, Touch LCD controlled DJ Mixer, which not only is great as a nightclub tool for playing audio -not only reproducing music, actually '''''playing''''' with it-, but also has high end video playback capabilities, thus making it an all-round experience both for the DJ and the audience. It will bring all the experience of professional DJ mixers to users, while being portable, and which when coupled with either a normal projector, or even better, with a PicoProjector, makes a whole experience for audio and video playback in Discos, Bars, Lounges, to mention just a few possible applications. You can even use for your own parties, and it will rock!<br />
* '''Homepage''': [http://code.google.com/p/djvideomixer/]<br />
* '''Expected results''': <br />
** Audio playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Video playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Audio/Video synchronization, allowing song change, video change, etc.<br />
** High end, professional DJ-Mixer audio effects.<br />
** User interface based on LCD and with touchscreen capabilities.<br />
* '''Contact''': jaime_dot_aranguren_at_ieee_dot_org<br />
</font><br />
====schooldog====<br />
<font color="#C0C0C0"><br />
* '''Title''': schooldog<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/schooldog/]<br />
* '''Description''': The purpose is to make an ''off the shelf'' low cost schoolcomputer that can be used on various levels of education. It will be small so students can take it with them and the school just has to provide for input / output items. This way even people that cannot afford laptops can participate in the digital era or schools can provide a robust and good machine for studypurposes.<br />
* '''Homepage''': [http://schooldog.wickedmind.net]<br />
* '''Expected results''': <br />
** Educational linuxbased OS, from USB sticks and SD Cards.<br />
** more general use of BeagleBoard and more public awareness for the powerful small computer.<br />
** Affordable,individual and steady study enviroment<br />
<br />
* '''Contact''': wickedmind<br />
</font><br />
====Disko====<br />
<font color="#C0C0C0"><br />
[[File:Disko_logo.png|thumb|200px|UI Application Framework]]<br />
* '''Title''': Disko - UI Application Framework<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Disko/<br />
* '''Short project description''': Disko is a Linux-based toolkit to build touchscreen- and remote-controllable ui applications. It contains native OMAP framebuffer support and the media content is DSP-accelerated by GStreamer (TI-Codecs).<br />
* '''Homepage''': http://diskohq.org<br />
<br />
* '''Expected results''': Expected result is broad support of Disko by developers of user interfaces and applications for embedded devices.<br />
** SIP - IP telephony support delivered by pjsip and minisip <br />
** Gstreamer - to add an alternative to the xine library and to add the TI Codecs supplied for the DSP.<br />
** Webkit - the great embedded browser OWB of Pleyo (planned for Disko 1.7)<br />
** SVG - at least one SVG engine to have an alternative to Flash. Initial work has already been done at MadButterfly (planned for Disko 1.7) <br />
* '''Contact''': gmadaus [at] berlinux-solutions dot de or mspringer [at] berlinux-solutions dot de<br />
</font><br />
====FETCH====<br />
* '''Title''': FETCH - FPGA enabled Tool Contol Host<br />
* '''beagleboard.org project''': http://beagleboard.org/project/FETCH<br />
* '''Homepage''': http://code.google.com/p/fetch/<br />
* '''Short project description''': A host with a web interface for easy configuration and control of connected tools. The device may also be controlled through a PSTN network using DTMF tones. The BeagleBoard will act as the main server and will also be the host interface for the connected FPGA for the purpose of evaluating the IPs developed on the FPGA.<br />
* '''description : Phase 1 '''<br />
***1) Server capability -- all services (except VNC) to be launched through inetd so that they are started on an on-demand basis. <br />
***-- http server for configuration pages <br />
***-- ssh server (the ssh suite in particular including scp etc.. so that an ftp server can be avoided) for remote login. <br />
***-- bootp server for bootstaping machines on my home network. <br />
***-- VNC for GUI sessions :) <br />
***-- CUPS for network printing <br />
***-- NetHack server :D <br />
***2) Tool Control <br />
***-- The term "Tool Control" here refers to automation of connected tools and Phase 1 of the project will demonstrate this by automation in home (eg. computer, printer, scanner on/off --> (the contoller board with the relays is complete :) ), these devices may be contolled over the internet or PSTN network ) The system will also be hooked to the home electrical network that will enable control over home appliances. A special mode called " Home Alone" will switch on/off lights randomly when no one is at home to give the illusion that the house is occupied ( and hence protect from thefts ;) ). The current relay boards developed use a UART (for RS232 protocol) for control of the equipment but it is planned to use the CAN interface (under developement ) so that longer distances can be covered. <br />
***3) The BeagleBoard will act as a host interfacefor a Nexys2 Xilinx FPGA board and will be used to evaluate the IPs deployed on it. This feature is sort of a tester for the FPGA. <br />
**'''Phase 2 ''' ( only after Phase 1 is completely functional :) ) <br />
***1) CAN interface for the controller nodes replacing the RS232 connections<br />
***2) mgetty (for faxes) and asterisk (VOIP) may be added to the server.<br />
* ''' Contact : ''' akshat dot g dot gupta [at] gmail dot com<br />
<br />
==== ESITeam====<br />
<font color="#C0C0C0"><br />
* '''Title''': ESITeam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ESITeam/<br />
* '''Short project description''': It's a robotic soccer team with vision and intelligence distributed through the use of wireless communication (Zigbee) between robots and PC.<br />
* '''Expected results''': The expected results would have a running and competitive team for the RoboCup's championship this year.<br />
<br />
* '''Contact''': registrosvmora at gmail dot com<br />
</font><br />
==== PupLC====<br />
* '''Title''': PupLC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/PupLC/<br />
* '''Short project description''':Open source control of PLC operated equipment.<br />
* '''Homepage''': No homepage yet<br />
* '''Expected results''': <br />
:*PupLC will be an open source PLC controller. The user will be able to control the PLC's autonomously or by direct control. The direct method will allow the user to change equipment status using a touch screen lcd. The PupLC will control all aspects of the operating equipmet (ie. setpoints, red-hand settings, shutdowns, etc.) Additionally, 24-hours of accumulated system data will be saved to disk and can be accessed via ftp for analysis off-site.<br />
* '''Contact''': alcpo729[at]tds[dot]net<br />
<br />
====Speed-Reader====<br />
<font color="#C0C0C0"><br />
* '''Title''': Speed-Reader<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Speed-Reader/<br />
* '''Short project description''': Speed-Reader is an audio book reader that gives the listener control of the speaker rate.<br />
* '''Homepage''': http://www.nerd1951.com/?page_id=72<br />
* '''Description''': Speed reader allows an audio book to be played back with faster or slower speaker rates. A user interface gives the listener realtime control of the speaker rate. Speed-Reader uses digital speech signal processing to accomplish low distortion timescale modification of speech in real time. Timescale modification of speech is accomplished by selectively repeating segments of speech to slow down the speaker rate or deleting selected speech segments to speed up the speaker rate. Digital signal processing is used to determine which speech segments are candidates for repetition or deletion.<br />
* '''Expected results''':<br />
***--Realtime (during playback) timescale modification of digitized speech using the C64++ DSP<br />
***--Initially read digitized speech from the SD card interface<br />
***--Audio output using the Beagleboard stereo out<br />
***--Initially user interface provided via RS-232 interface<br />
* '''Contact''': harvey dot sugar at nerd1951 dot com<br />
</font><br />
<br />
====DVB-T Receiver====<br />
<font color="#C0C0C0"><br />
* '''Title''': DVB-T Receiver<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': The DVB-T Receiver project aims to implement a fully tunable DVB-T Receiver on the Beagle Board.<br />
* '''Homepage''': Will be launched in the near future (at blog.arsln.org)<br />
* '''Description''': The DVB-T receiver is a senior graduation project that has to be completed in one year (until Summer 2010). It will be a fully tunable DVB-T receiver. It will compatible to receive digital terrestrial TV & radio stations. The goal is to show the capabilities of the Beagle Board and build a DVB-T system from the scratch. The input will be through a ADC daughter-board that is plugged to the USB port. The output will be via the USB port(for portable devices i.e Netbook) or DVI-D. <br />
* '''Expected results''':<br />
***--Capturing broadcast signals(DVB-T) and convert them to discrete time signals<br />
***--Demodulate and encode the incoming signal<br />
***--Video output using the Beagleboard's DVI-D port or via the USB port for portable devices<br />
* '''Contact''': ftharsln at gmail dot com , sulaya05 at gmail dot com<br />
</font><br />
<br />
====ArchMobile: ArchLinux ARM Port====<br />
<br />
* '''Title''': ArchMobile<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/AM/ AM]<br />
* '''Short project description''': ARM Port of the x86-Linux Distribution ArchLinux<br />
* '''Homepage''': [http://www.archmobile.org ArchMobile]<br />
* '''Expected results''': Fully working ArchLinux with X and all other features.<br />
* '''Contact''': rotter.manuel@gmail.com or naeg on Freenode<br />
<br />
==== MythBeagle ====<br />
<br />
* '''Title''': MythBeagle<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': MythBeagle aims at bringing MythTV to the beagle; both frontend and backend, including plugins (as far as possible)<br />
* '''Homepage''': not yet; <br />
* '''Expected results''': <br />
** OE recipes for mythtv 0.22, mythplugins 0.22 and whatever might be needed to get things going (including bringing required recipes to the latest version where needed/possible)<br />
** An image for SD card to allow easy install, or a script or recipe to allow easy installation<br />
** some additional configuration notes (configuring MythTV is somewhat a pain...)<br />
** setup should also allow using the beagle only as frontend or backend<br />
* '''Status''': mysql5 recipe has been created (mythtv 0.22 won't use mysql4); recipes for mythtv are there, except for mythweb, documentation/installation work has started;<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== Homebrew SmartPhone ====<br />
<br />
* '''Title''': HomeBrewSmartPhone<br />
* '''beagleboard.org project''': http://code.google.com/p/hbpd<br />
* '''Short project description''': HomeBrewSmartPhone is a project to use the beagleboard to create a community-buildable mobile phone that is powerful enough to also run as a Desktop PC.<br />
* '''Homepage''': http://lkcl.net/reports/hbp <br />
* '''Expected results''': <br />
*** A device capable of Digital Voice as well as Data / Internet Access.<br />
*** A device capable of shutting down into low-power mode and successfully resuming on incoming calls.<br />
*** RF-protected audio circuits that don't have howling feedback from the 3G/GSM Radio module.<br />
*** Full disclosure of all build components (schematics, BOM) under free software licenses.<br />
*** Full documentation of all hardware interconnections<br />
*** Creation of a <b>basic</b> demonstration image that will allow other software developers to participate very early on<br />
*** Addition to the http://handhelds.org site for developers to create GUI-based distros<br />
* '''Contact''': lkcl@lkcl.net or use http://lkcl.net contact box<br />
<br />
==== XBMC ARM Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': XBMC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/XBMC/<br />
* '''Short project description''': XBMC Is a full-feature home-theater application that works on a variety of platforms and operating systems<br />
* '''Homepage''': http://xbmc.org<br />
* '''Expected results''': <br />
*** Feature parity with XBMC x86 and ppc<br />
*** Usage of OpenGL ES 2.0<br />
* '''Contact''': Cory Fields: theuni @at@ xbmc .dot. org<br />
</font><br />
<br />
==== Beagleboard Carputer ====<br />
<br />
* '''Title''': Beagleboard Carputer<br />
* '''beagleboard.org project''': http://beagleboard.org/project/bbcarputer<br />
* '''Short project description''': The Beagleboard Carputer aims to create a fully-integrated system that will feature touchscreen LCD, Bluetooth and USB connectivity, GPS Navigation, Phone features, Wifi, Voice recognition, Multimedia entertainment.<br />
* '''Homepage''': http://bbcarputer.codeplex.com<br />
* '''Expected results''': Provide a fully-integrated system that will feature:<br />
*** 7in touchscreen LCD<br />
*** Wireless connectivity<br />
*** Usb connectivity<br />
*** GPS Navigation<br />
*** Phone features<br />
*** Voice recognition<br />
*** Multimedia entertainment<br />
*** Opensource Application Suite<br />
*** Games<br />
* '''Contact''': Joey Mar Antonio: joeymar.antonio @at@ awsol-i .dot. com<br />
<br />
==== GuideBeagle: Portable monocular SLAM system ====<br />
<font color="#C0C0C0"><br />
* '''Title''': GuideBeagle<br />
* '''beagleboard.org project''': Not yet available.<br />
* '''Short project description''': GuideBeagle is a portable localization and mapping system based on monocular vision. Such a system can be used, among other things, to build:<br />
:*Interactive visitor guidance systems for museums and stores.<br />
:*Artificial Reality tools and games.<br />
:*Mobile robot control systems.<br />
:*Surveillance and security related applications.<br />
:In other words: it solves a Simultaneous Localization and Mapping (SLAM) problem using a single camera as sensor, working on-line, and producing maps with high-level geometrical information (i.e. not just simple punctual visual landmarks on space). It will be based on recent research on the fields of Computer Vision and Mobile Robotics.<br />
* '''Homepage''': http://sites.google.com/site/guidebeagle (This page will be enhanced uninterruptedly.)<br />
* '''Expected results''': <br />
**Mapping --- The final system will allow an user to move by an environment like an office or a small apartment and build a map of it similar to a 3D model with planes and textures, as used in Computer Graphics.<br />
**Localization --- After a map is built, the user can move around the environment, and the system will interactively estimate the geometric location of the camera and the direction it is heading, based on images continuously obtained from the camera.<br />
**Image processing --- Building this system will require the coding of image processing tools that may be useful to many other image processing applications based on the Beagle Board. Some examples are feature detectors and descriptors, edge detectors, template matching by normalized cross-correlation and the Discrete Fourier Transform.<br />
* '''Contact''': nwerneck@gmail.com or nwerneck@usp.br<br />
</font><br />
<br />
==== AutoRobo ====<br />
<br />
* '''Title''': Development of an autonomous robotics platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/autorobo/<br />
* '''Short project description''': Design, prototype and develop an autonomous aerial vehicle system around BeagleBoard, allowing experimentation with real-time control and computer vision algorithms.<br />
* '''Philosophy''':<br />
:* make robotics and embedded control accessible and fun<br />
:* stimulate cross-field learning and collaboration<br />
:* leverage modularity and reuse to get more done, quicker <br />
* '''Technical goals''':<br />
:* develop generalised physics model for eg computing optimal PID controlled motor outputs<br />
:* decouple high-update-rate sensors from lower-rate output control<br />
:* employ OpenCV for visual tracking/SLAM/feature detection<br />
:* build lean tracked (land) vehicle<br />
:* build lean quad-rotor (air) vehicle<br />
:* use a shared, modular code-base and electronics platform (Beagle and IGEPv2) <br />
* '''Homepage''': http://code.google.com/p/autorobo/<br />
* '''Expected results''': Initial bringup of a tracked vehicle via dual-motor controller via Beagle's PWM outputs. Utilisation of 3-axis accelerometer and 3-axis gryo via I2C and/or SPI buses, enabling more advanced control<br />
* '''Contact''': ''daniel (dot) blueman (at) gmail (dot) com''<br />
<br />
==== Beagle-Walker ====<br />
<br />
* '''Title''': Design of a automatic dog-walker robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleWalker/<br />
* '''Short project description''': Develop an autonomous dog-walker robot<br />
* '''Homepage''': http://code.google.com/p/beaglewalker/<br />
* '''Expected results''': <br />
**The main goal of the system is analyze the feedback between the dog and the robot to track where the dog is going and where the robot should go.<br />
**Let the dog walk only in places previously programmed by the dog's owner making use of basic SLAM algorithms. <br />
**avoid any obstacles/vehicles.<br />
* '''Contact''': ''darthdj at gmail dot com''<br />
<br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nullDC<br />
* '''Expected results''': For the contest: A working build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
==== MyoVox ====<br />
* '''Title''': MyoVox<br />
* '''beagleboard.org project''': <br />
* '''Short project description''': <br />
* '''Homepage''': <br />
* '''Expected results''': <br />
* '''Contact''': smcgill3 [at] seas[.]upenn [.] edu<br />
<br />
==== Beagle-Eye ====<br />
<br />
* '''Title''': Beagle-Eye<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/Beagle-Eye/ Beagle-Eye]<br />
* '''Short project description''': A beagle-eyed guide for the visually challenged.<br />
* '''Description''': The beagle board will be used along with two calibrated USB webcams to perform low fps real time vision. The use of a pair of calibrated cameras will act as a stereo system capable of estimating depth of any point in the captured scene. A basic object/activity recognition system will be implemented in order to roughly understand the scene. This makes Beagle-Eye aware of the current state of the environment, and this information can in turn be used to help guide visually challenged users through the environment. Visual information can be interpreted and converted to either audio signals or actuators attached to the user's clothing, in order to communicate with the user. Potential applications include navigation, user localization, and object recognition and localization with respect to the immediate environment.<br />
* '''Expected Results''':<br />
** A navigation tool, around immediate environments with enough communication to warn of approaching/still objects.<br />
** A basic object recognition and localization tool, to guide the user towards a required object.<br />
** Possibly a user localization tool, within a small mapped environment.<br />
** Room for more!<br />
* '''Contact''': leatherbrain at gmail dot com<br />
<br />
==== BeaglePod ====<br />
<br />
* '''Title''': BeaglePod<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglepod/]<br />
* '''Short project description''': BeaglePod is an IPod plug-in replacement for car stereo's that are IPod Ready. The BeaglePod uses gstreamer as an audio/video player and is controlled via the car stereo head unit using Apple Accessory Protocol. <br />
* '''Description''': The BeaglePod is an audio/video player for cars equipped with "IPod Ready" stereos. Using the Apple Accessory Protocol the car stereo is used to select and control the playback of media on the BeaglePod. Adding a video monitor the BeaglePod can also become a video player running all the audio through the car stereo with full pause, play, stop control using the car's stereo head unit. Using a software implementation of the Apple Accessory Protocol the BeaglePod is connected to the car stereo via a USB->TTL cable.<br />
* '''Expected Results''':<br />
** Play audio/video media files from the Beagleboard using the car stero to control playback and track selection.<br />
** Audio will playback through car's exist speaker.<br />
** With gstreamer dsp support HD playback of video with in car lcd.<br />
* '''Contact''': velorider [X] publicemail [X] us<br />
<br />
==== MART ====<br />
* '''Title''': Autonomous modular robot<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': Build an autonomous robot to enter the Eurobot 2010 competition<br />
* '''Homepage''': (only in Czech) http://eurobot.matfyz.info/<br />
* '''Full Description''': Goal of this project is to build an autonomous modular robot, that will be able to compete in the Eurobot competition. This project includes following:<br />
<br />
** '''HW''':<br />
** Custom beagle daughter-card (including kernel driver patches):<br />
*** CAN (Controller area network) able to sustain 1Mbit/s, using embedded cortex-m3 controller<br />
*** Battery backed up RTC<br />
*** Dual power - battery and/or adapter, with battery management (current consumption sensing and charging) <br />
*** Second serial and i2c headers<br />
*** (optional) Ethernet controller 10/100Mbit<br />
** Custom motor, servo and stepper motor drivers and IO boards<br />
*** everything connected through CAN<br />
<br />
** '''SW''':<br />
** Modular architecture, for simple modification<br />
** OpenCV integration for play field object identification<br />
** optimalizations for NEON (and DSP)<br />
<br />
* '''Contact''': Michal dot Demin at Gmail dot Com<br />
<br />
==== CamCast ====<br />
* '''Title''': Webcam broadcast server/relay<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/CamCast/]<br />
* '''Short project description''': Webcam broadcast platform for USB webcams<br />
* '''Homepage''': <br />
* '''Full Description''': The goal of this project is to utilize the beagleboard as a low cost platform for webcam video feeds.<br />
Server capability:<br />
<br />
** Broadcast webcam feeds for directly connected USB webcams<br />
** Relay webcam feeds from other servers, typically connected over wi-fi<br />
** Decimate MJPEG streams to match bandwidth limits<br />
** Monitor and control streams via HTTP<br />
** Advertise HTTP services locally via Zeroconf<br />
<br />
The beagleboard will require a functional Linux gspca driver for all USB webcams in use as well as USB wi-fi for remote service. Linux Zeroconf service must also be included.<br />
<br />
* '''Contact''': spiderkarma at gmail dot com<br />
<br />
====Beagle SecMon====<br />
<br />
* '''Title''' : Beagle Security Monitoring over Web <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/Beagle+SecMon/ BeagleSecMon]<br />
* '''Short project description''': This project proposes to control and transmit audio and video from a remote place using the beagleboard as a webserver.<br />
* '''Expected results''': The system will control one or more digital cameras with pan, tilt and zoom functions, and microphones. Besides, it can be configured to send information to a pre registered cell phone when movement is detected. Also, audio and video can be accessed using internet from any place.<br />
* '''Contact''': cborges at ifsc dot edu dot br====<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====PREEMPT_RT====<br />
<br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron====FreeBSD port to BeagleBoard====<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* To follow up on shipping details, contact ''beagleship at list.ti.com''.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=15787BeagleBoard/contest2009-12-17T09:59:45Z<p>FransMeulenbroeks: /* MythBeagle */ updated a little bit</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
If your project is listed as a winner and you haven't received your board, check with ''beagleship at list.ti.com''.<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Accelerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]</font><br />
|<font color="#C0C0C0">Week 21</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle Synth |Beagle Synth]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#USB Scope |USB Scope]]</font><br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Irrlicht|Irrlicht]]<br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleHam|BeagleHam]]</font><br />
|<font color="#C0C0C0">Week 24</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<font color="#C0C0C0">Week 25</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Handheld_Lab|Handheld Lab]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TCF_Agent_Port|TCF Agent Port]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Traveler|Beagle-Traveler]]</font><br />
|<font color="#C0C0C0">Week 27</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#OMAP Emulator|OMAP Emulator]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#QEMUonARM|QEMUonARM]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#EGLIBC|EGLIBC Support]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#RT-Beagle|RT-Beagle]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ONAS|ONAS]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Math-NEON|Math-NEON]]<br />
|<font color="#C0C0C0">Week 32<br />
|<font color="#C0C0C0">5 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Happiness_Device_for_Cerebral_Palsy_Kids|Device for Cerebral Palsy Kids]]</font><br />
|<font color="#C0C0C0">Week 32</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Turk|Turk Platform]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#hApplause|hApplause]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#eLazarillo|eLazarillo]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">1 vote</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#PREEMPT_RT|PREEMPT_RT]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#HDDM|HDDM]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleVision|BeagleVision]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#DJ Audio / Video Mixer|DJ Audio / Video Mixer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#schooldog|An individual lowcost schoolcomputer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Disko|Disko - UI Application Framework]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ESITeam|ESITeam]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">|[[BeagleBoard/contest#DVB-T_Receiver|DVB-T_Receiver]]</font><br />
|<font color="#C0C0C0">Week 43</font><br />
|<font color="#C0C0C0">8 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#UPnP.2FDLNA_AV_client_renderer_and_transcoding_server|UPnP/DLNA AV client renderer and transcoding server]]</font><br />
|<font color="#C0C0C0">Week 43</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Speed-Reader|Speed-Reader]]</font><br />
|<font color="#C0C0C0">Week 45</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Arduino_hybrid_robot|Beagle-Arduino hybrid robot]]</font><br />
|<font color="#C0C0C0">Week 45</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#XBMC_ARM_Port|XBMC Arm Port]]</font><br />
|<font color="#C0C0C0">Week 49</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#GuideBeagle:_Portable_monocular_SLAM_system|Portable monocular SLAM system]]</font><br />
|<font color="#C0C0C0">Week 49</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Touchscreen_LCD_support| Touchscreen LCD support]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleSCI |BeagleSCI]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Pictouch|Pictouch]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Fotogenic |Fotogenic]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyGTee|MyGTee handheld]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Tourister_using_Hand_Gestures_and_HMD_on_Beagleboard|Beagle Tourister]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Medical Notebook|Medical Notebook]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#miniECG|miniECG]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#remoteBillBoard|Remote Bill Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleWacom|Wacom Tablet driver for Beagle Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleLAB|BeagleLAB]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FETCH|FETCH]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#PupLC|PupLC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#ArchMobile:_ArchLinux_ARM_Port|ArchMobile]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#MythBeagle|MythBeagle]]<br />
|<br />
|<br />
|1<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#Homebrew_SmartPhone|Homebrew SmartPhone]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagleboard_Carputer|Beagleboard Carputer]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#AutoRobo|AutoRobo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Walker|Beagle-Walker]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|<br />
|<br />
|1<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyoVox|MyoVox]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Eye|Beagle-Eye]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeaglePod|BeaglePod]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MART|MART]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#CamCast|CamCast]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects with the most votes will be approved. The plan is to have final decision every Friday morning.<br />
<br />
==== Revolt 2405====<br />
<font color="#C0C0C0"><br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Revolt2405/<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405/wordpress<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
</font><br />
==== Touchscreen LCD support ====<br />
<br />
* '''Title''': Touchscreen LCD support <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The project will add the touch screen support to Beagle board<br />
The following are the components that i am planning of using<br />
:*The LCD breakout board is http://www.sparkfun.com/commerce/product_info.php?products_id=8600<br />
:*The touch screen is http://www.sparkfun.com/commerce/product_info.php?products_id=8977<br />
:*The touch screen connector is http://www.sparkfun.com/commerce/product_info.php?products_id=9104<br />
<br />
Another option is buying a full LCD with touch screen option<br />
:*The product link is http://www.sparkfun.com/commerce/product_info.php?products_id=257.<br />
:*I would create a system and hardware like this video http://www.youtube.com/watch?v=foWnDZ3eQto&feature=related<br />
<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
<br />
* '''Expected results''': <br />
**Linux driver to add LCD with touch screen support<br />
**The breakout board(preferably single layered as it can be created at home)gerber for attaching with beagle which will be created using FreePcb(www.freepcb.com).You can see the photos of my RFID Based Access Control system project there.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
</font><br />
==== TUD:OS on Beagleboard ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/TUD%3AOS+on+the+Beagleboard/]<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Description''': <br />
** '''What the heck?''' The TUD:OS operating system is a L4 microkernel based operating system, with good real-time and security properties, developed at the TU Dresden. <br />
** '''Microkernel-based''': The microkernel approach allows it to to reduce the trusted computing base (the amount of code that has to be trusted) by running small trusted applications side by side with non-trusted applications, all as unprivileged user mode applications. Further, it is possible to run real-time applications side-by side with non real-time applications. Also device driver run in user-mode and thus a crash of a device driver will not lead to an whole system crash and in the best case the driver can be restarted and the system will keep on running.<br />
** '''Familiar Environment''': While offering the above mentioned vantages, TUD:OS still offers a familiar environment by the possibility to run one or more instances of L4Linux. L4Linux is a Linux port the Fiasco microkernel which is binary compatible to native Linux but runs in deprivilieged usermode.<br />
** '''What do we get from this project?''' ''Briefly: A fundament to build embedded [realtime] systems [with a exceptionally small trusted computing base].'' Further a possibility to run multiple virtualized linux instances on the beagleboard. A good documentation how to build such systems. And last but not least a (hopefully cool ;) demo showing that it acutally works , perhaps like the one found at [http://demo.tudos.org demo.tudos.org] (somewhat outdated). <br />
*'''Contact:''' dvogt[at]os[.]inf[.]tu-dresden[.]de ([[User:Dvogt|Dvogt]])<br />
</font><br />
==== picoFlamingo ====<br />
<font color="#C0C0C0"><br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
</font><br />
==== Accelerated USB Graphics Adapter ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
</font><br />
==== Apertus open source/hardware cinema camera ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
</font><br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== BeagleSCI ====<br />
<br />
* '''Title''': BeagleSCI<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': BeagleSCI aims to use the BeagleBoard as a platform for scientific computation and instrumentation (SCI).<br />
* '''Homepage''': http://sourceforge.net/projects/beaglesci/<br />
* '''Expected results''': As a start, the initial goal would be to use the BeagleBoard as a logger of a seismometer. This would involve interfacing a 12-bit ADC chip and writing a driver for it. Data read from the instrument can be displayed by the BeagleBoard through a monitor or send the data to a remote computer via RS-232/RS-485.<br />
* '''Contact''': sherdon dot uy at gmail dot com<br />
<br />
==== Pictouch====<br />
<br />
* '''Title''': Pictouch<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Mobile and Projected Touch user interface<br />
* '''Homepage''': not yet<br />
* '''Expected results''': The goal is to build a new Tactile Interface system based on beagleboard and the DLP picoprojector. Currently, the project make the use of JavaFX to support Multi-Touch (and Multi-User) and of 2 basic webcam, in order to build a low cost gesture recognition system.In the classical case of use, the interface is projected onto a classical table.Users interact directly with their fingers on the projected interface.<br />
<br />
* '''Contact''': maxired at gmail dot com<br />
<br />
==== Fotogenic ====<br />
<br />
* '''Title''': Fotogenic<br />
* '''beagleboard.org project''': not yet - but project is already in progress<br />
* '''Short project description''': Bring network connectivity to plain old vanilla picture frames<br />
* '''Homepage''': www.sourceforge.net/projects/fotogenic<br />
* '''Expected results''': This project brings wired, WiFi and bluetooth connectivity and management to plain old picture frames. The project selects pictures from your photo database, resizes them for the picture frame's native resolution, embellishes them with web and home automation information sources before presenting them to the photo frame by making the BeagleBoard appear to be a USB pendrive...! Right click a photo on your laptop and select "Show on picture frame now!". Manage many photo frames centrally and much much more... Includes "wave gesture" interface to wave over picture frame for next photo... Also works with Eye-Fi SD memory cards to make photos appear on photoframe moments after taken...!!<br />
* '''Contact''': horse_dung at hotmail dot com<br />
<br />
==== Beagle Synth ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Synth<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-synth/<br />
* '''Short project description''': DSP MIDI synthesizer based around the beagleboard<br />
* '''Homepage''': http://code.google.com/p/beagle-synth/<br />
* '''Expected results''': Initially a basic MIDI controllable subtractive synth with 3 oscillators, low pass, high pass, and band pass filters, 2 envelope generators, and 2 LFO's. From there the intention is to add some type of control surface (either physical controls or perhaps a touch screen), some effects (phaser, distortion, reverb), and perhaps other types of synthesis options (FM, additive, maybe some type of patchibility). The result will be a fully featured MIDI instrument comparable to many commercial synths. This project is to be a learning experience with the intention of exploring using DSP for music synthesis. As of now this project is in the concept phase and is still in need of hardware for implementation.<br />
* '''Contact''': dpanseri [at] gmail [dot] com<br />
</font><br />
==== USB Scope ====<br />
<font color="#C0C0C0"><br />
* '''Title''': USB Scope<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': USB diagnostics to aid driver development for USB devices<br />
* '''Homepage''': none yet<br />
* '''Expected results''': This project will use the BeagleBoard as a USB proxy between any USB device and a host computer connected via the OTG port. This will allow the BeagleBoard to snoop, compare and modify USB traffic which can assist both commercial and open source development of drivers and diagnosis of issues. Other ideas could be examined such as a USB-TCP/IP-USB proxy to remotely connect USB devices. Open or free software equivalents exist, but hardware monitoring devices only exist as expensive commercial products. <br />
* '''Contact''': horse_dung at hotmail dot com<br />
</font><br />
==== Irrlicht ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Irrlicht<br />
* '''beagleboard.org project''': no<br />
* '''Short project description''': A fully-featured 3D render engine with ogl-es 1.x and 2.x support<br />
* '''Homepage''': http://irrlicht.sourceforge.net<br />
* '''Expected results''': <br />
** Hardware optimized core routines for optimal OMAP support<br />
** Support of ogl-es 2.x (the 1.x driver is reportedly running on the board)<br />
** Full framerate (60FPS) rendering of q3 alike scenes<br />
** The engine also offers SW rendering, allowing to target for other OMAPs as well, but would require more tweaking in the render optimizations<br />
** We can port one of the demo apps from our apps contest to show the full applicability <br />
* '''Contact''': hybrid[at]users[.]sourceforge[.]net<br />
</font><br />
==== BeagleHam ====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleHam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleham/<br />
* '''Short project description''': Bringing the BeagleBoard to the world of Amateur Radio.<br />
* '''Homepage''': None at this time.<br />
* '''Expected results''': <br />
** AX.25 Packet support, enabling full APRS support (operating as tracker, fill-in or permanent digipeater, and KISS TNC).<br />
** Encode and decode of HF digital modes, using DSP functionality where possible:<br />
*** BPSK, QPSK 31/63/125/250<br />
*** Olivia<br />
*** WSPR/MEPT<br />
*** MT-63<br />
*** DominoEX<br />
*** RTTY<br />
*** Throb<br />
** CW encode and decode<br />
** Capability to display on small (sub-6-inch) screens for mobile and field use<br />
* '''Contact''': xunil at xunil dot net<br />
</font><br />
==== TCF Agent Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TCF Agent Port<br />
* '''beagleboard.org project''': http://beagleboard.org/project/TCF+agent+port/<br />
* '''Short project description''': Support remote debugging and run control by porting the Eclipse Target Communication Framework (TCF) Agent to beagleboard+Ångström<br />
* '''Homepage''': Not yet<br />
* '''Expected results''': <br />
** A working port of the TCF "Reference implementation of a target agent" to BB/Ångström<br />
** screenshots and information on the TCF: http://dsdp.eclipse.org/dsdp/tm/tcf/docs/TCF%20Project.html<br />
** TCF agent running on a beagle board would provide the host computer following capabilities (see link above for details):<br />
*** Run control of userspace processes and threads<br />
*** Breakpoints<br />
*** Registers<br />
*** Stack traces<br />
*** Memory access<br />
*** Processes - list, start, stop, attach and debug.<br />
*** Sys monitor - CPU and memory utilization info<br />
*** File System - browsing and copying files<br />
<br />
* '''Contact''': terrella at terrella dot mobi<br />
</font><br />
<br />
==== RT-Beagle ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Real-Time patch for the beagleboard<br />
* '''beagleboard.org project''': http://beagleboard.org/project/omap-rt-patch/<br />
* '''Short project description''': Porting the linux rt patch to the omap linux kernel and providing testing applications. This project is developed at the INSA of Rennes (Engineer school in FRANCE) to allow next year Real Time course to be run on the BeagleBoard.<br />
* '''Homepage''': http://sourceforge.net/projects/linux-omap-rt-p/<br />
* '''Expected results''': <br />
** Porting the linux real-time patch (http://www.kernel.org/pub/linux/kernel/projects/rt/) to the linux omap kernel and providing recipes for openembedded allowing to build the patched kernel.<br />
** Providing testing applications allowing to evaluate the real-time behavior of the platform<br />
** Providing applications that could be used for teaching purposes<br />
* '''Current Results''':<br />
** patch-2.6.29.5-rt21 was modified to successfully patch linux-omap-2.6.29 (modified patch available through project page).<br />
** kernel compile and boots with minor error concerning two IRQs (72,73) <br />
* '''Contact''': piat_jonathan[at]users[.]sourceforge[.]net<br />
</font><br />
==== MyGTee ====<br />
<br />
* '''Title''': MyGTee <br />
* '''beagleboard.org project''': http://beagleboard.org/project/MyGTee/<br />
* '''Short project description''': A handheld device exploiting all the OMAP3530 capabilities<br />
* '''Homepage''': http://enco2009.webs.com/<br />
* '''Expected results''': I stage: building a prototype hopefully based on the BeagleBoard; II stage: the actual handheld that may allow for further software opensource development<br />
* '''Contact''': doctorc[at]o2[.]pl<br />
<br />
==== ONAS ====<br />
<font color="#C0C0C0"><br />
* '''Title''': ONAS<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ONAS/<br />
* '''Short project description''': An open source NAS<br />
* '''Homepage''': http://code.google.com/p/onas/<br />
* '''Expected results''': Development of a full featured NAS running Linux <br />
* '''Contact''': electrogeek[at]wp[.]pl<br />
</font><br />
==== Handheld Lab ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Handheld Lab<br />
* '''beagleboard.org project''': http://beagleboard.org/project/handheld_lab/<br />
* '''Short project description''': The goal of this project is to create a little, yet powerful, handheld laboratory with as much functions as possible. It will be easy of use thanks to the integrated LCD touchscreen and nice GUI.<br />
* '''Homepage''': http://www.mipixel.com/handheld-lab<br />
* '''Expected results''': First result will be working LCD showing oscilloscope. After this spectrum analyzer and logic analyzer. All this stuff will need extra electronics.<br />
* '''Contact''': fran[at]mipixel[.]com<br />
</font><br />
====Beagle Tourister using Hand Gestures and HMD on Beagleboard ====<br />
* '''Title''': Travel Buddy using Hand Gestures and HMD on Beagleboard <br />
* '''beagleboard.org project''': http://beagleboard.org/project/travelbuddy/<br />
* '''Short project description''': A device which will assist a traveller/tourist giving them mobile computing power and the following features: <br />
*1) A Compact HMD (Head mountable device) instead of the conventional projector (Problem of Projection Surface while on the move) <br />
*2) Use of standard cam for Image processing i.e recognising simple hand gestures to interact with the GUI seen in the HMD <br />
*3) Scanning of images (street name plates/hotel names/landmarks/book titles as indicated by user) to provide useful feedback data(directions/reviews/record *videos/take pictures/information) <br />
*4) Mode for Speech2text and text2speech conversion for inter-language communication. <br />
* '''Homepage''': Under Construction <br />
* '''Expected results''':<br />
*1) V-NAV: Virtual Navigator - Streaming Google Street View data according to your current location <br />
*2) ULA: Universal Language Assistant: Scan any text by positioning your fingers and the the scanned text is translated to your default language.<br />
*3) Say goodbye to the camera/ cell phone/tourguide/maps. Good platform for further expansion to include newer features. <br />
*4) Virtual Reality Mapping to the Real World: Overlay of relevant information on the on the HMD.<br />
* '''Contact''': sisilmet2000 at gmail dot com , dhairyadand at gmail dot com <br />
<br />
==== Happiness Device for Cerebral Palsy Kids ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Happiness Device for Cerebral Palsy Kids<br />
* '''beagleboard.org project''': http://beagleboard.org/project/HappyCP/<br />
* '''Project description''':<br />
It is an attempt to bridge the gap in communication between those affected by cerebral palsy and those not. The focus of the problem has been on facilitating communication in the emotional domain since this remains a completely unaddressed area. It is possible that some of the ensuing product functions will additionally facilitate communication problems in the physical domain, as well as be physically therapeutic for the cerebral palsy child in the manner of a comfort blanket. The basis of the product is an Emotional Language Protocol (elp) that works as its interface and is driven by four concurrently acting features - color, shape, motion and sound - corresponding to the sensory modes of the visual, the tactile and the aural. The interaction itself is facilitated by touch of varying intensities including pressing, thumping, squeezing, turning and, of course, by touching. Those not affected by cerebral palsy may additionally use speech along with touch. The interplay of this interface and interaction allows the cerebral palsy child to express his different needs and emotions to another person cerebral palsy or otherwise.Also, the device's mobile connectivity allows its users to communicate with someone far away<br />
* '''Homepage''': http://www.dhairyadand.com/Home/jellow<br />
* '''Expected results''': I have uploaded the basic designs at the above link to the homepage. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangable memory sticks which allow two or more device's to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.<br />
* '''Contact''': dhairya AT cyber DOT law DOT harvard DOT edu<br />
</font><br />
==== UPnP/DLNA AV client renderer and transcoding server ====<br />
<font color="#C0C0C0"><br />
* '''Title''': UPnP/DLNA AV client renderer and transcoding server <br />
* '''beagleboard.org project''': http://beagleboard.org/project/UPnP_AV_MediaServer/<br />
* '''Project description''':<br />
Enable the beagleboard as a fully featured UPnP AV rendering client, and as a UPnP AV (transcoding!) server. <br />
<br />
Work will be based upon vlc+djmount (for client side) and fuppes (for server side). Server side transcoding to be hardware assisted via hardware DSP codecs. Initial target for the transcoding server on beagleboard is to drive the Neuros OSD (an underpowered DM320-based device). <br />
<br />
* '''Homepage''': Will be an extension and complement to my work on the DM320-based Nueros OSD: http://osd.oddren.com<br />
* '''Expected results''': Beagleboard can act as either as rendering UPnP client, or as a transcoding UPnP server to drive weaker client devices like the Neuros OSD with their preferred streaming format.<br />
* '''Contact''': bmcarnes_beagleboard AT oddren DOT com<br />
</font><br />
==== Beagle-Traveler====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Traveler<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-traveler/<br />
* '''Short project description''': Automotive media and vehicle management controller. Comparable to BeaglesRide.org (no activity).<br />
* '''Homepage''': http://beagletraveler.wordpress.com<br />
* '''Expected results''': intergrate major automotive subsystem management and communications. Improved vehicle notification of subsystems status'. <br />
* '''Contact''': wheeler dawt larry (at) gmail dawt com<br />
**Please send sponsored information and project questions to the email address above.<br />
</font><br />
==== OMAP Emulator====<br />
<font color="#C0C0C0"><br />
* '''Title''': OMAP Emulator<br />
* '''beagleboard.org project''': http://beagleboard.org/project/OMAP+Emulator/<br />
* '''Short project description''': Emulator for rapid prototyping<br />
* '''Homepage''': no homepage yet<br />
* '''Expected results''': Open source implementation of an IDE environment for rapid code development and testing<br />
* '''Contact''': hwtester (at) myway (dot) com<br />
</font><br />
==== eLazarillo====<br />
<font color="#C0C0C0"><br />
[[File:Elazarillo.png|thumb|300px|eLazarillo sketch]]<br />
* '''Title''': eLazarillo (electronic helper for blind persons)<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': Gadget designed for blind persons or with vision problems. <br />
* '''Homepage''': http://elazarillo.blogspot.com/<br />
* '''Full description''':<br />
Lazarillo is a spanish word that means "blind person's guide" and this is the objetive of this project. This gadget will have features like reading non-braille books, assist to blind persons to get places like markets, drugstores, etc. (based on previous GPS tagged places and using google maps). Other functionalities will be spoken weather information, personal calendar, function keys, etc.<br />
<br />
The gadget will be voice controlled, will need GPS, 3G modem, camera and battery. Size will be 4x5 inches (approx.).<br />
<br />
* '''Expected results''': Open source hardware and software platform for blind persons gadgets. My device will have most of the above described.<br />
* '''Contact''': villanuevaborrego (at) gmail (dot) com<br />
</font><br />
<br />
==== QEMUonARM ====<br />
<font color="#C0C0C0"><br />
* '''Title''': QEMUonARM<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': QEMU on ARM. <br />
* '''Homepage''': http://elinux.org/QEMUonARM<br />
* '''Full description''':<br />
This project aims at resurrect and improve QEMU on ARM hosts.<br />
For more information: http://www.qemu.org<br />
* '''Expected results''': Demonstrate user mode and system mode examples, such as running some simple Linux applications or booting an i386 OS. If there's enough interest, making Wine and QEMU work together might be considered.<br />
* '''Contact''': laurent.desnogues (at) gmail (dot) com<br />
</font><br />
<br />
==== Math-NEON ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Math-NEON<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Math-Neon/<br />
* '''Short project description''': NEON optimized cmath like library <br />
* '''Homepage''': http://code.google.com/p/math-neon/<br />
* '''Full description''': <br />
This project aims to overcome the shortcomings of the VFP-lite based cmath implementation. It is targeted at games and other high performance low accuracy applications. The project will consist of C functions, for PC development, which mirror (as near as possible) the hand optimized NEON assembly routines. In order to gain the best performance i will make use of the NEON Unit's Integer and Floating point pipelines in conjunction with minimizing branches (where they cannot be precalculated on the ARM) and creating new algorithms. <br />
* '''Expected results''': Fast approximate implementations of trigonometric, exponential, logarithmic and power functions for use with future Beagleboard / Cortex A8 based projects. <br />
* '''Contact''': lachlan.ts (at) gmail (dot) com<br />
</font><br />
==== Medical Notebook ====<br />
* '''Title''': Medical Notebook<br />
* '''beagleboard.org project''': yet to register<br />
* '''Short project description''': The Ultimate Notebook for Hospitals<br />
* '''Homepage''': coming soon...<br />
* '''Full description''': <br />
A handheld device to improve hospital functionality/efficiency. To add intelligence to the mundane hospital softwares. <br />
Features are:<br />
<br />
View and Update Patient status, medical history, medication details, appointments, billing - stored as a database in central server.<br />
<br />
Touchscreen with handwriting recognition & hand support pad for data entry.<br />
<br />
Light Weight < 1kg<br />
<br />
VoIP, video conferencing/recording for consulting other doctors <br />
<br />
Wifi, bluetooth & ethernet support <br />
<br />
Docking station for charging<br />
<br />
Support for usb keyboard & mouse on docking station<br />
<br />
* '''Expected results''': <br />
<br />
1) Driver for touch pen tablet with support for hand writing recognition<br />
2) Porting of VoIP software for beagleboard (H.323 ???)<br />
3) Video conferencing software for beagleboard<br />
4) WiFi ?& bluetooth support on beagle board<br />
5) Speech recogntion software for beagleboard<br />
6) Entry of beagle board based products to hospital autmation market<br />
7) Improved, efficient & intelligent patient care in hospitals<br />
<br />
* '''Contact''': noorshaheen.m.n (at) gmail (dot) com<br />
<br />
==== EGLIBC ====<br />
<font color="#C0C0C0"><br />
* '''Title''': EGLIBC support<br />
* '''beagleboard.org project''':<br />
* '''Short project description''': Use EGLIBC as system library for beagleboard project in OpenEmbedded.<br />
* '''Homepage''': www.eglibc.org<br />
* '''Expected results''': EGLIBC becomes the default system library on the distribution and can be used instead of glibc<br />
with the newly added configurability support to selec/deselect features. I would also like to make it compile as pure thumb2<br />
code.<br />
* '''Contact''': raj[.]khem[at]gmail[.]com<br />
</font><br />
==== miniECG ====<br />
* '''Title''': miniECG<br />
* '''beagleboard.org project''': http://beagleboard.org/project/miniECG/<br />
* '''Short project description''': Little device that cares for heart when heart patients are busy carrying out their duties<br />
* '''Homepage''': http://code.google.com/p/miniecg/<br />
* '''Full description''': <br />
miniECG is a wearable device that monitors ECG signal, processes it and can transmit it over wireless internet connection to doctors clinic. It has following features are:<br />
(all the hardware components required are available through digikey.com including LCD and touch screen)<br />
<br />
1) It has touch screen that enable user to give commands like store, display old ECG data, transmit, etc. Device also has a LCD display which is used to display ECG waveform.<br />
<br />
2) A tiny server runs on device that enables doctor to login to device any time he wants and extract patients ECG data. The device is connected to internet through wireless USB dongle. <br />
<br />
3) DSP core does the job of compressing ECG signal, doing PCA (principal component analysis) on ECG signal, detect QRS, measuring heart beats and digital filtering.<br />
<br />
4) DSP along with Cortex A8 runs algorithm that determines critical state of heart by doing feature extraction over ECG signals. It also does PCA over set of stored ECG signal to obtain information about any substantial drift in normal functionality of heart. <br />
<br />
5) Wireless USB dongle provides connectivity to internet and data is transmitted over internet as per schedule programmed into the device. ECG signal can also be streamed over internet using this dongle. <br />
<br />
6) Keyboard & mouse (USB) interface is provided for more flexibility and quick access. LCD monitor interface is also be provided. Key-board, mouse and LCD monitor interface will work only when device is powered by adaptor. For device powered by battery only input option is touch screen and only output option is LCD display.<br />
<br />
7) Device also has small software support to give reminder on when to consume which drug. The prescription of drug and its timing information is feed in as per doctors advice. (keyboard and mouse interface with miniECG can be of great advantage here)<br />
<br />
8) USB memory devices will be used to store ECG data.<br />
<br />
9) miniECG will be dual powered. It can be powered by adaptor as well as with rechargeable battery. <br />
<br />
Website link has block diagram of miniECG and also picture of ECG pre-amplifier which is already designed. In future all the source codes will be uploaded on the link as and when available.<br />
<br />
* '''Expected results''': a) Ability to login from remote PC onto miniECG and read data b) Should be able to send stored data or stream live ECG signal over internet c) Robust interface of LCD & touch screen with controller d) Data storage and retrieval from USB storage device e) Successful implementation of DSP algorithms for feature extraction, PCA, QRS detection, filtering and compression. f) As the whole device is battery powered, software & driver which are very specific to the desired application should only be installed & made working. Thus providing a low power system architecture. <br />
<br />
* '''Future Work''': Once the desire basic funtions of ECG storing, retrieval and transmitting is meet, miniECG can be programmed into miniPA (mini personal assistance) mainly targeting senior citizens. miniPA will have much advanced features that can help them elderly person in their day-to-day activity.<br />
* '''Contact''': mehta.nandish (at) gmail (dot) com<br />
<br />
<br />
==== remoteBillBoard ====<br />
* '''Title''': Remote Bill Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/remoteBillBoard/<br />
* '''Short project description''': Video bill boards, remotely controlled via web over a 3G modem<br />
* '''Homepage''': http://www.greensoftware.net/remoteBillBoard<br />
* '''Full description''': <br />
Play HD video on billboards, remotely manage the billboards, upload new advertisements, remove old ones etc..<br />
<br />
<br />
* '''Expected results''': <br />
a) 3g modem support, so flexiblity.<br />
b) a full working web based system<br />
<br />
* '''Future Work''':<br />
a) a more advanced desktop application to replaced the web based solution.<br />
<br />
* '''Contact''': ahmad.mushtaq (at) gmail (dot) com<br />
<br />
<br />
==== Turk ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Turk Platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Turk/<br />
* '''Short project description''': A wireless dynamically-mappable interface platform for small devices<br />
* '''Homepage''': http://www.turkinnovations.com/<br />
* '''Full Description''': Turk will be an open-source wireless interface platform that allows interfacing of small wireless (Zigbee or Wi-Fi enabled) devices through a dynamic mapping framework and web interface. Developers can implement their device's protocol easily through small user-space drivers called 'Gadgets' and host them on our server. The platform is then capable of automatically downloading and starting appropriate gadgets for new devices that are compatible with the basic Turk protocol. Gadgets reveal their services to the user and other gadgets through our growing library of data endpoint types (such as colors, URLs, booleans, xml strings) and user controls (like sliders, switches and color pickers), and can then be connected to each other through a themable web interface.<br />
<br />
* '''Expected results''': <br />
**A platform that allows developers to write simple user-space drivers that expose interfaces through XML-RPC<br />
**A web interface and remote configuration capabilities through a central server. <br />
**A simple and well-tested protocol and driver for a kernel-managed point-to-multipoint Zigbee network. <br />
**More hardware connectivity besides the Wi-Fi and Zigbee interfaces will hopefully be developed by collaborating with other beagleboard projects and developers.<br />
* '''Contact''': rob.odwyer [at] turkinnovations [dot] com<br />
</font><br />
==== BeagleWacom ====<br />
* '''Title''': Wacom Tablet driver for Beagle Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-wacom/<br />
* '''Short project description''': Linux drivers of wacom tablet ported for Beagle Board<br />
* '''Homepage''': <br />
* '''Full Description''': beagle-wacom will be port of linux drivers for configuring & running wacom tablets with the beagle board. The idea is to have support for wacom-components, so that they can be used by OEMs of beagleboard based products using linux as their OS<br />
<br />
* '''Expected results''': <br />
**easy integration of wacom tablet with Beagle Board. <br />
**OEMs of beagleboard based products using linux as their OS can integrate wacom-components in their product with minimal fuss<br />
* '''Contact''': najath [at] gmail [dot] com<br />
<br />
<br />
====hApplause====<br />
<font color="#C0C0C0"><br />
* '''Title''': hApplause<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Hardware Platform that You can use to play with Audio Synthesis<br />
* '''Homepage''': not yet<br />
* '''Description''': ''hApplause'' will be multi-functional flexible audio hardware platform. The goal is to make a tool that can allow to develop audio software and hardware (e.g. DSP synthesizers, FX units, hardware expansion boards, etc.). The concept is inspired by [http://www.chameleon.synth.net/ Chameleon] and [http://www.ucapps.de/ MIDIbox]. ''BeagleBoard'' will give ''Chameleon'' like software flexibility while planed hardware with ''Expansion Interface'' and ''Audio Multiplexer'' will give ''MIDIbox'' like hardware flexibility.<br />
*; Hardware features<br />
*: Audio Stereo In/Out<br />
*: MIDI In/Out/Thru<br />
*: General purpose USB port - function depends on user application<br />
*: General purpose SD/MMC Card (e.g. for user data storage) - function depends on user application<br />
*: Front panel interface (1U rack version) with:<br />
*:* LCD<br />
*:* Volume potentiometer<br />
*:* Headphones jack<br />
*:* Power switch with LED indicator<br />
*:* programmable rotary encoders (5 are planed)<br />
*:* programmable buttons and LEDs (12 are planed)<br />
*: Expansion Interface with audio signal buses (1-4 planed, depends on final implementation) and data/command bus (I2C and/or CAN)<br />
*: Audio Multiplexer for flexible routing of audio signal between ''BeagleBoard'', ''Audio In/Out'' and ''Expansion Interface''<br />
*: USB and RS232C for developers<br />
*; Software features<br />
*: All hardware will be fully accessible from ''BeagleBoard'' by API<br />
*: hApplause OS is planed (abstract layer over hardware, user program loading, self configuration on power on)<br />
* '''Expected results''':<br />
*# 19" 1U rackmount unit ready to play with.<br />
*# Libs and additional software for developers (at least API for hApplause's hardware)<br />
*# Example implementation of software synth<br />
*# Single size eurocard unit for 3U rack, like in [http://www.doepfer.de/a100e.htm Doepfer A-100 System] modules<br />
* '''Contact''': tawezik at gmail dot com<br />
</font><br />
==== BeagleLAB====<br />
* '''Title''': BeagleLAB<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleLAB/<br />
* '''Short project description''': BeagleLAB is an Embedded developer's workbench comprising of must-have hardware/software utilities.<br />
* '''Homepage''': http://code.google.com/p/beaglelab/<br />
* '''Expected results''': <br />
:* A PC free host providing a development environment based on beagle board (running ubuntu 9.04 or later)<br />
:* Host environment with software applications and hardware interfaces to substitute oscilloscope, multimeter & logic analyzers<br />
:* GNOME widgets (software apps) & Linux device drivers for capturing data,storing,comparing and visualization<br />
:* Legacy ports like the serial, parallel ports for device interfacing and control<br />
:* Making an embedded developer's life easier and workbench neater<br />
* '''Contact''': amarendermail[at]gmail[dot]com and saurabhg84[at]gmail[dot]com<br />
<br />
====PREEMPT_RT====<br />
<font color="#C0C0C0"><br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
</font><br />
<br />
====HDDM====<br />
<font color="#C0C0C0"><br />
* '''Title''': HDDM<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/HDDM/]<br />
* '''Short project description''': A multimedia system based on OMAP and linux.<br />
* '''Homepage''': Under construction<br />
* '''Expected results''': Beagleboard as a control center for home theatre system<br />
* '''Contact''': grover.ankur (at) gmail (dot) com<br />
<br />
Note from Dirk: Please see [http://www.syspire.de/node/3 Embedded Mediacenter], too (sorry, German only, use Google translate if needed).<br />
</font><br />
====BeagleVision====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleVision<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beaglevision/<br />
* '''Short project description''': An efficient object recognition framework <br />
* '''Homepage''': http://code.google.com/p/beaglevision/<br />
* '''Description''': BeagleVision will be a fast object recognition framework. The aim of the project is to have a hardware optimized implementation (utilising the DSP and NEON) of state-of-the-art local feature detectors and descriptors on the Beagle Board. BeagleVision will include [http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001018 our recent work] on efficient feature detectors and descriptors, other well-known algorithms (e.g. FAST corner detector and SURF), and efficient matching algorithms for very large datasets (>1M images).<br />
* '''Expected results''':<br />
:* An open source library for developers (a project hosted on code.google.com)<br />
:* A sample application for building recognition in a city scale dataset, to show how: to add new images to the dataset, to use it for location based services, and how to reduce the search time if a GPS is available to get geolocations<br />
:* A wiki for interested developers<br />
:* Reporting the running times of new algorithms on OMAP (as a benchmark) in scientific publications<br />
* '''Contact''': m.ebrahimi at ieee dot org<br />
</font><br />
====Beagle-Arduino hybrid robot====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Arduino hybrid robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Beagle-Arduino+hybrid+robot/<br />
* '''Short project description''': A robot using a Beagleboard for high-level processing and Arduino for low-level control<br />
* '''Homepage''': http://mechomaniac.com/robots<br />
* '''Description''': The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:<br />
** image processing<br />
** artificial intelligence<br />
** speech synthesis<br />
** voice recognition<br />
** internet connectivity<br />
And an Arduino for low-level functions:<br />
** motor / servo control<br />
** sensor input & output<br />
** battery monitoring<br />
The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.<br />
* '''Expected results''':<br />
:* Easy physical interfacing to the Beagle without having to design and build special expansion boards<br />
:* Image processing using OpenCV with a USB webcam<br />
:* Speech synthesis and voice recognition<br />
* '''Contact''': tim at mechomaniac dot com<br />
</font><br />
<br />
====DJ Audio / Video Mixer====<br />
<font color="#C0C0C0"><br />
* '''Title''': DJ Audio / Video Mixer* '''Contact''': <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/djvideomixer/]<br />
* '''Description''': This is a small, Touch LCD controlled DJ Mixer, which not only is great as a nightclub tool for playing audio -not only reproducing music, actually '''''playing''''' with it-, but also has high end video playback capabilities, thus making it an all-round experience both for the DJ and the audience. It will bring all the experience of professional DJ mixers to users, while being portable, and which when coupled with either a normal projector, or even better, with a PicoProjector, makes a whole experience for audio and video playback in Discos, Bars, Lounges, to mention just a few possible applications. You can even use for your own parties, and it will rock!<br />
* '''Homepage''': [http://code.google.com/p/djvideomixer/]<br />
* '''Expected results''': <br />
** Audio playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Video playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Audio/Video synchronization, allowing song change, video change, etc.<br />
** High end, professional DJ-Mixer audio effects.<br />
** User interface based on LCD and with touchscreen capabilities.<br />
* '''Contact''': jaime_dot_aranguren_at_ieee_dot_org<br />
</font><br />
====schooldog====<br />
<font color="#C0C0C0"><br />
* '''Title''': schooldog<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/schooldog/]<br />
* '''Description''': The purpose is to make an ''off the shelf'' low cost schoolcomputer that can be used on various levels of education. It will be small so students can take it with them and the school just has to provide for input / output items. This way even people that cannot afford laptops can participate in the digital era or schools can provide a robust and good machine for studypurposes.<br />
* '''Homepage''': [http://schooldog.wickedmind.net]<br />
* '''Expected results''': <br />
** Educational linuxbased OS, from USB sticks and SD Cards.<br />
** more general use of BeagleBoard and more public awareness for the powerful small computer.<br />
** Affordable,individual and steady study enviroment<br />
<br />
* '''Contact''': wickedmind<br />
</font><br />
====Disko====<br />
<font color="#C0C0C0"><br />
[[File:Disko_logo.png|thumb|200px|UI Application Framework]]<br />
* '''Title''': Disko - UI Application Framework<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Disko/<br />
* '''Short project description''': Disko is a Linux-based toolkit to build touchscreen- and remote-controllable ui applications. It contains native OMAP framebuffer support and the media content is DSP-accelerated by GStreamer (TI-Codecs).<br />
* '''Homepage''': http://diskohq.org<br />
<br />
* '''Expected results''': Expected result is broad support of Disko by developers of user interfaces and applications for embedded devices.<br />
** SIP - IP telephony support delivered by pjsip and minisip <br />
** Gstreamer - to add an alternative to the xine library and to add the TI Codecs supplied for the DSP.<br />
** Webkit - the great embedded browser OWB of Pleyo (planned for Disko 1.7)<br />
** SVG - at least one SVG engine to have an alternative to Flash. Initial work has already been done at MadButterfly (planned for Disko 1.7) <br />
* '''Contact''': gmadaus [at] berlinux-solutions dot de or mspringer [at] berlinux-solutions dot de<br />
</font><br />
====FETCH====<br />
* '''Title''': FETCH - FPGA enabled Tool Contol Host<br />
* '''beagleboard.org project''': http://beagleboard.org/project/FETCH<br />
* '''Homepage''': http://code.google.com/p/fetch/<br />
* '''Short project description''': A host with a web interface for easy configuration and control of connected tools. The device may also be controlled through a PSTN network using DTMF tones. The BeagleBoard will act as the main server and will also be the host interface for the connected FPGA for the purpose of evaluating the IPs developed on the FPGA.<br />
* '''description : Phase 1 '''<br />
***1) Server capability -- all services (except VNC) to be launched through inetd so that they are started on an on-demand basis. <br />
***-- http server for configuration pages <br />
***-- ssh server (the ssh suite in particular including scp etc.. so that an ftp server can be avoided) for remote login. <br />
***-- bootp server for bootstaping machines on my home network. <br />
***-- VNC for GUI sessions :) <br />
***-- CUPS for network printing <br />
***-- NetHack server :D <br />
***2) Tool Control <br />
***-- The term "Tool Control" here refers to automation of connected tools and Phase 1 of the project will demonstrate this by automation in home (eg. computer, printer, scanner on/off --> (the contoller board with the relays is complete :) ), these devices may be contolled over the internet or PSTN network ) The system will also be hooked to the home electrical network that will enable control over home appliances. A special mode called " Home Alone" will switch on/off lights randomly when no one is at home to give the illusion that the house is occupied ( and hence protect from thefts ;) ). The current relay boards developed use a UART (for RS232 protocol) for control of the equipment but it is planned to use the CAN interface (under developement ) so that longer distances can be covered. <br />
***3) The BeagleBoard will act as a host interfacefor a Nexys2 Xilinx FPGA board and will be used to evaluate the IPs deployed on it. This feature is sort of a tester for the FPGA. <br />
**'''Phase 2 ''' ( only after Phase 1 is completely functional :) ) <br />
***1) CAN interface for the controller nodes replacing the RS232 connections<br />
***2) mgetty (for faxes) and asterisk (VOIP) may be added to the server.<br />
* ''' Contact : ''' akshat dot g dot gupta [at] gmail dot com<br />
<br />
==== ESITeam====<br />
<font color="#C0C0C0"><br />
* '''Title''': ESITeam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ESITeam/<br />
* '''Short project description''': It's a robotic soccer team with vision and intelligence distributed through the use of wireless communication (Zigbee) between robots and PC.<br />
* '''Expected results''': The expected results would have a running and competitive team for the RoboCup's championship this year.<br />
<br />
* '''Contact''': registrosvmora at gmail dot com<br />
</font><br />
==== PupLC====<br />
* '''Title''': PupLC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/PupLC/<br />
* '''Short project description''':Open source control of PLC operated equipment.<br />
* '''Homepage''': No homepage yet<br />
* '''Expected results''': <br />
:*PupLC will be an open source PLC controller. The user will be able to control the PLC's autonomously or by direct control. The direct method will allow the user to change equipment status using a touch screen lcd. The PupLC will control all aspects of the operating equipmet (ie. setpoints, red-hand settings, shutdowns, etc.) Additionally, 24-hours of accumulated system data will be saved to disk and can be accessed via ftp for analysis off-site.<br />
* '''Contact''': alcpo729[at]tds[dot]net<br />
<br />
====Speed-Reader====<br />
<font color="#C0C0C0"><br />
* '''Title''': Speed-Reader<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Speed-Reader/<br />
* '''Short project description''': Speed-Reader is an audio book reader that gives the listener control of the speaker rate.<br />
* '''Homepage''': http://www.nerd1951.com/?page_id=72<br />
* '''Description''': Speed reader allows an audio book to be played back with faster or slower speaker rates. A user interface gives the listener realtime control of the speaker rate. Speed-Reader uses digital speech signal processing to accomplish low distortion timescale modification of speech in real time. Timescale modification of speech is accomplished by selectively repeating segments of speech to slow down the speaker rate or deleting selected speech segments to speed up the speaker rate. Digital signal processing is used to determine which speech segments are candidates for repetition or deletion.<br />
* '''Expected results''':<br />
***--Realtime (during playback) timescale modification of digitized speech using the C64++ DSP<br />
***--Initially read digitized speech from the SD card interface<br />
***--Audio output using the Beagleboard stereo out<br />
***--Initially user interface provided via RS-232 interface<br />
* '''Contact''': harvey dot sugar at nerd1951 dot com<br />
</font><br />
<br />
====DVB-T Receiver====<br />
<font color="#C0C0C0"><br />
* '''Title''': DVB-T Receiver<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': The DVB-T Receiver project aims to implement a fully tunable DVB-T Receiver on the Beagle Board.<br />
* '''Homepage''': Will be launched in the near future (at blog.arsln.org)<br />
* '''Description''': The DVB-T receiver is a senior graduation project that has to be completed in one year (until Summer 2010). It will be a fully tunable DVB-T receiver. It will compatible to receive digital terrestrial TV & radio stations. The goal is to show the capabilities of the Beagle Board and build a DVB-T system from the scratch. The input will be through a ADC daughter-board that is plugged to the USB port. The output will be via the USB port(for portable devices i.e Netbook) or DVI-D. <br />
* '''Expected results''':<br />
***--Capturing broadcast signals(DVB-T) and convert them to discrete time signals<br />
***--Demodulate and encode the incoming signal<br />
***--Video output using the Beagleboard's DVI-D port or via the USB port for portable devices<br />
* '''Contact''': ftharsln at gmail dot com , sulaya05 at gmail dot com<br />
</font><br />
<br />
====ArchMobile: ArchLinux ARM Port====<br />
<br />
* '''Title''': ArchMobile<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/AM/ AM]<br />
* '''Short project description''': ARM Port of the x86-Linux Distribution ArchLinux<br />
* '''Homepage''': [http://www.archmobile.org ArchMobile]<br />
* '''Expected results''': Fully working ArchLinux with X and all other features.<br />
* '''Contact''': rotter.manuel@gmail.com or naeg on Freenode<br />
<br />
==== MythBeagle ====<br />
<br />
* '''Title''': MythBeagle<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': MythBeagle aims at bringing MythTV to the beagle; both frontend and backend, including plugins (as far as possible)<br />
* '''Homepage''': not yet; <br />
* '''Expected results''': <br />
** OE recipes for mythtv 0.22, mythplugins 0.22 and whatever might be needed to get things going (including bringing required recipes to the latest version where needed/possible)<br />
** An image for SD card to allow easy install, or a script or recipe to allow easy installation<br />
** some additional configuration notes (configuring MythTV is somewhat a pain...)<br />
** setup should also allow using the beagle only as frontend or backend<br />
* '''Status''': mysql5 recipe has been created (mythtv 0.22 won't use mysql4); recipes for mythtv are there, except for mythweb, documentation/installation work has started;<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== Homebrew SmartPhone ====<br />
<br />
* '''Title''': HomeBrewSmartPhone<br />
* '''beagleboard.org project''': http://code.google.com/p/hbpd<br />
* '''Short project description''': HomeBrewSmartPhone is a project to use the beagleboard to create a community-buildable mobile phone that is powerful enough to also run as a Desktop PC.<br />
* '''Homepage''': http://lkcl.net/reports/hbp <br />
* '''Expected results''': <br />
*** A device capable of Digital Voice as well as Data / Internet Access.<br />
*** A device capable of shutting down into low-power mode and successfully resuming on incoming calls.<br />
*** RF-protected audio circuits that don't have howling feedback from the 3G/GSM Radio module.<br />
*** Full disclosure of all build components (schematics, BOM) under free software licenses.<br />
*** Full documentation of all hardware interconnections<br />
*** Creation of a <b>basic</b> demonstration image that will allow other software developers to participate very early on<br />
*** Addition to the http://handhelds.org site for developers to create GUI-based distros<br />
* '''Contact''': lkcl@lkcl.net or use http://lkcl.net contact box<br />
<br />
==== XBMC ARM Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': XBMC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/XBMC/<br />
* '''Short project description''': XBMC Is a full-feature home-theater application that works on a variety of platforms and operating systems<br />
* '''Homepage''': http://xbmc.org<br />
* '''Expected results''': <br />
*** Feature parity with XBMC x86 and ppc<br />
*** Usage of OpenGL ES 2.0<br />
* '''Contact''': Cory Fields: theuni @at@ xbmc .dot. org<br />
</font><br />
<br />
==== Beagleboard Carputer ====<br />
<br />
* '''Title''': Beagleboard Carputer<br />
* '''beagleboard.org project''': http://beagleboard.org/project/bbcarputer<br />
* '''Short project description''': The Beagleboard Carputer aims to create a fully-integrated system that will feature touchscreen LCD, Bluetooth and USB connectivity, GPS Navigation, Phone features, Wifi, Voice recognition, Multimedia entertainment.<br />
* '''Homepage''': http://bbcarputer.codeplex.com<br />
* '''Expected results''': Provide a fully-integrated system that will feature:<br />
*** 7in touchscreen LCD<br />
*** Wireless connectivity<br />
*** Usb connectivity<br />
*** GPS Navigation<br />
*** Phone features<br />
*** Voice recognition<br />
*** Multimedia entertainment<br />
*** Opensource Application Suite<br />
*** Games<br />
* '''Contact''': Joey Mar Antonio: joeymar.antonio @at@ awsol-i .dot. com<br />
<br />
==== GuideBeagle: Portable monocular SLAM system ====<br />
<font color="#C0C0C0"><br />
* '''Title''': GuideBeagle<br />
* '''beagleboard.org project''': Not yet available.<br />
* '''Short project description''': GuideBeagle is a portable localization and mapping system based on monocular vision. Such a system can be used, among other things, to build:<br />
:*Interactive visitor guidance systems for museums and stores.<br />
:*Artificial Reality tools and games.<br />
:*Mobile robot control systems.<br />
:*Surveillance and security related applications.<br />
:In other words: it solves a Simultaneous Localization and Mapping (SLAM) problem using a single camera as sensor, working on-line, and producing maps with high-level geometrical information (i.e. not just simple punctual visual landmarks on space). It will be based on recent research on the fields of Computer Vision and Mobile Robotics.<br />
* '''Homepage''': http://sites.google.com/site/guidebeagle (This page will be enhanced uninterruptedly.)<br />
* '''Expected results''': <br />
**Mapping --- The final system will allow an user to move by an environment like an office or a small apartment and build a map of it similar to a 3D model with planes and textures, as used in Computer Graphics.<br />
**Localization --- After a map is built, the user can move around the environment, and the system will interactively estimate the geometric location of the camera and the direction it is heading, based on images continuously obtained from the camera.<br />
**Image processing --- Building this system will require the coding of image processing tools that may be useful to many other image processing applications based on the Beagle Board. Some examples are feature detectors and descriptors, edge detectors, template matching by normalized cross-correlation and the Discrete Fourier Transform.<br />
* '''Contact''': nwerneck@gmail.com or nwerneck@usp.br<br />
</font><br />
<br />
==== AutoRobo ====<br />
<br />
* '''Title''': Development of an autonomous robotics platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/autorobo/<br />
* '''Short project description''': Design, prototype and develop an autonomous aerial vehicle system around BeagleBoard, allowing experimentation with real-time control and computer vision algorithms.<br />
* '''Philosophy''':<br />
:* make robotics and embedded control accessible and fun<br />
:* stimulate cross-field learning and collaboration<br />
:* leverage modularity and reuse to get more done, quicker <br />
* '''Technical goals''':<br />
:* develop generalised physics model for eg computing optimal PID controlled motor outputs<br />
:* decouple high-update-rate sensors from lower-rate output control<br />
:* employ OpenCV for visual tracking/SLAM/feature detection<br />
:* build lean tracked (land) vehicle<br />
:* build lean quad-rotor (air) vehicle<br />
:* use a shared, modular code-base and electronics platform (Beagle and IGEPv2) <br />
* '''Homepage''': http://code.google.com/p/autorobo/<br />
* '''Expected results''': Initial bringup of a tracked vehicle via dual-motor controller via Beagle's PWM outputs. Utilisation of 3-axis accelerometer and 3-axis gryo via I2C and/or SPI buses, enabling more advanced control<br />
* '''Contact''': ''daniel (dot) blueman (at) gmail (dot) com''<br />
<br />
==== Beagle-Walker ====<br />
<br />
* '''Title''': Design of a automatic dog-walker robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleWalker/<br />
* '''Short project description''': Develop an autonomous dog-walker robot<br />
* '''Homepage''': http://code.google.com/p/beaglewalker/<br />
* '''Expected results''': <br />
**The main goal of the system is analyze the feedback between the dog and the robot to track where the dog is going and where the robot should go.<br />
**Let the dog walk only in places previously programmed by the dog's owner making use of basic SLAM algorithms. <br />
**avoid any obstacles/vehicles.<br />
* '''Contact''': ''darthdj at gmail dot com''<br />
<br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nullDC<br />
* '''Expected results''': For the contest: A working build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
==== MyoVox ====<br />
* '''Title''': MyoVox<br />
* '''beagleboard.org project''': <br />
* '''Short project description''': <br />
* '''Homepage''': <br />
* '''Expected results''': <br />
* '''Contact''': smcgill3 [at] seas[.]upenn [.] edu<br />
<br />
==== Beagle-Eye ====<br />
<br />
* '''Title''': Beagle-Eye<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/Beagle-Eye/ Beagle-Eye]<br />
* '''Short project description''': A beagle-eyed guide for the visually challenged.<br />
* '''Description''': The beagle board will be used along with two calibrated USB webcams to perform low fps real time vision. The use of a pair of calibrated cameras will act as a stereo system capable of estimating depth of any point in the captured scene. A basic object/activity recognition system will be implemented in order to roughly understand the scene. This makes Beagle-Eye aware of the current state of the environment, and this information can in turn be used to help guide visually challenged users through the environment. Visual information can be interpreted and converted to either audio signals or actuators attached to the user's clothing, in order to communicate with the user. Potential applications include navigation, user localization, and object recognition and localization with respect to the immediate environment.<br />
* '''Expected Results''':<br />
** A navigation tool, around immediate environments with enough communication to warn of approaching/still objects.<br />
** A basic object recognition and localization tool, to guide the user towards a required object.<br />
** Possibly a user localization tool, within a small mapped environment.<br />
** Room for more!<br />
* '''Contact''': leatherbrain at gmail dot com<br />
<br />
==== BeaglePod ====<br />
<br />
* '''Title''': BeaglePod<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglepod/]<br />
* '''Short project description''': BeaglePod is an IPod plug-in replacement for car stereo's that are IPod Ready. The BeaglePod uses gstreamer as an audio/video player and is controlled via the car stereo head unit using Apple Accessory Protocol. <br />
* '''Description''': The BeaglePod is an audio/video player for cars equipped with "IPod Ready" stereos. Using the Apple Accessory Protocol the car stereo is used to select and control the playback of media on the BeaglePod. Adding a video monitor the BeaglePod can also become a video player running all the audio through the car stereo with full pause, play, stop control using the car's stereo head unit. Using a software implementation of the Apple Accessory Protocol the BeaglePod is connected to the car stereo via a USB->TTL cable.<br />
* '''Expected Results''':<br />
** Play audio/video media files from the Beagleboard using the car stero to control playback and track selection.<br />
** Audio will playback through car's exist speaker.<br />
** With gstreamer dsp support HD playback of video with in car lcd.<br />
* '''Contact''': velorider [X] publicemail [X] us<br />
<br />
==== MART ====<br />
* '''Title''': Autonomous modular robot<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': Build an autonomous robot to enter the Eurobot 2010 competition<br />
* '''Homepage''': (only in Czech) http://eurobot.matfyz.info/<br />
* '''Full Description''': Goal of this project is to build an autonomous modular robot, that will be able to compete in the Eurobot competition. This project includes following:<br />
<br />
** '''HW''':<br />
** Custom beagle daughter-card (including kernel driver patches):<br />
*** CAN (Controller area network) able to sustain 1Mbit/s, using embedded cortex-m3 controller<br />
*** Battery backed up RTC<br />
*** Dual power - battery and/or adapter, with battery management (current consumption sensing and charging) <br />
*** Second serial and i2c headers<br />
*** (optional) Ethernet controller 10/100Mbit<br />
** Custom motor, servo and stepper motor drivers and IO boards<br />
*** everything connected through CAN<br />
<br />
** '''SW''':<br />
** Modular architecture, for simple modification<br />
** OpenCV integration for play field object identification<br />
** optimalizations for NEON (and DSP)<br />
<br />
* '''Contact''': Michal dot Demin at Gmail dot Com<br />
<br />
==== CamCast ====<br />
* '''Title''': Webcam broadcast server/relay<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/CamCast/]<br />
* '''Short project description''': Webcam broadcast platform for USB webcams<br />
* '''Homepage''': <br />
* '''Full Description''': The goal of this project is to utilize the beagleboard as a low cost platform for webcam video feeds.<br />
Server capability:<br />
<br />
** Broadcast webcam feeds for directly connected USB webcams<br />
** Relay webcam feeds from other servers, typically connected over wi-fi<br />
** Decimate MJPEG streams to match bandwidth limits<br />
** Monitor and control streams via HTTP<br />
** Advertise HTTP services locally via Zeroconf<br />
<br />
The beagleboard will require a functional Linux gspca driver for all USB webcams in use as well as USB wi-fi for remote service. Linux Zeroconf service must also be included.<br />
<br />
* '''Contact''': spiderkarma at gmail dot com<br />
<br />
====Beagle SecMon====<br />
<br />
* '''Title''' : Beagle Security Monitoring over Web <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/Beagle+SecMon/ BeagleSecMon]<br />
* '''Short project description''': This project proposes to control and transmit audio and video from a remote place using the beagleboard as a webserver.<br />
* '''Expected results''': The system will control one or more digital cameras with pan, tilt and zoom functions, and microphones. Besides, it can be configured to send information to a pre registered cell phone when movement is detected. Also, audio and video can be accessed using internet from any place.<br />
* '''Contact''': cborges at ifsc dot edu dot br====<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====PREEMPT_RT====<br />
<br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron====FreeBSD port to BeagleBoard====<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* To follow up on shipping details, contact ''beagleship at list.ti.com''.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #3===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=15786BeagleBoard/contest2009-12-17T09:57:35Z<p>FransMeulenbroeks: /* Contest #1 */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
If your project is listed as a winner and you haven't received your board, check with ''beagleship at list.ti.com''.<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Accelerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]</font><br />
|<font color="#C0C0C0">Week 21</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle Synth |Beagle Synth]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#USB Scope |USB Scope]]</font><br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Irrlicht|Irrlicht]]<br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleHam|BeagleHam]]</font><br />
|<font color="#C0C0C0">Week 24</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<font color="#C0C0C0">Week 25</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Handheld_Lab|Handheld Lab]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TCF_Agent_Port|TCF Agent Port]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Traveler|Beagle-Traveler]]</font><br />
|<font color="#C0C0C0">Week 27</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#OMAP Emulator|OMAP Emulator]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#QEMUonARM|QEMUonARM]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#EGLIBC|EGLIBC Support]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#RT-Beagle|RT-Beagle]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ONAS|ONAS]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Math-NEON|Math-NEON]]<br />
|<font color="#C0C0C0">Week 32<br />
|<font color="#C0C0C0">5 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Happiness_Device_for_Cerebral_Palsy_Kids|Device for Cerebral Palsy Kids]]</font><br />
|<font color="#C0C0C0">Week 32</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Turk|Turk Platform]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#hApplause|hApplause]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#eLazarillo|eLazarillo]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">1 vote</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#PREEMPT_RT|PREEMPT_RT]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#HDDM|HDDM]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleVision|BeagleVision]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#DJ Audio / Video Mixer|DJ Audio / Video Mixer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#schooldog|An individual lowcost schoolcomputer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Disko|Disko - UI Application Framework]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ESITeam|ESITeam]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">|[[BeagleBoard/contest#DVB-T_Receiver|DVB-T_Receiver]]</font><br />
|<font color="#C0C0C0">Week 43</font><br />
|<font color="#C0C0C0">8 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#UPnP.2FDLNA_AV_client_renderer_and_transcoding_server|UPnP/DLNA AV client renderer and transcoding server]]</font><br />
|<font color="#C0C0C0">Week 43</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Speed-Reader|Speed-Reader]]</font><br />
|<font color="#C0C0C0">Week 45</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Arduino_hybrid_robot|Beagle-Arduino hybrid robot]]</font><br />
|<font color="#C0C0C0">Week 45</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#XBMC_ARM_Port|XBMC Arm Port]]</font><br />
|<font color="#C0C0C0">Week 49</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#GuideBeagle:_Portable_monocular_SLAM_system|Portable monocular SLAM system]]</font><br />
|<font color="#C0C0C0">Week 49</font><br />
|<font color="#C0C0C0">2 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Touchscreen_LCD_support| Touchscreen LCD support]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleSCI |BeagleSCI]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Pictouch|Pictouch]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Fotogenic |Fotogenic]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyGTee|MyGTee handheld]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Tourister_using_Hand_Gestures_and_HMD_on_Beagleboard|Beagle Tourister]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Medical Notebook|Medical Notebook]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#miniECG|miniECG]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#remoteBillBoard|Remote Bill Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleWacom|Wacom Tablet driver for Beagle Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleLAB|BeagleLAB]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FETCH|FETCH]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#PupLC|PupLC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#ArchMobile:_ArchLinux_ARM_Port|ArchMobile]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#MythBeagle|MythBeagle]]<br />
|<br />
|<br />
|1<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#Homebrew_SmartPhone|Homebrew SmartPhone]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagleboard_Carputer|Beagleboard Carputer]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#AutoRobo|AutoRobo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Walker|Beagle-Walker]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|<br />
|<br />
|1<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyoVox|MyoVox]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Eye|Beagle-Eye]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeaglePod|BeaglePod]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MART|MART]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#CamCast|CamCast]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects with the most votes will be approved. The plan is to have final decision every Friday morning.<br />
<br />
==== Revolt 2405====<br />
<font color="#C0C0C0"><br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Revolt2405/<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405/wordpress<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
</font><br />
==== Touchscreen LCD support ====<br />
<br />
* '''Title''': Touchscreen LCD support <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The project will add the touch screen support to Beagle board<br />
The following are the components that i am planning of using<br />
:*The LCD breakout board is http://www.sparkfun.com/commerce/product_info.php?products_id=8600<br />
:*The touch screen is http://www.sparkfun.com/commerce/product_info.php?products_id=8977<br />
:*The touch screen connector is http://www.sparkfun.com/commerce/product_info.php?products_id=9104<br />
<br />
Another option is buying a full LCD with touch screen option<br />
:*The product link is http://www.sparkfun.com/commerce/product_info.php?products_id=257.<br />
:*I would create a system and hardware like this video http://www.youtube.com/watch?v=foWnDZ3eQto&feature=related<br />
<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
<br />
* '''Expected results''': <br />
**Linux driver to add LCD with touch screen support<br />
**The breakout board(preferably single layered as it can be created at home)gerber for attaching with beagle which will be created using FreePcb(www.freepcb.com).You can see the photos of my RFID Based Access Control system project there.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
</font><br />
==== TUD:OS on Beagleboard ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/TUD%3AOS+on+the+Beagleboard/]<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Description''': <br />
** '''What the heck?''' The TUD:OS operating system is a L4 microkernel based operating system, with good real-time and security properties, developed at the TU Dresden. <br />
** '''Microkernel-based''': The microkernel approach allows it to to reduce the trusted computing base (the amount of code that has to be trusted) by running small trusted applications side by side with non-trusted applications, all as unprivileged user mode applications. Further, it is possible to run real-time applications side-by side with non real-time applications. Also device driver run in user-mode and thus a crash of a device driver will not lead to an whole system crash and in the best case the driver can be restarted and the system will keep on running.<br />
** '''Familiar Environment''': While offering the above mentioned vantages, TUD:OS still offers a familiar environment by the possibility to run one or more instances of L4Linux. L4Linux is a Linux port the Fiasco microkernel which is binary compatible to native Linux but runs in deprivilieged usermode.<br />
** '''What do we get from this project?''' ''Briefly: A fundament to build embedded [realtime] systems [with a exceptionally small trusted computing base].'' Further a possibility to run multiple virtualized linux instances on the beagleboard. A good documentation how to build such systems. And last but not least a (hopefully cool ;) demo showing that it acutally works , perhaps like the one found at [http://demo.tudos.org demo.tudos.org] (somewhat outdated). <br />
*'''Contact:''' dvogt[at]os[.]inf[.]tu-dresden[.]de ([[User:Dvogt|Dvogt]])<br />
</font><br />
==== picoFlamingo ====<br />
<font color="#C0C0C0"><br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
</font><br />
==== Accelerated USB Graphics Adapter ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
</font><br />
==== Apertus open source/hardware cinema camera ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
</font><br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== BeagleSCI ====<br />
<br />
* '''Title''': BeagleSCI<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': BeagleSCI aims to use the BeagleBoard as a platform for scientific computation and instrumentation (SCI).<br />
* '''Homepage''': http://sourceforge.net/projects/beaglesci/<br />
* '''Expected results''': As a start, the initial goal would be to use the BeagleBoard as a logger of a seismometer. This would involve interfacing a 12-bit ADC chip and writing a driver for it. Data read from the instrument can be displayed by the BeagleBoard through a monitor or send the data to a remote computer via RS-232/RS-485.<br />
* '''Contact''': sherdon dot uy at gmail dot com<br />
<br />
==== Pictouch====<br />
<br />
* '''Title''': Pictouch<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Mobile and Projected Touch user interface<br />
* '''Homepage''': not yet<br />
* '''Expected results''': The goal is to build a new Tactile Interface system based on beagleboard and the DLP picoprojector. Currently, the project make the use of JavaFX to support Multi-Touch (and Multi-User) and of 2 basic webcam, in order to build a low cost gesture recognition system.In the classical case of use, the interface is projected onto a classical table.Users interact directly with their fingers on the projected interface.<br />
<br />
* '''Contact''': maxired at gmail dot com<br />
<br />
==== Fotogenic ====<br />
<br />
* '''Title''': Fotogenic<br />
* '''beagleboard.org project''': not yet - but project is already in progress<br />
* '''Short project description''': Bring network connectivity to plain old vanilla picture frames<br />
* '''Homepage''': www.sourceforge.net/projects/fotogenic<br />
* '''Expected results''': This project brings wired, WiFi and bluetooth connectivity and management to plain old picture frames. The project selects pictures from your photo database, resizes them for the picture frame's native resolution, embellishes them with web and home automation information sources before presenting them to the photo frame by making the BeagleBoard appear to be a USB pendrive...! Right click a photo on your laptop and select "Show on picture frame now!". Manage many photo frames centrally and much much more... Includes "wave gesture" interface to wave over picture frame for next photo... Also works with Eye-Fi SD memory cards to make photos appear on photoframe moments after taken...!!<br />
* '''Contact''': horse_dung at hotmail dot com<br />
<br />
==== Beagle Synth ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Synth<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-synth/<br />
* '''Short project description''': DSP MIDI synthesizer based around the beagleboard<br />
* '''Homepage''': http://code.google.com/p/beagle-synth/<br />
* '''Expected results''': Initially a basic MIDI controllable subtractive synth with 3 oscillators, low pass, high pass, and band pass filters, 2 envelope generators, and 2 LFO's. From there the intention is to add some type of control surface (either physical controls or perhaps a touch screen), some effects (phaser, distortion, reverb), and perhaps other types of synthesis options (FM, additive, maybe some type of patchibility). The result will be a fully featured MIDI instrument comparable to many commercial synths. This project is to be a learning experience with the intention of exploring using DSP for music synthesis. As of now this project is in the concept phase and is still in need of hardware for implementation.<br />
* '''Contact''': dpanseri [at] gmail [dot] com<br />
</font><br />
==== USB Scope ====<br />
<font color="#C0C0C0"><br />
* '''Title''': USB Scope<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': USB diagnostics to aid driver development for USB devices<br />
* '''Homepage''': none yet<br />
* '''Expected results''': This project will use the BeagleBoard as a USB proxy between any USB device and a host computer connected via the OTG port. This will allow the BeagleBoard to snoop, compare and modify USB traffic which can assist both commercial and open source development of drivers and diagnosis of issues. Other ideas could be examined such as a USB-TCP/IP-USB proxy to remotely connect USB devices. Open or free software equivalents exist, but hardware monitoring devices only exist as expensive commercial products. <br />
* '''Contact''': horse_dung at hotmail dot com<br />
</font><br />
==== Irrlicht ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Irrlicht<br />
* '''beagleboard.org project''': no<br />
* '''Short project description''': A fully-featured 3D render engine with ogl-es 1.x and 2.x support<br />
* '''Homepage''': http://irrlicht.sourceforge.net<br />
* '''Expected results''': <br />
** Hardware optimized core routines for optimal OMAP support<br />
** Support of ogl-es 2.x (the 1.x driver is reportedly running on the board)<br />
** Full framerate (60FPS) rendering of q3 alike scenes<br />
** The engine also offers SW rendering, allowing to target for other OMAPs as well, but would require more tweaking in the render optimizations<br />
** We can port one of the demo apps from our apps contest to show the full applicability <br />
* '''Contact''': hybrid[at]users[.]sourceforge[.]net<br />
</font><br />
==== BeagleHam ====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleHam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleham/<br />
* '''Short project description''': Bringing the BeagleBoard to the world of Amateur Radio.<br />
* '''Homepage''': None at this time.<br />
* '''Expected results''': <br />
** AX.25 Packet support, enabling full APRS support (operating as tracker, fill-in or permanent digipeater, and KISS TNC).<br />
** Encode and decode of HF digital modes, using DSP functionality where possible:<br />
*** BPSK, QPSK 31/63/125/250<br />
*** Olivia<br />
*** WSPR/MEPT<br />
*** MT-63<br />
*** DominoEX<br />
*** RTTY<br />
*** Throb<br />
** CW encode and decode<br />
** Capability to display on small (sub-6-inch) screens for mobile and field use<br />
* '''Contact''': xunil at xunil dot net<br />
</font><br />
==== TCF Agent Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TCF Agent Port<br />
* '''beagleboard.org project''': http://beagleboard.org/project/TCF+agent+port/<br />
* '''Short project description''': Support remote debugging and run control by porting the Eclipse Target Communication Framework (TCF) Agent to beagleboard+Ångström<br />
* '''Homepage''': Not yet<br />
* '''Expected results''': <br />
** A working port of the TCF "Reference implementation of a target agent" to BB/Ångström<br />
** screenshots and information on the TCF: http://dsdp.eclipse.org/dsdp/tm/tcf/docs/TCF%20Project.html<br />
** TCF agent running on a beagle board would provide the host computer following capabilities (see link above for details):<br />
*** Run control of userspace processes and threads<br />
*** Breakpoints<br />
*** Registers<br />
*** Stack traces<br />
*** Memory access<br />
*** Processes - list, start, stop, attach and debug.<br />
*** Sys monitor - CPU and memory utilization info<br />
*** File System - browsing and copying files<br />
<br />
* '''Contact''': terrella at terrella dot mobi<br />
</font><br />
<br />
==== RT-Beagle ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Real-Time patch for the beagleboard<br />
* '''beagleboard.org project''': http://beagleboard.org/project/omap-rt-patch/<br />
* '''Short project description''': Porting the linux rt patch to the omap linux kernel and providing testing applications. This project is developed at the INSA of Rennes (Engineer school in FRANCE) to allow next year Real Time course to be run on the BeagleBoard.<br />
* '''Homepage''': http://sourceforge.net/projects/linux-omap-rt-p/<br />
* '''Expected results''': <br />
** Porting the linux real-time patch (http://www.kernel.org/pub/linux/kernel/projects/rt/) to the linux omap kernel and providing recipes for openembedded allowing to build the patched kernel.<br />
** Providing testing applications allowing to evaluate the real-time behavior of the platform<br />
** Providing applications that could be used for teaching purposes<br />
* '''Current Results''':<br />
** patch-2.6.29.5-rt21 was modified to successfully patch linux-omap-2.6.29 (modified patch available through project page).<br />
** kernel compile and boots with minor error concerning two IRQs (72,73) <br />
* '''Contact''': piat_jonathan[at]users[.]sourceforge[.]net<br />
</font><br />
==== MyGTee ====<br />
<br />
* '''Title''': MyGTee <br />
* '''beagleboard.org project''': http://beagleboard.org/project/MyGTee/<br />
* '''Short project description''': A handheld device exploiting all the OMAP3530 capabilities<br />
* '''Homepage''': http://enco2009.webs.com/<br />
* '''Expected results''': I stage: building a prototype hopefully based on the BeagleBoard; II stage: the actual handheld that may allow for further software opensource development<br />
* '''Contact''': doctorc[at]o2[.]pl<br />
<br />
==== ONAS ====<br />
<font color="#C0C0C0"><br />
* '''Title''': ONAS<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ONAS/<br />
* '''Short project description''': An open source NAS<br />
* '''Homepage''': http://code.google.com/p/onas/<br />
* '''Expected results''': Development of a full featured NAS running Linux <br />
* '''Contact''': electrogeek[at]wp[.]pl<br />
</font><br />
==== Handheld Lab ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Handheld Lab<br />
* '''beagleboard.org project''': http://beagleboard.org/project/handheld_lab/<br />
* '''Short project description''': The goal of this project is to create a little, yet powerful, handheld laboratory with as much functions as possible. It will be easy of use thanks to the integrated LCD touchscreen and nice GUI.<br />
* '''Homepage''': http://www.mipixel.com/handheld-lab<br />
* '''Expected results''': First result will be working LCD showing oscilloscope. After this spectrum analyzer and logic analyzer. All this stuff will need extra electronics.<br />
* '''Contact''': fran[at]mipixel[.]com<br />
</font><br />
====Beagle Tourister using Hand Gestures and HMD on Beagleboard ====<br />
* '''Title''': Travel Buddy using Hand Gestures and HMD on Beagleboard <br />
* '''beagleboard.org project''': http://beagleboard.org/project/travelbuddy/<br />
* '''Short project description''': A device which will assist a traveller/tourist giving them mobile computing power and the following features: <br />
*1) A Compact HMD (Head mountable device) instead of the conventional projector (Problem of Projection Surface while on the move) <br />
*2) Use of standard cam for Image processing i.e recognising simple hand gestures to interact with the GUI seen in the HMD <br />
*3) Scanning of images (street name plates/hotel names/landmarks/book titles as indicated by user) to provide useful feedback data(directions/reviews/record *videos/take pictures/information) <br />
*4) Mode for Speech2text and text2speech conversion for inter-language communication. <br />
* '''Homepage''': Under Construction <br />
* '''Expected results''':<br />
*1) V-NAV: Virtual Navigator - Streaming Google Street View data according to your current location <br />
*2) ULA: Universal Language Assistant: Scan any text by positioning your fingers and the the scanned text is translated to your default language.<br />
*3) Say goodbye to the camera/ cell phone/tourguide/maps. Good platform for further expansion to include newer features. <br />
*4) Virtual Reality Mapping to the Real World: Overlay of relevant information on the on the HMD.<br />
* '''Contact''': sisilmet2000 at gmail dot com , dhairyadand at gmail dot com <br />
<br />
==== Happiness Device for Cerebral Palsy Kids ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Happiness Device for Cerebral Palsy Kids<br />
* '''beagleboard.org project''': http://beagleboard.org/project/HappyCP/<br />
* '''Project description''':<br />
It is an attempt to bridge the gap in communication between those affected by cerebral palsy and those not. The focus of the problem has been on facilitating communication in the emotional domain since this remains a completely unaddressed area. It is possible that some of the ensuing product functions will additionally facilitate communication problems in the physical domain, as well as be physically therapeutic for the cerebral palsy child in the manner of a comfort blanket. The basis of the product is an Emotional Language Protocol (elp) that works as its interface and is driven by four concurrently acting features - color, shape, motion and sound - corresponding to the sensory modes of the visual, the tactile and the aural. The interaction itself is facilitated by touch of varying intensities including pressing, thumping, squeezing, turning and, of course, by touching. Those not affected by cerebral palsy may additionally use speech along with touch. The interplay of this interface and interaction allows the cerebral palsy child to express his different needs and emotions to another person cerebral palsy or otherwise.Also, the device's mobile connectivity allows its users to communicate with someone far away<br />
* '''Homepage''': http://www.dhairyadand.com/Home/jellow<br />
* '''Expected results''': I have uploaded the basic designs at the above link to the homepage. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangable memory sticks which allow two or more device's to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.<br />
* '''Contact''': dhairya AT cyber DOT law DOT harvard DOT edu<br />
</font><br />
==== UPnP/DLNA AV client renderer and transcoding server ====<br />
<font color="#C0C0C0"><br />
* '''Title''': UPnP/DLNA AV client renderer and transcoding server <br />
* '''beagleboard.org project''': http://beagleboard.org/project/UPnP_AV_MediaServer/<br />
* '''Project description''':<br />
Enable the beagleboard as a fully featured UPnP AV rendering client, and as a UPnP AV (transcoding!) server. <br />
<br />
Work will be based upon vlc+djmount (for client side) and fuppes (for server side). Server side transcoding to be hardware assisted via hardware DSP codecs. Initial target for the transcoding server on beagleboard is to drive the Neuros OSD (an underpowered DM320-based device). <br />
<br />
* '''Homepage''': Will be an extension and complement to my work on the DM320-based Nueros OSD: http://osd.oddren.com<br />
* '''Expected results''': Beagleboard can act as either as rendering UPnP client, or as a transcoding UPnP server to drive weaker client devices like the Neuros OSD with their preferred streaming format.<br />
* '''Contact''': bmcarnes_beagleboard AT oddren DOT com<br />
</font><br />
==== Beagle-Traveler====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Traveler<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-traveler/<br />
* '''Short project description''': Automotive media and vehicle management controller. Comparable to BeaglesRide.org (no activity).<br />
* '''Homepage''': http://beagletraveler.wordpress.com<br />
* '''Expected results''': intergrate major automotive subsystem management and communications. Improved vehicle notification of subsystems status'. <br />
* '''Contact''': wheeler dawt larry (at) gmail dawt com<br />
**Please send sponsored information and project questions to the email address above.<br />
</font><br />
==== OMAP Emulator====<br />
<font color="#C0C0C0"><br />
* '''Title''': OMAP Emulator<br />
* '''beagleboard.org project''': http://beagleboard.org/project/OMAP+Emulator/<br />
* '''Short project description''': Emulator for rapid prototyping<br />
* '''Homepage''': no homepage yet<br />
* '''Expected results''': Open source implementation of an IDE environment for rapid code development and testing<br />
* '''Contact''': hwtester (at) myway (dot) com<br />
</font><br />
==== eLazarillo====<br />
<font color="#C0C0C0"><br />
[[File:Elazarillo.png|thumb|300px|eLazarillo sketch]]<br />
* '''Title''': eLazarillo (electronic helper for blind persons)<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': Gadget designed for blind persons or with vision problems. <br />
* '''Homepage''': http://elazarillo.blogspot.com/<br />
* '''Full description''':<br />
Lazarillo is a spanish word that means "blind person's guide" and this is the objetive of this project. This gadget will have features like reading non-braille books, assist to blind persons to get places like markets, drugstores, etc. (based on previous GPS tagged places and using google maps). Other functionalities will be spoken weather information, personal calendar, function keys, etc.<br />
<br />
The gadget will be voice controlled, will need GPS, 3G modem, camera and battery. Size will be 4x5 inches (approx.).<br />
<br />
* '''Expected results''': Open source hardware and software platform for blind persons gadgets. My device will have most of the above described.<br />
* '''Contact''': villanuevaborrego (at) gmail (dot) com<br />
</font><br />
<br />
==== QEMUonARM ====<br />
<font color="#C0C0C0"><br />
* '''Title''': QEMUonARM<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': QEMU on ARM. <br />
* '''Homepage''': http://elinux.org/QEMUonARM<br />
* '''Full description''':<br />
This project aims at resurrect and improve QEMU on ARM hosts.<br />
For more information: http://www.qemu.org<br />
* '''Expected results''': Demonstrate user mode and system mode examples, such as running some simple Linux applications or booting an i386 OS. If there's enough interest, making Wine and QEMU work together might be considered.<br />
* '''Contact''': laurent.desnogues (at) gmail (dot) com<br />
</font><br />
<br />
==== Math-NEON ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Math-NEON<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Math-Neon/<br />
* '''Short project description''': NEON optimized cmath like library <br />
* '''Homepage''': http://code.google.com/p/math-neon/<br />
* '''Full description''': <br />
This project aims to overcome the shortcomings of the VFP-lite based cmath implementation. It is targeted at games and other high performance low accuracy applications. The project will consist of C functions, for PC development, which mirror (as near as possible) the hand optimized NEON assembly routines. In order to gain the best performance i will make use of the NEON Unit's Integer and Floating point pipelines in conjunction with minimizing branches (where they cannot be precalculated on the ARM) and creating new algorithms. <br />
* '''Expected results''': Fast approximate implementations of trigonometric, exponential, logarithmic and power functions for use with future Beagleboard / Cortex A8 based projects. <br />
* '''Contact''': lachlan.ts (at) gmail (dot) com<br />
</font><br />
==== Medical Notebook ====<br />
* '''Title''': Medical Notebook<br />
* '''beagleboard.org project''': yet to register<br />
* '''Short project description''': The Ultimate Notebook for Hospitals<br />
* '''Homepage''': coming soon...<br />
* '''Full description''': <br />
A handheld device to improve hospital functionality/efficiency. To add intelligence to the mundane hospital softwares. <br />
Features are:<br />
<br />
View and Update Patient status, medical history, medication details, appointments, billing - stored as a database in central server.<br />
<br />
Touchscreen with handwriting recognition & hand support pad for data entry.<br />
<br />
Light Weight < 1kg<br />
<br />
VoIP, video conferencing/recording for consulting other doctors <br />
<br />
Wifi, bluetooth & ethernet support <br />
<br />
Docking station for charging<br />
<br />
Support for usb keyboard & mouse on docking station<br />
<br />
* '''Expected results''': <br />
<br />
1) Driver for touch pen tablet with support for hand writing recognition<br />
2) Porting of VoIP software for beagleboard (H.323 ???)<br />
3) Video conferencing software for beagleboard<br />
4) WiFi ?& bluetooth support on beagle board<br />
5) Speech recogntion software for beagleboard<br />
6) Entry of beagle board based products to hospital autmation market<br />
7) Improved, efficient & intelligent patient care in hospitals<br />
<br />
* '''Contact''': noorshaheen.m.n (at) gmail (dot) com<br />
<br />
==== EGLIBC ====<br />
<font color="#C0C0C0"><br />
* '''Title''': EGLIBC support<br />
* '''beagleboard.org project''':<br />
* '''Short project description''': Use EGLIBC as system library for beagleboard project in OpenEmbedded.<br />
* '''Homepage''': www.eglibc.org<br />
* '''Expected results''': EGLIBC becomes the default system library on the distribution and can be used instead of glibc<br />
with the newly added configurability support to selec/deselect features. I would also like to make it compile as pure thumb2<br />
code.<br />
* '''Contact''': raj[.]khem[at]gmail[.]com<br />
</font><br />
==== miniECG ====<br />
* '''Title''': miniECG<br />
* '''beagleboard.org project''': http://beagleboard.org/project/miniECG/<br />
* '''Short project description''': Little device that cares for heart when heart patients are busy carrying out their duties<br />
* '''Homepage''': http://code.google.com/p/miniecg/<br />
* '''Full description''': <br />
miniECG is a wearable device that monitors ECG signal, processes it and can transmit it over wireless internet connection to doctors clinic. It has following features are:<br />
(all the hardware components required are available through digikey.com including LCD and touch screen)<br />
<br />
1) It has touch screen that enable user to give commands like store, display old ECG data, transmit, etc. Device also has a LCD display which is used to display ECG waveform.<br />
<br />
2) A tiny server runs on device that enables doctor to login to device any time he wants and extract patients ECG data. The device is connected to internet through wireless USB dongle. <br />
<br />
3) DSP core does the job of compressing ECG signal, doing PCA (principal component analysis) on ECG signal, detect QRS, measuring heart beats and digital filtering.<br />
<br />
4) DSP along with Cortex A8 runs algorithm that determines critical state of heart by doing feature extraction over ECG signals. It also does PCA over set of stored ECG signal to obtain information about any substantial drift in normal functionality of heart. <br />
<br />
5) Wireless USB dongle provides connectivity to internet and data is transmitted over internet as per schedule programmed into the device. ECG signal can also be streamed over internet using this dongle. <br />
<br />
6) Keyboard & mouse (USB) interface is provided for more flexibility and quick access. LCD monitor interface is also be provided. Key-board, mouse and LCD monitor interface will work only when device is powered by adaptor. For device powered by battery only input option is touch screen and only output option is LCD display.<br />
<br />
7) Device also has small software support to give reminder on when to consume which drug. The prescription of drug and its timing information is feed in as per doctors advice. (keyboard and mouse interface with miniECG can be of great advantage here)<br />
<br />
8) USB memory devices will be used to store ECG data.<br />
<br />
9) miniECG will be dual powered. It can be powered by adaptor as well as with rechargeable battery. <br />
<br />
Website link has block diagram of miniECG and also picture of ECG pre-amplifier which is already designed. In future all the source codes will be uploaded on the link as and when available.<br />
<br />
* '''Expected results''': a) Ability to login from remote PC onto miniECG and read data b) Should be able to send stored data or stream live ECG signal over internet c) Robust interface of LCD & touch screen with controller d) Data storage and retrieval from USB storage device e) Successful implementation of DSP algorithms for feature extraction, PCA, QRS detection, filtering and compression. f) As the whole device is battery powered, software & driver which are very specific to the desired application should only be installed & made working. Thus providing a low power system architecture. <br />
<br />
* '''Future Work''': Once the desire basic funtions of ECG storing, retrieval and transmitting is meet, miniECG can be programmed into miniPA (mini personal assistance) mainly targeting senior citizens. miniPA will have much advanced features that can help them elderly person in their day-to-day activity.<br />
* '''Contact''': mehta.nandish (at) gmail (dot) com<br />
<br />
<br />
==== remoteBillBoard ====<br />
* '''Title''': Remote Bill Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/remoteBillBoard/<br />
* '''Short project description''': Video bill boards, remotely controlled via web over a 3G modem<br />
* '''Homepage''': http://www.greensoftware.net/remoteBillBoard<br />
* '''Full description''': <br />
Play HD video on billboards, remotely manage the billboards, upload new advertisements, remove old ones etc..<br />
<br />
<br />
* '''Expected results''': <br />
a) 3g modem support, so flexiblity.<br />
b) a full working web based system<br />
<br />
* '''Future Work''':<br />
a) a more advanced desktop application to replaced the web based solution.<br />
<br />
* '''Contact''': ahmad.mushtaq (at) gmail (dot) com<br />
<br />
<br />
==== Turk ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Turk Platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Turk/<br />
* '''Short project description''': A wireless dynamically-mappable interface platform for small devices<br />
* '''Homepage''': http://www.turkinnovations.com/<br />
* '''Full Description''': Turk will be an open-source wireless interface platform that allows interfacing of small wireless (Zigbee or Wi-Fi enabled) devices through a dynamic mapping framework and web interface. Developers can implement their device's protocol easily through small user-space drivers called 'Gadgets' and host them on our server. The platform is then capable of automatically downloading and starting appropriate gadgets for new devices that are compatible with the basic Turk protocol. Gadgets reveal their services to the user and other gadgets through our growing library of data endpoint types (such as colors, URLs, booleans, xml strings) and user controls (like sliders, switches and color pickers), and can then be connected to each other through a themable web interface.<br />
<br />
* '''Expected results''': <br />
**A platform that allows developers to write simple user-space drivers that expose interfaces through XML-RPC<br />
**A web interface and remote configuration capabilities through a central server. <br />
**A simple and well-tested protocol and driver for a kernel-managed point-to-multipoint Zigbee network. <br />
**More hardware connectivity besides the Wi-Fi and Zigbee interfaces will hopefully be developed by collaborating with other beagleboard projects and developers.<br />
* '''Contact''': rob.odwyer [at] turkinnovations [dot] com<br />
</font><br />
==== BeagleWacom ====<br />
* '''Title''': Wacom Tablet driver for Beagle Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-wacom/<br />
* '''Short project description''': Linux drivers of wacom tablet ported for Beagle Board<br />
* '''Homepage''': <br />
* '''Full Description''': beagle-wacom will be port of linux drivers for configuring & running wacom tablets with the beagle board. The idea is to have support for wacom-components, so that they can be used by OEMs of beagleboard based products using linux as their OS<br />
<br />
* '''Expected results''': <br />
**easy integration of wacom tablet with Beagle Board. <br />
**OEMs of beagleboard based products using linux as their OS can integrate wacom-components in their product with minimal fuss<br />
* '''Contact''': najath [at] gmail [dot] com<br />
<br />
<br />
====hApplause====<br />
<font color="#C0C0C0"><br />
* '''Title''': hApplause<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Hardware Platform that You can use to play with Audio Synthesis<br />
* '''Homepage''': not yet<br />
* '''Description''': ''hApplause'' will be multi-functional flexible audio hardware platform. The goal is to make a tool that can allow to develop audio software and hardware (e.g. DSP synthesizers, FX units, hardware expansion boards, etc.). The concept is inspired by [http://www.chameleon.synth.net/ Chameleon] and [http://www.ucapps.de/ MIDIbox]. ''BeagleBoard'' will give ''Chameleon'' like software flexibility while planed hardware with ''Expansion Interface'' and ''Audio Multiplexer'' will give ''MIDIbox'' like hardware flexibility.<br />
*; Hardware features<br />
*: Audio Stereo In/Out<br />
*: MIDI In/Out/Thru<br />
*: General purpose USB port - function depends on user application<br />
*: General purpose SD/MMC Card (e.g. for user data storage) - function depends on user application<br />
*: Front panel interface (1U rack version) with:<br />
*:* LCD<br />
*:* Volume potentiometer<br />
*:* Headphones jack<br />
*:* Power switch with LED indicator<br />
*:* programmable rotary encoders (5 are planed)<br />
*:* programmable buttons and LEDs (12 are planed)<br />
*: Expansion Interface with audio signal buses (1-4 planed, depends on final implementation) and data/command bus (I2C and/or CAN)<br />
*: Audio Multiplexer for flexible routing of audio signal between ''BeagleBoard'', ''Audio In/Out'' and ''Expansion Interface''<br />
*: USB and RS232C for developers<br />
*; Software features<br />
*: All hardware will be fully accessible from ''BeagleBoard'' by API<br />
*: hApplause OS is planed (abstract layer over hardware, user program loading, self configuration on power on)<br />
* '''Expected results''':<br />
*# 19" 1U rackmount unit ready to play with.<br />
*# Libs and additional software for developers (at least API for hApplause's hardware)<br />
*# Example implementation of software synth<br />
*# Single size eurocard unit for 3U rack, like in [http://www.doepfer.de/a100e.htm Doepfer A-100 System] modules<br />
* '''Contact''': tawezik at gmail dot com<br />
</font><br />
==== BeagleLAB====<br />
* '''Title''': BeagleLAB<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleLAB/<br />
* '''Short project description''': BeagleLAB is an Embedded developer's workbench comprising of must-have hardware/software utilities.<br />
* '''Homepage''': http://code.google.com/p/beaglelab/<br />
* '''Expected results''': <br />
:* A PC free host providing a development environment based on beagle board (running ubuntu 9.04 or later)<br />
:* Host environment with software applications and hardware interfaces to substitute oscilloscope, multimeter & logic analyzers<br />
:* GNOME widgets (software apps) & Linux device drivers for capturing data,storing,comparing and visualization<br />
:* Legacy ports like the serial, parallel ports for device interfacing and control<br />
:* Making an embedded developer's life easier and workbench neater<br />
* '''Contact''': amarendermail[at]gmail[dot]com and saurabhg84[at]gmail[dot]com<br />
<br />
====PREEMPT_RT====<br />
<font color="#C0C0C0"><br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
</font><br />
<br />
====HDDM====<br />
<font color="#C0C0C0"><br />
* '''Title''': HDDM<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/HDDM/]<br />
* '''Short project description''': A multimedia system based on OMAP and linux.<br />
* '''Homepage''': Under construction<br />
* '''Expected results''': Beagleboard as a control center for home theatre system<br />
* '''Contact''': grover.ankur (at) gmail (dot) com<br />
<br />
Note from Dirk: Please see [http://www.syspire.de/node/3 Embedded Mediacenter], too (sorry, German only, use Google translate if needed).<br />
</font><br />
====BeagleVision====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleVision<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beaglevision/<br />
* '''Short project description''': An efficient object recognition framework <br />
* '''Homepage''': http://code.google.com/p/beaglevision/<br />
* '''Description''': BeagleVision will be a fast object recognition framework. The aim of the project is to have a hardware optimized implementation (utilising the DSP and NEON) of state-of-the-art local feature detectors and descriptors on the Beagle Board. BeagleVision will include [http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001018 our recent work] on efficient feature detectors and descriptors, other well-known algorithms (e.g. FAST corner detector and SURF), and efficient matching algorithms for very large datasets (>1M images).<br />
* '''Expected results''':<br />
:* An open source library for developers (a project hosted on code.google.com)<br />
:* A sample application for building recognition in a city scale dataset, to show how: to add new images to the dataset, to use it for location based services, and how to reduce the search time if a GPS is available to get geolocations<br />
:* A wiki for interested developers<br />
:* Reporting the running times of new algorithms on OMAP (as a benchmark) in scientific publications<br />
* '''Contact''': m.ebrahimi at ieee dot org<br />
</font><br />
====Beagle-Arduino hybrid robot====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Arduino hybrid robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Beagle-Arduino+hybrid+robot/<br />
* '''Short project description''': A robot using a Beagleboard for high-level processing and Arduino for low-level control<br />
* '''Homepage''': http://mechomaniac.com/robots<br />
* '''Description''': The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:<br />
** image processing<br />
** artificial intelligence<br />
** speech synthesis<br />
** voice recognition<br />
** internet connectivity<br />
And an Arduino for low-level functions:<br />
** motor / servo control<br />
** sensor input & output<br />
** battery monitoring<br />
The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.<br />
* '''Expected results''':<br />
:* Easy physical interfacing to the Beagle without having to design and build special expansion boards<br />
:* Image processing using OpenCV with a USB webcam<br />
:* Speech synthesis and voice recognition<br />
* '''Contact''': tim at mechomaniac dot com<br />
</font><br />
<br />
====DJ Audio / Video Mixer====<br />
<font color="#C0C0C0"><br />
* '''Title''': DJ Audio / Video Mixer* '''Contact''': <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/djvideomixer/]<br />
* '''Description''': This is a small, Touch LCD controlled DJ Mixer, which not only is great as a nightclub tool for playing audio -not only reproducing music, actually '''''playing''''' with it-, but also has high end video playback capabilities, thus making it an all-round experience both for the DJ and the audience. It will bring all the experience of professional DJ mixers to users, while being portable, and which when coupled with either a normal projector, or even better, with a PicoProjector, makes a whole experience for audio and video playback in Discos, Bars, Lounges, to mention just a few possible applications. You can even use for your own parties, and it will rock!<br />
* '''Homepage''': [http://code.google.com/p/djvideomixer/]<br />
* '''Expected results''': <br />
** Audio playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Video playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Audio/Video synchronization, allowing song change, video change, etc.<br />
** High end, professional DJ-Mixer audio effects.<br />
** User interface based on LCD and with touchscreen capabilities.<br />
* '''Contact''': jaime_dot_aranguren_at_ieee_dot_org<br />
</font><br />
====schooldog====<br />
<font color="#C0C0C0"><br />
* '''Title''': schooldog<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/schooldog/]<br />
* '''Description''': The purpose is to make an ''off the shelf'' low cost schoolcomputer that can be used on various levels of education. It will be small so students can take it with them and the school just has to provide for input / output items. This way even people that cannot afford laptops can participate in the digital era or schools can provide a robust and good machine for studypurposes.<br />
* '''Homepage''': [http://schooldog.wickedmind.net]<br />
* '''Expected results''': <br />
** Educational linuxbased OS, from USB sticks and SD Cards.<br />
** more general use of BeagleBoard and more public awareness for the powerful small computer.<br />
** Affordable,individual and steady study enviroment<br />
<br />
* '''Contact''': wickedmind<br />
</font><br />
====Disko====<br />
<font color="#C0C0C0"><br />
[[File:Disko_logo.png|thumb|200px|UI Application Framework]]<br />
* '''Title''': Disko - UI Application Framework<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Disko/<br />
* '''Short project description''': Disko is a Linux-based toolkit to build touchscreen- and remote-controllable ui applications. It contains native OMAP framebuffer support and the media content is DSP-accelerated by GStreamer (TI-Codecs).<br />
* '''Homepage''': http://diskohq.org<br />
<br />
* '''Expected results''': Expected result is broad support of Disko by developers of user interfaces and applications for embedded devices.<br />
** SIP - IP telephony support delivered by pjsip and minisip <br />
** Gstreamer - to add an alternative to the xine library and to add the TI Codecs supplied for the DSP.<br />
** Webkit - the great embedded browser OWB of Pleyo (planned for Disko 1.7)<br />
** SVG - at least one SVG engine to have an alternative to Flash. Initial work has already been done at MadButterfly (planned for Disko 1.7) <br />
* '''Contact''': gmadaus [at] berlinux-solutions dot de or mspringer [at] berlinux-solutions dot de<br />
</font><br />
====FETCH====<br />
* '''Title''': FETCH - FPGA enabled Tool Contol Host<br />
* '''beagleboard.org project''': http://beagleboard.org/project/FETCH<br />
* '''Homepage''': http://code.google.com/p/fetch/<br />
* '''Short project description''': A host with a web interface for easy configuration and control of connected tools. The device may also be controlled through a PSTN network using DTMF tones. The BeagleBoard will act as the main server and will also be the host interface for the connected FPGA for the purpose of evaluating the IPs developed on the FPGA.<br />
* '''description : Phase 1 '''<br />
***1) Server capability -- all services (except VNC) to be launched through inetd so that they are started on an on-demand basis. <br />
***-- http server for configuration pages <br />
***-- ssh server (the ssh suite in particular including scp etc.. so that an ftp server can be avoided) for remote login. <br />
***-- bootp server for bootstaping machines on my home network. <br />
***-- VNC for GUI sessions :) <br />
***-- CUPS for network printing <br />
***-- NetHack server :D <br />
***2) Tool Control <br />
***-- The term "Tool Control" here refers to automation of connected tools and Phase 1 of the project will demonstrate this by automation in home (eg. computer, printer, scanner on/off --> (the contoller board with the relays is complete :) ), these devices may be contolled over the internet or PSTN network ) The system will also be hooked to the home electrical network that will enable control over home appliances. A special mode called " Home Alone" will switch on/off lights randomly when no one is at home to give the illusion that the house is occupied ( and hence protect from thefts ;) ). The current relay boards developed use a UART (for RS232 protocol) for control of the equipment but it is planned to use the CAN interface (under developement ) so that longer distances can be covered. <br />
***3) The BeagleBoard will act as a host interfacefor a Nexys2 Xilinx FPGA board and will be used to evaluate the IPs deployed on it. This feature is sort of a tester for the FPGA. <br />
**'''Phase 2 ''' ( only after Phase 1 is completely functional :) ) <br />
***1) CAN interface for the controller nodes replacing the RS232 connections<br />
***2) mgetty (for faxes) and asterisk (VOIP) may be added to the server.<br />
* ''' Contact : ''' akshat dot g dot gupta [at] gmail dot com<br />
<br />
==== ESITeam====<br />
<font color="#C0C0C0"><br />
* '''Title''': ESITeam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ESITeam/<br />
* '''Short project description''': It's a robotic soccer team with vision and intelligence distributed through the use of wireless communication (Zigbee) between robots and PC.<br />
* '''Expected results''': The expected results would have a running and competitive team for the RoboCup's championship this year.<br />
<br />
* '''Contact''': registrosvmora at gmail dot com<br />
</font><br />
==== PupLC====<br />
* '''Title''': PupLC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/PupLC/<br />
* '''Short project description''':Open source control of PLC operated equipment.<br />
* '''Homepage''': No homepage yet<br />
* '''Expected results''': <br />
:*PupLC will be an open source PLC controller. The user will be able to control the PLC's autonomously or by direct control. The direct method will allow the user to change equipment status using a touch screen lcd. The PupLC will control all aspects of the operating equipmet (ie. setpoints, red-hand settings, shutdowns, etc.) Additionally, 24-hours of accumulated system data will be saved to disk and can be accessed via ftp for analysis off-site.<br />
* '''Contact''': alcpo729[at]tds[dot]net<br />
<br />
====Speed-Reader====<br />
<font color="#C0C0C0"><br />
* '''Title''': Speed-Reader<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Speed-Reader/<br />
* '''Short project description''': Speed-Reader is an audio book reader that gives the listener control of the speaker rate.<br />
* '''Homepage''': http://www.nerd1951.com/?page_id=72<br />
* '''Description''': Speed reader allows an audio book to be played back with faster or slower speaker rates. A user interface gives the listener realtime control of the speaker rate. Speed-Reader uses digital speech signal processing to accomplish low distortion timescale modification of speech in real time. Timescale modification of speech is accomplished by selectively repeating segments of speech to slow down the speaker rate or deleting selected speech segments to speed up the speaker rate. Digital signal processing is used to determine which speech segments are candidates for repetition or deletion.<br />
* '''Expected results''':<br />
***--Realtime (during playback) timescale modification of digitized speech using the C64++ DSP<br />
***--Initially read digitized speech from the SD card interface<br />
***--Audio output using the Beagleboard stereo out<br />
***--Initially user interface provided via RS-232 interface<br />
* '''Contact''': harvey dot sugar at nerd1951 dot com<br />
</font><br />
<br />
====DVB-T Receiver====<br />
<font color="#C0C0C0"><br />
* '''Title''': DVB-T Receiver<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': The DVB-T Receiver project aims to implement a fully tunable DVB-T Receiver on the Beagle Board.<br />
* '''Homepage''': Will be launched in the near future (at blog.arsln.org)<br />
* '''Description''': The DVB-T receiver is a senior graduation project that has to be completed in one year (until Summer 2010). It will be a fully tunable DVB-T receiver. It will compatible to receive digital terrestrial TV & radio stations. The goal is to show the capabilities of the Beagle Board and build a DVB-T system from the scratch. The input will be through a ADC daughter-board that is plugged to the USB port. The output will be via the USB port(for portable devices i.e Netbook) or DVI-D. <br />
* '''Expected results''':<br />
***--Capturing broadcast signals(DVB-T) and convert them to discrete time signals<br />
***--Demodulate and encode the incoming signal<br />
***--Video output using the Beagleboard's DVI-D port or via the USB port for portable devices<br />
* '''Contact''': ftharsln at gmail dot com , sulaya05 at gmail dot com<br />
</font><br />
<br />
====ArchMobile: ArchLinux ARM Port====<br />
<br />
* '''Title''': ArchMobile<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/AM/ AM]<br />
* '''Short project description''': ARM Port of the x86-Linux Distribution ArchLinux<br />
* '''Homepage''': [http://www.archmobile.org ArchMobile]<br />
* '''Expected results''': Fully working ArchLinux with X and all other features.<br />
* '''Contact''': rotter.manuel@gmail.com or naeg on Freenode<br />
<br />
==== MythBeagle ====<br />
<br />
* '''Title''': MythBeagle<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': MythBeagle aims at bringing MythTV to the beagle; both frontend and backend, including plugins (as far as possible)<br />
* '''Homepage''': not yet; <br />
* '''Expected results''': <br />
** OE recipes for mythtv 0.22, mythplugins 0.22 and whatever might be needed to get things going (including bringing required recipes to the latest version where needed/possible)<br />
** An image for SD card to allow easy install<br />
** some additional configuration notes (configuring MythTV is somewhat a pain...)<br />
** setup should also allow using the beagle only as frontend or backend<br />
* '''Status''': mysql5 recipe has been created (mythtv 0.22 won't use mysql4); recipes for mythtv near completion;<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== Homebrew SmartPhone ====<br />
<br />
* '''Title''': HomeBrewSmartPhone<br />
* '''beagleboard.org project''': http://code.google.com/p/hbpd<br />
* '''Short project description''': HomeBrewSmartPhone is a project to use the beagleboard to create a community-buildable mobile phone that is powerful enough to also run as a Desktop PC.<br />
* '''Homepage''': http://lkcl.net/reports/hbp <br />
* '''Expected results''': <br />
*** A device capable of Digital Voice as well as Data / Internet Access.<br />
*** A device capable of shutting down into low-power mode and successfully resuming on incoming calls.<br />
*** RF-protected audio circuits that don't have howling feedback from the 3G/GSM Radio module.<br />
*** Full disclosure of all build components (schematics, BOM) under free software licenses.<br />
*** Full documentation of all hardware interconnections<br />
*** Creation of a <b>basic</b> demonstration image that will allow other software developers to participate very early on<br />
*** Addition to the http://handhelds.org site for developers to create GUI-based distros<br />
* '''Contact''': lkcl@lkcl.net or use http://lkcl.net contact box<br />
<br />
==== XBMC ARM Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': XBMC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/XBMC/<br />
* '''Short project description''': XBMC Is a full-feature home-theater application that works on a variety of platforms and operating systems<br />
* '''Homepage''': http://xbmc.org<br />
* '''Expected results''': <br />
*** Feature parity with XBMC x86 and ppc<br />
*** Usage of OpenGL ES 2.0<br />
* '''Contact''': Cory Fields: theuni @at@ xbmc .dot. org<br />
</font><br />
<br />
==== Beagleboard Carputer ====<br />
<br />
* '''Title''': Beagleboard Carputer<br />
* '''beagleboard.org project''': http://beagleboard.org/project/bbcarputer<br />
* '''Short project description''': The Beagleboard Carputer aims to create a fully-integrated system that will feature touchscreen LCD, Bluetooth and USB connectivity, GPS Navigation, Phone features, Wifi, Voice recognition, Multimedia entertainment.<br />
* '''Homepage''': http://bbcarputer.codeplex.com<br />
* '''Expected results''': Provide a fully-integrated system that will feature:<br />
*** 7in touchscreen LCD<br />
*** Wireless connectivity<br />
*** Usb connectivity<br />
*** GPS Navigation<br />
*** Phone features<br />
*** Voice recognition<br />
*** Multimedia entertainment<br />
*** Opensource Application Suite<br />
*** Games<br />
* '''Contact''': Joey Mar Antonio: joeymar.antonio @at@ awsol-i .dot. com<br />
<br />
==== GuideBeagle: Portable monocular SLAM system ====<br />
<font color="#C0C0C0"><br />
* '''Title''': GuideBeagle<br />
* '''beagleboard.org project''': Not yet available.<br />
* '''Short project description''': GuideBeagle is a portable localization and mapping system based on monocular vision. Such a system can be used, among other things, to build:<br />
:*Interactive visitor guidance systems for museums and stores.<br />
:*Artificial Reality tools and games.<br />
:*Mobile robot control systems.<br />
:*Surveillance and security related applications.<br />
:In other words: it solves a Simultaneous Localization and Mapping (SLAM) problem using a single camera as sensor, working on-line, and producing maps with high-level geometrical information (i.e. not just simple punctual visual landmarks on space). It will be based on recent research on the fields of Computer Vision and Mobile Robotics.<br />
* '''Homepage''': http://sites.google.com/site/guidebeagle (This page will be enhanced uninterruptedly.)<br />
* '''Expected results''': <br />
**Mapping --- The final system will allow an user to move by an environment like an office or a small apartment and build a map of it similar to a 3D model with planes and textures, as used in Computer Graphics.<br />
**Localization --- After a map is built, the user can move around the environment, and the system will interactively estimate the geometric location of the camera and the direction it is heading, based on images continuously obtained from the camera.<br />
**Image processing --- Building this system will require the coding of image processing tools that may be useful to many other image processing applications based on the Beagle Board. Some examples are feature detectors and descriptors, edge detectors, template matching by normalized cross-correlation and the Discrete Fourier Transform.<br />
* '''Contact''': nwerneck@gmail.com or nwerneck@usp.br<br />
</font><br />
<br />
==== AutoRobo ====<br />
<br />
* '''Title''': Development of an autonomous robotics platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/autorobo/<br />
* '''Short project description''': Design, prototype and develop an autonomous aerial vehicle system around BeagleBoard, allowing experimentation with real-time control and computer vision algorithms.<br />
* '''Philosophy''':<br />
:* make robotics and embedded control accessible and fun<br />
:* stimulate cross-field learning and collaboration<br />
:* leverage modularity and reuse to get more done, quicker <br />
* '''Technical goals''':<br />
:* develop generalised physics model for eg computing optimal PID controlled motor outputs<br />
:* decouple high-update-rate sensors from lower-rate output control<br />
:* employ OpenCV for visual tracking/SLAM/feature detection<br />
:* build lean tracked (land) vehicle<br />
:* build lean quad-rotor (air) vehicle<br />
:* use a shared, modular code-base and electronics platform (Beagle and IGEPv2) <br />
* '''Homepage''': http://code.google.com/p/autorobo/<br />
* '''Expected results''': Initial bringup of a tracked vehicle via dual-motor controller via Beagle's PWM outputs. Utilisation of 3-axis accelerometer and 3-axis gryo via I2C and/or SPI buses, enabling more advanced control<br />
* '''Contact''': ''daniel (dot) blueman (at) gmail (dot) com''<br />
<br />
==== Beagle-Walker ====<br />
<br />
* '''Title''': Design of a automatic dog-walker robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleWalker/<br />
* '''Short project description''': Develop an autonomous dog-walker robot<br />
* '''Homepage''': http://code.google.com/p/beaglewalker/<br />
* '''Expected results''': <br />
**The main goal of the system is analyze the feedback between the dog and the robot to track where the dog is going and where the robot should go.<br />
**Let the dog walk only in places previously programmed by the dog's owner making use of basic SLAM algorithms. <br />
**avoid any obstacles/vehicles.<br />
* '''Contact''': ''darthdj at gmail dot com''<br />
<br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nullDC<br />
* '''Expected results''': For the contest: A working build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
==== MyoVox ====<br />
* '''Title''': MyoVox<br />
* '''beagleboard.org project''': <br />
* '''Short project description''': <br />
* '''Homepage''': <br />
* '''Expected results''': <br />
* '''Contact''': smcgill3 [at] seas[.]upenn [.] edu<br />
<br />
==== Beagle-Eye ====<br />
<br />
* '''Title''': Beagle-Eye<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/Beagle-Eye/ Beagle-Eye]<br />
* '''Short project description''': A beagle-eyed guide for the visually challenged.<br />
* '''Description''': The beagle board will be used along with two calibrated USB webcams to perform low fps real time vision. The use of a pair of calibrated cameras will act as a stereo system capable of estimating depth of any point in the captured scene. A basic object/activity recognition system will be implemented in order to roughly understand the scene. This makes Beagle-Eye aware of the current state of the environment, and this information can in turn be used to help guide visually challenged users through the environment. Visual information can be interpreted and converted to either audio signals or actuators attached to the user's clothing, in order to communicate with the user. Potential applications include navigation, user localization, and object recognition and localization with respect to the immediate environment.<br />
* '''Expected Results''':<br />
** A navigation tool, around immediate environments with enough communication to warn of approaching/still objects.<br />
** A basic object recognition and localization tool, to guide the user towards a required object.<br />
** Possibly a user localization tool, within a small mapped environment.<br />
** Room for more!<br />
* '''Contact''': leatherbrain at gmail dot com<br />
<br />
==== BeaglePod ====<br />
<br />
* '''Title''': BeaglePod<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglepod/]<br />
* '''Short project description''': BeaglePod is an IPod plug-in replacement for car stereo's that are IPod Ready. The BeaglePod uses gstreamer as an audio/video player and is controlled via the car stereo head unit using Apple Accessory Protocol. <br />
* '''Description''': The BeaglePod is an audio/video player for cars equipped with "IPod Ready" stereos. Using the Apple Accessory Protocol the car stereo is used to select and control the playback of media on the BeaglePod. Adding a video monitor the BeaglePod can also become a video player running all the audio through the car stereo with full pause, play, stop control using the car's stereo head unit. Using a software implementation of the Apple Accessory Protocol the BeaglePod is connected to the car stereo via a USB->TTL cable.<br />
* '''Expected Results''':<br />
** Play audio/video media files from the Beagleboard using the car stero to control playback and track selection.<br />
** Audio will playback through car's exist speaker.<br />
** With gstreamer dsp support HD playback of video with in car lcd.<br />
* '''Contact''': velorider [X] publicemail [X] us<br />
<br />
==== MART ====<br />
* '''Title''': Autonomous modular robot<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': Build an autonomous robot to enter the Eurobot 2010 competition<br />
* '''Homepage''': (only in Czech) http://eurobot.matfyz.info/<br />
* '''Full Description''': Goal of this project is to build an autonomous modular robot, that will be able to compete in the Eurobot competition. This project includes following:<br />
<br />
** '''HW''':<br />
** Custom beagle daughter-card (including kernel driver patches):<br />
*** CAN (Controller area network) able to sustain 1Mbit/s, using embedded cortex-m3 controller<br />
*** Battery backed up RTC<br />
*** Dual power - battery and/or adapter, with battery management (current consumption sensing and charging) <br />
*** Second serial and i2c headers<br />
*** (optional) Ethernet controller 10/100Mbit<br />
** Custom motor, servo and stepper motor drivers and IO boards<br />
*** everything connected through CAN<br />
<br />
** '''SW''':<br />
** Modular architecture, for simple modification<br />
** OpenCV integration for play field object identification<br />
** optimalizations for NEON (and DSP)<br />
<br />
* '''Contact''': Michal dot Demin at Gmail dot Com<br />
<br />
==== CamCast ====<br />
* '''Title''': Webcam broadcast server/relay<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/CamCast/]<br />
* '''Short project description''': Webcam broadcast platform for USB webcams<br />
* '''Homepage''': <br />
* '''Full Description''': The goal of this project is to utilize the beagleboard as a low cost platform for webcam video feeds.<br />
Server capability:<br />
<br />
** Broadcast webcam feeds for directly connected USB webcams<br />
** Relay webcam feeds from other servers, typically connected over wi-fi<br />
** Decimate MJPEG streams to match bandwidth limits<br />
** Monitor and control streams via HTTP<br />
** Advertise HTTP services locally via Zeroconf<br />
<br />
The beagleboard will require a functional Linux gspca driver for all USB webcams in use as well as USB wi-fi for remote service. Linux Zeroconf service must also be included.<br />
<br />
* '''Contact''': spiderkarma at gmail dot com<br />
<br />
====Beagle SecMon====<br />
<br />
* '''Title''' : Beagle Security Monitoring over Web <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/Beagle+SecMon/ BeagleSecMon]<br />
* '''Short project description''': This project proposes to control and transmit audio and video from a remote place using the beagleboard as a webserver.<br />
* '''Expected results''': The system will control one or more digital cameras with pan, tilt and zoom functions, and microphones. Besides, it can be configured to send information to a pre registered cell phone when movement is detected. Also, audio and video can be accessed using internet from any place.<br />
* '''Contact''': cborges at ifsc dot edu dot br====<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====PREEMPT_RT====<br />
<br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron====FreeBSD port to BeagleBoard====<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* To follow up on shipping details, contact ''beagleship at list.ti.com''.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #3===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard&diff=15054Hawkboard2009-11-30T20:14:31Z<p>FransMeulenbroeks: /* Live Links */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
[[File:Hawk sticker1.JPG]]<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:''' [http://elinux.org/Hawkboard/earlyadopter Early Adopter Contest] Win FREE [http://hawkboard.org HawkBoard] Submit your proposal by 30th Nov 2009 </div><br />
<br />
----<br />
<br />
== Hardware Details ==<br />
<br />
[[File:Hawkboard hw.jpg]]<br />
<br />
* Technical Reference Manual for OMAP L 138 Processor is [http://focus.ti.com/docs/prod/folders/print/omap-l138.html Here]<br />
* Applications of OMAP L 138 are [http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information Here]<br />
<br />
== Software Details ==<br />
<br />
=== Tools ===<br />
* [http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 ARM Cross Compiler]<br />
* [http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C6000/6.1.12/ti_cgt_c6000_6.1.12_setup_linux_x86.bin DSP Cross Compiler] c674x via option -mv6740 <br />
* [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
<br />
=== Sources ===<br />
* Linux Kernel<br />
* u-boot<br />
<br />
=== Building verification images from source ===<br />
==== Compiling u-boot (bootloader) ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl_hawkboard_config <br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-<br />
<br />
==== Signing u-boot for UART boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen uart1.JPG]]<br />
# [[File:AIS gen uart2.JPG]]<br />
# [[File:AIS gen uart3.JPG]]<br />
# [[File:AIS gen uart4.JPG]]<br />
<br />
==== Signing u-boot for NAND boot ====<br />
# Copy u-boot (elf) file to the host machine where AIS Generator is installed. Follow the below steps<br />
# [[File:AIS gen nand1.JPG]]<br />
# Configure PLL0, PLL1, DDR tabs as shown above. The File name to generate remains as in the step above.<br />
<br />
==== Compiling Linux Kernel ====<br />
# Issue compile commands with make:<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omapl138_hawkboard_defconfig<br />
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage<br />
<br />
=== Booting ===<br />
==== Booting u-boot over UART ====<br />
* Power OFF the board<br />
* Close any previously running terminal programs<br />
* Connect the UART cable to the Host machine.<br />
* Configure the Boot Switches as 1-OFF 2-ON 3-OFF 4-ON <br />
* Start the UART Host Utility, should have been installed with [http://www-s.ti.com/sc/techlit/sprab41.zip AIS Generator / UART Host Tool]<br />
* Select the AIS FILE Generated for UART [[File:UART_HOST_BOOT.JPG]]<br />
* Click on the Start button<br />
* Power UP the Device<br />
* If you see errors click on stop and press start again and give a board reset.<br />
* Wait till you all the below messages and COM is closed:<br />
(File IO): Read 414964 bytes from file D:\hawk_release\u-boot_uart_ais.bin.<br />
(Serial Port): Opening COM1 at 115200 baud...<br />
(AIS Parse): Read magic word 0x41504954.<br />
(AIS Parse): Waiting for BOOTME...<br />
(AIS Parse): Performing Start-Word Sync...<br />
(AIS Parse): Performing Ping Opcode Sync...<br />
(AIS Parse): Processing command 0: 0x5853590D.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Executing function...<br />
(AIS Parse): Processing command 1: 0x5853590D.<br />
(AIS Parse): Loaded 1512-byte section to address 0xC10E4BEC.<br />
...<br />
...<br />
...<br />
(AIS Parse): Processing command 15: 0x58535906.<br />
(AIS Parse): Performing Opcode Sync...<br />
(AIS Parse): Performing jump and close...<br />
(AIS Parse): AIS complete. Jump to address 0xC1080000.<br />
(AIS Parse): Waiting for DONE...<br />
(AIS Parse): Boot completed successfully.<br />
(Serial Port): Closing COM1.<br />
* Now Start any standard UART Terminal and hit enter key, should see the u-boot prompt<br />
<br />
<br />
==== Procedure to flash u-boot on NAND ====<br />
After booting the u-boot over UART as mentioned above, <br />
* On the u-boot prompt in the terminal window<br />
* Configure the Ethernet server and Client IP addresses<br />
hawkboard.org > setenv serverip 172.24.156.199<br />
hawkboard.org > setenv ipaddr 172.24.190.58</pre><br />
* Download the u-boot generated for NAND<br />
hawkboard.org > tftpboot 0xc0700000 u-boot_nand_ais.bin<br />
<br />
TFTP from server 172.24.156.199; our IP address is 172.24.190.58<br />
Filename 'u-boot_nand_ais.bin'.<br />
Load address: 0xc0700000<br />
Loading: #################################################################<br />
#################<br />
done<br />
Bytes transferred = 414988 (6550c hex) <br />
* Erase NAND Flash<br />
hawkboard.org > nand erase<br />
<br />
NAND erase: device 0 whole chip<br />
OK<br />
* Flash the NAND with u-boot<br />
hawkboard.org > nand write.e 0xc0700000 0x20000 0x70000<br />
<br />
NAND write: device 0 offset 0x20000, size 0x70000<br />
458752 bytes written: OK<br />
hawkboard.org ><br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
<br />
==== Booting u-boot over NAND ====<br />
Flash u-boot into NAND as mentioned above<br />
* Switch off the board<br />
* Change the DIP Switches for NAND boot 1-ON 2-OFF 3-OFF 4-OFF<br />
* Switch on the board<br />
<br />
==== Booting Linux Kernel and Mounting RAMDISK ====<br />
==== Booting Linux Kernel and Mounting NFS (Network File System) ====<br />
<br />
==Live Links==<br />
<br />
* Blog : http://hawkboard.wordpress.com/<br />
* Portal : http://hawkboard.org<br />
* Join us : hawkboard on google groups<br />
* IRC : “#hawkboard” on Freenode<br />
* IRC logs : http://ibot.rikers.org/%23hawkboard/<br />
* Twitter : hawkboard<br />
* Mails : hawkboard@googlegroups.com <br />
* Software : code.google.com/p/hawkboard<br />
* OMAP L 138 : http://focus.ti.com/docs/prod/folders/print/omap-l138.html<br />
* Applications : http://wiki.davincidsp.com/index.php/C674x/OMAPL1x_Introductory_Information<br />
* More Details : http://wiki.davincidsp.com/index.php/Category:OMAPL1</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard/earlyadopter&diff=14938Hawkboard/earlyadopter2009-11-25T13:45:06Z<p>FransMeulenbroeks: /* James */ added ideas</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
= Introduction =<br />
<br />
* What is hawkboard.org ? <br />
: Hawkboard.org is a Open Community Portal for OMAP L 138 ( ARM 9 and C674x Floating Point DSP) Applications<br />
<br />
* What is hawkboard ? <br />
: A OMAP L 138 based Open Platform designed by a small team of engineers @ Innovate Solutions<br />
<br />
* What is Early Adopter Program ?<br />
: Honestly, this is an exercise to educate the community on OMAP L 138 offerings and technology<br />
<br />
* Who can participate ?<br />
: Passionate Open Community members, Technologists interested in leveraging the OMAP L 138 technology and developing innovative applications, Team members who would want to drive and educate the community on the correct or right usage of the platform.<br />
<br />
* Last day for submissions?<br />
: November 30th 2009<br />
<br />
* When will I receive the board if selected?<br />
: By Dec 15th 2009<br />
<br />
* What is the selection Criteria ?<br />
: A group of Community members will be identified as Judges to review the proposals. The judges will choose the early adopters<br />
<br />
* What after winning a board ?<br />
: The Board is all yours, we look forward to the execution of your proposed solution. <br />
<br />
* Should the solution be open ?<br />
: Yes, after or while execution of the project you are requested to give the details to make this a successful open source program<br />
<br />
= Proposals =<br />
<br />
<below is a template / example, please keep the heading and use the same for your proposals><br />
<br />
'''<example starts>'''<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***VGA<br />
***Composite In<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard is a open community platform<br />
**My contributions will be leveraged by global open community<br />
**My efforts will be recognized and appreciated by world wide hawk, beagle, OMAP, Davinci communities.<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**VGA and Composite drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
**Wiki page to describe the entire development method here ...<br />
<br />
* '''Contact''': khasim[at]beagleboard[.]org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
'''<example ends>'''<br />
<br />
----<br />
<br />
==== SIP client demo ====<br />
<br />
* '''Title''' : SIP client on hawkboard<br />
<br />
* '''Short project description''': <br />
**Get a SIP client working (linphone), maybe use DSP to off-load audio processing.<br />
***Use audio, network and DSP.<br />
***Maybe use video later-on.<br />
<br />
* '''Homepage''': http://pmeerw.net (nothing hawkboard specific there)<br />
<br />
* '''Why not on other board ?''':<br />
**Have some experience with beagleboard, but hawkboard seems to have more complete interfaces.<br />
**Cheap platform, DSP.<br />
<br />
* '''Duration''': maybe one to three month, depending on scope (DSP, video).<br />
<br />
* '''Expected results''': <br />
**Audio and network working.<br />
**Maybe extend user-interface later-on using VGA, video in.<br />
<br />
* '''Contact''': pmeerw@pmeerw.net<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** Contribute as open source. Provide demonstration image.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Seems promising given beagleboard's success; visibility.<br />
<br />
----<br />
<br />
==== Hawk Media Server ====<br />
<br />
* '''Title''' : Hawk Media Server<br />
<br />
* '''Short project description''': This project aims at achieving the following:<br />
** A media server for homes, that will be a central repository for all media - video/ audio/ pictures and documents<br />
** Long term goals:<br />
*** Subject to feasibility, Probably a PVR using video in or video over IP <br />
*** A video surveillance application in conjunction with leopard board, where the media server can be used for recording surveillance videos.<br />
<br />
* '''Homepage''': http://www.firstpenguin.org/projects/HawkMediaServer (under construction)<br />
<br />
* '''Why not on other board ?''':<br />
**Hawk has a SATA interface, ideal to interface with internal hard disks.<br />
**Cheaper than Beagleboard<br />
<br />
* '''Duration''': Three months<br />
<br />
* '''Expected results''': <br />
**A ready to install image that others can use to configure Hawk as a media server<br />
**All details shared up on a wiki<br />
<br />
* '''Contact''': sradhakrishna@firstpenugin.org<br />
<br />
* '''Will you support hawkboard.org initiative ? How? ''':<br />
**Would like to provide any help with developing drivers or maintaining uboot/ kernel.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Source<br />
**A platform for hobbyists to try out new ideas in a quick manner<br />
<br />
----<br />
<br />
==== Hawkboard support in poky linux ====<br />
<br />
* '''Title''' : Hawkboard support in poky Linux<br />
<br />
* '''Short project description''': <br />
Provide support for hawkboard in poky linux platform.<br />
Provide demo images for Sato.<br />
<br />
* '''Homepage''': http://pokylinux.org/<br />
<br />
* '''Why not on other board ?''':<br />
Ideal for small resolution displays.<br />
Low cost platform to work on.<br />
<br />
* '''Duration''':<br />
About 3 months.<br />
<br />
* '''Expected results''': <br />
A working Sato demo image.<br />
<br />
* '''Contact''': drt80d at gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
Yes. By providing support to the community on software.<br />
And sharing exp. and helping others.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
Low cost and easy for hobbyist to get hands on.<br />
----<br />
<br />
==== Encrypted Telephony system using Hawkboard ====<br />
<br />
* '''Title''' : Encrypted Telephony system<br />
<br />
* '''Short project description''': This project aims at achieving the following:<br />
** An Encrypted Telephony system which will be powered by Hawkboard to encrypt/decrypt the telephone signals between the sender and receiver.<br />
** Long term goals:<br />
*** Can be used by mass people subject to feasibility. <br />
<br />
<br />
* '''Homepage''':will be given later<br />
<br />
* '''Why not on other board ?''':<br />
**Hawk is cheap ARM board for supporting Linux kernel USB/USB-OTG support.<br />
**Cheaper than Beagleboard<br />
<br />
* '''Duration''': 4 months<br />
<br />
* '''Expected results''': <br />
**All details will be shared up on a wiki<br />
<br />
* '''Contact''': parthaneela@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How? ''':<br />
**Would like to provide any help with developing drivers or maintaining uboot/ kernel/code optimization/Testing.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Source<br />
**A platform for hobbyists to try out new ideas in a quick manner<br />
<br />
----<br />
<br />
==== Hawk Medical Kit ====<br />
<br />
* '''Title''' : Hawk Medical Kit <br />
<br />
* '''Short project description''': Hawk Med Kit (HMK) is a portable Medical diagnostic kit<br />
**Description<br />
*** HMK is a low cost portable diagnostic kit for use by Medical community esp for rural health care and on mobile health care units. It shall provide interfaces for open/commercial portable ultrasound probes, open or commercial 12-lead ECG probes, Oxygen Saturation probes. It could be extended to be used for tele-healthcare/tele-radiology and other cardio monitoring applications.<br />
***<br />
<br />
* '''Homepage''': (not in place, yet)<br />
<br />
* '''Why not on other board ?''':<br />
**reason 1 Hawkboard is ideal as it provides a floating point DSP for signal processing and ARM9 for control & UI for this device<br />
**reason 2 Open platform provides opportunity to improve software & hardware for health care applications and promote interoperability<br />
<br />
* '''Duration''': 12-16 months<br />
* '''Expected results''': <br />
**output 1 : Open Healthcare platform<br />
**output 2 : Social impact through open initiatives<br />
<br />
* '''Contact''': vu3thg@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**1 Contributions to its improvement and development initiatives<br />
**2 Maintain documentation and provide support<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**1 Such Low cost open platform seeds innovation<br />
<br />
<br />
----<br />
<br />
==== Networked Media Solution ====<br />
<br />
* '''Title''' : Networked Media Playback, Storage and Discovery<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** A media player for music enthusiasts not computer or network engineers<br />
*** A complete solution storage, discovery and control<br />
*** Multiple Ethernet connections through wireless and wired to fit with any installation<br />
<br />
* '''Homepage''': http://www.simpleaudio.co.uk <br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard comes with SATA giving a reliable connection to drives, USB has proved too fragile with openembedded<br />
**Price - much cheaper than Gumstix and Beagleboard, both of which do not support SATA<br />
<br />
* '''Duration''': 6-12 months<br />
* '''Expected results''': <br />
**output 1 : Products capable of forming a network where none previously existed<br />
**output 2 : Media discovery from a range of sources and the ability to store CD collections internally<br />
<br />
* '''Contact''': stuart68@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**Our work with Gumstix has already resulted in changes being submitted to the openembedded mainline<br />
**Our product will require the use of most of the interfaces Hawkboard provide, our work will help to debug the drivers each uses<br />
**We will feedback our findings to the openembedded wiki to make it easy for others to configure interfaces like wireless<br />
**Push the use of the DSP with openembedded and not just use the ARM core for encoding and decoding<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Its use of SATA - without this there was no other viable development system with a similar entry cost<br />
<br />
----<br />
<br />
==== Data Acquisition System ====<br />
<br />
* '''Title''' : HawkDaq<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** A Low-power/Portable platform for capturing of different types of data including Analog and Digital<br />
*** Interfaces with Capture Board through LAN/SPI/USB/UART etc.<br />
*** Processes the data acquired and display by demand through HMI interface (undefined at the moment)<br />
<br />
* '''Homepage''': http://audiomind.org/hawkdaq (nothing here at the moment)<br />
<br />
* '''Why not on other board ?''':<br />
** Reason 1 Data - Hawkboard has SATA which is great if the user desires to capture the data onto disk.<br />
** Reason 2 Price - Is cheaper than Gumstix and Beagleboard, which might be an overkill in terms of graphics capability for this application.<br />
** Reason 3 DSP - Hawkboard has a DSP for signal processing which might be helpful in processing some of the acquired data. mini2440 does not have a DSP.<br />
<br />
* '''Duration''': 6 -9 months<br />
* '''Expected results''': <br />
** Output 1 : An Open Portable Data Acquisition Platform<br />
** Output 2 : Customised Solutions for Commercial Data Acquisition Usage<br />
<br />
* '''Contact''': wee.kiampeng@orangeknob.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** Of course!<br />
** We will develop the sw platform with the community and hopefully everyone will benefit from the exercise,.<br />
** We will develop with & provide the hardware design for the acquisition portion to the community.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**It fits the bill of what we intended to do with other boards which lacks in certain areas and overkills in certain areas.<br />
<br />
----<br />
<br />
==== Unmanned Air Vehicle Mission Computer ====<br />
* '''Title''' : Air Vehicle Flight Control with Payload Processing<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** Complete solution for managing flight operations, like any conventional mission computer<br />
*** Additional capability to do payload video management with video compression and encoding<br />
*** Unique capability to produce "UAV on a chip"!<br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard has tremendous options for interfaces, such as SATA and USB for mass storage<br />
**Allows the realization of complete flight ops integration on a single programmable IC<br />
**Very low entry cost for development<br />
<br />
* '''Duration''': 6-12 months<br />
<br />
* '''Expected results''': <br />
**output 1 : Demonstrate the use of COTS components for unmanned systems operations<br />
**output 2 : Produce a single-chip solution for flight control that will also manage computationally-intensive payload (video) tasks<br />
**output 3 : Define a low-cost system that will be useful for civilian operators, such as fire and police, forestry, and surveying interests<br />
<br />
* '''Contact''': vadimv@ieee.org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**Our codebase will be open-sourced. We will have a proprietary control system model that will be closed-source, but that is user-replaceable<br />
**We will be making heavy use of the DSP core and will be able to debug many drivers/algorithms associated with its use.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**A fantastic blend of general-purpose computing with a powerful signal processing capability at a rock-bottom system cost.<br />
<br />
----<br />
<br />
==== OpenCV port and application to an Unmanned Air Vehicle (UAV) ====<br />
<br />
* ''' Title:''' OpenCV port and application to an Unmanned Air Vehicle (UAV)<br />
<br />
* '''Short project description:''' the final aim is to have an embedded vision system, thus the project is divided in two parts<br />
** port OpenCV to the DSP C674x (the bigger part of the project). Current ports of OpenCV on similar architecture (OMAP 3530) are only based on the ARM.<br />
** use vision algorithms to stabilize an UAV; these algorithms already exists and the OpenCV port with the floating point support will help to put them on the HawkBoard:<br />
***optical flow<br />
*** visual SLAM (Simultaneous Localisation And Mapping)<br />
<br />
* '''Homepage:''' <br />
** of our laboratory: [http://www2.hds.utc.fr/index.php?id=UAV] (not up to date)<br />
** a wiki will be created when the project starts<br />
<br />
* '''Why not on other board ?: '''<br />
** it will be one of the cheapest<br />
** a lot of boards do not have DSP :ARM (PXA 255, 270, 3xx) or Atom boards (Z530)<br />
** some have DSP, but no floating point DSP (OMAP 3530 boards, like BeagleBoard)<br />
** built-in video-in, with dedicated VPIF video bus (better than USB)<br />
<br />
* '''Duration:''' 6-12 months<br />
<br />
* '''Expected results:'''<br />
** OpenCV running smoothly on the board, and optimized for the DSP<br />
** vision algorithms running in real time, and able to stabilize the UAV<br />
<br />
* '''Contact:''' gsanahuj@hds.utc.fr<br />
<br />
* '''Will you support hawkboard.org initiative ? How :'''<br />
** providing all codes of the OpenCV port to the community<br />
** a wiki will explain vision algorithms (which are not UAV specific) and provide exemples and source codes<br />
** will help development of applications using DSP and video-in<br />
<br />
* '''One thing you like about this platform or initiative:'''<br />
** the floating point DSP, will facilitate OpenCV port<br />
<br />
----<br />
<br />
==== HAWKEYE Software Defined Radio ====<br />
<br />
*'''Title''' : Multichannel Software Defined Radio / Spectrum Monitor and Logger <br />
<br />
*'''Short project description''': <br />
** The system will consist of a wideband data capture HW frontend, digital demodulation of a band of RF spectrum. <br />
** Hawkboard will provide baseband processing, DSP capabilities to process spectrum and generate a graphical spectrum display of a band of interest. <br />
** Parallel decode as many individual channels as possible, storing spectrum history and decoded channels to a local disk via SATA interface.<br />
** User interface to select frequency band, channels of interest etc...<br />
<br />
*'''Homepage''': TBD<br />
<br />
*'''Why not on other board ?''':<br />
**reason 1 : Hawkboard provides a unique combination of easy to program ARM 9 for user interface and I/O, high performance DSP for processing, SATA interface for storage and Ethernet/USB for interfacing.<br />
**reason 2 : Low cost board with all required features on a small in expensive board, multiple boards will be required to cover a large bandwidth.<br />
**reason 3 : Floating point DSP eases development of high dynamic range processing (weak signal detection)<br />
<br />
*'''Duration''': 3 Months HW front end plus 3 Months SW implementation<br />
<br />
*'''Expected results:''' <br />
**output : Produce HW front end with interface to Hawkboard<br />
**output : DSP application software with spectrum, channel decode etc<br />
**output : User interface control and LCD display<br />
<br />
*'''Contact''': pagercam@gmail.com<br />
<br />
*'''Will you support hawkboard.org initiative ? How ''':<br />
**1. Open source project <br />
**2. Examples of multithreaded real-time DSP, "How to" documentation via wiki<br />
**3. Example HW interfacing, "How to" documentation via wiki <br />
<br />
<br />
*'''One thing you like about this platform or initiative''':<br />
** Everything I need in more small low power chip<br />
----<br />
<br />
==== Range of Motion Evaulator ====<br />
<br />
*'''Title''' : Range of Motion Evaulator <br />
<br />
*'''Short project description''': <br />
** Desciption <br />
** 1 A latch on device providing accurate Range Of Motion measurement and data logging for applications such as physiotherapy <br />
** 2 Maybe used to measure range of motion after fracture/surgery to see correct healing <br />
<br />
*'''Homepage''': Coming soon<br />
<br />
*'''Why not on other board ?''':<br />
**Provides ports to faciliate data logging<br />
**Provides DSP capabilities may prove useful in visualization in 3D space<br />
**Low cost may even make it a single use device <br />
<br />
*'''Duration''': 9-12 months<br />
<br />
*'''Expected results:''' <br />
**Accurate mesurements of movement in space<br />
**Analysis and loggin, as well as visualization and feedback<br />
<br />
*'''Contact''':sumitb555@gmail.com<br />
<br />
*'''Will you support hawkboard.org initiative ? How ''':<br />
**1. Code will be opensource and the documentation will be available for any additional harware <br />
<br />
*'''One thing you like about this platform or initiative''':<br />
**ARM9 with DSP capabilities and availability of multiple ports<br />
----<br />
<br />
==== Delivery Management ==== <br />
<br />
*'''Title''' : Delivery Management<br />
*'''Other details''' : Author has sent a mail, waiting for approval to post the same here.<br />
----<br />
==== Linux based USB peripheral ====<br />
<br />
* '''Title''' : Linux based USB peripheral<br />
<br />
* '''Short project description''': <br />
**This project will turn the Hawk board into a Linux based USB peripheral.<br />
**It will be initially tested as a USB device for the Beagle Board to provide:<br />
***ethernet<br />
***composite video capture<br />
***storage services using a SATA disk drive.<br />
<br />
* '''Homepage''': http://www.hy-research.com/hawkboard/hawk/index.html<br />
<br />
* '''Why not on other board ?''':<br />
**Other boards do not offer the same collection of interfaces as the hawk board. <br />
**<br />
**My efforts will be recognized and appreciated by world wide hawk, beagle, OMAP, Davinci communities.<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**Images for the Hawk will be posted along with interfacing information for the Beagle Board.<br />
**A video and/or a demo showing functionalities in use with the Beagle Board.<br />
<br />
* '''Contact''': hy-hawk[at]hy-research[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating demonstrations of the Hawk board in use.<br />
**Providing an example of usage as a USB device<br />
**By designing and offering accessories such as cases and expansion boards for the community<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
**Range of interfaces offered around a low power core<br />
<br />
----<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***SATA<br />
***SD/MMC<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**I want to contribute to open source community<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**SATA and SD/MMC drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
<br />
* '''Contact''': georgekk[at]gmail[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
----<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***ASoC support<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**I want to contribute to open source community<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**ASoC drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
<br />
* '''Contact''': sudhanshu.saxena[at]gmail[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
----<br />
<br />
==== Robotics video plus API ====<br />
<br />
*'''Title''': Robotics video plus API<br />
<br />
*'''Short project description''':<br />
**The hobbyist robotics community often use µc that are not really powerfull because the calculations in robots can (often) be achieved by simple 8bits µc and because more powerful µc are often too expensives or more dificult to use.<br/>The principal device that need more calculus power is the camera, and actually there is not so much devices for hobbyists that are able to deal with camera.<br/>Hawkboard has several advantages for this purpose: calculus power (arm9+DSP), video input, complete well known OS (Linux), small price, GPIO + well known buses, small size.<br />
**Our principal goal is to provide a well documented example of how to use a camera with hawkboard (with using OpenCV library).<br />
**Our secondary goal is to provide examples of how to interface Hawboard with well known robotics actuator or sensors.<br />
**Our dead line is driven by the participation of our robot to an european robotic contest! (This is the 7th year we participate...)<br />
<br />
*'''Homepage''': http://as.tech.free.fr/wiki (mainly in french for the moment)<br />
<br />
*'''Why not on other board ?''':<br />
**Easy usable video input<br />
**Board with a well known OS that can process real time video<br />
**Price : linux board cheaper than OMAP3530 platforms<br />
**Full set of inputs/outputs<br />
**Networking capabilities<br />
<br />
*'''Duration''': 6-12 months<br />
<br />
*'''Expected results''':<br />
**output 1 : Provide a complete use case of using a camera for robotics with our robot (object following for example)<br />
**output 2 : Provide several use case of using Hawboard IO in order to interface with other robotics components (leds/switchs/DC motors/servo/I2C/SPI/Ethernet...)<br />
**output 3 : Demonstration of our robot capabilities at eurobot (european robotics cup)<br />
<br />
*'''Contact''': team.as.tech[at]gmail[.]com<br />
<br />
*'''Will you support hawkboard.org initiative ? How''':<br />
**A wiki section will be added to fully describe our project<br />
**A video use case using the DSP to get all the benefits of the platform<br />
**An api or/and examples of how to use the principal devices necessary for robotics (Video In, PWM, UART, SPI, I2C, GPIO, ethernet ...)<br />
<br />
*'''One thing you like about this platform or initiative''':<br />
**A cheap platform for robotics with easy acces to video and currents IO<br />
<br />
----<br />
<br />
==== Pro Audio Digital Mixer ====<br />
<br />
* '''Title''' : ProAudio Digital Mixer<br />
<br />
* '''Short project description''': <br />
**This is a ProAudio Digital Mixer, which leverages the high end Audio Signal Processing capabilities of the C674x DSP inside, while using the ARM core to perform OS tasks, User Interface, Communications and Storage.<br />
<br />
* '''Homepage''': Not yet created.<br />
<br />
* '''Why not on other board ?''':<br />
**No other catalog processor integrates a floating point DSP as well as high performance ARM core.<br />
**Hawkboard is supported by the community.<br />
**Already taking part on BeagleBoard audio related projects, so this cross-processor effort will be more fruitful and will encourage others to take part.<br />
<br />
* '''Duration''': 6 months<br />
<br />
* '''Expected results''': <br />
**Implementation of Audio Digital Processing algorithms on the DSP core.<br />
**Leveraging the already existent ARM-based code to implement the OS/Comms/Storage/UI code.<br />
**Synchronization of ARM and DSP to get the ARM effectively controlling the DSP execution (algorithm parameters)<br />
**Wiki page to describe the entire development method here ...<br />
<br />
* '''Contact''': jaime[dot]aranguren[at]ieee[.]org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
**Floating point DSP + ARM core on the same chip... Amazing!!!<br />
**It is community based<br />
<br />
----<br />
<br />
==== James ====<br />
* '''Title''': James<br />
* '''Short project description''': James aims to be a home server for data and multimedia, including the acquisition of content, recording of video (mythtv backend) and audio playback. It started as a project on beagleboard but got stalled due to USB issues. This project will leverage upon the results of the BeagleBoard work and will also attempt to maximize reuse of existing good software.<br />
* '''Homepage''': to be added; The status of the BeagleBoard version can be found on http://www.elinux.org/BeagleBoard/James<br />
* '''Why not on other board ?''':<br />
** Hawkboard is probably the lowest cost solution for this (which is interesting because it is affordable to have a 2nd board as e.g. mythtv backend)<br />
** This work was started on Beagleboard, but there were too many problems with USB. Also on Beagle, USB would probably become a bottleneck (with both video input (for mythtv), network and mass storage being on the same bus). As Hawkboard has sata and ethernet on board I expect way less issues<br />
** An attempt was also done with sheevaplug. Technically this one is also interesting but lacks SATA and audio out.<br />
* '''Duration''': undefined. The project will deliver functionality in increments. See also the expected results.<br />
* '''Expected results''': <br />
** Documentation on how to get everything working<br />
** up to date recipes for the functionality in openembedded<br />
** perhaps an image with all the software (this depends on availability of a place to store the image); alternately there may be a composite package including all the software.<br />
* Functionwise the expected results are:<br />
** support for hawkboard in OpenEmbedded (expected time to realise: < 1 wk)<br />
** file server (nfs, samba, iscsi, uPnP server (probably coherence))<br />
** audio playback (mpd, phpMP, internet radio (shoutcast))<br />
** web functionality (ftp, telnet, ssh, apache+php+mysql, inetd, webdav?)<br />
** mythtv backend<br />
** content acquisition (news leecher, torrent client, cd ripping, internet radio recording, copying content from photo camera (ptp, mass storage, mtp?)<br />
** printer support (cups). not sure about scanner<br />
* and maybe in a later stage: <br />
** sip client, asterisk, webcam<br />
** some VGA related functionality (UI for various functions), including wiimote and lirc support<br />
** bluetooth support (phone for UI, bluetooth audio streaming, interfacing with bluetooth GPS)<br />
** cd/dvd recording (video probably without transcoding so direct data from the PVR).<br />
** webcam security app (e.g. zoneminder) (not sure if the hw is powerful enough for this)<br />
** speech synthesis (e.g. flite)<br />
* '''Contact''': fransmeulenbroeks at gmail.com<br />
* '''Will you support hawkboard.org initiative ? How ''': By actively contributing on the mailing list and on irc<br />
* '''One thing you like about this platform or initiative''': The tremendous amount of functionality and interfaces for such a low price.<br />
----<br />
<br />
==== Hawkdroid ====<br />
* '''Title''': Hawkdroid<br />
* '''Short project description''': Porting Android to Hawkboard. This will enable host of applications from Android platform to run on hawkboard. <br />
* '''Homepage''': Yet to setup<br />
* '''Why not on other board ?''': <br />
** Chipest Open Platform with lot of peripherals available to run Android.<br />
** Strong community support<br />
* '''Duration''': 2 months<br />
* '''Expected results''': <br />
** Binaries which will demonstrate Android platform running on Hawkboard<br />
** Wiki page of steps to follow<br />
** Source code of ported Android platform<br />
* '''Contact''': rupeshgujare[at]gmail[.]com <br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** By creating wiki's of my understanding<br />
** By being on mailing lists and try to answer the questions <br />
* '''One thing you like about this platform or initiative''':<br />
Very Chip Open Platform with lot of peripheral support<br />
----<br />
<br />
==== Driver Enhancement : Video ====<br />
* '''Title''': Driver Enhancement<br />
* '''Short project description''': <br />
** I am planing to work on Video In/Out & I2C driver. Besides this, I am interested in supporting some interesting peripherals over USB too. I am planing to generate faster user interface layer by using various possible hardware feature. <br />
* '''Homepage''': http://www.sachde.com (As of now, nothing about this project on site.)<br />
* '''Why not on other board ?''': I have fairly good understanding of Davinci architecture, The Hawkboard kernel support is integrated in davinci kernel tree.<br />
* '''Duration''': Will start as soon as I will get access to board and keep updating in all related mailing list. <br />
* '''Expected results''': Support for more featured drivers with better throughput. <br />
* '''Contact''': irc : virals email: viralsachde at gmail dot com <br />
* '''Will you support hawkboard.org initiative ? How ''': <br />
** Providing my observation on kernel on mailing list / irc / wiki<br />
** Will try to integrate more peripheral support in driver <br />
** Probably by providing support to local community ( at Bangalore, India) in personal or during events.<br />
* '''One thing you like about this platform or initiative''': <br />
** Use of OMAP L13# series processor<br />
----<br />
<br />
==== Next ====<br />
* '''Title''':<br />
* '''Short project description''': <br />
* '''Homepage''':<br />
* '''Why not on other board ?''':<br />
* '''Duration''':<br />
* '''Expected results''': <br />
* '''Contact''': <br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
* '''One thing you like about this platform or initiative''':<br />
----</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard/earlyadopter&diff=14906Hawkboard/earlyadopter2009-11-24T10:39:41Z<p>FransMeulenbroeks: /* James */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
= Introduction =<br />
<br />
* What is hawkboard.org ? <br />
: Hawkboard.org is a Open Community Portal for OMAP L 138 ( ARM 9 and C674x Floating Point DSP) Applications<br />
<br />
* What is hawkboard ? <br />
: A OMAP L 138 based Open Platform designed by a small team of engineers @ Innovate Solutions<br />
<br />
* What is Early Adopter Program ?<br />
: Honestly, this is an exercise to educate the community on OMAP L 138 offerings and technology<br />
<br />
* Who can participate ?<br />
: Passionate Open Community members, Technologists interested in leveraging the OMAP L 138 technology and developing innovative applications, Team members who would want to drive and educate the community on the correct or right usage of the platform.<br />
<br />
* Last day for submissions?<br />
: November 30th 2009<br />
<br />
* When will I receive the board if selected?<br />
: By Dec 15th 2009<br />
<br />
* What is the selection Criteria ?<br />
: A group of Community members will be identified as Judges to review the proposals. The judges will choose the early adopters<br />
<br />
* What after winning a board ?<br />
: The Board is all yours, we look forward to the execution of your proposed solution. <br />
<br />
* Should the solution be open ?<br />
: Yes, after or while execution of the project you are requested to give the details to make this a successful open source program<br />
<br />
= Proposals =<br />
<br />
<below is a template / example, please keep the heading and use the same for your proposals><br />
<br />
'''<example starts>'''<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***VGA<br />
***Composite In<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard is a open community platform<br />
**My contributions will be leveraged by global open community<br />
**My efforts will be recognized and appreciated by world wide hawk, beagle, OMAP, Davinci communities.<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**VGA and Composite drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
**Wiki page to describe the entire development method here ...<br />
<br />
* '''Contact''': khasim[at]beagleboard[.]org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
'''<example ends>'''<br />
<br />
----<br />
<br />
==== SIP client demo ====<br />
<br />
* '''Title''' : SIP client on hawkboard<br />
<br />
* '''Short project description''': <br />
**Get a SIP client working (linphone), maybe use DSP to off-load audio processing.<br />
***Use audio, network and DSP.<br />
***Maybe use video later-on.<br />
<br />
* '''Homepage''': http://pmeerw.net (nothing hawkboard specific there)<br />
<br />
* '''Why not on other board ?''':<br />
**Have some experience with beagleboard, but hawkboard seems to have more complete interfaces.<br />
**Cheap platform, DSP.<br />
<br />
* '''Duration''': maybe one to three month, depending on scope (DSP, video).<br />
<br />
* '''Expected results''': <br />
**Audio and network working.<br />
**Maybe extend user-interface later-on using VGA, video in.<br />
<br />
* '''Contact''': pmeerw@pmeerw.net<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** Contribute as open source. Provide demonstration image.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Seems promising given beagleboard's success; visibility.<br />
<br />
----<br />
<br />
==== Hawk Media Server ====<br />
<br />
* '''Title''' : Hawk Media Server<br />
<br />
* '''Short project description''': This project aims at achieving the following:<br />
** A media server for homes, that will be a central repository for all media - video/ audio/ pictures and documents<br />
** Long term goals:<br />
*** Subject to feasibility, Probably a PVR using video in or video over IP <br />
*** A video surveillance application in conjunction with leopard board, where the media server can be used for recording surveillance videos.<br />
<br />
* '''Homepage''': http://www.firstpenguin.org/projects/HawkMediaServer (under construction)<br />
<br />
* '''Why not on other board ?''':<br />
**Hawk has a SATA interface, ideal to interface with internal hard disks.<br />
**Cheaper than Beagleboard<br />
<br />
* '''Duration''': Three months<br />
<br />
* '''Expected results''': <br />
**A ready to install image that others can use to configure Hawk as a media server<br />
**All details shared up on a wiki<br />
<br />
* '''Contact''': sradhakrishna@firstpenugin.org<br />
<br />
* '''Will you support hawkboard.org initiative ? How? ''':<br />
**Would like to provide any help with developing drivers or maintaining uboot/ kernel.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Source<br />
**A platform for hobbyists to try out new ideas in a quick manner<br />
<br />
----<br />
<br />
==== Hawkboard support in poky linux ====<br />
<br />
* '''Title''' : Hawkboard support in poky Linux<br />
<br />
* '''Short project description''': <br />
Provide support for hawkboard in poky linux platform.<br />
Provide demo images for Sato.<br />
<br />
* '''Homepage''': http://pokylinux.org/<br />
<br />
* '''Why not on other board ?''':<br />
Ideal for small resolution displays.<br />
Low cost platform to work on.<br />
<br />
* '''Duration''':<br />
About 3 months.<br />
<br />
* '''Expected results''': <br />
A working Sato demo image.<br />
<br />
* '''Contact''': drt80d at gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
Yes. By providing support to the community on software.<br />
And sharing exp. and helping others.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
Low cost and easy for hobbyist to get hands on.<br />
----<br />
<br />
==== Encrypted Telephony system using Hawkboard ====<br />
<br />
* '''Title''' : Encrypted Telephony system<br />
<br />
* '''Short project description''': This project aims at achieving the following:<br />
** An Encrypted Telephony system which will be powered by Hawkboard to encrypt/decrypt the telephone signals between the sender and receiver.<br />
** Long term goals:<br />
*** Can be used by mass people subject to feasibility. <br />
<br />
<br />
* '''Homepage''':will be given later<br />
<br />
* '''Why not on other board ?''':<br />
**Hawk is cheap ARM board for supporting Linux kernel USB/USB-OTG support.<br />
**Cheaper than Beagleboard<br />
<br />
* '''Duration''': 4 months<br />
<br />
* '''Expected results''': <br />
**All details will be shared up on a wiki<br />
<br />
* '''Contact''': parthaneela@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How? ''':<br />
**Would like to provide any help with developing drivers or maintaining uboot/ kernel/code optimization/Testing.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Source<br />
**A platform for hobbyists to try out new ideas in a quick manner<br />
<br />
----<br />
<br />
==== Hawk Medical Kit ====<br />
<br />
* '''Title''' : Hawk Medical Kit <br />
<br />
* '''Short project description''': Hawk Med Kit (HMK) is a portable Medical diagnostic kit<br />
**Description<br />
*** HMK is a low cost portable diagnostic kit for use by Medical community esp for rural health care and on mobile health care units. It shall provide interfaces for open/commercial portable ultrasound probes, open or commercial 12-lead ECG probes, Oxygen Saturation probes. It could be extended to be used for tele-healthcare/tele-radiology and other cardio monitoring applications.<br />
***<br />
<br />
* '''Homepage''': (not in place, yet)<br />
<br />
* '''Why not on other board ?''':<br />
**reason 1 Hawkboard is ideal as it provides a floating point DSP for signal processing and ARM9 for control & UI for this device<br />
**reason 2 Open platform provides opportunity to improve software & hardware for health care applications and promote interoperability<br />
<br />
* '''Duration''': 12-16 months<br />
* '''Expected results''': <br />
**output 1 : Open Healthcare platform<br />
**output 2 : Social impact through open initiatives<br />
<br />
* '''Contact''': vu3thg@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**1 Contributions to its improvement and development initiatives<br />
**2 Maintain documentation and provide support<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**1 Such Low cost open platform seeds innovation<br />
<br />
<br />
----<br />
<br />
==== Networked Media Solution ====<br />
<br />
* '''Title''' : Networked Media Playback, Storage and Discovery<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** A media player for music enthusiasts not computer or network engineers<br />
*** A complete solution storage, discovery and control<br />
*** Multiple Ethernet connections through wireless and wired to fit with any installation<br />
<br />
* '''Homepage''': http://www.simpleaudio.co.uk <br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard comes with SATA giving a reliable connection to drives, USB has proved too fragile with openembedded<br />
**Price - much cheaper than Gumstix and Beagleboard, both of which do not support SATA<br />
<br />
* '''Duration''': 6-12 months<br />
* '''Expected results''': <br />
**output 1 : Products capable of forming a network where none previously existed<br />
**output 2 : Media discovery from a range of sources and the ability to store CD collections internally<br />
<br />
* '''Contact''': stuart68@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**Our work with Gumstix has already resulted in changes being submitted to the openembedded mainline<br />
**Our product will require the use of most of the interfaces Hawkboard provide, our work will help to debug the drivers each uses<br />
**We will feedback our findings to the openembedded wiki to make it easy for others to configure interfaces like wireless<br />
**Push the use of the DSP with openembedded and not just use the ARM core for encoding and decoding<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Its use of SATA - without this there was no other viable development system with a similar entry cost<br />
<br />
----<br />
<br />
==== Data Acquisition System ====<br />
<br />
* '''Title''' : HawkDaq<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** A Low-power/Portable platform for capturing of different types of data including Analog and Digital<br />
*** Interfaces with Capture Board through LAN/SPI/USB/UART etc.<br />
*** Processes the data acquired and display by demand through HMI interface (undefined at the moment)<br />
<br />
* '''Homepage''': http://audiomind.org/hawkdaq (nothing here at the moment)<br />
<br />
* '''Why not on other board ?''':<br />
** Reason 1 Data - Hawkboard has SATA which is great if the user desires to capture the data onto disk.<br />
** Reason 2 Price - Is cheaper than Gumstix and Beagleboard, which might be an overkill in terms of graphics capability for this application.<br />
** Reason 3 DSP - Hawkboard has a DSP for signal processing which might be helpful in processing some of the acquired data. mini2440 does not have a DSP.<br />
<br />
* '''Duration''': 6 -9 months<br />
* '''Expected results''': <br />
** Output 1 : An Open Portable Data Acquisition Platform<br />
** Output 2 : Customised Solutions for Commercial Data Acquisition Usage<br />
<br />
* '''Contact''': wee.kiampeng@orangeknob.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** Of course!<br />
** We will develop the sw platform with the community and hopefully everyone will benefit from the exercise,.<br />
** We will develop with & provide the hardware design for the acquisition portion to the community.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**It fits the bill of what we intended to do with other boards which lacks in certain areas and overkills in certain areas.<br />
<br />
----<br />
<br />
==== Unmanned Air Vehicle Mission Computer ====<br />
* '''Title''' : Air Vehicle Flight Control with Payload Processing<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** Complete solution for managing flight operations, like any conventional mission computer<br />
*** Additional capability to do payload video management with video compression and encoding<br />
*** Unique capability to produce "UAV on a chip"!<br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard has tremendous options for interfaces, such as SATA and USB for mass storage<br />
**Allows the realization of complete flight ops integration on a single programmable IC<br />
**Very low entry cost for development<br />
<br />
* '''Duration''': 6-12 months<br />
<br />
* '''Expected results''': <br />
**output 1 : Demonstrate the use of COTS components for unmanned systems operations<br />
**output 2 : Produce a single-chip solution for flight control that will also manage computationally-intensive payload (video) tasks<br />
**output 3 : Define a low-cost system that will be useful for civilian operators, such as fire and police, forestry, and surveying interests<br />
<br />
* '''Contact''': vadimv@ieee.org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**Our codebase will be open-sourced. We will have a proprietary control system model that will be closed-source, but that is user-replaceable<br />
**We will be making heavy use of the DSP core and will be able to debug many drivers/algorithms associated with its use.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**A fantastic blend of general-purpose computing with a powerful signal processing capability at a rock-bottom system cost.<br />
<br />
----<br />
<br />
==== OpenCV port and application to an Unmanned Air Vehicle (UAV) ====<br />
<br />
* ''' Title:''' OpenCV port and application to an Unmanned Air Vehicle (UAV)<br />
<br />
* '''Short project description:''' the final aim is to have an embedded vision system, thus the project is divided in two parts<br />
** port OpenCV to the DSP C674x (the bigger part of the project). Current ports of OpenCV on similar architecture (OMAP 3530) are only based on the ARM.<br />
** use vision algorithms to stabilize an UAV; these algorithms already exists and the OpenCV port with the floating point support will help to put them on the HawkBoard:<br />
***optical flow<br />
*** visual SLAM (Simultaneous Localisation And Mapping)<br />
<br />
* '''Homepage:''' <br />
** of our laboratory: [http://www2.hds.utc.fr/index.php?id=UAV] (not up to date)<br />
** a wiki will be created when the project starts<br />
<br />
* '''Why not on other board ?: '''<br />
** it will be one of the cheapest<br />
** a lot of boards do not have DSP :ARM (PXA 255, 270, 3xx) or Atom boards (Z530)<br />
** some have DSP, but no floating point DSP (OMAP 3530 boards, like BeagleBoard)<br />
** built-in video-in, with dedicated VPIF video bus (better than USB)<br />
<br />
* '''Duration:''' 6-12 months<br />
<br />
* '''Expected results:'''<br />
** OpenCV running smoothly on the board, and optimized for the DSP<br />
** vision algorithms running in real time, and able to stabilize the UAV<br />
<br />
* '''Contact:''' gsanahuj@hds.utc.fr<br />
<br />
* '''Will you support hawkboard.org initiative ? How :'''<br />
** providing all codes of the OpenCV port to the community<br />
** a wiki will explain vision algorithms (which are not UAV specific) and provide exemples and source codes<br />
** will help development of applications using DSP and video-in<br />
<br />
* '''One thing you like about this platform or initiative:'''<br />
** the floating point DSP, will facilitate OpenCV port<br />
<br />
----<br />
<br />
==== HAWKEYE Software Defined Radio ====<br />
<br />
*'''Title''' : Multichannel Software Defined Radio / Spectrum Monitor and Logger <br />
<br />
*'''Short project description''': <br />
** The system will consist of a wideband data capture HW frontend, digital demodulation of a band of RF spectrum. <br />
** Hawkboard will provide baseband processing, DSP capabilities to process spectrum and generate a graphical spectrum display of a band of interest. <br />
** Parallel decode as many individual channels as possible, storing spectrum history and decoded channels to a local disk via SATA interface.<br />
** User interface to select frequency band, channels of interest etc...<br />
<br />
*'''Homepage''': TBD<br />
<br />
*'''Why not on other board ?''':<br />
**reason 1 : Hawkboard provides a unique combination of easy to program ARM 9 for user interface and I/O, high performance DSP for processing, SATA interface for storage and Ethernet/USB for interfacing.<br />
**reason 2 : Low cost board with all required features on a small in expensive board, multiple boards will be required to cover a large bandwidth.<br />
**reason 3 : Floating point DSP eases development of high dynamic range processing (weak signal detection)<br />
<br />
*'''Duration''': 3 Months HW front end plus 3 Months SW implementation<br />
<br />
*'''Expected results:''' <br />
**output : Produce HW front end with interface to Hawkboard<br />
**output : DSP application software with spectrum, channel decode etc<br />
**output : User interface control and LCD display<br />
<br />
*'''Contact''': pagercam@gmail.com<br />
<br />
*'''Will you support hawkboard.org initiative ? How ''':<br />
**1. Open source project <br />
**2. Examples of multithreaded real-time DSP, "How to" documentation via wiki<br />
**3. Example HW interfacing, "How to" documentation via wiki <br />
<br />
<br />
*'''One thing you like about this platform or initiative''':<br />
** Everything I need in more small low power chip<br />
----<br />
<br />
==== Range of Motion Evaulator ====<br />
<br />
*'''Title''' : Range of Motion Evaulator <br />
<br />
*'''Short project description''': <br />
** Desciption <br />
** 1 A latch on device providing accurate Range Of Motion measurement and data logging for applications such as physiotherapy <br />
** 2 Maybe used to measure range of motion after fracture/surgery to see correct healing <br />
<br />
*'''Homepage''': Coming soon<br />
<br />
*'''Why not on other board ?''':<br />
**Provides ports to faciliate data logging<br />
**Provides DSP capabilities may prove useful in visualization in 3D space<br />
**Low cost may even make it a single use device <br />
<br />
*'''Duration''': 9-12 months<br />
<br />
*'''Expected results:''' <br />
**Accurate mesurements of movement in space<br />
**Analysis and loggin, as well as visualization and feedback<br />
<br />
*'''Contact''':sumitb555@gmail.com<br />
<br />
*'''Will you support hawkboard.org initiative ? How ''':<br />
**1. Code will be opensource and the documentation will be available for any additional harware <br />
<br />
*'''One thing you like about this platform or initiative''':<br />
**ARM9 with DSP capabilities and availability of multiple ports<br />
----<br />
<br />
==== Delivery Management ==== <br />
<br />
*'''Title''' : Delivery Management<br />
*'''Other details''' : Author has sent a mail, waiting for approval to post the same here.<br />
----<br />
==== Linux based USB peripheral ====<br />
<br />
* '''Title''' : Linux based USB peripheral<br />
<br />
* '''Short project description''': <br />
**This project will turn the Hawk board into a Linux based USB peripheral.<br />
**It will be initially tested as a USB device for the Beagle Board to provide:<br />
***ethernet<br />
***composite video capture<br />
***storage services using a SATA disk drive.<br />
<br />
* '''Homepage''': http://www.hy-research.com/hawkboard/hawk/index.html<br />
<br />
* '''Why not on other board ?''':<br />
**Other boards do not offer the same collection of interfaces as the hawk board. <br />
**<br />
**My efforts will be recognized and appreciated by world wide hawk, beagle, OMAP, Davinci communities.<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**Images for the Hawk will be posted along with interfacing information for the Beagle Board.<br />
**A video and/or a demo showing functionalities in use with the Beagle Board.<br />
<br />
* '''Contact''': hy-hawk[at]hy-research[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating demonstrations of the Hawk board in use.<br />
**Providing an example of usage as a USB device<br />
**By designing and offering accessories such as cases and expansion boards for the community<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
**Range of interfaces offered around a low power core<br />
<br />
----<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***SATA<br />
***SD/MMC<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**I want to contribute to open source community<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**SATA and SD/MMC drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
<br />
* '''Contact''': georgekk[at]gmail[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
----<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***ASoC support<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**I want to contribute to open source community<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**ASoC drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
<br />
* '''Contact''': sudhanshu.saxena[at]gmail[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
----<br />
<br />
==== Robotics video plus API ====<br />
<br />
*'''Title''': Robotics video plus API<br />
<br />
*'''Short project description''':<br />
**The hobbyist robotics community often use µc that are not really powerfull because the calculations in robots can (often) be achieved by simple 8bits µc and because more powerful µc are often too expensives or more dificult to use.<br/>The principal device that need more calculus power is the camera, and actually there is not so much devices for hobbyists that are able to deal with camera.<br/>Hawkboard has several advantages for this purpose: calculus power (arm9+DSP), video input, complete well known OS (Linux), small price, GPIO + well known buses, small size.<br />
**Our principal goal is to provide a well documented example of how to use a camera with hawkboard (with using OpenCV library).<br />
**Our secondary goal is to provide examples of how to interface Hawboard with well known robotics actuator or sensors.<br />
**Our dead line is driven by the participation of our robot to an european robotic contest! (This is the 7th year we participate...)<br />
<br />
*'''Homepage''': http://as.tech.free.fr/wiki (mainly in french for the moment)<br />
<br />
*'''Why not on other board ?''':<br />
**Easy usable video input<br />
**Board with a well known OS that can process real time video<br />
**Price : linux board cheaper than OMAP3530 platforms<br />
**Full set of inputs/outputs<br />
**Networking capabilities<br />
<br />
*'''Duration''': 6-12 months<br />
<br />
*'''Expected results''':<br />
**output 1 : Provide a complete use case of using a camera for robotics with our robot (object following for example)<br />
**output 2 : Provide several use case of using Hawboard IO in order to interface with other robotics components (leds/switchs/DC motors/servo/I2C/SPI/Ethernet...)<br />
**output 3 : Demonstration of our robot capabilities at eurobot (european robotics cup)<br />
<br />
*'''Contact''': team.as.tech[at]gmail[.]com<br />
<br />
*'''Will you support hawkboard.org initiative ? How''':<br />
**A wiki section will be added to fully describe our project<br />
**A video use case using the DSP to get all the benefits of the platform<br />
**An api or/and examples of how to use the principal devices necessary for robotics (Video In, PWM, UART, SPI, I2C, GPIO, ethernet ...)<br />
<br />
*'''One thing you like about this platform or initiative''':<br />
**A cheap platform for robotics with easy acces to video and currents IO<br />
<br />
----<br />
<br />
==== Pro Audio Digital Mixer ====<br />
<br />
* '''Title''' : ProAudio Digital Mixer<br />
<br />
* '''Short project description''': <br />
**This is a ProAudio Digital Mixer, which leverages the high end Audio Signal Processing capabilities of the C674x DSP inside, while using the ARM core to perform OS tasks, User Interface, Communications and Storage.<br />
<br />
* '''Homepage''': Not yet created.<br />
<br />
* '''Why not on other board ?''':<br />
**No other catalog processor integrates a floating point DSP as well as high performance ARM core.<br />
**Hawkboard is supported by the community.<br />
**Already taking part on BeagleBoard audio related projects, so this cross-processor effort will be more fruitful and will encourage others to take part.<br />
<br />
* '''Duration''': 6 months<br />
<br />
* '''Expected results''': <br />
**Implementation of Audio Digital Processing algorithms on the DSP core.<br />
**Leveraging the already existent ARM-based code to implement the OS/Comms/Storage/UI code.<br />
**Synchronization of ARM and DSP to get the ARM effectively controlling the DSP execution (algorithm parameters)<br />
**Wiki page to describe the entire development method here ...<br />
<br />
* '''Contact''': jaime[dot]aranguren[at]ieee[.]org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
**Floating point DSP + ARM core on the same chip... Amazing!!!<br />
**It is community based<br />
<br />
----<br />
<br />
==== James ====<br />
* '''Title''': James<br />
* '''Short project description''': James aims to be a home server for data and multimedia, including the acquisition of content, recording of video (mythtv backend) and audio playback. It started as a project on beagleboard but got stalled due to USB issues. This project will leverage upon the results of the BeagleBoard work and will also attempt to maximize reuse of existing good software.<br />
* '''Homepage''': to be added; The status of the BeagleBoard version can be found on http://www.elinux.org/BeagleBoard/James<br />
* '''Why not on other board ?''':<br />
** Hawkboard is probably the lowest cost solution for this (which is interesting because it is affordable to have a 2nd board as e.g. mythtv backend)<br />
** This work was started on Beagleboard, but there were too many problems with USB. Also on Beagle, USB would probably become a bottleneck (with both video input (for mythtv), network and mass storage being on the same bus). As Hawkboard has sata and ethernet on board I expect way less issues<br />
** An attempt was also done with sheevaplug. Technically this one is also interesting but lacks SATA and audio out.<br />
* '''Duration''': undefined. The project will deliver functionality in increments. See also the expected results.<br />
* '''Expected results''': <br />
** Documentation on how to get everything working<br />
** up to date recipes for the functionality in openembedded<br />
** perhaps an image with all the software (this depends on availability of a place to store the image); alternately there may be a composite package including all the software.<br />
* Functionwise the expected results are:<br />
** support for hawkboard in OpenEmbedded (expected time to realise: < 1 wk)<br />
** file server (nfs, samba, iscsi, uPnP server (probably coherence))<br />
** audio playback (mpd, ...)<br />
** web functionality (ftp, telnet, ssh, apache+php+mysql, inetd, webdav?)<br />
** mythtv backend<br />
** content acquisition (news leecher, torrent client, cd ripping, copying content from photo camera (ptp, mass storage, mtp?)<br />
** and maybe in a later stage: sip client, asterisk, webcam<br />
* '''Contact''': fransmeulenbroeks at gmail.com<br />
* '''Will you support hawkboard.org initiative ? How ''': By actively contributing on the mailing list and on irc<br />
* '''One thing you like about this platform or initiative''': The tremendous amount of functionality and interfaces for such a low price.<br />
----<br />
<br />
==== Hawkdroid ====<br />
* '''Title''': Hawkdroid<br />
* '''Short project description''': Porting Android to Hawkboard. This will enable host of applications from Android platform to run on hawkboard. <br />
* '''Homepage''': Yet to setup<br />
* '''Why not on other board ?''': <br />
** Chipest Open Platform with lot of peripherals available to run Android.<br />
** Strong community support<br />
* '''Duration''': 2 months<br />
* '''Expected results''': <br />
** Binaries which will demonstrate Android platform running on Hawkboard<br />
** Wiki page of steps to follow<br />
** Source code of ported Android platform<br />
* '''Contact''': rupeshgujare[at]gmail[.]com <br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** By creating wiki's of my understanding<br />
** By being on mailing lists and try to answer the questions <br />
* '''One thing you like about this platform or initiative''':<br />
Very Chip Open Platform with lot of peripheral support<br />
----<br />
<br />
==== Next ====<br />
* '''Title''':<br />
* '''Short project description''': <br />
* '''Homepage''':<br />
* '''Why not on other board ?''':<br />
* '''Duration''':<br />
* '''Expected results''': <br />
* '''Contact''': <br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
* '''One thing you like about this platform or initiative''':<br />
----</div>FransMeulenbroekshttps://elinux.org/index.php?title=Hawkboard/earlyadopter&diff=14875Hawkboard/earlyadopter2009-11-23T21:17:58Z<p>FransMeulenbroeks: added James</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category: DSP]]<br />
[[Category: Hawkboard]]<br />
<br />
= Introduction =<br />
<br />
* What is hawkboard.org ?<br />
Hawkboard.org is a Open Community Portal for OMAP L 138 ( ARM 9 and C674x Floating Point DSP) Applications<br />
<br />
* What is hawkboard ?<br />
A OMAP L 138 based Open Platform designed by a small team of engineers @ Innovate Solutions<br />
<br />
* What is Early Adopter Program ?<br />
Honestly, this is an exercise to educate the community on OMAP L 138 offerings and technology<br />
<br />
* Who can participate ?<br />
Passionate Open Community members, <br />
Technologists interested in leveraging the OMAP L 138 technology and developing innovative applications,<br />
Team members who would want to drive and educate the community on the correct or right usage of the platform.<br />
<br />
* Last day for submissions?<br />
November 30th 2009<br />
<br />
* When will I receive the board if selected?<br />
By Dec 15th 2009<br />
<br />
* What is the selection Criteria ?<br />
A group of Community members will be identified as Judges to review the proposals. The judges will choose the early adopters<br />
<br />
* What after winning a board ?<br />
The Board is all yours, we look forward to the execution of your proposed solution. <br />
<br />
* Should the solution be open ?<br />
Yes, after or while execution of the project you are requested to give the details to make this a successful open source program<br />
<br />
= Proposals =<br />
<br />
<below is a template / example, please keep the heading and use the same for your proposals><br />
<br />
'''<example starts>'''<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***VGA<br />
***Composite In<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard is a open community platform<br />
**My contributions will be leveraged by global open community<br />
**My efforts will be recognized and appreciated by world wide hawk, beagle, OMAP, Davinci communities.<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**VGA and Composite drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
**Wiki page to describe the entire development method here ...<br />
<br />
* '''Contact''': khasim[at]beagleboard[.]org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
'''<example ends>'''<br />
<br />
----<br />
<br />
==== SIP client demo ====<br />
<br />
* '''Title''' : SIP client on hawkboard<br />
<br />
* '''Short project description''': <br />
**Get a SIP client working (linphone), maybe use DSP to off-load audio processing.<br />
***Use audio, network and DSP.<br />
***Maybe use video later-on.<br />
<br />
* '''Homepage''': http://pmeerw.net (nothing hawkboard specific there)<br />
<br />
* '''Why not on other board ?''':<br />
**Have some experience with beagleboard, but hawkboard seems to have more complete interfaces.<br />
**Cheap platform, DSP.<br />
<br />
* '''Duration''': maybe one to three month, depending on scope (DSP, video).<br />
<br />
* '''Expected results''': <br />
**Audio and network working.<br />
**Maybe extend user-interface later-on using VGA, video in.<br />
<br />
* '''Contact''': pmeerw@pmeerw.net<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** Contribute as open source. Provide demonstration image.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Seems promising given beagleboard's success; visibility.<br />
<br />
----<br />
<br />
==== Hawk Media Server ====<br />
<br />
* '''Title''' : Hawk Media Server<br />
<br />
* '''Short project description''': This project aims at achieving the following:<br />
** A media server for homes, that will be a central repository for all media - video/ audio/ pictures and documents<br />
** Long term goals:<br />
*** Subject to feasibility, Probably a PVR using video in or video over IP <br />
*** A video surveillance application in conjunction with leopard board, where the media server can be used for recording surveillance videos.<br />
<br />
* '''Homepage''': http://www.firstpenguin.org/projects/HawkMediaServer (under construction)<br />
<br />
* '''Why not on other board ?''':<br />
**Hawk has a SATA interface, ideal to interface with internal hard disks.<br />
**Cheaper than Beagleboard<br />
<br />
* '''Duration''': Three months<br />
<br />
* '''Expected results''': <br />
**A ready to install image that others can use to configure Hawk as a media server<br />
**All details shared up on a wiki<br />
<br />
* '''Contact''': sradhakrishna@firstpenugin.org<br />
<br />
* '''Will you support hawkboard.org initiative ? How? ''':<br />
**Would like to provide any help with developing drivers or maintaining uboot/ kernel.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Source<br />
**A platform for hobbyists to try out new ideas in a quick manner<br />
<br />
----<br />
<br />
==== Hawkboard support in poky linux ====<br />
<br />
* '''Title''' : Hawkboard support in poky Linux<br />
<br />
* '''Short project description''': <br />
Provide support for hawkboard in poky linux platform.<br />
Provide demo images for Sato.<br />
<br />
* '''Homepage''': http://pokylinux.org/<br />
<br />
* '''Why not on other board ?''':<br />
Ideal for small resolution displays.<br />
Low cost platform to work on.<br />
<br />
* '''Duration''':<br />
About 3 months.<br />
<br />
* '''Expected results''': <br />
A working Sato demo image.<br />
<br />
* '''Contact''': drt80d at gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
Yes. By providing support to the community on software.<br />
And sharing exp. and helping others.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
Low cost and easy for hobbyist to get hands on.<br />
----<br />
<br />
==== Encrypted Telephony system using Hawkboard ====<br />
<br />
* '''Title''' : Encrypted Telephony system<br />
<br />
* '''Short project description''': This project aims at achieving the following:<br />
** An Encrypted Telephony system which will be powered by Hawkboard to encrypt/decrypt the telephone signals between the sender and receiver.<br />
** Long term goals:<br />
*** Can be used by mass people subject to feasibility. <br />
<br />
<br />
* '''Homepage''':will be given later<br />
<br />
* '''Why not on other board ?''':<br />
**Hawk is cheap ARM board for supporting Linux kernel USB/USB-OTG support.<br />
**Cheaper than Beagleboard<br />
<br />
* '''Duration''': 4 months<br />
<br />
* '''Expected results''': <br />
**All details will be shared up on a wiki<br />
<br />
* '''Contact''': parthaneela@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How? ''':<br />
**Would like to provide any help with developing drivers or maintaining uboot/ kernel/code optimization/Testing.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Source<br />
**A platform for hobbyists to try out new ideas in a quick manner<br />
<br />
----<br />
<br />
==== Hawk Medical Kit ====<br />
<br />
* '''Title''' : Hawk Medical Kit <br />
<br />
* '''Short project description''': Hawk Med Kit (HMK) is a portable Medical diagnostic kit<br />
**Description<br />
*** HMK is a low cost portable diagnostic kit for use by Medical community esp for rural health care and on mobile health care units. It shall provide interfaces for open/commercial portable ultrasound probes, open or commercial 12-lead ECG probes, Oxygen Saturation probes. It could be extended to be used for tele-healthcare/tele-radiology and other cardio monitoring applications.<br />
***<br />
<br />
* '''Homepage''': (not in place, yet)<br />
<br />
* '''Why not on other board ?''':<br />
**reason 1 Hawkboard is ideal as it provides a floating point DSP for signal processing and ARM9 for control & UI for this device<br />
**reason 2 Open platform provides opportunity to improve software & hardware for health care applications and promote interoperability<br />
<br />
* '''Duration''': 12-16 months<br />
* '''Expected results''': <br />
**output 1 : Open Healthcare platform<br />
**output 2 : Social impact through open initiatives<br />
<br />
* '''Contact''': vu3thg@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**1 Contributions to its improvement and development initiatives<br />
**2 Maintain documentation and provide support<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**1 Such Low cost open platform seeds innovation<br />
<br />
<br />
----<br />
<br />
==== Networked Media Solution ====<br />
<br />
* '''Title''' : Networked Media Playback, Storage and Discovery<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** A media player for music enthusiasts not computer or network engineers<br />
*** A complete solution storage, discovery and control<br />
*** Multiple Ethernet connections through wireless and wired to fit with any installation<br />
<br />
* '''Homepage''': http://www.simpleaudio.co.uk <br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard comes with SATA giving a reliable connection to drives, USB has proved too fragile with openembedded<br />
**Price - much cheaper than Gumstix and Beagleboard, both of which do not support SATA<br />
<br />
* '''Duration''': 6-12 months<br />
* '''Expected results''': <br />
**output 1 : Products capable of forming a network where none previously existed<br />
**output 2 : Media discovery from a range of sources and the ability to store CD collections internally<br />
<br />
* '''Contact''': stuart68@gmail.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**Our work with Gumstix has already resulted in changes being submitted to the openembedded mainline<br />
**Our product will require the use of most of the interfaces Hawkboard provide, our work will help to debug the drivers each uses<br />
**We will feedback our findings to the openembedded wiki to make it easy for others to configure interfaces like wireless<br />
**Push the use of the DSP with openembedded and not just use the ARM core for encoding and decoding<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Its use of SATA - without this there was no other viable development system with a similar entry cost<br />
<br />
----<br />
<br />
==== Data Acquisition System ====<br />
<br />
* '''Title''' : HawkDaq<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** A Low-power/Portable platform for capturing of different types of data including Analog and Digital<br />
*** Interfaces with Capture Board through LAN/SPI/USB/UART etc.<br />
*** Processes the data acquired and display by demand through HMI interface (undefined at the moment)<br />
<br />
* '''Homepage''': http://audiomind.org/hawkdaq (nothing here at the moment)<br />
<br />
* '''Why not on other board ?''':<br />
** Reason 1 Data - Hawkboard has SATA which is great if the user desires to capture the data onto disk.<br />
** Reason 2 Price - Is cheaper than Gumstix and Beagleboard, which might be an overkill in terms of graphics capability for this application.<br />
** Reason 3 DSP - Hawkboard has a DSP for signal processing which might be helpful in processing some of the acquired data. mini2440 does not have a DSP.<br />
<br />
* '''Duration''': 6 -9 months<br />
* '''Expected results''': <br />
** Output 1 : An Open Portable Data Acquisition Platform<br />
** Output 2 : Customised Solutions for Commercial Data Acquisition Usage<br />
<br />
* '''Contact''': wee.kiampeng@orangeknob.com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
** Of course!<br />
** We will develop the sw platform with the community and hopefully everyone will benefit from the exercise,.<br />
** We will develop with & provide the hardware design for the acquisition portion to the community.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**It fits the bill of what we intended to do with other boards which lacks in certain areas and overkills in certain areas.<br />
<br />
----<br />
<br />
==== Unmanned Air Vehicle Mission Computer ====<br />
* '''Title''' : Air Vehicle Flight Control with Payload Processing<br />
<br />
* '''Short project description''': <br />
**Description<br />
*** Complete solution for managing flight operations, like any conventional mission computer<br />
*** Additional capability to do payload video management with video compression and encoding<br />
*** Unique capability to produce "UAV on a chip"!<br />
<br />
* '''Why not on other board ?''':<br />
**Hawkboard has tremendous options for interfaces, such as SATA and USB for mass storage<br />
**Allows the realization of complete flight ops integration on a single programmable IC<br />
**Very low entry cost for development<br />
<br />
* '''Duration''': 6-12 months<br />
<br />
* '''Expected results''': <br />
**output 1 : Demonstrate the use of COTS components for unmanned systems operations<br />
**output 2 : Produce a single-chip solution for flight control that will also manage computationally-intensive payload (video) tasks<br />
**output 3 : Define a low-cost system that will be useful for civilian operators, such as fire and police, forestry, and surveying interests<br />
<br />
* '''Contact''': vadimv@ieee.org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**Our codebase will be open-sourced. We will have a proprietary control system model that will be closed-source, but that is user-replaceable<br />
**We will be making heavy use of the DSP core and will be able to debug many drivers/algorithms associated with its use.<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**A fantastic blend of general-purpose computing with a powerful signal processing capability at a rock-bottom system cost.<br />
<br />
----<br />
<br />
==== OpenCV port and application to an Unmanned Air Vehicle (UAV) ====<br />
<br />
* ''' Title:''' OpenCV port and application to an Unmanned Air Vehicle (UAV)<br />
<br />
* '''Short project description:''' the final aim is to have an embedded vision system, thus the project is divided in two parts<br />
** port OpenCV to the DSP C674x (the bigger part of the project). Current ports of OpenCV on similar architecture (OMAP 3530) are only based on the ARM.<br />
** use vision algorithms to stabilize an UAV; these algorithms already exists and the OpenCV port with the floating point support will help to put them on the HawkBoard:<br />
***optical flow<br />
*** visual SLAM (Simultaneous Localisation And Mapping)<br />
<br />
* '''Homepage:''' <br />
** of our laboratory: [http://www2.hds.utc.fr/index.php?id=UAV] (not up to date)<br />
** a wiki will be created when the project starts<br />
<br />
* '''Why not on other board ?: '''<br />
** it will be one of the cheapest<br />
** a lot of boards do not have DSP :ARM (PXA 255, 270, 3xx) or Atom boards (Z530)<br />
** some have DSP, but no floating point DSP (OMAP 3530 boards, like BeagleBoard)<br />
** built-in video-in, with dedicated VPIF video bus (better than USB)<br />
<br />
* '''Duration:''' 6-12 months<br />
<br />
* '''Expected results:'''<br />
** OpenCV running smoothly on the board, and optimized for the DSP<br />
** vision algorithms running in real time, and able to stabilize the UAV<br />
<br />
* '''Contact:''' gsanahuj@hds.utc.fr<br />
<br />
* '''Will you support hawkboard.org initiative ? How :'''<br />
** providing all codes of the OpenCV port to the community<br />
** a wiki will explain vision algorithms (which are not UAV specific) and provide exemples and source codes<br />
** will help development of applications using DSP and video-in<br />
<br />
* '''One thing you like about this platform or initiative:'''<br />
** the floating point DSP, will facilitate OpenCV port<br />
<br />
----<br />
<br />
==== HAWKEYE Software Defined Radio ====<br />
<br />
*'''Title''' : Multichannel Software Defined Radio / Spectrum Monitor and Logger <br />
<br />
*'''Short project description''': <br />
** The system will consist of a wideband data capture HW frontend, digital demodulation of a band of RF spectrum. <br />
** Hawkboard will provide baseband processing, DSP capabilities to process spectrum and generate a graphical spectrum display of a band of interest. <br />
** Parallel decode as many individual channels as possible, storing spectrum history and decoded channels to a local disk via SATA interface.<br />
** User interface to select frequency band, channels of interest etc...<br />
<br />
*'''Homepage''': TBD<br />
<br />
*'''Why not on other board ?''':<br />
**reason 1 : Hawkboard provides a unique combination of easy to program ARM 9 for user interface and I/O, high performance DSP for processing, SATA interface for storage and Ethernet/USB for interfacing.<br />
**reason 2 : Low cost board with all required features on a small in expensive board, multiple boards will be required to cover a large bandwidth.<br />
**reason 3 : Floating point DSP eases development of high dynamic range processing (weak signal detection)<br />
<br />
*'''Duration''': 3 Months HW front end plus 3 Months SW implementation<br />
<br />
*'''Expected results:''' <br />
**output : Produce HW front end with interface to Hawkboard<br />
**output : DSP application software with spectrum, channel decode etc<br />
**output : User interface control and LCD display<br />
<br />
*'''Contact''': pagercam@gmail.com<br />
<br />
*'''Will you support hawkboard.org initiative ? How ''':<br />
**1. Open source project <br />
**2. Examples of multithreaded real-time DSP, "How to" documentation via wiki<br />
**3. Example HW interfacing, "How to" documentation via wiki <br />
<br />
<br />
*'''One thing you like about this platform or initiative''':<br />
** Everything I need in more small low power chip<br />
----<br />
<br />
==== Range of Motion Evaulator ====<br />
<br />
*'''Title''' : Range of Motion Evaulator <br />
<br />
*'''Short project description''': <br />
** Desciption <br />
** 1 A latch on device providing accurate Range Of Motion measurement and data logging for applications such as physiotherapy <br />
** 2 Maybe used to measure range of motion after fracture/surgery to see correct healing <br />
<br />
*'''Homepage''': Coming soon<br />
<br />
*'''Why not on other board ?''':<br />
**Provides ports to faciliate data logging<br />
**Provides DSP capabilities may prove useful in visualization in 3D space<br />
**Low cost may even make it a single use device <br />
<br />
*'''Duration''': 9-12 months<br />
<br />
*'''Expected results:''' <br />
**Accurate mesurements of movement in space<br />
**Analysis and loggin, as well as visualization and feedback<br />
<br />
*'''Contact''':sumitb555@gmail.com<br />
<br />
*'''Will you support hawkboard.org initiative ? How ''':<br />
**1. Code will be opensource and the documentation will be available for any additional harware <br />
<br />
*'''One thing you like about this platform or initiative''':<br />
**ARM9 with DSP capabilities and availability of multiple ports<br />
----<br />
<br />
==== Delivery Management ==== <br />
<br />
*'''Title''' : Delivery Management<br />
*'''Other details''' : Author has sent a mail, waiting for approval to post the same here.<br />
----<br />
==== Linux based USB peripheral ====<br />
<br />
* '''Title''' : Linux based USB peripheral<br />
<br />
* '''Short project description''': <br />
**This project will turn the Hawk board into a Linux based USB peripheral.<br />
**It will be initially tested as a USB device for the Beagle Board to provide:<br />
***ethernet<br />
***composite video capture<br />
***storage services using a SATA disk drive.<br />
<br />
* '''Homepage''': http://www.hy-research.com/hawkboard/hawk/index.html<br />
<br />
* '''Why not on other board ?''':<br />
**Other boards do not offer the same collection of interfaces as the hawk board. <br />
**<br />
**My efforts will be recognized and appreciated by world wide hawk, beagle, OMAP, Davinci communities.<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**Images for the Hawk will be posted along with interfacing information for the Beagle Board.<br />
**A video and/or a demo showing functionalities in use with the Beagle Board.<br />
<br />
* '''Contact''': hy-hawk[at]hy-research[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating demonstrations of the Hawk board in use.<br />
**Providing an example of usage as a USB device<br />
**By designing and offering accessories such as cases and expansion boards for the community<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
**Range of interfaces offered around a low power core<br />
<br />
----<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***SATA<br />
***SD/MMC<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**I want to contribute to open source community<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**SATA and SD/MMC drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
<br />
* '''Contact''': georgekk[at]gmail[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
----<br />
<br />
==== Linux Driver Development for HawkBoard Peripherals ====<br />
<br />
* '''Title''' : Driver Development<br />
<br />
* '''Short project description''': <br />
**The project will add the Linux driver support, following are the drivers I will be interested in developing and maintaining<br />
***ASoC support<br />
<br />
* '''Homepage''': http://hawkboard.wordpress.com<br />
<br />
* '''Why not on other board ?''':<br />
**I want to contribute to open source community<br />
<br />
* '''Duration''': 3 months<br />
<br />
* '''Expected results''': <br />
**ASoC drivers will be implemented and submitted to davinci mailing list for kernel.org submissions.<br />
<br />
* '''Contact''': sudhanshu.saxena[at]gmail[.]com<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
<br />
----<br />
<br />
==== Robotics video plus API ====<br />
<br />
*'''Title''': Robotics video plus API<br />
<br />
*'''Short project description''':<br />
**The hobbyist robotics community often use µc that are not really powerfull because the calculations in robots can (often) be achieved by simple 8bits µc and because more powerful µc are often too expensives or more dificult to use.<br/>The principal device that need more calculus power is the camera, and actually there is not so much devices for hobbyists that are able to deal with camera.<br/>Hawkboard has several advantages for this purpose: calculus power (arm9+DSP), video input, complete well known OS (Linux), small price, GPIO + well known buses, small size.<br />
**Our principal goal is to provide a well documented example of how to use a camera with hawkboard (with using OpenCV library).<br />
**Our secondary goal is to provide examples of how to interface Hawboard with well known robotics actuator or sensors.<br />
**Our dead line is driven by the participation of our robot to an european robotic contest! (This is the 7th year we participate...)<br />
<br />
*'''Homepage''': http://as.tech.free.fr/wiki (mainly in french for the moment)<br />
<br />
*'''Why not on other board ?''':<br />
**Easy usable video input<br />
**Board with a well known OS that can process real time video<br />
**Price : linux board cheaper than OMAP3530 platforms<br />
**Full set of inputs/outputs<br />
**Networking capabilities<br />
<br />
*'''Duration''': 6-12 months<br />
<br />
*'''Expected results''':<br />
**output 1 : Provide a complete use case of using a camera for robotics with our robot (object following for example)<br />
**output 2 : Provide several use case of using Hawboard IO in order to interface with other robotics components (leds/switchs/DC motors/servo/I2C/SPI/Ethernet...)<br />
**output 3 : Demonstration of our robot capabilities at eurobot (european robotics cup)<br />
<br />
*'''Contact''': trash140[at]gmail[.]com<br />
<br />
*'''Will you support hawkboard.org initiative ? How''':<br />
**A wiki section will be added to fully describe our project<br />
**A video use case using the DSP to get all the benefits of the platform<br />
**An api or/and examples of how to use the principal devices necessary for robotics (Video In, PWM, UART, SPI, I2C, GPIO, ethernet ...)<br />
<br />
*'''One thing you like about this platform or initiative''':<br />
**A cheap platform for robotics with easy acces to video and currents IO<br />
<br />
----<br />
<br />
==== Pro Audio Digital Mixer ====<br />
<br />
* '''Title''' : ProAudio Digital Mixer<br />
<br />
* '''Short project description''': <br />
**This is a ProAudio Digital Mixer, which leverages the high end Audio Signal Processing capabilities of the C74x DSP inside, while using the ARM core to perform OS tasks, User Interface, Communications and Storage.<br />
<br />
* '''Homepage''': Not yet created.<br />
<br />
* '''Why not on other board ?''':<br />
**No other catalog processor integrates a floating point DSP as well as high performance ARM core.<br />
**Hawkboard is supported by the community.<br />
**Already taking part on BeagleBoard audio related projects, so this cross-processor effort will be more fruitful and will encourage others to take part.<br />
<br />
* '''Duration''': 6 months<br />
<br />
* '''Expected results''': <br />
**Implementation of Audio Digital Processing algorithms on the DSP core.<br />
**Leveraging the already existent ARM-based code to implement the OS/Comms/Storage/UI code.<br />
**Synchronization of ARM and DSP to get the ARM effectively controlling the DSP execution (algorithm parameters)<br />
**Wiki page to describe the entire development method here ...<br />
<br />
* '''Contact''': jaime[dot]aranguren[at]ieee[.]org<br />
<br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
**By creating wiki's of my understanding<br />
**By being on mailing lists and IRC and try to answer the questions<br />
<br />
* '''One thing you like about this platform or initiative''':<br />
**Open Platform<br />
**Floating point DSP + ARM core on the same chip... Amazing!!!<br />
**It is community based<br />
<br />
----<br />
<br />
==== James ====<br />
* '''Title''': James<br />
* '''Short project description''': James aims to be a home server for data and multimedia, including the acquisition of content, recording of video (mythtv backend) and audio playback. It started as a project on beagleboard but got stalled due to USB issues. This project will leverage upon the results of the BeagleBoard work and will also attempt to maximize reuse of existing good software.<br />
* '''Homepage''': to be added; The status of the BeagleBoard version can be found on http://www.elinux.org/BeagleBoard/James<br />
* '''Why not on other board ?''':<br />
** Hawkboard is probably the lowest cost solution for this (which is interesting because it is affordable to have a 2nd board as e.g. mythtv backend)<br />
** This work was started on Beagleboard, but there were too many problems with USB. Also on Beagle, USB would probably become a bottleneck (with both video input (for mythtv), network and mass storage being on the same bus). As Hawkboard has sata and ethernet on board I expect way less issues<br />
** An attempt was also done with sheevaplug. Technically this one is also interesting but lacks SATA and audio out.<br />
* '''Duration''': undefined. The project will deliver functionality in increments. See also the expected results.<br />
* '''Expected results''': <br />
** Documentation on how to get everything working<br />
** up to date recipes for the functionality in openembedded<br />
** perhaps an image with all the software (this depends on availability of a place to store the image)<br />
* Functionwise the expected results are:<br />
** support for hawkboard in OpenEmbedded (expected time to realise: < 1 wk)<br />
** file server (nfs, samba, iscsi, uPnP server (probably coherence))<br />
** audio playback (mpd, ...)<br />
** web functionality (ftp, telnet, ssh, apache+php+mysql, inetd, webdav?)<br />
** mythtv backend<br />
** content acquisition (news leecher, torrent client, cd ripping, copying content from photo camera (ptp, mass storage, mtp?)<br />
** and maybe in a later stage: sip client, asterisk, webcam<br />
* '''Contact''': fransmeulenbroeks at gmail.com<br />
* '''Will you support hawkboard.org initiative ? How ''': By actively contributing on the mailing list and on irc<br />
* '''One thing you like about this platform or initiative''': The tremendous amount of functionality and interfaces for such a low price.<br />
<br />
----<br />
<br />
==== Next ====<br />
* '''Title''':<br />
* '''Short project description''': <br />
* '''Homepage''':<br />
* '''Why not on other board ?''':<br />
* '''Duration''':<br />
* '''Expected results''': <br />
* '''Contact''': <br />
* '''Will you support hawkboard.org initiative ? How ''':<br />
* '''One thing you like about this platform or initiative''':<br />
----</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=14583BeagleBoard/contest2009-11-06T12:28:06Z<p>FransMeulenbroeks: /* MythBeagle */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
If your project is listed as a winner and you haven't received your board, check with ''beagleship at list.ti.com''.<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Accelerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]</font><br />
|<font color="#C0C0C0">Week 21</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle Synth |Beagle Synth]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#USB Scope |USB Scope]]</font><br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Irrlicht|Irrlicht]]<br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleHam|BeagleHam]]</font><br />
|<font color="#C0C0C0">Week 24</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<font color="#C0C0C0">Week 25</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Handheld_Lab|Handheld Lab]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TCF_Agent_Port|TCF Agent Port]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Traveler|Beagle-Traveler]]</font><br />
|<font color="#C0C0C0">Week 27</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#OMAP Emulator|OMAP Emulator]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#QEMUonARM|QEMUonARM]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#EGLIBC|EGLIBC Support]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#RT-Beagle|RT-Beagle]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ONAS|ONAS]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Math-NEON|Math-NEON]]<br />
|<font color="#C0C0C0">Week 32<br />
|<font color="#C0C0C0">5 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Happiness_Device_for_Cerebral_Palsy_Kids|Device for Cerebral Palsy Kids]]</font><br />
|<font color="#C0C0C0">Week 32</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Turk|Turk Platform]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#hApplause|hApplause]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#eLazarillo|eLazarillo]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">1 vote</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#PREEMPT_RT|PREEMPT_RT]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#HDDM|HDDM]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleVision|BeagleVision]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#DJ Audio / Video Mixer|DJ Audio / Video Mixer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#schooldog|An individual lowcost schoolcomputer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Disko|Disko - UI Application Framework]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ESITeam|ESITeam]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#DVB-T_Receiver|DVB-T_Receiver]]<br />
|Week 43<br />
|8 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#UPnP.2FDLNA_AV_client_renderer_and_transcoding_server|UPnP/DLNA AV client renderer and transcoding server]]<br />
|Week 43<br />
|2 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Touchscreen_LCD_support| Touchscreen LCD support]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleSCI |BeagleSCI]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Pictouch|Pictouch]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Fotogenic |Fotogenic]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyGTee|MyGTee handheld]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Tourister_using_Hand_Gestures_and_HMD_on_Beagleboard|Beagle Tourister]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Medical Notebook|Medical Notebook]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#miniECG|miniECG]]<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#remoteBillBoard|Remote Bill Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleWacom|Wacom Tablet driver for Beagle Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleLAB|BeagleLAB]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Arduino_hybrid_robot|Beagle-Arduino hybrid robot]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FETCH|FETCH]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|-<br />
||[[BeagleBoard/contest#PupLC|PupLC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#Speed-Reader|Speed-Reader]]<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#ArchMobile:_ArchLinux_ARM_Port|ArchMobile]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#MythBeagle|MythBeagle]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#HomeBrewSmartPhone|HomeBrewSmartPhone]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#XBMC_ARM_Port|XBMC Arm Port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects with the most votes will be approved. The plan is to have final decision every Friday morning.<br />
<br />
==== Revolt 2405====<br />
<font color="#C0C0C0"><br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Revolt2405/<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
</font><br />
==== Touchscreen LCD support ====<br />
<br />
* '''Title''': Touchscreen LCD support <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The project will add the touch screen support to Beagle board<br />
The following are the components that i am planning of using<br />
:*The LCD breakout board is http://www.sparkfun.com/commerce/product_info.php?products_id=8600<br />
:*The touch screen is http://www.sparkfun.com/commerce/product_info.php?products_id=8977<br />
:*The touch screen connector is http://www.sparkfun.com/commerce/product_info.php?products_id=9104<br />
<br />
Another option is buying a full LCD with touch screen option<br />
:*The product link is http://www.sparkfun.com/commerce/product_info.php?products_id=257.<br />
:*I would create a system and hardware like this video http://www.youtube.com/watch?v=foWnDZ3eQto&feature=related<br />
<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
<br />
* '''Expected results''': <br />
**Linux driver to add LCD with touch screen support<br />
**The breakout board(preferably single layered as it can be created at home)gerber for attaching with beagle which will be created using FreePcb(www.freepcb.com).You can see the photos of my RFID Based Access Control system project there.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
</font><br />
==== TUD:OS on Beagleboard ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/TUD%3AOS+on+the+Beagleboard/]<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Description''': <br />
** '''What the heck?''' The TUD:OS operating system is a L4 microkernel based operating system, with good real-time and security properties, developed at the TU Dresden. <br />
** '''Microkernel-based''': The microkernel approach allows it to to reduce the trusted computing base (the amount of code that has to be trusted) by running small trusted applications side by side with non-trusted applications, all as unprivileged user mode applications. Further, it is possible to run real-time applications side-by side with non real-time applications. Also device driver run in user-mode and thus a crash of a device driver will not lead to an whole system crash and in the best case the driver can be restarted and the system will keep on running.<br />
** '''Familiar Environment''': While offering the above mentioned vantages, TUD:OS still offers a familiar environment by the possibility to run one or more instances of L4Linux. L4Linux is a Linux port the Fiasco microkernel which is binary compatible to native Linux but runs in deprivilieged usermode.<br />
** '''What do we get from this project?''' ''Briefly: A fundament to build embedded [realtime] systems [with a exceptionally small trusted computing base].'' Further a possibility to run multiple virtualized linux instances on the beagleboard. A good documentation how to build such systems. And last but not least a (hopefully cool ;) demo showing that it acutally works , perhaps like the one found at [http://demo.tudos.org demo.tudos.org] (somewhat outdated). <br />
*'''Contact:''' dvogt[at]os[.]inf[.]tu-dresden[.]de ([[User:Dvogt|Dvogt]])<br />
</font><br />
==== picoFlamingo ====<br />
<font color="#C0C0C0"><br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
</font><br />
==== Accelerated USB Graphics Adapter ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
</font><br />
==== Apertus open source/hardware cinema camera ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
</font><br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== BeagleSCI ====<br />
<br />
* '''Title''': BeagleSCI<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': BeagleSCI aims to use the BeagleBoard as a platform for scientific computation and instrumentation (SCI).<br />
* '''Homepage''': http://sourceforge.net/projects/beaglesci/<br />
* '''Expected results''': As a start, the initial goal would be to use the BeagleBoard as a logger of a seismometer. This would involve interfacing a 12-bit ADC chip and writing a driver for it. Data read from the instrument can be displayed by the BeagleBoard through a monitor or send the data to a remote computer via RS-232/RS-485.<br />
* '''Contact''': sherdon dot uy at gmail dot com<br />
<br />
==== Pictouch====<br />
<br />
* '''Title''': Pictouch<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Mobile and Projected Touch user interface<br />
* '''Homepage''': not yet<br />
* '''Expected results''': The goal is to build a new Tactile Interface system based on beagleboard and the DLP picoprojector. Currently, the project make the use of JavaFX to support Multi-Touch (and Multi-User) and of 2 basic webcam, in order to build a low cost gesture recognition system.In the classical case of use, the interface is projected onto a classical table.Users interact directly with their fingers on the projected interface.<br />
<br />
* '''Contact''': maxired at gmail dot com<br />
<br />
==== Fotogenic ====<br />
<br />
* '''Title''': Fotogenic<br />
* '''beagleboard.org project''': not yet - but project is already in progress<br />
* '''Short project description''': Bring network connectivity to plain old vanilla picture frames<br />
* '''Homepage''': www.sourceforge.net/projects/fotogenic<br />
* '''Expected results''': This project brings wired, WiFi and bluetooth connectivity and management to plain old picture frames. The project selects pictures from your photo database, resizes them for the picture frame's native resolution, embellishes them with web and home automation information sources before presenting them to the photo frame by making the BeagleBoard appear to be a USB pendrive...! Right click a photo on your laptop and select "Show on picture frame now!". Manage many photo frames centrally and much much more... Includes "wave gesture" interface to wave over picture frame for next photo... Also works with Eye-Fi SD memory cards to make photos appear on photoframe moments after taken...!!<br />
* '''Contact''': horse_dung at hotmail dot com<br />
<br />
==== Beagle Synth ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Synth<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-synth/<br />
* '''Short project description''': DSP MIDI synthesizer based around the beagleboard<br />
* '''Homepage''': http://code.google.com/p/beagle-synth/<br />
* '''Expected results''': Initially a basic MIDI controllable subtractive synth with 3 oscillators, low pass, high pass, and band pass filters, 2 envelope generators, and 2 LFO's. From there the intention is to add some type of control surface (either physical controls or perhaps a touch screen), some effects (phaser, distortion, reverb), and perhaps other types of synthesis options (FM, additive, maybe some type of patchibility). The result will be a fully featured MIDI instrument comparable to many commercial synths. This project is to be a learning experience with the intention of exploring using DSP for music synthesis. As of now this project is in the concept phase and is still in need of hardware for implementation.<br />
* '''Contact''': dpanseri [at] gmail [dot] com<br />
</font><br />
==== USB Scope ====<br />
<font color="#C0C0C0"><br />
* '''Title''': USB Scope<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': USB diagnostics to aid driver development for USB devices<br />
* '''Homepage''': none yet<br />
* '''Expected results''': This project will use the BeagleBoard as a USB proxy between any USB device and a host computer connected via the OTG port. This will allow the BeagleBoard to snoop, compare and modify USB traffic which can assist both commercial and open source development of drivers and diagnosis of issues. Other ideas could be examined such as a USB-TCP/IP-USB proxy to remotely connect USB devices. Open or free software equivalents exist, but hardware monitoring devices only exist as expensive commercial products. <br />
* '''Contact''': horse_dung at hotmail dot com<br />
</font><br />
==== Irrlicht ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Irrlicht<br />
* '''beagleboard.org project''': no<br />
* '''Short project description''': A fully-featured 3D render engine with ogl-es 1.x and 2.x support<br />
* '''Homepage''': http://irrlicht.sourceforge.net<br />
* '''Expected results''': <br />
** Hardware optimized core routines for optimal OMAP support<br />
** Support of ogl-es 2.x (the 1.x driver is reportedly running on the board)<br />
** Full framerate (60FPS) rendering of q3 alike scenes<br />
** The engine also offers SW rendering, allowing to target for other OMAPs as well, but would require more tweaking in the render optimizations<br />
** We can port one of the demo apps from our apps contest to show the full applicability <br />
* '''Contact''': hybrid[at]users[.]sourceforge[.]net<br />
</font><br />
==== BeagleHam ====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleHam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleham/<br />
* '''Short project description''': Bringing the BeagleBoard to the world of Amateur Radio.<br />
* '''Homepage''': None at this time.<br />
* '''Expected results''': <br />
** AX.25 Packet support, enabling full APRS support (operating as tracker, fill-in or permanent digipeater, and KISS TNC).<br />
** Encode and decode of HF digital modes, using DSP functionality where possible:<br />
*** BPSK, QPSK 31/63/125/250<br />
*** Olivia<br />
*** WSPR/MEPT<br />
*** MT-63<br />
*** DominoEX<br />
*** RTTY<br />
*** Throb<br />
** CW encode and decode<br />
** Capability to display on small (sub-6-inch) screens for mobile and field use<br />
* '''Contact''': xunil at xunil dot net<br />
</font><br />
==== TCF Agent Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TCF Agent Port<br />
* '''beagleboard.org project''': http://beagleboard.org/project/TCF+agent+port/<br />
* '''Short project description''': Support remote debugging and run control by porting the Eclipse Target Communication Framework (TCF) Agent to beagleboard+Ångström<br />
* '''Homepage''': Not yet<br />
* '''Expected results''': <br />
** A working port of the TCF "Reference implementation of a target agent" to BB/Ångström<br />
** screenshots and information on the TCF: http://dsdp.eclipse.org/dsdp/tm/tcf/docs/TCF%20Project.html<br />
** TCF agent running on a beagle board would provide the host computer following capabilities (see link above for details):<br />
*** Run control of userspace processes and threads<br />
*** Breakpoints<br />
*** Registers<br />
*** Stack traces<br />
*** Memory access<br />
*** Processes - list, start, stop, attach and debug.<br />
*** Sys monitor - CPU and memory utilization info<br />
*** File System - browsing and copying files<br />
<br />
* '''Contact''': terrella at terrella dot mobi<br />
</font><br />
<br />
==== RT-Beagle ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Real-Time patch for the beagleboard<br />
* '''beagleboard.org project''': http://beagleboard.org/project/omap-rt-patch/<br />
* '''Short project description''': Porting the linux rt patch to the omap linux kernel and providing testing applications. This project is developed at the INSA of Rennes (Engineer school in FRANCE) to allow next year Real Time course to be run on the BeagleBoard.<br />
* '''Homepage''': http://sourceforge.net/projects/linux-omap-rt-p/<br />
* '''Expected results''': <br />
** Porting the linux real-time patch (http://www.kernel.org/pub/linux/kernel/projects/rt/) to the linux omap kernel and providing recipes for openembedded allowing to build the patched kernel.<br />
** Providing testing applications allowing to evaluate the real-time behavior of the platform<br />
** Providing applications that could be used for teaching purposes<br />
* '''Current Results''':<br />
** patch-2.6.29.5-rt21 was modified to successfully patch linux-omap-2.6.29 (modified patch available through project page).<br />
** kernel compile and boots with minor error concerning two IRQs (72,73) <br />
* '''Contact''': piat_jonathan[at]users[.]sourceforge[.]net<br />
</font><br />
==== MyGTee ====<br />
<br />
* '''Title''': MyGTee <br />
* '''beagleboard.org project''': http://beagleboard.org/project/MyGTee/<br />
* '''Short project description''': A handheld device exploiting all the OMAP3530 capabilities<br />
* '''Homepage''': http://enco2009.webs.com/<br />
* '''Expected results''': I stage: building a prototype hopefully based on the BeagleBoard; II stage: the actual handheld that may allow for further software opensource development<br />
* '''Contact''': doctorc[at]o2[.]pl<br />
<br />
==== ONAS ====<br />
<font color="#C0C0C0"><br />
* '''Title''': ONAS<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ONAS/<br />
* '''Short project description''': An open source NAS<br />
* '''Homepage''': http://code.google.com/p/onas/<br />
* '''Expected results''': Development of a full featured NAS running Linux <br />
* '''Contact''': electrogeek[at]wp[.]pl<br />
</font><br />
==== Handheld Lab ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Handheld Lab<br />
* '''beagleboard.org project''': http://beagleboard.org/project/handheld_lab/<br />
* '''Short project description''': The goal of this project is to create a little, yet powerful, handheld laboratory with as much functions as possible. It will be easy of use thanks to the integrated LCD touchscreen and nice GUI.<br />
* '''Homepage''': http://www.mipixel.com/handheld-lab<br />
* '''Expected results''': First result will be working LCD showing oscilloscope. After this spectrum analyzer and logic analyzer. All this stuff will need extra electronics.<br />
* '''Contact''': fran[at]mipixel[.]com<br />
</font><br />
====Beagle Tourister using Hand Gestures and HMD on Beagleboard ====<br />
* '''Title''': Travel Buddy using Hand Gestures and HMD on Beagleboard <br />
* '''beagleboard.org project''': http://beagleboard.org/project/travelbuddy/<br />
* '''Short project description''': A device which will assist a traveller/tourist giving them mobile computing power and the following features: <br />
*1) A Compact HMD (Head mountable device) instead of the conventional projector (Problem of Projection Surface while on the move) <br />
*2) Use of standard cam for Image processing i.e recognising simple hand gestures to interact with the GUI seen in the HMD <br />
*3) Scanning of images (street name plates/hotel names/landmarks/book titles as indicated by user) to provide useful feedback data(directions/reviews/record *videos/take pictures/information) <br />
*4) Mode for Speech2text and text2speech conversion for inter-language communication. <br />
* '''Homepage''': Under Construction <br />
* '''Expected results''':<br />
*1) V-NAV: Virtual Navigator - Streaming Google Street View data according to your current location <br />
*2) ULA: Universal Language Assistant: Scan any text by positioning your fingers and the the scanned text is translated to your default language.<br />
*3) Say goodbye to the camera/ cell phone/tourguide/maps. Good platform for further expansion to include newer features. <br />
*4) Virtual Reality Mapping to the Real World: Overlay of relevant information on the on the HMD.<br />
* '''Contact''': sisilmet2000 at gmail dot com , dhairyadand at gmail dot com <br />
<br />
==== Happiness Device for Cerebral Palsy Kids ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Happiness Device for Cerebral Palsy Kids<br />
* '''beagleboard.org project''': http://beagleboard.org/project/HappyCP/<br />
* '''Project description''':<br />
It is an attempt to bridge the gap in communication between those affected by cerebral palsy and those not. The focus of the problem has been on facilitating communication in the emotional domain since this remains a completely unaddressed area. It is possible that some of the ensuing product functions will additionally facilitate communication problems in the physical domain, as well as be physically therapeutic for the cerebral palsy child in the manner of a comfort blanket. The basis of the product is an Emotional Language Protocol (elp) that works as its interface and is driven by four concurrently acting features - color, shape, motion and sound - corresponding to the sensory modes of the visual, the tactile and the aural. The interaction itself is facilitated by touch of varying intensities including pressing, thumping, squeezing, turning and, of course, by touching. Those not affected by cerebral palsy may additionally use speech along with touch. The interplay of this interface and interaction allows the cerebral palsy child to express his different needs and emotions to another person cerebral palsy or otherwise.Also, the device's mobile connectivity allows its users to communicate with someone far away<br />
* '''Homepage''': http://www.dhairyadand.com/Home/jellow<br />
* '''Expected results''': I have uploaded the basic designs at the above link to the homepage. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangable memory sticks which allow two or more device's to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.<br />
* '''Contact''': dhairya AT cyber DOT law DOT harvard DOT edu<br />
</font><br />
==== UPnP/DLNA AV client renderer and transcoding server ====<br />
<br />
* '''Title''': UPnP/DLNA AV client renderer and transcoding server <br />
* '''beagleboard.org project''': http://beagleboard.org/project/UPnP_AV_MediaServer/<br />
* '''Project description''':<br />
Enable the beagleboard as a fully featured UPnP AV rendering client, and as a UPnP AV (transcoding!) server. <br />
<br />
Work will be based upon vlc+djmount (for client side) and fuppes (for server side). Server side transcoding to be hardware assisted via hardware DSP codecs. Initial target for the transcoding server on beagleboard is to drive the Neuros OSD (an underpowered DM320-based device). <br />
<br />
* '''Homepage''': Will be an extension and complement to my work on the DM320-based Nueros OSD: http://osd.oddren.com<br />
* '''Expected results''': Beagleboard can act as either as rendering UPnP client, or as a transcoding UPnP server to drive weaker client devices like the Neuros OSD with their preferred streaming format.<br />
* '''Contact''': bmcarnes_beagleboard AT oddren DOT com<br />
<br />
==== Beagle-Traveler====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Traveler<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-traveler/<br />
* '''Short project description''': Automotive media and vehicle management controller. Comparable to BeaglesRide.org (no activity).<br />
* '''Homepage''': http://beagletraveler.wordpress.com<br />
* '''Expected results''': intergrate major automotive subsystem management and communications. Improved vehicle notification of subsystems status'. <br />
* '''Contact''': wheeler dawt larry (at) gmail dawt com<br />
**Please send sponsored information and project questions to the email address above.<br />
</font><br />
==== OMAP Emulator====<br />
<font color="#C0C0C0"><br />
* '''Title''': OMAP Emulator<br />
* '''beagleboard.org project''': http://beagleboard.org/project/OMAP+Emulator/<br />
* '''Short project description''': Emulator for rapid prototyping<br />
* '''Homepage''': no homepage yet<br />
* '''Expected results''': Open source implementation of an IDE environment for rapid code development and testing<br />
* '''Contact''': hwtester (at) myway (dot) com<br />
</font><br />
==== eLazarillo====<br />
<font color="#C0C0C0"><br />
[[File:Elazarillo.png|thumb|300px|eLazarillo sketch]]<br />
* '''Title''': eLazarillo (electronic helper for blind persons)<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': Gadget designed for blind persons or with vision problems. <br />
* '''Homepage''': http://elazarillo.blogspot.com/<br />
* '''Full description''':<br />
Lazarillo is a spanish word that means "blind person's guide" and this is the objetive of this project. This gadget will have features like reading non-braille books, assist to blind persons to get places like markets, drugstores, etc. (based on previous GPS tagged places and using google maps). Other functionalities will be spoken weather information, personal calendar, function keys, etc.<br />
<br />
The gadget will be voice controlled, will need GPS, 3G modem, camera and battery. Size will be 4x5 inches (approx.).<br />
<br />
* '''Expected results''': Open source hardware and software platform for blind persons gadgets. My device will have most of the above described.<br />
* '''Contact''': villanuevaborrego (at) gmail (dot) com<br />
</font><br />
<br />
==== QEMUonARM ====<br />
<font color="#C0C0C0"><br />
* '''Title''': QEMUonARM<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': QEMU on ARM. <br />
* '''Homepage''': http://elinux.org/QEMUonARM<br />
* '''Full description''':<br />
This project aims at resurrect and improve QEMU on ARM hosts.<br />
For more information: http://www.qemu.org<br />
* '''Expected results''': Demonstrate user mode and system mode examples, such as running some simple Linux applications or booting an i386 OS. If there's enough interest, making Wine and QEMU work together might be considered.<br />
* '''Contact''': laurent.desnogues (at) gmail (dot) com<br />
</font><br />
<br />
==== Math-NEON ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Math-NEON<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Math-Neon/<br />
* '''Short project description''': NEON optimized cmath like library <br />
* '''Homepage''': http://code.google.com/p/math-neon/<br />
* '''Full description''': <br />
This project aims to overcome the shortcomings of the VFP-lite based cmath implementation. It is targeted at games and other high performance low accuracy applications. The project will consist of C functions, for PC development, which mirror (as near as possible) the hand optimized NEON assembly routines. In order to gain the best performance i will make use of the NEON Unit's Integer and Floating point pipelines in conjunction with minimizing branches (where they cannot be precalculated on the ARM) and creating new algorithms. <br />
* '''Expected results''': Fast approximate implementations of trigonometric, exponential, logarithmic and power functions for use with future Beagleboard / Cortex A8 based projects. <br />
* '''Contact''': lachlan.ts (at) gmail (dot) com<br />
</font><br />
==== Medical Notebook ====<br />
* '''Title''': Medical Notebook<br />
* '''beagleboard.org project''': yet to register<br />
* '''Short project description''': The Ultimate Notebook for Hospitals<br />
* '''Homepage''': coming soon...<br />
* '''Full description''': <br />
A handheld device to improve hospital functionality/efficiency. To add intelligence to the mundane hospital softwares. <br />
Features are:<br />
<br />
View and Update Patient status, medical history, medication details, appointments, billing - stored as a database in central server.<br />
<br />
Touchscreen with handwriting recognition & hand support pad for data entry.<br />
<br />
Light Weight < 1kg<br />
<br />
VoIP, video conferencing/recording for consulting other doctors <br />
<br />
Wifi, bluetooth & ethernet support <br />
<br />
Docking station for charging<br />
<br />
Support for usb keyboard & mouse on docking station<br />
<br />
* '''Expected results''': Improved, efficient & intelligent patient care in hospitals<br />
<br />
* '''Contact''': noorshaheen.m.n (at) gmail (dot) com<br />
<br />
==== EGLIBC ====<br />
<font color="#C0C0C0"><br />
* '''Title''': EGLIBC support<br />
* '''beagleboard.org project''':<br />
* '''Short project description''': Use EGLIBC as system library for beagleboard project in OpenEmbedded.<br />
* '''Homepage''': www.eglibc.org<br />
* '''Expected results''': EGLIBC becomes the default system library on the distribution and can be used instead of glibc<br />
with the newly added configurability support to selec/deselect features. I would also like to make it compile as pure thumb2<br />
code.<br />
* '''Contact''': raj[.]khem[at]gmail[.]com<br />
</font><br />
==== miniECG ====<br />
* '''Title''': miniECG<br />
* '''beagleboard.org project''': http://beagleboard.org/project/miniECG/<br />
* '''Short project description''': Little device that cares for heart when heart patients are busy carrying out their duties<br />
* '''Homepage''': http://code.google.com/p/miniecg/<br />
* '''Full description''': <br />
miniECG is a wearable device that monitors ECG signal, processes it and can transmit it over wireless internet connection to doctors clinic. It has following features are:<br />
(all the hardware components required are available through digikey.com including LCD and touch screen)<br />
<br />
1) It has touch screen that enable user to give commands like store, display old ECG data, transmit, etc. Device also has a LCD display which is used to display ECG waveform.<br />
<br />
2) A tiny server runs on device that enables doctor to login to device any time he wants and extract patients ECG data. The device is connected to internet through wireless USB dongle. <br />
<br />
3) DSP core does the job of compressing ECG signal, doing PCA (principal component analysis) on ECG signal, detect QRS, measuring heart beats and digital filtering.<br />
<br />
4) DSP along with Cortex A8 runs algorithm that determines critical state of heart by doing feature extraction over ECG signals. It also does PCA over set of stored ECG signal to obtain information about any substantial drift in normal functionality of heart. <br />
<br />
5) Wireless USB dongle provides connectivity to internet and data is transmitted over internet as per schedule programmed into the device. ECG signal can also be streamed over internet using this dongle. <br />
<br />
6) Keyboard & mouse (USB) interface is provided for more flexibility and quick access. LCD monitor interface is also be provided. Key-board, mouse and LCD monitor interface will work only when device is powered by adaptor. For device powered by battery only input option is touch screen and only output option is LCD display.<br />
<br />
7) Device also has small software support to give reminder on when to consume which drug. The prescription of drug and its timing information is feed in as per doctors advice. (keyboard and mouse interface with miniECG can be of great advantage here)<br />
<br />
8) USB memory devices will be used to store ECG data.<br />
<br />
9) miniECG will be dual powered. It can be powered by adaptor as well as with rechargeable battery. <br />
<br />
Website link has block diagram of miniECG and also picture of ECG pre-amplifier which is already designed. In future all the source codes will be uploaded on the link as and when available.<br />
<br />
* '''Expected results''': a) Ability to login from remote PC onto miniECG and read data b) Should be able to send stored data or stream live ECG signal over internet c) Robust interface of LCD & touch screen with controller d) Data storage and retrieval from USB storage device e) Successful implementation of DSP algorithms for feature extraction, PCA, QRS detection, filtering and compression. f) As the whole device is battery powered, software & driver which are very specific to the desired application should only be installed & made working. Thus providing a low power system architecture. <br />
<br />
* '''Future Work''': Once the desire basic funtions of ECG storing, retrieval and transmitting is meet, miniECG can be programmed into miniPA (mini personal assistance) mainly targeting senior citizens. miniPA will have much advanced features that can help them elderly person in their day-to-day activity.<br />
* '''Contact''': mehta.nandish (at) gmail (dot) com<br />
<br />
<br />
==== remoteBillBoard ====<br />
* '''Title''': Remote Bill Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/remoteBillBoard/<br />
* '''Short project description''': Video bill boards, remotely controlled via web over a 3G modem<br />
* '''Homepage''': http://www.greensoftware.net/remoteBillBoard<br />
* '''Full description''': <br />
Play HD video on billboards, remotely manage the billboards, upload new advertisements, remove old ones etc..<br />
<br />
<br />
* '''Expected results''': <br />
a) 3g modem support, so flexiblity.<br />
b) a full working web based system<br />
<br />
* '''Future Work''':<br />
a) a more advanced desktop application to replaced the web based solution.<br />
<br />
* '''Contact''': ahmad.mushtaq (at) gmail (dot) com<br />
<br />
<br />
==== Turk ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Turk Platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Turk/<br />
* '''Short project description''': A wireless dynamically-mappable interface platform for small devices<br />
* '''Homepage''': http://www.turkinnovations.com/<br />
* '''Full Description''': Turk will be an open-source wireless interface platform that allows interfacing of small wireless (Zigbee or Wi-Fi enabled) devices through a dynamic mapping framework and web interface. Developers can implement their device's protocol easily through small user-space drivers called 'Gadgets' and host them on our server. The platform is then capable of automatically downloading and starting appropriate gadgets for new devices that are compatible with the basic Turk protocol. Gadgets reveal their services to the user and other gadgets through our growing library of data endpoint types (such as colors, URLs, booleans, xml strings) and user controls (like sliders, switches and color pickers), and can then be connected to each other through a themable web interface.<br />
<br />
* '''Expected results''': <br />
**A platform that allows developers to write simple user-space drivers that expose interfaces through XML-RPC<br />
**A web interface and remote configuration capabilities through a central server. <br />
**A simple and well-tested protocol and driver for a kernel-managed point-to-multipoint Zigbee network. <br />
**More hardware connectivity besides the Wi-Fi and Zigbee interfaces will hopefully be developed by collaborating with other beagleboard projects and developers.<br />
* '''Contact''': rob.odwyer [at] turkinnovations [dot] com<br />
</font><br />
==== BeagleWacom ====<br />
* '''Title''': Wacom Tablet driver for Beagle Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-wacom/<br />
* '''Short project description''': Linux drivers of wacom tablet ported for Beagle Board<br />
* '''Homepage''': <br />
* '''Full Description''': beagle-wacom will be port of linux drivers for configuring & running wacom tablets with the beagle board. The idea is to have support for wacom-components, so that they can be used by OEMs of beagleboard based products using linux as their OS<br />
<br />
* '''Expected results''': <br />
**easy integration of wacom tablet with Beagle Board. <br />
**OEMs of beagleboard based products using linux as their OS can integrate wacom-components in their product with minimal fuss<br />
* '''Contact''': najath [at] gmail [dot] com<br />
<br />
<br />
====hApplause====<br />
<font color="#C0C0C0"><br />
* '''Title''': hApplause<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Hardware Platform that You can use to play with Audio Synthesis<br />
* '''Homepage''': not yet<br />
* '''Description''': ''hApplause'' will be multi-functional flexible audio hardware platform. The goal is to make a tool that can allow to develop audio software and hardware (e.g. DSP synthesizers, FX units, hardware expansion boards, etc.). The concept is inspired by [http://www.chameleon.synth.net/ Chameleon] and [http://www.ucapps.de/ MIDIbox]. ''BeagleBoard'' will give ''Chameleon'' like software flexibility while planed hardware with ''Expansion Interface'' and ''Audio Multiplexer'' will give ''MIDIbox'' like hardware flexibility.<br />
*; Hardware features<br />
*: Audio Stereo In/Out<br />
*: MIDI In/Out/Thru<br />
*: General purpose USB port - function depends on user application<br />
*: General purpose SD/MMC Card (e.g. for user data storage) - function depends on user application<br />
*: Front panel interface (1U rack version) with:<br />
*:* LCD<br />
*:* Volume potentiometer<br />
*:* Headphones jack<br />
*:* Power switch with LED indicator<br />
*:* programmable rotary encoders (5 are planed)<br />
*:* programmable buttons and LEDs (12 are planed)<br />
*: Expansion Interface with audio signal buses (1-4 planed, depends on final implementation) and data/command bus (I2C and/or CAN)<br />
*: Audio Multiplexer for flexible routing of audio signal between ''BeagleBoard'', ''Audio In/Out'' and ''Expansion Interface''<br />
*: USB and RS232C for developers<br />
*; Software features<br />
*: All hardware will be fully accessible from ''BeagleBoard'' by API<br />
*: hApplause OS is planed (abstract layer over hardware, user program loading, self configuration on power on)<br />
* '''Expected results''':<br />
*# 19" 1U rackmount unit ready to play with.<br />
*# Libs and additional software for developers (at least API for hApplause's hardware)<br />
*# Example implementation of software synth<br />
*# Single size eurocard unit for 3U rack, like in [http://www.doepfer.de/a100e.htm Doepfer A-100 System] modules<br />
* '''Contact''': tawezik at gmail dot com<br />
</font><br />
==== BeagleLAB====<br />
* '''Title''': BeagleLAB<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleLAB/<br />
* '''Short project description''': BeagleLAB is an Embedded developer's workbench comprising of must-have hardware/software utilities.<br />
* '''Homepage''': http://code.google.com/p/beaglelab/<br />
* '''Expected results''': <br />
:* A PC free host providing a development environment based on beagle board (running ubuntu 9.04 or later)<br />
:* Host environment with software applications and hardware interfaces to substitute oscilloscope, multimeter & logic analyzers<br />
:* GNOME widgets (software apps) & Linux device drivers for capturing data,storing,comparing and visualization<br />
:* Legacy ports like the serial, parallel ports for device interfacing and control<br />
:* Making an embedded developer's life easier and workbench neater<br />
* '''Contact''': amarendermail[at]gmail[dot]com and saurabhg84[at]gmail[dot]com<br />
<br />
====PREEMPT_RT====<br />
<font color="#C0C0C0"><br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
</font><br />
<br />
====HDDM====<br />
<font color="#C0C0C0"><br />
* '''Title''': HDDM<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/HDDM/]<br />
* '''Short project description''': A multimedia system based on OMAP and linux.<br />
* '''Homepage''': Under construction<br />
* '''Expected results''': Beagleboard as a control center for home theatre system<br />
* '''Contact''': grover.ankur (at) gmail (dot) com<br />
<br />
Note from Dirk: Please see [http://www.syspire.de/node/3 Embedded Mediacenter], too (sorry, German only, use Google translate if needed).<br />
</font><br />
====BeagleVision====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleVision<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beaglevision/<br />
* '''Short project description''': An efficient object recognition framework <br />
* '''Homepage''': http://code.google.com/p/beaglevision/<br />
* '''Description''': BeagleVision will be a fast object recognition framework. The aim of the project is to have a hardware optimized implementation (utilising the DSP and NEON) of state-of-the-art local feature detectors and descriptors on the Beagle Board. BeagleVision will include [http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001018 our recent work] on efficient feature detectors and descriptors, other well-known algorithms (e.g. FAST corner detector and SURF), and efficient matching algorithms for very large datasets (>1M images).<br />
* '''Expected results''':<br />
:* An open source library for developers (a project hosted on code.google.com)<br />
:* A sample application for building recognition in a city scale dataset, to show how: to add new images to the dataset, to use it for location based services, and how to reduce the search time if a GPS is available to get geolocations<br />
:* A wiki for interested developers<br />
:* Reporting the running times of new algorithms on OMAP (as a benchmark) in scientific publications<br />
* '''Contact''': m.ebrahimi at ieee dot org<br />
</font><br />
====Beagle-Arduino hybrid robot====<br />
<br />
* '''Title''': Beagle-Arduino hybrid robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Beagle-Arduino+hybrid+robot/<br />
* '''Short project description''': A robot using a Beagleboard for high-level processing and Arduino for low-level control<br />
* '''Homepage''': http://mechomaniac.com/robots<br />
* '''Description''': The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:<br />
** image processing<br />
** artificial intelligence<br />
** speech synthesis<br />
** voice recognition<br />
** internet connectivity<br />
And an Arduino for low-level functions:<br />
** motor / servo control<br />
** sensor input & output<br />
** battery monitoring<br />
The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.<br />
* '''Expected results''':<br />
:* Easy physical interfacing to the Beagle without having to design and build special expansion boards<br />
:* Image processing using OpenCV with a USB webcam<br />
:* Speech synthesis and voice recognition<br />
* '''Contact''': tim at mechomaniac dot com<br />
<br />
====DJ Audio / Video Mixer====<br />
<font color="#C0C0C0"><br />
* '''Title''': DJ Audio / Video Mixer* '''Contact''': <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/djvideomixer/]<br />
* '''Description''': This is a small, Touch LCD controlled DJ Mixer, which not only is great as a nightclub tool for playing audio -not only reproducing music, actually '''''playing''''' with it-, but also has high end video playback capabilities, thus making it an all-round experience both for the DJ and the audience. It will bring all the experience of professional DJ mixers to users, while being portable, and which when coupled with either a normal projector, or even better, with a PicoProjector, makes a whole experience for audio and video playback in Discos, Bars, Lounges, to mention just a few possible applications. You can even use for your own parties, and it will rock!<br />
* '''Homepage''': [http://code.google.com/p/djvideomixer/]<br />
* '''Expected results''': <br />
** Audio playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Video playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Audio/Video synchronization, allowing song change, video change, etc.<br />
** High end, professional DJ-Mixer audio effects.<br />
** User interface based on LCD and with touchscreen capabilities.<br />
* '''Contact''': jaime_dot_aranguren_at_ieee_dot_org<br />
</font><br />
====schooldog====<br />
<font color="#C0C0C0"><br />
* '''Title''': schooldog<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/schooldog/]<br />
* '''Description''': The purpose is to make an ''off the shelf'' low cost schoolcomputer that can be used on various levels of education. It will be small so students can take it with them and the school just has to provide for input / output items. This way even people that cannot afford laptops can participate in the digital era or schools can provide a robust and good machine for studypurposes.<br />
* '''Homepage''': [http://schooldog.wickedmind.net]<br />
* '''Expected results''': <br />
** Educational linuxbased OS, from USB sticks and SD Cards.<br />
** more general use of BeagleBoard and more public awareness for the powerful small computer.<br />
** Affordable,individual and steady study enviroment<br />
<br />
* '''Contact''': wickedmind<br />
</font><br />
====Disko====<br />
<font color="#C0C0C0"><br />
[[File:Disko_logo.png|thumb|200px|UI Application Framework]]<br />
* '''Title''': Disko - UI Application Framework<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Disko/<br />
* '''Short project description''': Disko is a Linux-based toolkit to build touchscreen- and remote-controllable ui applications. It contains native OMAP framebuffer support and the media content is DSP-accelerated by GStreamer (TI-Codecs).<br />
* '''Homepage''': http://diskohq.org<br />
<br />
* '''Expected results''': Expected result is broad support of Disko by developers of user interfaces and applications for embedded devices.<br />
** SIP - IP telephony support delivered by pjsip and minisip <br />
** Gstreamer - to add an alternative to the xine library and to add the TI Codecs supplied for the DSP.<br />
** Webkit - the great embedded browser OWB of Pleyo (planned for Disko 1.7)<br />
** SVG - at least one SVG engine to have an alternative to Flash. Initial work has already been done at MadButterfly (planned for Disko 1.7) <br />
* '''Contact''': gmadaus [at] berlinux-solutions dot de or mspringer [at] berlinux-solutions dot de<br />
</font><br />
====FETCH====<br />
* '''Title''': FETCH - FPGA enabled Tool Contol Host<br />
* '''beagleboard.org project''': http://beagleboard.org/project/FETCH<br />
* '''Homepage''': No homepage yet<br />
* '''Short project description''': A host with a web interface for easy configuration and control of connected tools. The device may also be controlled through a PSTN network using DTMF tones. The BeagleBoard will act as the main server and will also be the host interface for the connected FPGA for the purpose of evaluating the IPs developed on the FPGA.<br />
* '''description : Phase 1 '''<br />
***1) Server capability -- all services (except VNC) to be launched through inetd so that they are started on an on-demand basis. <br />
***-- http server for configuration pages <br />
***-- ssh server (the ssh suite in particular including scp etc.. so that an ftp server can be avoided) for remote login. <br />
***-- bootp server for bootstaping machines on my home network. <br />
***-- VNC for GUI sessions :) <br />
***-- CUPS for network printing <br />
***-- NetHack server :D <br />
***2) Tool Control <br />
***-- The term "Tool Control" here refers to automation of connected tools and Phase 1 of the project will demonstrate this by automation in home (eg. computer, printer, scanner on/off --> (the contoller board with the relays is complete :) ), these devices may be contolled over the internet or PSTN network ) The system will also be hooked to the home electrical network that will enable control over home appliances. A special mode called " Home Alone" will switch on/off lights randomly when no one is at home to give the illusion that the house is occupied ( and hence protect from thefts ;) ). The current relay boards developed use a UART (for RS232 protocol) for control of the equipment but it is planned to use the CAN interface (under developement ) so that longer distances can be covered. <br />
***3) The BeagleBoard will act as a host interfacefor a Nexys2 Xilinx FPGA board and will be used to evaluate the IPs deployed on it. This feature is sort of a tester for the FPGA. <br />
**'''Phase 2 ''' ( only after Phase 1 is completely functional :) ) <br />
***1) CAN interface for the controller nodes replacing the RS232 connections<br />
***2) mgetty (for faxes) and asterisk (VOIP) may be added to the server.<br />
* ''' Contact : ''' akshat dot g dot gupta [at] gmail dot com<br />
<br />
==== ESITeam====<br />
<font color="#C0C0C0"><br />
* '''Title''': ESITeam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ESITeam/<br />
* '''Short project description''': It's a robotic soccer team with vision and intelligence distributed through the use of wireless communication (Zigbee) between robots and PC.<br />
* '''Expected results''': The expected results would have a running and competitive team for the RoboCup's championship this year.<br />
<br />
* '''Contact''': registrosvmora at gmail dot com<br />
</font><br />
==== PupLC====<br />
* '''Title''': PupLC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/PupLC/<br />
* '''Short project description''':Open source control of PLC operated equipment.<br />
* '''Homepage''': No homepage yet<br />
* '''Expected results''': <br />
:*PupLC will be an open source PLC controller. The user will be able to control the PLC's autonomously or by direct control. The direct method will allow the user to change equipment status using a touch screen lcd. The PupLC will control all aspects of the operating equipmet (ie. setpoints, red-hand settings, shutdowns, etc.) Additionally, 24-hours of accumulated system data will be saved to disk and can be accessed via ftp for analysis off-site.<br />
* '''Contact''': alcpo729[at]tds[dot]net<br />
<br />
====Speed-Reader====<br />
* '''Title''': Speed-Reader<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Speed-Reader/<br />
* '''Short project description''': Speed-Reader is an audio book reader that gives the listener control of the speaker rate.<br />
* '''Homepage''': http://www.nerd1951.com/?page_id=72<br />
* '''Description''': Speed reader allows an audio book to be played back with faster or slower speaker rates. A user interface gives the listener realtime control of the speaker rate. Speed-Reader uses digital speech signal processing to accomplish low distortion timescale modification of speech in real time. Timescale modification of speech is accomplished by selectively repeating segments of speech to slow down the speaker rate or deleting selected speech segments to speed up the speaker rate. Digital signal processing is used to determine which speech segments are candidates for repetition or deletion.<br />
* '''Expected results''':<br />
***--Realtime (during playback) timescale modification of digitized speech using the C64++ DSP<br />
***--Initially read digitized speech from the SD card interface<br />
***--Audio output using the Beagleboard stereo out<br />
***--Initially user interface provided via RS-232 interface<br />
* '''Contact''': harvey dot sugar at nerd1951 dot com<br />
<br />
<br />
====DVB-T Receiver====<br />
* '''Title''': DVB-T Receiver<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': The DVB-T Receiver project aims to implement a fully tunable DVB-T Receiver on the Beagle Board.<br />
* '''Homepage''': Will be launched in the near future (at blog.arsln.org)<br />
* '''Description''': The DVB-T receiver is a senior graduation project that has to be completed in one year (until Summer 2010). It will be a fully tunable DVB-T receiver. It will compatible to receive digital terrestrial TV & radio stations. The goal is to show the capabilities of the Beagle Board and build a DVB-T system from the scratch. The input will be through a ADC daughter-board that is plugged to the USB port. The output will be via the USB port(for portable devices i.e Netbook) or DVI-D. <br />
* '''Expected results''':<br />
***--Capturing broadcast signals(DVB-T) and convert them to discrete time signals<br />
***--Demodulate and encode the incoming signal<br />
***--Video output using the Beagleboard's DVI-D port or via the USB port for portable devices<br />
* '''Contact''': ftharsln at gmail dot com , sulaya05 at gmail dot com<br />
</font><br />
<br />
====ArchMobile: ArchLinux ARM Port====<br />
<br />
* '''Title''': ArchMobile<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/AM/ AM]<br />
* '''Short project description''': ARM Port of the x86-Linux Distribution ArchLinux<br />
* '''Homepage''': [http://www.archmobile.org ArchMobile]<br />
* '''Expected results''': Fully working ArchLinux with X and all other features.<br />
* '''Contact''': rotter.manuel@gmail.com or naeg on Freenode<br />
<br />
==== MythBeagle ====<br />
<br />
* '''Title''': MythBeagle<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': MythBeagle aims at bringing MythTV to the beagle; both frontend and backend, including plugins (as far as possible)<br />
* '''Homepage''': not yet; <br />
* '''Expected results''': <br />
** OE recipes for mythtv 0.22, mythplugins 0.22 and whatever might be needed to get things going (including bringing required recipes to the latest version where needed/possible)<br />
** An image for SD card to allow easy install<br />
** some additional configuration notes (configuring MythTV is somewhat a pain...)<br />
** setup should also allow using the beagle only as frontend or backend<br />
* '''Status''': mysql5 recipe has been created (mythtv 0.22 won't use mysql4); recipes for mythtv near completion;<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== Homebrew SmartPhone ====<br />
<br />
* '''Title''': HomeBrewSmartPhone<br />
* '''beagleboard.org project''': http://beagleboard.org/projects/hbp<br />
* '''Short project description''': HomeBrewSmartPhone is a project to use the beagleboard to create a community-buildable mobile phone that is powerful enough to also run as a Desktop PC.<br />
* '''Homepage''': http://lkcl.net/reports/hbp <br />
* '''Expected results''': <br />
*** A device capable of Digital Voice as well as Data / Internet Access.<br />
*** A device capable of shutting down into low-power mode and successfully resuming on incoming calls.<br />
*** RF-protected audio circuits that don't have howling feedback from the 3G/GSM Radio module.<br />
*** Full disclosure of all build components (schematics, BOM) under free software licenses.<br />
*** Full documentation of all hardware interconnections<br />
*** Creation of a <b>basic</b> demonstration image that will allow other software developers to participate very early on<br />
*** Addition to the http://handhelds.org site for developers to create GUI-based distros<br />
* '''Contact''': lkcl@lkcl.net or use http://lkcl.net contact box<br />
<br />
==== XBMC ARM Port ====<br />
<br />
* '''Title''': XBMC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/XBMC/<br />
* '''Short project description''': XBMC Is a full-feature home-theater application that works on a variety of platforms and operating systems<br />
* '''Homepage''': http://xbmc.org<br />
* '''Expected results''': <br />
*** Feature parity with XBMC x86 and ppc<br />
*** Usage of OpenGL ES 2.0<br />
* '''Contact''': Cory Fields: theuni @at@ xbmc .dot. org<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====PREEMPT_RT====<br />
<br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* To follow up on shipping details, contact ''beagleship at list.ti.com''.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=14475BeagleBoard/contest2009-10-31T11:11:51Z<p>FransMeulenbroeks: /* Approved projects */ aded MythBeagle to the list</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
If your project is listed as a winner and you haven't received your board, check with ''beagleship at list.ti.com''.<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Accelerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]</font><br />
|<font color="#C0C0C0">Week 21</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle Synth |Beagle Synth]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#USB Scope |USB Scope]]</font><br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Irrlicht|Irrlicht]]<br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleHam|BeagleHam]]</font><br />
|<font color="#C0C0C0">Week 24</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<font color="#C0C0C0">Week 25</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Handheld_Lab|Handheld Lab]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TCF_Agent_Port|TCF Agent Port]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Traveler|Beagle-Traveler]]</font><br />
|<font color="#C0C0C0">Week 27</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#OMAP Emulator|OMAP Emulator]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#QEMUonARM|QEMUonARM]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#EGLIBC|EGLIBC Support]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#RT-Beagle|RT-Beagle]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ONAS|ONAS]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Math-NEON|Math-NEON]]<br />
|<font color="#C0C0C0">Week 32<br />
|<font color="#C0C0C0">5 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Happiness_Device_for_Cerebral_Palsy_Kids|Device for Cerebral Palsy Kids]]</font><br />
|<font color="#C0C0C0">Week 32</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Turk|Turk Platform]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#hApplause|hApplause]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#eLazarillo|eLazarillo]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">1 vote</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#PREEMPT_RT|PREEMPT_RT]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#HDDM|HDDM]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleVision|BeagleVision]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#DJ Audio / Video Mixer|DJ Audio / Video Mixer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#schooldog|An individual lowcost schoolcomputer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Disko|Disko - UI Application Framework]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ESITeam|ESITeam]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#DVB-T_Receiver|DVB-T_Receiver]]<br />
|Week 43<br />
|8 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#UPnP.2FDLNA_AV_client_renderer_and_transcoding_server|UPnP/DLNA AV client renderer and transcoding server]]<br />
|Week 43<br />
|2 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Touchscreen_LCD_support| Touchscreen LCD support]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleSCI |BeagleSCI]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Pictouch|Pictouch]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Fotogenic |Fotogenic]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyGTee|MyGTee handheld]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Tourister_using_Hand_Gestures_and_HMD_on_Beagleboard|Beagle Tourister]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Medical Notebook|Medical Notebook]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#miniECG|miniECG]]<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#remoteBillBoard|Remote Bill Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleWacom|Wacom Tablet driver for Beagle Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleLAB|BeagleLAB]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Arduino_hybrid_robot|Beagle-Arduino hybrid robot]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FETCH|FETCH]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|-<br />
||[[BeagleBoard/contest#PupLC|PupLC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#Speed-Reader|Speed-Reader]]<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#ArchMobile:_ArchLinux_ARM_Port|ArchMobile]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#MythBeagle|MythBeagle]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects with the most votes will be approved. The plan is to have final decision every Friday morning.<br />
<br />
==== Revolt 2405====<br />
<font color="#C0C0C0"><br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Revolt2405/<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
</font><br />
==== Touchscreen LCD support ====<br />
<br />
* '''Title''': Touchscreen LCD support <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The project will add the touch screen support to Beagle board<br />
The following are the components that i am planning of using<br />
:*The LCD breakout board is http://www.sparkfun.com/commerce/product_info.php?products_id=8600<br />
:*The touch screen is http://www.sparkfun.com/commerce/product_info.php?products_id=8977<br />
:*The touch screen connector is http://www.sparkfun.com/commerce/product_info.php?products_id=9104<br />
<br />
Another option is buying a full LCD with touch screen option<br />
:*The product link is http://www.sparkfun.com/commerce/product_info.php?products_id=257.<br />
:*I would create a system and hardware like this video http://www.youtube.com/watch?v=foWnDZ3eQto&feature=related<br />
<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
<br />
* '''Expected results''': <br />
**Linux driver to add LCD with touch screen support<br />
**The breakout board(preferably single layered as it can be created at home)gerber for attaching with beagle which will be created using FreePcb(www.freepcb.com).You can see the photos of my RFID Based Access Control system project there.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
</font><br />
==== TUD:OS on Beagleboard ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/TUD%3AOS+on+the+Beagleboard/]<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Description''': <br />
** '''What the heck?''' The TUD:OS operating system is a L4 microkernel based operating system, with good real-time and security properties, developed at the TU Dresden. <br />
** '''Microkernel-based''': The microkernel approach allows it to to reduce the trusted computing base (the amount of code that has to be trusted) by running small trusted applications side by side with non-trusted applications, all as unprivileged user mode applications. Further, it is possible to run real-time applications side-by side with non real-time applications. Also device driver run in user-mode and thus a crash of a device driver will not lead to an whole system crash and in the best case the driver can be restarted and the system will keep on running.<br />
** '''Familiar Environment''': While offering the above mentioned vantages, TUD:OS still offers a familiar environment by the possibility to run one or more instances of L4Linux. L4Linux is a Linux port the Fiasco microkernel which is binary compatible to native Linux but runs in deprivilieged usermode.<br />
** '''What do we get from this project?''' ''Briefly: A fundament to build embedded [realtime] systems [with a exceptionally small trusted computing base].'' Further a possibility to run multiple virtualized linux instances on the beagleboard. A good documentation how to build such systems. And last but not least a (hopefully cool ;) demo showing that it acutally works , perhaps like the one found at [http://demo.tudos.org demo.tudos.org] (somewhat outdated). <br />
*'''Contact:''' dvogt[at]os[.]inf[.]tu-dresden[.]de ([[User:Dvogt|Dvogt]])<br />
</font><br />
==== picoFlamingo ====<br />
<font color="#C0C0C0"><br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
</font><br />
==== Accelerated USB Graphics Adapter ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
</font><br />
==== Apertus open source/hardware cinema camera ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
</font><br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== BeagleSCI ====<br />
<br />
* '''Title''': BeagleSCI<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': BeagleSCI aims to use the BeagleBoard as a platform for scientific computation and instrumentation (SCI).<br />
* '''Homepage''': http://sourceforge.net/projects/beaglesci/<br />
* '''Expected results''': As a start, the initial goal would be to use the BeagleBoard as a logger of a seismometer. This would involve interfacing a 12-bit ADC chip and writing a driver for it. Data read from the instrument can be displayed by the BeagleBoard through a monitor or send the data to a remote computer via RS-232/RS-485.<br />
* '''Contact''': sherdon dot uy at gmail dot com<br />
<br />
==== Pictouch====<br />
<br />
* '''Title''': Pictouch<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Mobile and Projected Touch user interface<br />
* '''Homepage''': not yet<br />
* '''Expected results''': The goal is to build a new Tactile Interface system based on beagleboard and the DLP picoprojector. Currently, the project make the use of JavaFX to support Multi-Touch (and Multi-User) and of 2 basic webcam, in order to build a low cost gesture recognition system.In the classical case of use, the interface is projected onto a classical table.Users interact directly with their fingers on the projected interface.<br />
<br />
* '''Contact''': maxired at gmail dot com<br />
<br />
==== Fotogenic ====<br />
<br />
* '''Title''': Fotogenic<br />
* '''beagleboard.org project''': not yet - but project is already in progress<br />
* '''Short project description''': Bring network connectivity to plain old vanilla picture frames<br />
* '''Homepage''': www.sourceforge.net/projects/fotogenic<br />
* '''Expected results''': This project brings wired, WiFi and bluetooth connectivity and management to plain old picture frames. The project selects pictures from your photo database, resizes them for the picture frame's native resolution, embellishes them with web and home automation information sources before presenting them to the photo frame by making the BeagleBoard appear to be a USB pendrive...! Right click a photo on your laptop and select "Show on picture frame now!". Manage many photo frames centrally and much much more... Includes "wave gesture" interface to wave over picture frame for next photo... Also works with Eye-Fi SD memory cards to make photos appear on photoframe moments after taken...!!<br />
* '''Contact''': horse_dung at hotmail dot com<br />
<br />
==== Beagle Synth ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Synth<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-synth/<br />
* '''Short project description''': DSP MIDI synthesizer based around the beagleboard<br />
* '''Homepage''': http://code.google.com/p/beagle-synth/<br />
* '''Expected results''': Initially a basic MIDI controllable subtractive synth with 3 oscillators, low pass, high pass, and band pass filters, 2 envelope generators, and 2 LFO's. From there the intention is to add some type of control surface (either physical controls or perhaps a touch screen), some effects (phaser, distortion, reverb), and perhaps other types of synthesis options (FM, additive, maybe some type of patchibility). The result will be a fully featured MIDI instrument comparable to many commercial synths. This project is to be a learning experience with the intention of exploring using DSP for music synthesis. As of now this project is in the concept phase and is still in need of hardware for implementation.<br />
* '''Contact''': dpanseri [at] gmail [dot] com<br />
</font><br />
==== USB Scope ====<br />
<font color="#C0C0C0"><br />
* '''Title''': USB Scope<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': USB diagnostics to aid driver development for USB devices<br />
* '''Homepage''': none yet<br />
* '''Expected results''': This project will use the BeagleBoard as a USB proxy between any USB device and a host computer connected via the OTG port. This will allow the BeagleBoard to snoop, compare and modify USB traffic which can assist both commercial and open source development of drivers and diagnosis of issues. Other ideas could be examined such as a USB-TCP/IP-USB proxy to remotely connect USB devices. Open or free software equivalents exist, but hardware monitoring devices only exist as expensive commercial products. <br />
* '''Contact''': horse_dung at hotmail dot com<br />
</font><br />
==== Irrlicht ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Irrlicht<br />
* '''beagleboard.org project''': no<br />
* '''Short project description''': A fully-featured 3D render engine with ogl-es 1.x and 2.x support<br />
* '''Homepage''': http://irrlicht.sourceforge.net<br />
* '''Expected results''': <br />
** Hardware optimized core routines for optimal OMAP support<br />
** Support of ogl-es 2.x (the 1.x driver is reportedly running on the board)<br />
** Full framerate (60FPS) rendering of q3 alike scenes<br />
** The engine also offers SW rendering, allowing to target for other OMAPs as well, but would require more tweaking in the render optimizations<br />
** We can port one of the demo apps from our apps contest to show the full applicability <br />
* '''Contact''': hybrid[at]users[.]sourceforge[.]net<br />
</font><br />
==== BeagleHam ====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleHam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleham/<br />
* '''Short project description''': Bringing the BeagleBoard to the world of Amateur Radio.<br />
* '''Homepage''': None at this time.<br />
* '''Expected results''': <br />
** AX.25 Packet support, enabling full APRS support (operating as tracker, fill-in or permanent digipeater, and KISS TNC).<br />
** Encode and decode of HF digital modes, using DSP functionality where possible:<br />
*** BPSK, QPSK 31/63/125/250<br />
*** Olivia<br />
*** WSPR/MEPT<br />
*** MT-63<br />
*** DominoEX<br />
*** RTTY<br />
*** Throb<br />
** CW encode and decode<br />
** Capability to display on small (sub-6-inch) screens for mobile and field use<br />
* '''Contact''': xunil at xunil dot net<br />
</font><br />
==== TCF Agent Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TCF Agent Port<br />
* '''beagleboard.org project''': http://beagleboard.org/project/TCF+agent+port/<br />
* '''Short project description''': Support remote debugging and run control by porting the Eclipse Target Communication Framework (TCF) Agent to beagleboard+Ångström<br />
* '''Homepage''': Not yet<br />
* '''Expected results''': <br />
** A working port of the TCF "Reference implementation of a target agent" to BB/Ångström<br />
** screenshots and information on the TCF: http://dsdp.eclipse.org/dsdp/tm/tcf/docs/TCF%20Project.html<br />
** TCF agent running on a beagle board would provide the host computer following capabilities (see link above for details):<br />
*** Run control of userspace processes and threads<br />
*** Breakpoints<br />
*** Registers<br />
*** Stack traces<br />
*** Memory access<br />
*** Processes - list, start, stop, attach and debug.<br />
*** Sys monitor - CPU and memory utilization info<br />
*** File System - browsing and copying files<br />
<br />
* '''Contact''': terrella at terrella dot mobi<br />
</font><br />
<br />
==== RT-Beagle ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Real-Time patch for the beagleboard<br />
* '''beagleboard.org project''': http://beagleboard.org/project/omap-rt-patch/<br />
* '''Short project description''': Porting the linux rt patch to the omap linux kernel and providing testing applications. This project is developed at the INSA of Rennes (Engineer school in FRANCE) to allow next year Real Time course to be run on the BeagleBoard.<br />
* '''Homepage''': http://sourceforge.net/projects/linux-omap-rt-p/<br />
* '''Expected results''': <br />
** Porting the linux real-time patch (http://www.kernel.org/pub/linux/kernel/projects/rt/) to the linux omap kernel and providing recipes for openembedded allowing to build the patched kernel.<br />
** Providing testing applications allowing to evaluate the real-time behavior of the platform<br />
** Providing applications that could be used for teaching purposes<br />
* '''Current Results''':<br />
** patch-2.6.29.5-rt21 was modified to successfully patch linux-omap-2.6.29 (modified patch available through project page).<br />
** kernel compile and boots with minor error concerning two IRQs (72,73) <br />
* '''Contact''': piat_jonathan[at]users[.]sourceforge[.]net<br />
</font><br />
==== MyGTee ====<br />
<br />
* '''Title''': MyGTee <br />
* '''beagleboard.org project''': http://beagleboard.org/project/MyGTee/<br />
* '''Short project description''': A handheld device exploiting all the OMAP3530 capabilities<br />
* '''Homepage''': http://enco2009.webs.com/<br />
* '''Expected results''': I stage: building a prototype hopefully based on the BeagleBoard; II stage: the actual handheld that may allow for further software opensource development<br />
* '''Contact''': doctorc[at]o2[.]pl<br />
<br />
==== ONAS ====<br />
<font color="#C0C0C0"><br />
* '''Title''': ONAS<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ONAS/<br />
* '''Short project description''': An open source NAS<br />
* '''Homepage''': http://code.google.com/p/onas/<br />
* '''Expected results''': Development of a full featured NAS running Linux <br />
* '''Contact''': electrogeek[at]wp[.]pl<br />
</font><br />
==== Handheld Lab ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Handheld Lab<br />
* '''beagleboard.org project''': http://beagleboard.org/project/handheld_lab/<br />
* '''Short project description''': The goal of this project is to create a little, yet powerful, handheld laboratory with as much functions as possible. It will be easy of use thanks to the integrated LCD touchscreen and nice GUI.<br />
* '''Homepage''': http://www.mipixel.com/handheld-lab<br />
* '''Expected results''': First result will be working LCD showing oscilloscope. After this spectrum analyzer and logic analyzer. All this stuff will need extra electronics.<br />
* '''Contact''': fran[at]mipixel[.]com<br />
</font><br />
====Beagle Tourister using Hand Gestures and HMD on Beagleboard ====<br />
* '''Title''': Travel Buddy using Hand Gestures and HMD on Beagleboard <br />
* '''beagleboard.org project''': http://beagleboard.org/project/travelbuddy/<br />
* '''Short project description''': A device which will assist a traveller/tourist giving them mobile computing power and the following features: <br />
*1) A Compact HMD (Head mountable device) instead of the conventional projector (Problem of Projection Surface while on the move) <br />
*2) Use of standard cam for Image processing i.e recognising simple hand gestures to interact with the GUI seen in the HMD <br />
*3) Scanning of images (street name plates/hotel names/landmarks/book titles as indicated by user) to provide useful feedback data(directions/reviews/record *videos/take pictures/information) <br />
*4) Mode for Speech2text and text2speech conversion for inter-language communication. <br />
* '''Homepage''': Under Construction <br />
* '''Expected results''':<br />
*1) V-NAV: Virtual Navigator - Streaming Google Street View data according to your current location <br />
*2) ULA: Universal Language Assistant: Scan any text by positioning your fingers and the the scanned text is translated to your default language.<br />
*3) Say goodbye to the camera/ cell phone/tourguide/maps. Good platform for further expansion to include newer features. <br />
*4) Virtual Reality Mapping to the Real World: Overlay of relevant information on the on the HMD.<br />
* '''Contact''': sisilmet2000 at gmail dot com , dhairyadand at gmail dot com <br />
<br />
==== Happiness Device for Cerebral Palsy Kids ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Happiness Device for Cerebral Palsy Kids<br />
* '''beagleboard.org project''': http://beagleboard.org/project/HappyCP/<br />
* '''Project description''':<br />
It is an attempt to bridge the gap in communication between those affected by cerebral palsy and those not. The focus of the problem has been on facilitating communication in the emotional domain since this remains a completely unaddressed area. It is possible that some of the ensuing product functions will additionally facilitate communication problems in the physical domain, as well as be physically therapeutic for the cerebral palsy child in the manner of a comfort blanket. The basis of the product is an Emotional Language Protocol (elp) that works as its interface and is driven by four concurrently acting features - color, shape, motion and sound - corresponding to the sensory modes of the visual, the tactile and the aural. The interaction itself is facilitated by touch of varying intensities including pressing, thumping, squeezing, turning and, of course, by touching. Those not affected by cerebral palsy may additionally use speech along with touch. The interplay of this interface and interaction allows the cerebral palsy child to express his different needs and emotions to another person cerebral palsy or otherwise.Also, the device's mobile connectivity allows its users to communicate with someone far away<br />
* '''Homepage''': http://www.dhairyadand.com/Home/jellow<br />
* '''Expected results''': I have uploaded the basic designs at the above link to the homepage. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangable memory sticks which allow two or more device's to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.<br />
* '''Contact''': dhairya AT cyber DOT law DOT harvard DOT edu<br />
</font><br />
==== UPnP/DLNA AV client renderer and transcoding server ====<br />
<br />
* '''Title''': UPnP/DLNA AV client renderer and transcoding server <br />
* '''beagleboard.org project''': http://beagleboard.org/project/UPnP_AV_MediaServer/<br />
* '''Project description''':<br />
Enable the beagleboard as a fully featured UPnP AV rendering client, and as a UPnP AV (transcoding!) server. <br />
<br />
Work will be based upon vlc+djmount (for client side) and fuppes (for server side). Server side transcoding to be hardware assisted via hardware DSP codecs. Initial target for the transcoding server on beagleboard is to drive the Neuros OSD (an underpowered DM320-based device). <br />
<br />
* '''Homepage''': Will be an extension and complement to my work on the DM320-based Nueros OSD: http://osd.oddren.com<br />
* '''Expected results''': Beagleboard can act as either as rendering UPnP client, or as a transcoding UPnP server to drive weaker client devices like the Neuros OSD with their preferred streaming format.<br />
* '''Contact''': bmcarnes_beagleboard AT oddren DOT com<br />
<br />
==== Beagle-Traveler====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Traveler<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-traveler/<br />
* '''Short project description''': Automotive media and vehicle management controller. Comparable to BeaglesRide.org (no activity).<br />
* '''Homepage''': http://beagletraveler.wordpress.com<br />
* '''Expected results''': intergrate major automotive subsystem management and communications. Improved vehicle notification of subsystems status'. <br />
* '''Contact''': wheeler dawt larry (at) gmail dawt com<br />
**Please send sponsored information and project questions to the email address above.<br />
</font><br />
==== OMAP Emulator====<br />
<font color="#C0C0C0"><br />
* '''Title''': OMAP Emulator<br />
* '''beagleboard.org project''': http://beagleboard.org/project/OMAP+Emulator/<br />
* '''Short project description''': Emulator for rapid prototyping<br />
* '''Homepage''': no homepage yet<br />
* '''Expected results''': Open source implementation of an IDE environment for rapid code development and testing<br />
* '''Contact''': hwtester (at) myway (dot) com<br />
</font><br />
==== eLazarillo====<br />
<font color="#C0C0C0"><br />
[[File:Elazarillo.png|thumb|300px|eLazarillo sketch]]<br />
* '''Title''': eLazarillo (electronic helper for blind persons)<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': Gadget designed for blind persons or with vision problems. <br />
* '''Homepage''': http://elazarillo.blogspot.com/<br />
* '''Full description''':<br />
Lazarillo is a spanish word that means "blind person's guide" and this is the objetive of this project. This gadget will have features like reading non-braille books, assist to blind persons to get places like markets, drugstores, etc. (based on previous GPS tagged places and using google maps). Other functionalities will be spoken weather information, personal calendar, function keys, etc.<br />
<br />
The gadget will be voice controlled, will need GPS, 3G modem, camera and battery. Size will be 4x5 inches (approx.).<br />
<br />
* '''Expected results''': Open source hardware and software platform for blind persons gadgets. My device will have most of the above described.<br />
* '''Contact''': villanuevaborrego (at) gmail (dot) com<br />
</font><br />
<br />
==== QEMUonARM ====<br />
<font color="#C0C0C0"><br />
* '''Title''': QEMUonARM<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': QEMU on ARM. <br />
* '''Homepage''': http://elinux.org/QEMUonARM<br />
* '''Full description''':<br />
This project aims at resurrect and improve QEMU on ARM hosts.<br />
For more information: http://www.qemu.org<br />
* '''Expected results''': Demonstrate user mode and system mode examples, such as running some simple Linux applications or booting an i386 OS. If there's enough interest, making Wine and QEMU work together might be considered.<br />
* '''Contact''': laurent.desnogues (at) gmail (dot) com<br />
</font><br />
<br />
==== Math-NEON ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Math-NEON<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Math-Neon/<br />
* '''Short project description''': NEON optimized cmath like library <br />
* '''Homepage''': http://code.google.com/p/math-neon/<br />
* '''Full description''': <br />
This project aims to overcome the shortcomings of the VFP-lite based cmath implementation. It is targeted at games and other high performance low accuracy applications. The project will consist of C functions, for PC development, which mirror (as near as possible) the hand optimized NEON assembly routines. In order to gain the best performance i will make use of the NEON Unit's Integer and Floating point pipelines in conjunction with minimizing branches (where they cannot be precalculated on the ARM) and creating new algorithms. <br />
* '''Expected results''': Fast approximate implementations of trigonometric, exponential, logarithmic and power functions for use with future Beagleboard / Cortex A8 based projects. <br />
* '''Contact''': lachlan.ts (at) gmail (dot) com<br />
</font><br />
==== Medical Notebook ====<br />
* '''Title''': Medical Notebook<br />
* '''beagleboard.org project''': yet to register<br />
* '''Short project description''': The Ultimate Notebook for Hospitals<br />
* '''Homepage''': coming soon...<br />
* '''Full description''': <br />
A handheld device to improve hospital functionality/efficiency. To add intelligence to the mundane hospital softwares. <br />
Features are:<br />
<br />
View and Update Patient status, medical history, medication details, appointments, billing - stored as a database in central server.<br />
<br />
Touchscreen with handwriting recognition & hand support pad for data entry.<br />
<br />
Light Weight < 1kg<br />
<br />
VoIP, video conferencing/recording for consulting other doctors <br />
<br />
Wifi, bluetooth & ethernet support <br />
<br />
Docking station for charging<br />
<br />
Support for usb keyboard & mouse on docking station<br />
<br />
* '''Expected results''': Improved, efficient & intelligent patient care in hospitals<br />
<br />
* '''Contact''': noorshaheen.m.n (at) gmail (dot) com<br />
<br />
==== EGLIBC ====<br />
<font color="#C0C0C0"><br />
* '''Title''': EGLIBC support<br />
* '''beagleboard.org project''':<br />
* '''Short project description''': Use EGLIBC as system library for beagleboard project in OpenEmbedded.<br />
* '''Homepage''': www.eglibc.org<br />
* '''Expected results''': EGLIBC becomes the default system library on the distribution and can be used instead of glibc<br />
with the newly added configurability support to selec/deselect features. I would also like to make it compile as pure thumb2<br />
code.<br />
* '''Contact''': raj[.]khem[at]gmail[.]com<br />
</font><br />
==== miniECG ====<br />
* '''Title''': miniECG<br />
* '''beagleboard.org project''': http://beagleboard.org/project/miniECG/<br />
* '''Short project description''': Little device that cares for heart when heart patients are busy carrying out their duties<br />
* '''Homepage''': http://code.google.com/p/miniecg/<br />
* '''Full description''': <br />
miniECG is a wearable device that monitors ECG signal, processes it and can transmit it over wireless internet connection to doctors clinic. It has following features are:<br />
(all the hardware components required are available through digikey.com including LCD and touch screen)<br />
<br />
1) It has touch screen that enable user to give commands like store, display old ECG data, transmit, etc. Device also has a LCD display which is used to display ECG waveform.<br />
<br />
2) A tiny server runs on device that enables doctor to login to device any time he wants and extract patients ECG data. The device is connected to internet through wireless USB dongle. <br />
<br />
3) DSP core does the job of compressing ECG signal, doing PCA (principal component analysis) on ECG signal, detect QRS, measuring heart beats and digital filtering.<br />
<br />
4) DSP along with Cortex A8 runs algorithm that determines critical state of heart by doing feature extraction over ECG signals. It also does PCA over set of stored ECG signal to obtain information about any substantial drift in normal functionality of heart. <br />
<br />
5) Wireless USB dongle provides connectivity to internet and data is transmitted over internet as per schedule programmed into the device. ECG signal can also be streamed over internet using this dongle. <br />
<br />
6) Keyboard & mouse (USB) interface is provided for more flexibility and quick access. LCD monitor interface is also be provided. Key-board, mouse and LCD monitor interface will work only when device is powered by adaptor. For device powered by battery only input option is touch screen and only output option is LCD display.<br />
<br />
7) Device also has small software support to give reminder on when to consume which drug. The prescription of drug and its timing information is feed in as per doctors advice. (keyboard and mouse interface with miniECG can be of great advantage here)<br />
<br />
8) USB memory devices will be used to store ECG data.<br />
<br />
9) miniECG will be dual powered. It can be powered by adaptor as well as with rechargeable battery. <br />
<br />
Website link has block diagram of miniECG and also picture of ECG pre-amplifier which is already designed. In future all the source codes will be uploaded on the link as and when available.<br />
<br />
* '''Expected results''': a) Ability to login from remote PC onto miniECG and read data b) Should be able to send stored data or stream live ECG signal over internet c) Robust interface of LCD & touch screen with controller d) Data storage and retrieval from USB storage device e) Successful implementation of DSP algorithms for feature extraction, PCA, QRS detection, filtering and compression. f) As the whole device is battery powered, software & driver which are very specific to the desired application should only be installed & made working. Thus providing a low power system architecture. <br />
<br />
* '''Future Work''': Once the desire basic funtions of ECG storing, retrieval and transmitting is meet, miniECG can be programmed into miniPA (mini personal assistance) mainly targeting senior citizens. miniPA will have much advanced features that can help them elderly person in their day-to-day activity.<br />
* '''Contact''': mehta.nandish (at) gmail (dot) com<br />
<br />
<br />
==== remoteBillBoard ====<br />
* '''Title''': Remote Bill Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/remoteBillBoard/<br />
* '''Short project description''': Video bill boards, remotely controlled via web over a 3G modem<br />
* '''Homepage''': http://www.greensoftware.net/remoteBillBoard<br />
* '''Full description''': <br />
Play HD video on billboards, remotely manage the billboards, upload new advertisements, remove old ones etc..<br />
<br />
<br />
* '''Expected results''': <br />
a) 3g modem support, so flexiblity.<br />
b) a full working web based system<br />
<br />
* '''Future Work''':<br />
a) a more advanced desktop application to replaced the web based solution.<br />
<br />
* '''Contact''': ahmad.mushtaq (at) gmail (dot) com<br />
<br />
<br />
==== Turk ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Turk Platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Turk/<br />
* '''Short project description''': A wireless dynamically-mappable interface platform for small devices<br />
* '''Homepage''': http://www.turkinnovations.com/<br />
* '''Full Description''': Turk will be an open-source wireless interface platform that allows interfacing of small wireless (Zigbee or Wi-Fi enabled) devices through a dynamic mapping framework and web interface. Developers can implement their device's protocol easily through small user-space drivers called 'Gadgets' and host them on our server. The platform is then capable of automatically downloading and starting appropriate gadgets for new devices that are compatible with the basic Turk protocol. Gadgets reveal their services to the user and other gadgets through our growing library of data endpoint types (such as colors, URLs, booleans, xml strings) and user controls (like sliders, switches and color pickers), and can then be connected to each other through a themable web interface.<br />
<br />
* '''Expected results''': <br />
**A platform that allows developers to write simple user-space drivers that expose interfaces through XML-RPC<br />
**A web interface and remote configuration capabilities through a central server. <br />
**A simple and well-tested protocol and driver for a kernel-managed point-to-multipoint Zigbee network. <br />
**More hardware connectivity besides the Wi-Fi and Zigbee interfaces will hopefully be developed by collaborating with other beagleboard projects and developers.<br />
* '''Contact''': rob.odwyer [at] turkinnovations [dot] com<br />
</font><br />
==== BeagleWacom ====<br />
* '''Title''': Wacom Tablet driver for Beagle Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-wacom/<br />
* '''Short project description''': Linux drivers of wacom tablet ported for Beagle Board<br />
* '''Homepage''': <br />
* '''Full Description''': beagle-wacom will be port of linux drivers for configuring & running wacom tablets with the beagle board. The idea is to have support for wacom-components, so that they can be used by OEMs of beagleboard based products using linux as their OS<br />
<br />
* '''Expected results''': <br />
**easy integration of wacom tablet with Beagle Board. <br />
**OEMs of beagleboard based products using linux as their OS can integrate wacom-components in their product with minimal fuss<br />
* '''Contact''': najath [at] gmail [dot] com<br />
<br />
<br />
====hApplause====<br />
<font color="#C0C0C0"><br />
* '''Title''': hApplause<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Hardware Platform that You can use to play with Audio Synthesis<br />
* '''Homepage''': not yet<br />
* '''Description''': ''hApplause'' will be multi-functional flexible audio hardware platform. The goal is to make a tool that can allow to develop audio software and hardware (e.g. DSP synthesizers, FX units, hardware expansion boards, etc.). The concept is inspired by [http://www.chameleon.synth.net/ Chameleon] and [http://www.ucapps.de/ MIDIbox]. ''BeagleBoard'' will give ''Chameleon'' like software flexibility while planed hardware with ''Expansion Interface'' and ''Audio Multiplexer'' will give ''MIDIbox'' like hardware flexibility.<br />
*; Hardware features<br />
*: Audio Stereo In/Out<br />
*: MIDI In/Out/Thru<br />
*: General purpose USB port - function depends on user application<br />
*: General purpose SD/MMC Card (e.g. for user data storage) - function depends on user application<br />
*: Front panel interface (1U rack version) with:<br />
*:* LCD<br />
*:* Volume potentiometer<br />
*:* Headphones jack<br />
*:* Power switch with LED indicator<br />
*:* programmable rotary encoders (5 are planed)<br />
*:* programmable buttons and LEDs (12 are planed)<br />
*: Expansion Interface with audio signal buses (1-4 planed, depends on final implementation) and data/command bus (I2C and/or CAN)<br />
*: Audio Multiplexer for flexible routing of audio signal between ''BeagleBoard'', ''Audio In/Out'' and ''Expansion Interface''<br />
*: USB and RS232C for developers<br />
*; Software features<br />
*: All hardware will be fully accessible from ''BeagleBoard'' by API<br />
*: hApplause OS is planed (abstract layer over hardware, user program loading, self configuration on power on)<br />
* '''Expected results''':<br />
*# 19" 1U rackmount unit ready to play with.<br />
*# Libs and additional software for developers (at least API for hApplause's hardware)<br />
*# Example implementation of software synth<br />
*# Single size eurocard unit for 3U rack, like in [http://www.doepfer.de/a100e.htm Doepfer A-100 System] modules<br />
* '''Contact''': tawezik at gmail dot com<br />
</font><br />
==== BeagleLAB====<br />
* '''Title''': BeagleLAB<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleLAB/<br />
* '''Short project description''': BeagleLAB is an Embedded developer's workbench comprising of must-have hardware/software utilities.<br />
* '''Homepage''': http://code.google.com/p/beaglelab/<br />
* '''Expected results''': <br />
:* A PC free host providing a development environment based on beagle board (running ubuntu 9.04 or later)<br />
:* Host environment with software applications and hardware interfaces to substitute oscilloscope, multimeter & logic analyzers<br />
:* GNOME widgets (software apps) & Linux device drivers for capturing data,storing,comparing and visualization<br />
:* Legacy ports like the serial, parallel ports for device interfacing and control<br />
:* Making an embedded developer's life easier and workbench neater<br />
* '''Contact''': amarendermail[at]gmail[dot]com and saurabhg84[at]gmail[dot]com<br />
<br />
====PREEMPT_RT====<br />
<font color="#C0C0C0"><br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
</font><br />
<br />
====HDDM====<br />
<font color="#C0C0C0"><br />
* '''Title''': HDDM<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/HDDM/]<br />
* '''Short project description''': A multimedia system based on OMAP and linux.<br />
* '''Homepage''': Under construction<br />
* '''Expected results''': Beagleboard as a control center for home theatre system<br />
* '''Contact''': grover.ankur (at) gmail (dot) com<br />
<br />
Note from Dirk: Please see [http://www.syspire.de/node/3 Embedded Mediacenter], too (sorry, German only, use Google translate if needed).<br />
</font><br />
====BeagleVision====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleVision<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beaglevision/<br />
* '''Short project description''': An efficient object recognition framework <br />
* '''Homepage''': http://code.google.com/p/beaglevision/<br />
* '''Description''': BeagleVision will be a fast object recognition framework. The aim of the project is to have a hardware optimized implementation (utilising the DSP and NEON) of state-of-the-art local feature detectors and descriptors on the Beagle Board. BeagleVision will include [http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001018 our recent work] on efficient feature detectors and descriptors, other well-known algorithms (e.g. FAST corner detector and SURF), and efficient matching algorithms for very large datasets (>1M images).<br />
* '''Expected results''':<br />
:* An open source library for developers (a project hosted on code.google.com)<br />
:* A sample application for building recognition in a city scale dataset, to show how: to add new images to the dataset, to use it for location based services, and how to reduce the search time if a GPS is available to get geolocations<br />
:* A wiki for interested developers<br />
:* Reporting the running times of new algorithms on OMAP (as a benchmark) in scientific publications<br />
* '''Contact''': m.ebrahimi at ieee dot org<br />
</font><br />
====Beagle-Arduino hybrid robot====<br />
<br />
* '''Title''': Beagle-Arduino hybrid robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Beagle-Arduino+hybrid+robot/<br />
* '''Short project description''': A robot using a Beagleboard for high-level processing and Arduino for low-level control<br />
* '''Homepage''': http://mechomaniac.com/robots<br />
* '''Description''': The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:<br />
** image processing<br />
** artificial intelligence<br />
** speech synthesis<br />
** voice recognition<br />
** internet connectivity<br />
And an Arduino for low-level functions:<br />
** motor / servo control<br />
** sensor input & output<br />
** battery monitoring<br />
The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.<br />
* '''Expected results''':<br />
:* Easy physical interfacing to the Beagle without having to design and build special expansion boards<br />
:* Image processing using OpenCV with a USB webcam<br />
:* Speech synthesis and voice recognition<br />
* '''Contact''': tim at mechomaniac dot com<br />
<br />
====DJ Audio / Video Mixer====<br />
<font color="#C0C0C0"><br />
* '''Title''': DJ Audio / Video Mixer* '''Contact''': <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/djvideomixer/]<br />
* '''Description''': This is a small, Touch LCD controlled DJ Mixer, which not only is great as a nightclub tool for playing audio -not only reproducing music, actually '''''playing''''' with it-, but also has high end video playback capabilities, thus making it an all-round experience both for the DJ and the audience. It will bring all the experience of professional DJ mixers to users, while being portable, and which when coupled with either a normal projector, or even better, with a PicoProjector, makes a whole experience for audio and video playback in Discos, Bars, Lounges, to mention just a few possible applications. You can even use for your own parties, and it will rock!<br />
* '''Homepage''': [http://code.google.com/p/djvideomixer/]<br />
* '''Expected results''': <br />
** Audio playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Video playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Audio/Video synchronization, allowing song change, video change, etc.<br />
** High end, professional DJ-Mixer audio effects.<br />
** User interface based on LCD and with touchscreen capabilities.<br />
* '''Contact''': jaime_dot_aranguren_at_ieee_dot_org<br />
</font><br />
====schooldog====<br />
<font color="#C0C0C0"><br />
* '''Title''': schooldog<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/schooldog/]<br />
* '''Description''': The purpose is to make an ''off the shelf'' low cost schoolcomputer that can be used on various levels of education. It will be small so students can take it with them and the school just has to provide for input / output items. This way even people that cannot afford laptops can participate in the digital era or schools can provide a robust and good machine for studypurposes.<br />
* '''Homepage''': [http://schooldog.wickedmind.net]<br />
* '''Expected results''': <br />
** Educational linuxbased OS, from USB sticks and SD Cards.<br />
** more general use of BeagleBoard and more public awareness for the powerful small computer.<br />
** Affordable,individual and steady study enviroment<br />
<br />
* '''Contact''': wickedmind<br />
</font><br />
====Disko====<br />
<font color="#C0C0C0"><br />
[[File:Disko_logo.png|thumb|200px|UI Application Framework]]<br />
* '''Title''': Disko - UI Application Framework<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Disko/<br />
* '''Short project description''': Disko is a Linux-based toolkit to build touchscreen- and remote-controllable ui applications. It contains native OMAP framebuffer support and the media content is DSP-accelerated by GStreamer (TI-Codecs).<br />
* '''Homepage''': http://diskohq.org<br />
<br />
* '''Expected results''': Expected result is broad support of Disko by developers of user interfaces and applications for embedded devices.<br />
** SIP - IP telephony support delivered by pjsip and minisip <br />
** Gstreamer - to add an alternative to the xine library and to add the TI Codecs supplied for the DSP.<br />
** Webkit - the great embedded browser OWB of Pleyo (planned for Disko 1.7)<br />
** SVG - at least one SVG engine to have an alternative to Flash. Initial work has already been done at MadButterfly (planned for Disko 1.7) <br />
* '''Contact''': gmadaus [at] berlinux-solutions dot de or mspringer [at] berlinux-solutions dot de<br />
</font><br />
====FETCH====<br />
* '''Title''': FETCH - FPGA enabled Tool Contol Host<br />
* '''beagleboard.org project''': http://beagleboard.org/project/FETCH<br />
* '''Homepage''': No homepage yet<br />
* '''Short project description''': A host with a web interface for easy configuration and control of connected tools. The device may also be controlled through a PSTN network using DTMF tones. The BeagleBoard will act as the main server and will also be the host interface for the connected FPGA for the purpose of evaluating the IPs developed on the FPGA.<br />
* '''description : Phase 1 '''<br />
***1) Server capability -- all services (except VNC) to be launched through inetd so that they are started on an on-demand basis. <br />
***-- http server for configuration pages <br />
***-- ssh server (the ssh suite in particular including scp etc.. so that an ftp server can be avoided) for remote login. <br />
***-- bootp server for bootstaping machines on my home network. <br />
***-- VNC for GUI sessions :) <br />
***-- CUPS for network printing <br />
***-- NetHack server :D <br />
***2) Tool Control <br />
***-- The term "Tool Control" here refers to automation of connected tools and Phase 1 of the project will demonstrate this by automation in home (eg. computer, printer, scanner on/off --> (the contoller board with the relays is complete :) ), these devices may be contolled over the internet or PSTN network ) The system will also be hooked to the home electrical network that will enable control over home appliances. A special mode called " Home Alone" will switch on/off lights randomly when no one is at home to give the illusion that the house is occupied ( and hence protect from thefts ;) ). The current relay boards developed use a UART (for RS232 protocol) for control of the equipment but it is planned to use the CAN interface (under developement ) so that longer distances can be covered. <br />
***3) The BeagleBoard will act as a host interfacefor a Nexys2 Xilinx FPGA board and will be used to evaluate the IPs deployed on it. This feature is sort of a tester for the FPGA. <br />
**'''Phase 2 ''' ( only after Phase 1 is completely functional :) ) <br />
***1) CAN interface for the controller nodes replacing the RS232 connections<br />
***2) mgetty (for faxes) and asterisk (VOIP) may be added to the server.<br />
* ''' Contact : ''' akshat dot g dot gupta [at] gmail dot com<br />
<br />
==== ESITeam====<br />
<font color="#C0C0C0"><br />
* '''Title''': ESITeam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ESITeam/<br />
* '''Short project description''': It's a robotic soccer team with vision and intelligence distributed through the use of wireless communication (Zigbee) between robots and PC.<br />
* '''Expected results''': The expected results would have a running and competitive team for the RoboCup's championship this year.<br />
<br />
* '''Contact''': registrosvmora at gmail dot com<br />
</font><br />
==== PupLC====<br />
* '''Title''': PupLC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/PupLC/<br />
* '''Short project description''':Open source control of PLC operated equipment.<br />
* '''Homepage''': No homepage yet<br />
* '''Expected results''': <br />
:*PupLC will be an open source PLC controller. The user will be able to control the PLC's autonomously or by direct control. The direct method will allow the user to change equipment status using a touch screen lcd. The PupLC will control all aspects of the operating equipmet (ie. setpoints, red-hand settings, shutdowns, etc.) Additionally, 24-hours of accumulated system data will be saved to disk and can be accessed via ftp for analysis off-site.<br />
* '''Contact''': alcpo729[at]tds[dot]net<br />
<br />
====Speed-Reader====<br />
* '''Title''': Speed-Reader<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Speed-Reader/<br />
* '''Short project description''': Speed-Reader is an audio book reader that gives the listener control of the speaker rate.<br />
* '''Homepage''': http://www.nerd1951.com/?page_id=72<br />
* '''Description''': Speed reader allows an audio book to be played back with faster or slower speaker rates. A user interface gives the listener realtime control of the speaker rate. Speed-Reader uses digital speech signal processing to accomplish low distortion timescale modification of speech in real time. Timescale modification of speech is accomplished by selectively repeating segments of speech to slow down the speaker rate or deleting selected speech segments to speed up the speaker rate. Digital signal processing is used to determine which speech segments are candidates for repetition or deletion.<br />
* '''Expected results''':<br />
***--Realtime (during playback) timescale modification of digitized speech using the C64++ DSP<br />
***--Initially read digitized speech from the SD card interface<br />
***--Audio output using the Beagleboard stereo out<br />
***--Initially user interface provided via RS-232 interface<br />
* '''Contact''': harvey dot sugar at nerd1951 dot com<br />
<br />
<br />
====DVB-T Receiver====<br />
* '''Title''': DVB-T Receiver<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': The DVB-T Receiver project aims to implement a fully tunable DVB-T Receiver on the Beagle Board.<br />
* '''Homepage''': Will be launched in the near future (at blog.arsln.org)<br />
* '''Description''': The DVB-T receiver is a senior graduation project that has to be completed in one year (until Summer 2010). It will be a fully tunable DVB-T receiver. It will compatible to receive digital terrestrial TV & radio stations. The goal is to show the capabilities of the Beagle Board and build a DVB-T system from the scratch. The input will be through a ADC daughter-board that is plugged to the USB port. The output will be via the USB port(for portable devices i.e Netbook) or DVI-D. <br />
* '''Expected results''':<br />
***--Capturing broadcast signals(DVB-T) and convert them to discrete time signals<br />
***--Demodulate and encode the incoming signal<br />
***--Video output using the Beagleboard's DVI-D port or via the USB port for portable devices<br />
* '''Contact''': ftharsln at gmail dot com , sulaya05 at gmail dot com<br />
</font><br />
<br />
==== MythBeagle ====<br />
<br />
* '''Title''': MythBeagle<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': MythBeagle aims at bringing MythTV to the beagle; both frontend and backend, including plugins (as far as possible)<br />
* '''Homepage''': not yet; <br />
* '''Expected results''': <br />
*** OE recipes for mythtv 0.22, mythplugins 0.22 and whatever might be needed to get things going (including bringing required recipes to the latest version where needed/possible)<br />
*** An image for SD card to allow easy install<br />
*** some additional configuration notes (configuring MythTV is somewhat a pain...)<br />
*** setup should also allow using the beagle only as frontend or backend<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====PREEMPT_RT====<br />
<br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
====ArchMobile: ArchLinux ARM Port====<br />
<br />
* '''Title''': ArchMobile<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/AM/ AM]<br />
* '''Short project description''': ARM Port of the x86-Linux Distribution ArchLinux<br />
* '''Homepage''': [http://www.archmobile.org ArchMobile]<br />
* '''Expected results''': Fully working ArchLinux with X and all other features.<br />
* '''Contact''': rotter.manuel@gmail.com or naeg on Freenode<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* To follow up on shipping details, contact ''beagleship at list.ti.com''.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=14474BeagleBoard/contest2009-10-31T11:04:29Z<p>FransMeulenbroeks: added MythBeagle</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Category:Development Boards]]<br />
[[Category: BeagleBoard]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
If your project is listed as a winner and you haven't received your board, check with ''beagleship at list.ti.com''.<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]</font><br />
|<font color="#C0C0C0">Week 19</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Accelerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]</font><br />
|<font color="#C0C0C0">Week 21</font><br />
|<font color="#C0C0C0">5 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle Synth |Beagle Synth]]</font><br />
|<font color="#C0C0C0">Week 22</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#USB Scope |USB Scope]]</font><br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Irrlicht|Irrlicht]]<br />
|<font color="#C0C0C0">Week 23</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleHam|BeagleHam]]</font><br />
|<font color="#C0C0C0">Week 24</font><br />
|<font color="#C0C0C0">6 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<font color="#C0C0C0">Week 25</font><br />
|<font color="#C0C0C0">4 points</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Handheld_Lab|Handheld Lab]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TCF_Agent_Port|TCF Agent Port]]</font><br />
|<font color="#C0C0C0">Week 26</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Beagle-Traveler|Beagle-Traveler]]</font><br />
|<font color="#C0C0C0">Week 27</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#OMAP Emulator|OMAP Emulator]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]</font><br />
|<font color="#C0C0C0">Week 28</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#QEMUonARM|QEMUonARM]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#EGLIBC|EGLIBC Support]]</font><br />
|<font color="#C0C0C0">Week 29</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#RT-Beagle|RT-Beagle]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ONAS|ONAS]]</font><br />
|<font color="#C0C0C0">Week 30</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Math-NEON|Math-NEON]]<br />
|<font color="#C0C0C0">Week 32<br />
|<font color="#C0C0C0">5 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Happiness_Device_for_Cerebral_Palsy_Kids|Device for Cerebral Palsy Kids]]</font><br />
|<font color="#C0C0C0">Week 32</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Turk|Turk Platform]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#hApplause|hApplause]]</font><br />
|<font color="#C0C0C0">Week 33</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#eLazarillo|eLazarillo]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">1 vote</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#PREEMPT_RT|PREEMPT_RT]]</font><br />
|<font color="#C0C0C0">Week 35</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#HDDM|HDDM]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#BeagleVision|BeagleVision]]</font><br />
|<font color="#C0C0C0">Week 37</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#DJ Audio / Video Mixer|DJ Audio / Video Mixer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">5 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#schooldog|An individual lowcost schoolcomputer]]</font><br />
|<font color="#C0C0C0">Week 39</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#Disko|Disko - UI Application Framework]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">4 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<font color="#C0C0C0">[[BeagleBoard/contest#ESITeam|ESITeam]]</font><br />
|<font color="#C0C0C0">Week 42</font><br />
|<font color="#C0C0C0">3 votes</font><br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#DVB-T_Receiver|DVB-T_Receiver]]<br />
|Week 43<br />
|8 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#UPnP.2FDLNA_AV_client_renderer_and_transcoding_server|UPnP/DLNA AV client renderer and transcoding server]]<br />
|Week 43<br />
|2 votes<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Touchscreen_LCD_support| Touchscreen LCD support]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleSCI |BeagleSCI]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Pictouch|Pictouch]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Fotogenic |Fotogenic]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#MyGTee|MyGTee handheld]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Tourister_using_Hand_Gestures_and_HMD_on_Beagleboard|Beagle Tourister]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Medical Notebook|Medical Notebook]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#miniECG|miniECG]]<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#remoteBillBoard|Remote Bill Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleWacom|Wacom Tablet driver for Beagle Board]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#BeagleLAB|BeagleLAB]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Beagle-Arduino_hybrid_robot|Beagle-Arduino hybrid robot]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FETCH|FETCH]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|-<br />
||[[BeagleBoard/contest#PupLC|PupLC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#Speed-Reader|Speed-Reader]]<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|-<br />
||[[BeagleBoard/contest#ArchMobile:_ArchLinux_ARM_Port|ArchMobile]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects with the most votes will be approved. The plan is to have final decision every Friday morning.<br />
<br />
==== Revolt 2405====<br />
<font color="#C0C0C0"><br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Revolt2405/<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
</font><br />
==== Touchscreen LCD support ====<br />
<br />
* '''Title''': Touchscreen LCD support <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The project will add the touch screen support to Beagle board<br />
The following are the components that i am planning of using<br />
:*The LCD breakout board is http://www.sparkfun.com/commerce/product_info.php?products_id=8600<br />
:*The touch screen is http://www.sparkfun.com/commerce/product_info.php?products_id=8977<br />
:*The touch screen connector is http://www.sparkfun.com/commerce/product_info.php?products_id=9104<br />
<br />
Another option is buying a full LCD with touch screen option<br />
:*The product link is http://www.sparkfun.com/commerce/product_info.php?products_id=257.<br />
:*I would create a system and hardware like this video http://www.youtube.com/watch?v=foWnDZ3eQto&feature=related<br />
<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
<br />
* '''Expected results''': <br />
**Linux driver to add LCD with touch screen support<br />
**The breakout board(preferably single layered as it can be created at home)gerber for attaching with beagle which will be created using FreePcb(www.freepcb.com).You can see the photos of my RFID Based Access Control system project there.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
</font><br />
==== TUD:OS on Beagleboard ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/TUD%3AOS+on+the+Beagleboard/]<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Description''': <br />
** '''What the heck?''' The TUD:OS operating system is a L4 microkernel based operating system, with good real-time and security properties, developed at the TU Dresden. <br />
** '''Microkernel-based''': The microkernel approach allows it to to reduce the trusted computing base (the amount of code that has to be trusted) by running small trusted applications side by side with non-trusted applications, all as unprivileged user mode applications. Further, it is possible to run real-time applications side-by side with non real-time applications. Also device driver run in user-mode and thus a crash of a device driver will not lead to an whole system crash and in the best case the driver can be restarted and the system will keep on running.<br />
** '''Familiar Environment''': While offering the above mentioned vantages, TUD:OS still offers a familiar environment by the possibility to run one or more instances of L4Linux. L4Linux is a Linux port the Fiasco microkernel which is binary compatible to native Linux but runs in deprivilieged usermode.<br />
** '''What do we get from this project?''' ''Briefly: A fundament to build embedded [realtime] systems [with a exceptionally small trusted computing base].'' Further a possibility to run multiple virtualized linux instances on the beagleboard. A good documentation how to build such systems. And last but not least a (hopefully cool ;) demo showing that it acutally works , perhaps like the one found at [http://demo.tudos.org demo.tudos.org] (somewhat outdated). <br />
*'''Contact:''' dvogt[at]os[.]inf[.]tu-dresden[.]de ([[User:Dvogt|Dvogt]])<br />
</font><br />
==== picoFlamingo ====<br />
<font color="#C0C0C0"><br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
</font><br />
==== Accelerated USB Graphics Adapter ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
</font><br />
==== Apertus open source/hardware cinema camera ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
</font><br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
==== BeagleSCI ====<br />
<br />
* '''Title''': BeagleSCI<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': BeagleSCI aims to use the BeagleBoard as a platform for scientific computation and instrumentation (SCI).<br />
* '''Homepage''': http://sourceforge.net/projects/beaglesci/<br />
* '''Expected results''': As a start, the initial goal would be to use the BeagleBoard as a logger of a seismometer. This would involve interfacing a 12-bit ADC chip and writing a driver for it. Data read from the instrument can be displayed by the BeagleBoard through a monitor or send the data to a remote computer via RS-232/RS-485.<br />
* '''Contact''': sherdon dot uy at gmail dot com<br />
<br />
==== Pictouch====<br />
<br />
* '''Title''': Pictouch<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Mobile and Projected Touch user interface<br />
* '''Homepage''': not yet<br />
* '''Expected results''': The goal is to build a new Tactile Interface system based on beagleboard and the DLP picoprojector. Currently, the project make the use of JavaFX to support Multi-Touch (and Multi-User) and of 2 basic webcam, in order to build a low cost gesture recognition system.In the classical case of use, the interface is projected onto a classical table.Users interact directly with their fingers on the projected interface.<br />
<br />
* '''Contact''': maxired at gmail dot com<br />
<br />
==== Fotogenic ====<br />
<br />
* '''Title''': Fotogenic<br />
* '''beagleboard.org project''': not yet - but project is already in progress<br />
* '''Short project description''': Bring network connectivity to plain old vanilla picture frames<br />
* '''Homepage''': www.sourceforge.net/projects/fotogenic<br />
* '''Expected results''': This project brings wired, WiFi and bluetooth connectivity and management to plain old picture frames. The project selects pictures from your photo database, resizes them for the picture frame's native resolution, embellishes them with web and home automation information sources before presenting them to the photo frame by making the BeagleBoard appear to be a USB pendrive...! Right click a photo on your laptop and select "Show on picture frame now!". Manage many photo frames centrally and much much more... Includes "wave gesture" interface to wave over picture frame for next photo... Also works with Eye-Fi SD memory cards to make photos appear on photoframe moments after taken...!!<br />
* '''Contact''': horse_dung at hotmail dot com<br />
<br />
==== Beagle Synth ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Synth<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-synth/<br />
* '''Short project description''': DSP MIDI synthesizer based around the beagleboard<br />
* '''Homepage''': http://code.google.com/p/beagle-synth/<br />
* '''Expected results''': Initially a basic MIDI controllable subtractive synth with 3 oscillators, low pass, high pass, and band pass filters, 2 envelope generators, and 2 LFO's. From there the intention is to add some type of control surface (either physical controls or perhaps a touch screen), some effects (phaser, distortion, reverb), and perhaps other types of synthesis options (FM, additive, maybe some type of patchibility). The result will be a fully featured MIDI instrument comparable to many commercial synths. This project is to be a learning experience with the intention of exploring using DSP for music synthesis. As of now this project is in the concept phase and is still in need of hardware for implementation.<br />
* '''Contact''': dpanseri [at] gmail [dot] com<br />
</font><br />
==== USB Scope ====<br />
<font color="#C0C0C0"><br />
* '''Title''': USB Scope<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': USB diagnostics to aid driver development for USB devices<br />
* '''Homepage''': none yet<br />
* '''Expected results''': This project will use the BeagleBoard as a USB proxy between any USB device and a host computer connected via the OTG port. This will allow the BeagleBoard to snoop, compare and modify USB traffic which can assist both commercial and open source development of drivers and diagnosis of issues. Other ideas could be examined such as a USB-TCP/IP-USB proxy to remotely connect USB devices. Open or free software equivalents exist, but hardware monitoring devices only exist as expensive commercial products. <br />
* '''Contact''': horse_dung at hotmail dot com<br />
</font><br />
==== Irrlicht ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Irrlicht<br />
* '''beagleboard.org project''': no<br />
* '''Short project description''': A fully-featured 3D render engine with ogl-es 1.x and 2.x support<br />
* '''Homepage''': http://irrlicht.sourceforge.net<br />
* '''Expected results''': <br />
** Hardware optimized core routines for optimal OMAP support<br />
** Support of ogl-es 2.x (the 1.x driver is reportedly running on the board)<br />
** Full framerate (60FPS) rendering of q3 alike scenes<br />
** The engine also offers SW rendering, allowing to target for other OMAPs as well, but would require more tweaking in the render optimizations<br />
** We can port one of the demo apps from our apps contest to show the full applicability <br />
* '''Contact''': hybrid[at]users[.]sourceforge[.]net<br />
</font><br />
==== BeagleHam ====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleHam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleham/<br />
* '''Short project description''': Bringing the BeagleBoard to the world of Amateur Radio.<br />
* '''Homepage''': None at this time.<br />
* '''Expected results''': <br />
** AX.25 Packet support, enabling full APRS support (operating as tracker, fill-in or permanent digipeater, and KISS TNC).<br />
** Encode and decode of HF digital modes, using DSP functionality where possible:<br />
*** BPSK, QPSK 31/63/125/250<br />
*** Olivia<br />
*** WSPR/MEPT<br />
*** MT-63<br />
*** DominoEX<br />
*** RTTY<br />
*** Throb<br />
** CW encode and decode<br />
** Capability to display on small (sub-6-inch) screens for mobile and field use<br />
* '''Contact''': xunil at xunil dot net<br />
</font><br />
==== TCF Agent Port ====<br />
<font color="#C0C0C0"><br />
* '''Title''': TCF Agent Port<br />
* '''beagleboard.org project''': http://beagleboard.org/project/TCF+agent+port/<br />
* '''Short project description''': Support remote debugging and run control by porting the Eclipse Target Communication Framework (TCF) Agent to beagleboard+Ångström<br />
* '''Homepage''': Not yet<br />
* '''Expected results''': <br />
** A working port of the TCF "Reference implementation of a target agent" to BB/Ångström<br />
** screenshots and information on the TCF: http://dsdp.eclipse.org/dsdp/tm/tcf/docs/TCF%20Project.html<br />
** TCF agent running on a beagle board would provide the host computer following capabilities (see link above for details):<br />
*** Run control of userspace processes and threads<br />
*** Breakpoints<br />
*** Registers<br />
*** Stack traces<br />
*** Memory access<br />
*** Processes - list, start, stop, attach and debug.<br />
*** Sys monitor - CPU and memory utilization info<br />
*** File System - browsing and copying files<br />
<br />
* '''Contact''': terrella at terrella dot mobi<br />
</font><br />
<br />
==== RT-Beagle ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Real-Time patch for the beagleboard<br />
* '''beagleboard.org project''': http://beagleboard.org/project/omap-rt-patch/<br />
* '''Short project description''': Porting the linux rt patch to the omap linux kernel and providing testing applications. This project is developed at the INSA of Rennes (Engineer school in FRANCE) to allow next year Real Time course to be run on the BeagleBoard.<br />
* '''Homepage''': http://sourceforge.net/projects/linux-omap-rt-p/<br />
* '''Expected results''': <br />
** Porting the linux real-time patch (http://www.kernel.org/pub/linux/kernel/projects/rt/) to the linux omap kernel and providing recipes for openembedded allowing to build the patched kernel.<br />
** Providing testing applications allowing to evaluate the real-time behavior of the platform<br />
** Providing applications that could be used for teaching purposes<br />
* '''Current Results''':<br />
** patch-2.6.29.5-rt21 was modified to successfully patch linux-omap-2.6.29 (modified patch available through project page).<br />
** kernel compile and boots with minor error concerning two IRQs (72,73) <br />
* '''Contact''': piat_jonathan[at]users[.]sourceforge[.]net<br />
</font><br />
==== MyGTee ====<br />
<br />
* '''Title''': MyGTee <br />
* '''beagleboard.org project''': http://beagleboard.org/project/MyGTee/<br />
* '''Short project description''': A handheld device exploiting all the OMAP3530 capabilities<br />
* '''Homepage''': http://enco2009.webs.com/<br />
* '''Expected results''': I stage: building a prototype hopefully based on the BeagleBoard; II stage: the actual handheld that may allow for further software opensource development<br />
* '''Contact''': doctorc[at]o2[.]pl<br />
<br />
==== ONAS ====<br />
<font color="#C0C0C0"><br />
* '''Title''': ONAS<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ONAS/<br />
* '''Short project description''': An open source NAS<br />
* '''Homepage''': http://code.google.com/p/onas/<br />
* '''Expected results''': Development of a full featured NAS running Linux <br />
* '''Contact''': electrogeek[at]wp[.]pl<br />
</font><br />
==== Handheld Lab ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Handheld Lab<br />
* '''beagleboard.org project''': http://beagleboard.org/project/handheld_lab/<br />
* '''Short project description''': The goal of this project is to create a little, yet powerful, handheld laboratory with as much functions as possible. It will be easy of use thanks to the integrated LCD touchscreen and nice GUI.<br />
* '''Homepage''': http://www.mipixel.com/handheld-lab<br />
* '''Expected results''': First result will be working LCD showing oscilloscope. After this spectrum analyzer and logic analyzer. All this stuff will need extra electronics.<br />
* '''Contact''': fran[at]mipixel[.]com<br />
</font><br />
====Beagle Tourister using Hand Gestures and HMD on Beagleboard ====<br />
* '''Title''': Travel Buddy using Hand Gestures and HMD on Beagleboard <br />
* '''beagleboard.org project''': http://beagleboard.org/project/travelbuddy/<br />
* '''Short project description''': A device which will assist a traveller/tourist giving them mobile computing power and the following features: <br />
*1) A Compact HMD (Head mountable device) instead of the conventional projector (Problem of Projection Surface while on the move) <br />
*2) Use of standard cam for Image processing i.e recognising simple hand gestures to interact with the GUI seen in the HMD <br />
*3) Scanning of images (street name plates/hotel names/landmarks/book titles as indicated by user) to provide useful feedback data(directions/reviews/record *videos/take pictures/information) <br />
*4) Mode for Speech2text and text2speech conversion for inter-language communication. <br />
* '''Homepage''': Under Construction <br />
* '''Expected results''':<br />
*1) V-NAV: Virtual Navigator - Streaming Google Street View data according to your current location <br />
*2) ULA: Universal Language Assistant: Scan any text by positioning your fingers and the the scanned text is translated to your default language.<br />
*3) Say goodbye to the camera/ cell phone/tourguide/maps. Good platform for further expansion to include newer features. <br />
*4) Virtual Reality Mapping to the Real World: Overlay of relevant information on the on the HMD.<br />
* '''Contact''': sisilmet2000 at gmail dot com , dhairyadand at gmail dot com <br />
<br />
==== Happiness Device for Cerebral Palsy Kids ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Happiness Device for Cerebral Palsy Kids<br />
* '''beagleboard.org project''': http://beagleboard.org/project/HappyCP/<br />
* '''Project description''':<br />
It is an attempt to bridge the gap in communication between those affected by cerebral palsy and those not. The focus of the problem has been on facilitating communication in the emotional domain since this remains a completely unaddressed area. It is possible that some of the ensuing product functions will additionally facilitate communication problems in the physical domain, as well as be physically therapeutic for the cerebral palsy child in the manner of a comfort blanket. The basis of the product is an Emotional Language Protocol (elp) that works as its interface and is driven by four concurrently acting features - color, shape, motion and sound - corresponding to the sensory modes of the visual, the tactile and the aural. The interaction itself is facilitated by touch of varying intensities including pressing, thumping, squeezing, turning and, of course, by touching. Those not affected by cerebral palsy may additionally use speech along with touch. The interplay of this interface and interaction allows the cerebral palsy child to express his different needs and emotions to another person cerebral palsy or otherwise.Also, the device's mobile connectivity allows its users to communicate with someone far away<br />
* '''Homepage''': http://www.dhairyadand.com/Home/jellow<br />
* '''Expected results''': I have uploaded the basic designs at the above link to the homepage. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangable memory sticks which allow two or more device's to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.<br />
* '''Contact''': dhairya AT cyber DOT law DOT harvard DOT edu<br />
</font><br />
==== UPnP/DLNA AV client renderer and transcoding server ====<br />
<br />
* '''Title''': UPnP/DLNA AV client renderer and transcoding server <br />
* '''beagleboard.org project''': http://beagleboard.org/project/UPnP_AV_MediaServer/<br />
* '''Project description''':<br />
Enable the beagleboard as a fully featured UPnP AV rendering client, and as a UPnP AV (transcoding!) server. <br />
<br />
Work will be based upon vlc+djmount (for client side) and fuppes (for server side). Server side transcoding to be hardware assisted via hardware DSP codecs. Initial target for the transcoding server on beagleboard is to drive the Neuros OSD (an underpowered DM320-based device). <br />
<br />
* '''Homepage''': Will be an extension and complement to my work on the DM320-based Nueros OSD: http://osd.oddren.com<br />
* '''Expected results''': Beagleboard can act as either as rendering UPnP client, or as a transcoding UPnP server to drive weaker client devices like the Neuros OSD with their preferred streaming format.<br />
* '''Contact''': bmcarnes_beagleboard AT oddren DOT com<br />
<br />
==== Beagle-Traveler====<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle-Traveler<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-traveler/<br />
* '''Short project description''': Automotive media and vehicle management controller. Comparable to BeaglesRide.org (no activity).<br />
* '''Homepage''': http://beagletraveler.wordpress.com<br />
* '''Expected results''': intergrate major automotive subsystem management and communications. Improved vehicle notification of subsystems status'. <br />
* '''Contact''': wheeler dawt larry (at) gmail dawt com<br />
**Please send sponsored information and project questions to the email address above.<br />
</font><br />
==== OMAP Emulator====<br />
<font color="#C0C0C0"><br />
* '''Title''': OMAP Emulator<br />
* '''beagleboard.org project''': http://beagleboard.org/project/OMAP+Emulator/<br />
* '''Short project description''': Emulator for rapid prototyping<br />
* '''Homepage''': no homepage yet<br />
* '''Expected results''': Open source implementation of an IDE environment for rapid code development and testing<br />
* '''Contact''': hwtester (at) myway (dot) com<br />
</font><br />
==== eLazarillo====<br />
<font color="#C0C0C0"><br />
[[File:Elazarillo.png|thumb|300px|eLazarillo sketch]]<br />
* '''Title''': eLazarillo (electronic helper for blind persons)<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': Gadget designed for blind persons or with vision problems. <br />
* '''Homepage''': http://elazarillo.blogspot.com/<br />
* '''Full description''':<br />
Lazarillo is a spanish word that means "blind person's guide" and this is the objetive of this project. This gadget will have features like reading non-braille books, assist to blind persons to get places like markets, drugstores, etc. (based on previous GPS tagged places and using google maps). Other functionalities will be spoken weather information, personal calendar, function keys, etc.<br />
<br />
The gadget will be voice controlled, will need GPS, 3G modem, camera and battery. Size will be 4x5 inches (approx.).<br />
<br />
* '''Expected results''': Open source hardware and software platform for blind persons gadgets. My device will have most of the above described.<br />
* '''Contact''': villanuevaborrego (at) gmail (dot) com<br />
</font><br />
<br />
==== QEMUonARM ====<br />
<font color="#C0C0C0"><br />
* '''Title''': QEMUonARM<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': QEMU on ARM. <br />
* '''Homepage''': http://elinux.org/QEMUonARM<br />
* '''Full description''':<br />
This project aims at resurrect and improve QEMU on ARM hosts.<br />
For more information: http://www.qemu.org<br />
* '''Expected results''': Demonstrate user mode and system mode examples, such as running some simple Linux applications or booting an i386 OS. If there's enough interest, making Wine and QEMU work together might be considered.<br />
* '''Contact''': laurent.desnogues (at) gmail (dot) com<br />
</font><br />
<br />
==== Math-NEON ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Math-NEON<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Math-Neon/<br />
* '''Short project description''': NEON optimized cmath like library <br />
* '''Homepage''': http://code.google.com/p/math-neon/<br />
* '''Full description''': <br />
This project aims to overcome the shortcomings of the VFP-lite based cmath implementation. It is targeted at games and other high performance low accuracy applications. The project will consist of C functions, for PC development, which mirror (as near as possible) the hand optimized NEON assembly routines. In order to gain the best performance i will make use of the NEON Unit's Integer and Floating point pipelines in conjunction with minimizing branches (where they cannot be precalculated on the ARM) and creating new algorithms. <br />
* '''Expected results''': Fast approximate implementations of trigonometric, exponential, logarithmic and power functions for use with future Beagleboard / Cortex A8 based projects. <br />
* '''Contact''': lachlan.ts (at) gmail (dot) com<br />
</font><br />
==== Medical Notebook ====<br />
* '''Title''': Medical Notebook<br />
* '''beagleboard.org project''': yet to register<br />
* '''Short project description''': The Ultimate Notebook for Hospitals<br />
* '''Homepage''': coming soon...<br />
* '''Full description''': <br />
A handheld device to improve hospital functionality/efficiency. To add intelligence to the mundane hospital softwares. <br />
Features are:<br />
<br />
View and Update Patient status, medical history, medication details, appointments, billing - stored as a database in central server.<br />
<br />
Touchscreen with handwriting recognition & hand support pad for data entry.<br />
<br />
Light Weight < 1kg<br />
<br />
VoIP, video conferencing/recording for consulting other doctors <br />
<br />
Wifi, bluetooth & ethernet support <br />
<br />
Docking station for charging<br />
<br />
Support for usb keyboard & mouse on docking station<br />
<br />
* '''Expected results''': Improved, efficient & intelligent patient care in hospitals<br />
<br />
* '''Contact''': noorshaheen.m.n (at) gmail (dot) com<br />
<br />
==== EGLIBC ====<br />
<font color="#C0C0C0"><br />
* '''Title''': EGLIBC support<br />
* '''beagleboard.org project''':<br />
* '''Short project description''': Use EGLIBC as system library for beagleboard project in OpenEmbedded.<br />
* '''Homepage''': www.eglibc.org<br />
* '''Expected results''': EGLIBC becomes the default system library on the distribution and can be used instead of glibc<br />
with the newly added configurability support to selec/deselect features. I would also like to make it compile as pure thumb2<br />
code.<br />
* '''Contact''': raj[.]khem[at]gmail[.]com<br />
</font><br />
==== miniECG ====<br />
* '''Title''': miniECG<br />
* '''beagleboard.org project''': http://beagleboard.org/project/miniECG/<br />
* '''Short project description''': Little device that cares for heart when heart patients are busy carrying out their duties<br />
* '''Homepage''': http://code.google.com/p/miniecg/<br />
* '''Full description''': <br />
miniECG is a wearable device that monitors ECG signal, processes it and can transmit it over wireless internet connection to doctors clinic. It has following features are:<br />
(all the hardware components required are available through digikey.com including LCD and touch screen)<br />
<br />
1) It has touch screen that enable user to give commands like store, display old ECG data, transmit, etc. Device also has a LCD display which is used to display ECG waveform.<br />
<br />
2) A tiny server runs on device that enables doctor to login to device any time he wants and extract patients ECG data. The device is connected to internet through wireless USB dongle. <br />
<br />
3) DSP core does the job of compressing ECG signal, doing PCA (principal component analysis) on ECG signal, detect QRS, measuring heart beats and digital filtering.<br />
<br />
4) DSP along with Cortex A8 runs algorithm that determines critical state of heart by doing feature extraction over ECG signals. It also does PCA over set of stored ECG signal to obtain information about any substantial drift in normal functionality of heart. <br />
<br />
5) Wireless USB dongle provides connectivity to internet and data is transmitted over internet as per schedule programmed into the device. ECG signal can also be streamed over internet using this dongle. <br />
<br />
6) Keyboard & mouse (USB) interface is provided for more flexibility and quick access. LCD monitor interface is also be provided. Key-board, mouse and LCD monitor interface will work only when device is powered by adaptor. For device powered by battery only input option is touch screen and only output option is LCD display.<br />
<br />
7) Device also has small software support to give reminder on when to consume which drug. The prescription of drug and its timing information is feed in as per doctors advice. (keyboard and mouse interface with miniECG can be of great advantage here)<br />
<br />
8) USB memory devices will be used to store ECG data.<br />
<br />
9) miniECG will be dual powered. It can be powered by adaptor as well as with rechargeable battery. <br />
<br />
Website link has block diagram of miniECG and also picture of ECG pre-amplifier which is already designed. In future all the source codes will be uploaded on the link as and when available.<br />
<br />
* '''Expected results''': a) Ability to login from remote PC onto miniECG and read data b) Should be able to send stored data or stream live ECG signal over internet c) Robust interface of LCD & touch screen with controller d) Data storage and retrieval from USB storage device e) Successful implementation of DSP algorithms for feature extraction, PCA, QRS detection, filtering and compression. f) As the whole device is battery powered, software & driver which are very specific to the desired application should only be installed & made working. Thus providing a low power system architecture. <br />
<br />
* '''Future Work''': Once the desire basic funtions of ECG storing, retrieval and transmitting is meet, miniECG can be programmed into miniPA (mini personal assistance) mainly targeting senior citizens. miniPA will have much advanced features that can help them elderly person in their day-to-day activity.<br />
* '''Contact''': mehta.nandish (at) gmail (dot) com<br />
<br />
<br />
==== remoteBillBoard ====<br />
* '''Title''': Remote Bill Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/remoteBillBoard/<br />
* '''Short project description''': Video bill boards, remotely controlled via web over a 3G modem<br />
* '''Homepage''': http://www.greensoftware.net/remoteBillBoard<br />
* '''Full description''': <br />
Play HD video on billboards, remotely manage the billboards, upload new advertisements, remove old ones etc..<br />
<br />
<br />
* '''Expected results''': <br />
a) 3g modem support, so flexiblity.<br />
b) a full working web based system<br />
<br />
* '''Future Work''':<br />
a) a more advanced desktop application to replaced the web based solution.<br />
<br />
* '''Contact''': ahmad.mushtaq (at) gmail (dot) com<br />
<br />
<br />
==== Turk ====<br />
<font color="#C0C0C0"><br />
* '''Title''': Turk Platform<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Turk/<br />
* '''Short project description''': A wireless dynamically-mappable interface platform for small devices<br />
* '''Homepage''': http://www.turkinnovations.com/<br />
* '''Full Description''': Turk will be an open-source wireless interface platform that allows interfacing of small wireless (Zigbee or Wi-Fi enabled) devices through a dynamic mapping framework and web interface. Developers can implement their device's protocol easily through small user-space drivers called 'Gadgets' and host them on our server. The platform is then capable of automatically downloading and starting appropriate gadgets for new devices that are compatible with the basic Turk protocol. Gadgets reveal their services to the user and other gadgets through our growing library of data endpoint types (such as colors, URLs, booleans, xml strings) and user controls (like sliders, switches and color pickers), and can then be connected to each other through a themable web interface.<br />
<br />
* '''Expected results''': <br />
**A platform that allows developers to write simple user-space drivers that expose interfaces through XML-RPC<br />
**A web interface and remote configuration capabilities through a central server. <br />
**A simple and well-tested protocol and driver for a kernel-managed point-to-multipoint Zigbee network. <br />
**More hardware connectivity besides the Wi-Fi and Zigbee interfaces will hopefully be developed by collaborating with other beagleboard projects and developers.<br />
* '''Contact''': rob.odwyer [at] turkinnovations [dot] com<br />
</font><br />
==== BeagleWacom ====<br />
* '''Title''': Wacom Tablet driver for Beagle Board<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagle-wacom/<br />
* '''Short project description''': Linux drivers of wacom tablet ported for Beagle Board<br />
* '''Homepage''': <br />
* '''Full Description''': beagle-wacom will be port of linux drivers for configuring & running wacom tablets with the beagle board. The idea is to have support for wacom-components, so that they can be used by OEMs of beagleboard based products using linux as their OS<br />
<br />
* '''Expected results''': <br />
**easy integration of wacom tablet with Beagle Board. <br />
**OEMs of beagleboard based products using linux as their OS can integrate wacom-components in their product with minimal fuss<br />
* '''Contact''': najath [at] gmail [dot] com<br />
<br />
<br />
====hApplause====<br />
<font color="#C0C0C0"><br />
* '''Title''': hApplause<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': A Hardware Platform that You can use to play with Audio Synthesis<br />
* '''Homepage''': not yet<br />
* '''Description''': ''hApplause'' will be multi-functional flexible audio hardware platform. The goal is to make a tool that can allow to develop audio software and hardware (e.g. DSP synthesizers, FX units, hardware expansion boards, etc.). The concept is inspired by [http://www.chameleon.synth.net/ Chameleon] and [http://www.ucapps.de/ MIDIbox]. ''BeagleBoard'' will give ''Chameleon'' like software flexibility while planed hardware with ''Expansion Interface'' and ''Audio Multiplexer'' will give ''MIDIbox'' like hardware flexibility.<br />
*; Hardware features<br />
*: Audio Stereo In/Out<br />
*: MIDI In/Out/Thru<br />
*: General purpose USB port - function depends on user application<br />
*: General purpose SD/MMC Card (e.g. for user data storage) - function depends on user application<br />
*: Front panel interface (1U rack version) with:<br />
*:* LCD<br />
*:* Volume potentiometer<br />
*:* Headphones jack<br />
*:* Power switch with LED indicator<br />
*:* programmable rotary encoders (5 are planed)<br />
*:* programmable buttons and LEDs (12 are planed)<br />
*: Expansion Interface with audio signal buses (1-4 planed, depends on final implementation) and data/command bus (I2C and/or CAN)<br />
*: Audio Multiplexer for flexible routing of audio signal between ''BeagleBoard'', ''Audio In/Out'' and ''Expansion Interface''<br />
*: USB and RS232C for developers<br />
*; Software features<br />
*: All hardware will be fully accessible from ''BeagleBoard'' by API<br />
*: hApplause OS is planed (abstract layer over hardware, user program loading, self configuration on power on)<br />
* '''Expected results''':<br />
*# 19" 1U rackmount unit ready to play with.<br />
*# Libs and additional software for developers (at least API for hApplause's hardware)<br />
*# Example implementation of software synth<br />
*# Single size eurocard unit for 3U rack, like in [http://www.doepfer.de/a100e.htm Doepfer A-100 System] modules<br />
* '''Contact''': tawezik at gmail dot com<br />
</font><br />
==== BeagleLAB====<br />
* '''Title''': BeagleLAB<br />
* '''beagleboard.org project''': http://beagleboard.org/project/BeagleLAB/<br />
* '''Short project description''': BeagleLAB is an Embedded developer's workbench comprising of must-have hardware/software utilities.<br />
* '''Homepage''': http://code.google.com/p/beaglelab/<br />
* '''Expected results''': <br />
:* A PC free host providing a development environment based on beagle board (running ubuntu 9.04 or later)<br />
:* Host environment with software applications and hardware interfaces to substitute oscilloscope, multimeter & logic analyzers<br />
:* GNOME widgets (software apps) & Linux device drivers for capturing data,storing,comparing and visualization<br />
:* Legacy ports like the serial, parallel ports for device interfacing and control<br />
:* Making an embedded developer's life easier and workbench neater<br />
* '''Contact''': amarendermail[at]gmail[dot]com and saurabhg84[at]gmail[dot]com<br />
<br />
====PREEMPT_RT====<br />
<font color="#C0C0C0"><br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
</font><br />
<br />
====HDDM====<br />
<font color="#C0C0C0"><br />
* '''Title''': HDDM<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/HDDM/]<br />
* '''Short project description''': A multimedia system based on OMAP and linux.<br />
* '''Homepage''': Under construction<br />
* '''Expected results''': Beagleboard as a control center for home theatre system<br />
* '''Contact''': grover.ankur (at) gmail (dot) com<br />
<br />
Note from Dirk: Please see [http://www.syspire.de/node/3 Embedded Mediacenter], too (sorry, German only, use Google translate if needed).<br />
</font><br />
====BeagleVision====<br />
<font color="#C0C0C0"><br />
* '''Title''': BeagleVision<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beaglevision/<br />
* '''Short project description''': An efficient object recognition framework <br />
* '''Homepage''': http://code.google.com/p/beaglevision/<br />
* '''Description''': BeagleVision will be a fast object recognition framework. The aim of the project is to have a hardware optimized implementation (utilising the DSP and NEON) of state-of-the-art local feature detectors and descriptors on the Beagle Board. BeagleVision will include [http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001018 our recent work] on efficient feature detectors and descriptors, other well-known algorithms (e.g. FAST corner detector and SURF), and efficient matching algorithms for very large datasets (>1M images).<br />
* '''Expected results''':<br />
:* An open source library for developers (a project hosted on code.google.com)<br />
:* A sample application for building recognition in a city scale dataset, to show how: to add new images to the dataset, to use it for location based services, and how to reduce the search time if a GPS is available to get geolocations<br />
:* A wiki for interested developers<br />
:* Reporting the running times of new algorithms on OMAP (as a benchmark) in scientific publications<br />
* '''Contact''': m.ebrahimi at ieee dot org<br />
</font><br />
====Beagle-Arduino hybrid robot====<br />
<br />
* '''Title''': Beagle-Arduino hybrid robot<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Beagle-Arduino+hybrid+robot/<br />
* '''Short project description''': A robot using a Beagleboard for high-level processing and Arduino for low-level control<br />
* '''Homepage''': http://mechomaniac.com/robots<br />
* '''Description''': The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:<br />
** image processing<br />
** artificial intelligence<br />
** speech synthesis<br />
** voice recognition<br />
** internet connectivity<br />
And an Arduino for low-level functions:<br />
** motor / servo control<br />
** sensor input & output<br />
** battery monitoring<br />
The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.<br />
* '''Expected results''':<br />
:* Easy physical interfacing to the Beagle without having to design and build special expansion boards<br />
:* Image processing using OpenCV with a USB webcam<br />
:* Speech synthesis and voice recognition<br />
* '''Contact''': tim at mechomaniac dot com<br />
<br />
====DJ Audio / Video Mixer====<br />
<font color="#C0C0C0"><br />
* '''Title''': DJ Audio / Video Mixer* '''Contact''': <br />
* '''beagleboard.org project''': [http://beagleboard.org/project/djvideomixer/]<br />
* '''Description''': This is a small, Touch LCD controlled DJ Mixer, which not only is great as a nightclub tool for playing audio -not only reproducing music, actually '''''playing''''' with it-, but also has high end video playback capabilities, thus making it an all-round experience both for the DJ and the audience. It will bring all the experience of professional DJ mixers to users, while being portable, and which when coupled with either a normal projector, or even better, with a PicoProjector, makes a whole experience for audio and video playback in Discos, Bars, Lounges, to mention just a few possible applications. You can even use for your own parties, and it will rock!<br />
* '''Homepage''': [http://code.google.com/p/djvideomixer/]<br />
* '''Expected results''': <br />
** Audio playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Video playback on BeagleBoard, from USB sticks and SD Cards.<br />
** Audio/Video synchronization, allowing song change, video change, etc.<br />
** High end, professional DJ-Mixer audio effects.<br />
** User interface based on LCD and with touchscreen capabilities.<br />
* '''Contact''': jaime_dot_aranguren_at_ieee_dot_org<br />
</font><br />
====schooldog====<br />
<font color="#C0C0C0"><br />
* '''Title''': schooldog<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/schooldog/]<br />
* '''Description''': The purpose is to make an ''off the shelf'' low cost schoolcomputer that can be used on various levels of education. It will be small so students can take it with them and the school just has to provide for input / output items. This way even people that cannot afford laptops can participate in the digital era or schools can provide a robust and good machine for studypurposes.<br />
* '''Homepage''': [http://schooldog.wickedmind.net]<br />
* '''Expected results''': <br />
** Educational linuxbased OS, from USB sticks and SD Cards.<br />
** more general use of BeagleBoard and more public awareness for the powerful small computer.<br />
** Affordable,individual and steady study enviroment<br />
<br />
* '''Contact''': wickedmind<br />
</font><br />
====Disko====<br />
<font color="#C0C0C0"><br />
[[File:Disko_logo.png|thumb|200px|UI Application Framework]]<br />
* '''Title''': Disko - UI Application Framework<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Disko/<br />
* '''Short project description''': Disko is a Linux-based toolkit to build touchscreen- and remote-controllable ui applications. It contains native OMAP framebuffer support and the media content is DSP-accelerated by GStreamer (TI-Codecs).<br />
* '''Homepage''': http://diskohq.org<br />
<br />
* '''Expected results''': Expected result is broad support of Disko by developers of user interfaces and applications for embedded devices.<br />
** SIP - IP telephony support delivered by pjsip and minisip <br />
** Gstreamer - to add an alternative to the xine library and to add the TI Codecs supplied for the DSP.<br />
** Webkit - the great embedded browser OWB of Pleyo (planned for Disko 1.7)<br />
** SVG - at least one SVG engine to have an alternative to Flash. Initial work has already been done at MadButterfly (planned for Disko 1.7) <br />
* '''Contact''': gmadaus [at] berlinux-solutions dot de or mspringer [at] berlinux-solutions dot de<br />
</font><br />
====FETCH====<br />
* '''Title''': FETCH - FPGA enabled Tool Contol Host<br />
* '''beagleboard.org project''': http://beagleboard.org/project/FETCH<br />
* '''Homepage''': No homepage yet<br />
* '''Short project description''': A host with a web interface for easy configuration and control of connected tools. The device may also be controlled through a PSTN network using DTMF tones. The BeagleBoard will act as the main server and will also be the host interface for the connected FPGA for the purpose of evaluating the IPs developed on the FPGA.<br />
* '''description : Phase 1 '''<br />
***1) Server capability -- all services (except VNC) to be launched through inetd so that they are started on an on-demand basis. <br />
***-- http server for configuration pages <br />
***-- ssh server (the ssh suite in particular including scp etc.. so that an ftp server can be avoided) for remote login. <br />
***-- bootp server for bootstaping machines on my home network. <br />
***-- VNC for GUI sessions :) <br />
***-- CUPS for network printing <br />
***-- NetHack server :D <br />
***2) Tool Control <br />
***-- The term "Tool Control" here refers to automation of connected tools and Phase 1 of the project will demonstrate this by automation in home (eg. computer, printer, scanner on/off --> (the contoller board with the relays is complete :) ), these devices may be contolled over the internet or PSTN network ) The system will also be hooked to the home electrical network that will enable control over home appliances. A special mode called " Home Alone" will switch on/off lights randomly when no one is at home to give the illusion that the house is occupied ( and hence protect from thefts ;) ). The current relay boards developed use a UART (for RS232 protocol) for control of the equipment but it is planned to use the CAN interface (under developement ) so that longer distances can be covered. <br />
***3) The BeagleBoard will act as a host interfacefor a Nexys2 Xilinx FPGA board and will be used to evaluate the IPs deployed on it. This feature is sort of a tester for the FPGA. <br />
**'''Phase 2 ''' ( only after Phase 1 is completely functional :) ) <br />
***1) CAN interface for the controller nodes replacing the RS232 connections<br />
***2) mgetty (for faxes) and asterisk (VOIP) may be added to the server.<br />
* ''' Contact : ''' akshat dot g dot gupta [at] gmail dot com<br />
<br />
==== ESITeam====<br />
<font color="#C0C0C0"><br />
* '''Title''': ESITeam<br />
* '''beagleboard.org project''': http://beagleboard.org/project/ESITeam/<br />
* '''Short project description''': It's a robotic soccer team with vision and intelligence distributed through the use of wireless communication (Zigbee) between robots and PC.<br />
* '''Expected results''': The expected results would have a running and competitive team for the RoboCup's championship this year.<br />
<br />
* '''Contact''': registrosvmora at gmail dot com<br />
</font><br />
==== PupLC====<br />
* '''Title''': PupLC<br />
* '''beagleboard.org project''': http://beagleboard.org/project/PupLC/<br />
* '''Short project description''':Open source control of PLC operated equipment.<br />
* '''Homepage''': No homepage yet<br />
* '''Expected results''': <br />
:*PupLC will be an open source PLC controller. The user will be able to control the PLC's autonomously or by direct control. The direct method will allow the user to change equipment status using a touch screen lcd. The PupLC will control all aspects of the operating equipmet (ie. setpoints, red-hand settings, shutdowns, etc.) Additionally, 24-hours of accumulated system data will be saved to disk and can be accessed via ftp for analysis off-site.<br />
* '''Contact''': alcpo729[at]tds[dot]net<br />
<br />
====Speed-Reader====<br />
* '''Title''': Speed-Reader<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Speed-Reader/<br />
* '''Short project description''': Speed-Reader is an audio book reader that gives the listener control of the speaker rate.<br />
* '''Homepage''': http://www.nerd1951.com/?page_id=72<br />
* '''Description''': Speed reader allows an audio book to be played back with faster or slower speaker rates. A user interface gives the listener realtime control of the speaker rate. Speed-Reader uses digital speech signal processing to accomplish low distortion timescale modification of speech in real time. Timescale modification of speech is accomplished by selectively repeating segments of speech to slow down the speaker rate or deleting selected speech segments to speed up the speaker rate. Digital signal processing is used to determine which speech segments are candidates for repetition or deletion.<br />
* '''Expected results''':<br />
***--Realtime (during playback) timescale modification of digitized speech using the C64++ DSP<br />
***--Initially read digitized speech from the SD card interface<br />
***--Audio output using the Beagleboard stereo out<br />
***--Initially user interface provided via RS-232 interface<br />
* '''Contact''': harvey dot sugar at nerd1951 dot com<br />
<br />
<br />
====DVB-T Receiver====<br />
* '''Title''': DVB-T Receiver<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': The DVB-T Receiver project aims to implement a fully tunable DVB-T Receiver on the Beagle Board.<br />
* '''Homepage''': Will be launched in the near future (at blog.arsln.org)<br />
* '''Description''': The DVB-T receiver is a senior graduation project that has to be completed in one year (until Summer 2010). It will be a fully tunable DVB-T receiver. It will compatible to receive digital terrestrial TV & radio stations. The goal is to show the capabilities of the Beagle Board and build a DVB-T system from the scratch. The input will be through a ADC daughter-board that is plugged to the USB port. The output will be via the USB port(for portable devices i.e Netbook) or DVI-D. <br />
* '''Expected results''':<br />
***--Capturing broadcast signals(DVB-T) and convert them to discrete time signals<br />
***--Demodulate and encode the incoming signal<br />
***--Video output using the Beagleboard's DVI-D port or via the USB port for portable devices<br />
* '''Contact''': ftharsln at gmail dot com , sulaya05 at gmail dot com<br />
</font><br />
<br />
==== MythBeagle ====<br />
<br />
* '''Title''': MythBeagle<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': MythBeagle aims at bringing MythTV to the beagle; both frontend and backend, including plugins (as far as possible)<br />
* '''Homepage''': not yet; <br />
* '''Expected results''': <br />
*** OE recipes for mythtv 0.22, mythplugins 0.22 and whatever might be needed to get things going (including bringing required recipes to the latest version where needed/possible)<br />
*** An image for SD card to allow easy install<br />
*** some additional configuration notes (configuring MythTV is somewhat a pain...)<br />
*** setup should also allow using the beagle only as frontend or backend<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====PREEMPT_RT====<br />
<br />
Linux Hard Real-Time (PREEMPT_RT) demo<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.31 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device drivers are -rt safe; Build a typical real-time user land set of applications (Ångström based).<br />
* '''Homepage''': http://www.sidebranch.com/<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
====ArchMobile: ArchLinux ARM Port====<br />
<br />
* '''Title''': ArchMobile<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/AM/ AM]<br />
* '''Short project description''': ARM Port of the x86-Linux Distribution ArchLinux<br />
* '''Homepage''': [http://www.archmobile.org ArchMobile]<br />
* '''Expected results''': Fully working ArchLinux with X and all other features.<br />
* '''Contact''': rotter.manuel@gmail.com or naeg on Freenode<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* To follow up on shipping details, contact ''beagleship at list.ti.com''.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/James&diff=13686BeagleBoard/James2009-09-08T16:58:35Z<p>FransMeulenbroeks: </p>
<hr />
<div>[[Category:Linux]]<br />
[[Category:BeagleBoard]]<br />
<br />
<br />
'''Due to personal issues the development of James has been put on hold. In due time I hope to be able to pick this up again. Apologies for any inconvenience.''' <br />
<br />
= Introduction =<br />
<br />
James (acronym for Just A Miniature Entertainment System) is an application<br />
providing a home entertainment solution. It is also called James as it aims<br />
to be a global "butler" application providing various services.<br />
What functionality is actually offered by James also depends on the actual<br />
hardware present in the system.<br />
<br />
Rationale for calling it Miniature, is because the system will be small<br />
in physical size (but not in functionality). Aim is also to reuse as much<br />
open source software as possible.<br />
<br />
And actually entertainment system is a little bit of a misnomer. James will<br />
provide all kind of home services, so it could also e.g. provide NAS<br />
functionality or even a web server.<br />
<br />
= Latest News =<br />
<br />
A very nice person borrowed me a board! I don't know if you want to have your name exposed, but thank you very much; you know who you are :-)<br />
<br />
With this board I already managed to bring up several packages (and updated these to the latest version).<br><br />
The original plan was to build my own PVR (like I did with NSLU2); but the current plan is to investigate first if I can use mythTV.<br><br />
For wiimote support libwiimote and CWiid have been ported. Unfortunately the wintv prv usb2 drivers seem to have some issues with usb on angstrom. No idea yet what is wrong there.<br><br />
<br />
ALso a lot of effort was spent on getting Coherence up and running. Coherence is a UPnP server that supports several backends which can e.g. serve FlickR content over UPnP.<br />
<br />
Furthermore an attempt was made to connect the webcam. Technically it works, but apparenty there are some USB related issues. The cam works fine under a regular linux system but on the Beagle over the OTG port apparently data is corrupted. I get a picture but with some colored striping in it. The same behaviour has also been reported by others, but a report from someone who has a revC board with working EHCI said that there webcams were functioning properly.<br />
<br />
Stay tuned for progress reports.<br />
<br />
= James Hardware =<br />
<br />
Core of the James development will be a BeagleBoard, although the code should<br />
be platform independent. BeagleBoard was chosen because it is very small<br />
(although functionality wise it can be big).<br />
<br />
Additional hardware used during the development and for prototyping<br />
* [http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?scy=NL&slg=ENG&sct=WEBCAMS_SU&cat=PC_CAMERAS_CA&session=20090130125811_195.241.226.180&grp=MONITORS_PC_PERIPHERALS_GR&ctn=PCVC680K/00&mid=Link_ProductInformation&hlt=Link_ProductInformation Philips PCVC680K] webcam<br />
* [http://www.toshibastorage.com/main.aspx?Path=StorageSolutions/1.8-inchHardDiskDrives/MK4007GAL Toshiba MK4007GAL] 1.8" hard disk with USB enclosure.<br />
* [http://www.sitecom.com/product.php?productname=USB+Internet+Phone&productcode=IT-001&productid=530&subgroupid=2 Sitecom IT-001] USB phone<br />
* [http://www.pertelian.com Pertelian] X2040 Character based LCD display (4 lines, 20 columns)<br />
* Perhaps touch screen/pixel based display<br />
* GATEWAY OVU400002/00 Infrared receiver<br />
* bluetooth dongle (I use a very small one, but most bluetooth dongels will work)<br />
* Support for WII-mote (requires bluetooth)<br />
* WiFi. I have successfully used a 3com 3crusb10075 USB dongle (zd1211 based), a Linksys WUSB54G and a Philips CPWUA054/00 USB dongle (both Prism54 based)<br />
* [http://www.hauppauge.com/site/products/data_pvrusb2.html Hauppauge WinTV PVR2 USB] analog TV receiver.<br />
* A DVB-T receiver. (or maybe a DVB-S receiver) (to be obtained)<br />
* PHILIPS SPD3400CC USB CD/DVD drive.<br />
* various USB hubs<br />
* USB hard disk (Toshiba 40GB, 1.8")<br />
<br />
Ideally of course would be to have an expansion board with features like<br />
Bbluetooth, WiFi, IR, USB hub), but as such a board does not exist yet<br />
initially the system will use standard USB components (although may be<br />
with the cover removed and mounted together). Aim is to select small<br />
components.<br />
As I am not a skilled hardware developer, creating an expansion board is<br />
outside my capabilities.<br />
<br />
= James Software =<br />
<br />
As written above James will be open source and will use open source as much<br />
as possible. Actually the programming effort will be mainly porting open<br />
source applications (with the associated debugging and problem fixing) and<br />
writing the UI software.<br />
For UI the idea is to use something web based. That would allow controlling<br />
the device locally, but also remote.<br />
<br />
Software functionality on James is the following:<br />
* Personal Video Recorder (PVR): see http://www.dse.nl/~meulenbr/pvr/pvr.html for some documentation and access to a prototype running on ARM<br />
* Security functionality (motion pacakge)<br />
* Photo retrieval from digital camera (both mass storage and ptp; mtp ?)<br />
* Audio grabbing from CD<br />
* writing of CD/DVD (e.g. cdrecord)<br />
* File server/NAS (samba/swat)<br />
* uPnP server<br />
* PBX functionality (asterisk)<br />
* Media rendering (mplayer?), also from USB/CD/DVD if present (NSLU2 prototype only has mp3 playback as there is no video out.<br />
* Bluetooth headphone (bluez a2dp profile)<br />
* Internet telephony preferably with camera support (SIP based; probably EKIGA<br />
* Maybe: uPnP playback<br />
* Maybe: interface with GSM phone (e.g. using the gsm as a remote control using bluetooth)<br />
<br />
Supporting software:<br />
* For wii-mote (CWiid (includes libwiimote)) Already demonstrated on eeePC under debian by me. See [http://wiki.eeeuser.com/howto:wiimote this page] on [http://wiki.eeeuser.com/ wiki.eeeusoer.com] on what I did there.<br />
* Lirc (for remote control) (did that already on NSLU2)<br />
* Web server for serving the UI (The current demo uses out-of-the-box apache2 with php)<br />
* Web browser for displaying the UI locally (not on NSLU2 as it has no display).<br />
<br />
UI of the NLSU2 implementaion was done with html, javascript, css stylesheets, php and some self-written cgi scripts.<br />
It might be that for the next version I'll move to flash. I am planning to make a small prototype, but due to other things I did not get to this yet.<br />
<br />
= James Filesystem =<br />
<br />
James has no specific requirements on the filesystem. For development and testing I used a standard generated Angstrom image (see next section) with a 1GB ext3 filesystem.<br />
<br />
James deals with multimedia content. Of course on a 1GB partition you cannot store that much multimedia data. Therefore I use a directory /media/content in this description to refer to the location of the multimedia content. By doing so you can easily mount another partition or e.g. an external USB hard disk or flash disk on this directory. But of course if you want to you can also keep /media on your SD card. And of course it is also possible to use a different directory to store the multimedia content as you see fit. Just use the directory where you stored the data instead of /media/content.<br />
<br />
= How to install =<br />
<br />
As James is still in the process of being developed, there is no automated install or precooked image or something like that. Meanwhile as a starter I have listed all steps I had to undertake with my hardware. If you are following the steps below and find things that are unclear or work out different for you (e.g because you have different hardware, please update these instructions.<br />
<br />
Generally there is no strict need to execute all steps in the order I gave. Most of the things are pretty independent of each other. I just listed the steps in the order I executed them. If there are dependencies that I am aware of, I tried to list them.<br />
<br />
== Required Hardware ==<br />
<br />
In order to get started you at least need the following hardware:<br />
* beagle board. rev B is assumed, with a 5V power brick<br />
* empty SD card, 1GB or larger<br />
* serial connection to your beagle<br />
* USB OTG cable<br />
* A USB hub. The beagle is not powerful enough to power most USB devices.<br />
* USB network interface to your beagle (wired is recommended, but if you know what you are doing you can<br />
also use a wireless adapter. Setting up a wireless dongle is outside the scope of this document. The USB<br />
network interface is connected to the hub<br />
* a working internet connection.<br />
<br />
== Getting Started ==<br />
<br />
The simplest way to get started is by using a pre-generated image. For that download the files http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard-sd.img.gz and http://amethyst.openembedded.net/~koen/beaglecontest/james-image-beagleboard.tar.bz2 and skip the next paragraph on making your own image.<br />
<br />
If the links above are not available any more or if you want to be in full control, generate yor own image using Koen's image builder at http://amethyst.openembedded.net/~koen/narcissus/. To do so perform the following steps (not neededif you use the pre-generated image)<br />
In the machine section select beagleboard. From the options select: Base system: extended, X11 window<br />
managers: Enlightenment. Development packages: Busybox replacements, Additional packages: All kernel<br />
modules, alsa utils, apache, ntpdate. If you want more packages to be installed you can select those too. (e.g.<br />
if you have a WiFi dongle you might want to select wireleess-tools). mplayer might also be handy but can<br />
always be installed later on through the command opkg install mplayer<br />
<br><br />
Give the image a name (let's take james in this example, but you must pick your own name, choose whatever<br />
you want or whatever is generated for you).<br />
hit "build me" and wait (could be a few minutes) for the image to be generated. If you miss a package that is also not that dramatic, as it is always possible to install things later on. After that <br />
* download the james image for beagleboard (this will give you a file James-image-beagleboard.tar.bz2)<br />
* downlaod the raw SD card image.(this will give you a file James-image-beagleboard-sd.img.gz).<br />
<br />
<br />
With your image either generated or the pregenerated one, perform the following steps:<br />
<br />
* insert an empty SD card (at least 1GB) into a card reader in your linux desktop system<br />
* do a dmesg | tail to find out the name of the device. In the subsequent lines I will assume it is<br />
/dev/sdf, but it will probably be different for you. Use the name from dmesg |tail and NOT /dev/sdf when<br />
entering the commands.<br />
* gunzip james-image-beagleboard-sd.img.gz<br />
* sudo dd if=james-image-beagleboard-sd.img of=/dev/sdf bs=1M<br />
* grab a coffee as the command above will take some time. How much depends on the speed of your card. For me it took 3 minutes.<br />
* sudo mount /dev/sdf2 /mnt<br />
* cd /mnt<br />
* sudo tar xvfj .../james-image-beagleboard.tar.bz2<br />
* here ... is the path to your James-image-beagleboard.tar.bz2 file. Grab a second cup of coffee as this<br />
again takes some time. Only difference is that at least this time you'll see progress. When done continue<br />
with:<br />
* cd /<br />
* sudo umount /dev/sdf2 (this again takes some time)<br />
* sync (just to be safe)<br />
* and to be safer: verify that the light of your SD card writer is not indicating any more that it is<br />
writing and perhaps wait one more minute. If booting the image fails often the case is that not all data<br />
is present on the SD card<br />
* insert the card in your beagle and power the beagle.<br />
* if you want to you can interrupt u-boot by pressing space and set the videomode (e.g by issueing the commands 'setenv optargs omapfb.video_mode=1280x720MR-24@60' and "saveenv' (without the quotes)<br />
* have you had enough coffee? if not, grab another cup. All kind of things will be installed. This takes<br />
quite some time. Especially the loading of the kernel modules takes lots of time.You can follow the<br />
progress on your serial port. Note that this only occurs one (on first use).<br />
Later boots will be at normal speed (less than a minute).<br />
<br />
BTW: when booting error messages like "uncorrectable error : <3>end_request: I/O error, dev mtdblock0,<br />
sector 0" can be ignored.<br />
<br />
== Configuring the image ==<br />
<br />
I have a pegasus based USB to ethernet dongle. In the kernel the driver for a pegasus dongle is a module. And for some reason the dongle does not get an IP address while booting. Unplugging and replugging the dongle works, but is not very convenient.<br />
If you also have a pegasus based USB to ethernet dongle you can avoid this by issueing<br />
the following commands on a console on your beagle:<br />
<br />
* echo pegasus >/etc/modutils/pegasus<br />
* /usr/sbin/update-modules<br />
<br />
After that the module will be loaded before the IP addresses are assigned and the dongle will get an IP address during bootup. You might want to reboot if your dongle requires that you issue the previous two lines.<br />
<br />
Next you want to create a /media directory and optionally populate it with some multimedia content. Creating the directory is dony by:<br />
* mkdir /media/content<br />
<br />
And update your package list by issueing the command:<br />
* opkg update<br />
<br />
== Optionally: give your Beagleboard a fixed IP address ==<br />
<br />
For James the beagle will also act as a server. For that it is very convenient if the beagle has a fixed address (or you have to use something like dyndns or configure a DHCP reservation in your router).<br />
<br />
In order to give the Beagle a fixed IP address you should edit the file /etc/network/interfaces and replace the line:<br />
iface eth0 inet dhcp<br />
with something like:<br />
iface eth0 inet static<br />
address 192.168.1.230<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
gateway 192.168.1.1<br />
Also in order to have DNS working create/edit the file /etc/resolv.conf. You should add lines like:<br />
nameserver 192.168.1.1<br />
You can have several lines specifying name servers in the file. Of course you should use the addresses of whatever DNS server your use.<br />
<br />
== Optionally: install Synergy ==<br />
<br />
If you are like me and do not want to clutter your desk with multiple keyboards it is a good idea to install Synergy. Synergy is a software application that can be used to share the keyboard and mouse between multiple computers.<br />
<br />
Let us assume that your keyboard is connected to your linux system and that you want to use that keyboard also with your beagle. The linux system then acts as the server system, and the beagle system is the client system. Both systems require that X11 is running and must be connected to the ethernet. Let us assume that both systems have their own display and that the linux display is at the left side and the beagle display is located to the right.<br />
<br />
In order to share the keyboard you need to install synergy on both systems. For beagle synergy is in the feeds and can be installed with 'opkg install synergy'. For your unix system your milage may vary. It may be that your distribution supports synergy. If not you need to download it from http://synergy2.sourceforge.net/ and install it yourself. There is one potential caveat. Synergy does not out of the box compile with gcc 4.3. If your system has gcc 4.3 you can patch the synergy sources with [[Media:Synergy-1.3.1-gcc-4.3.patch| this patch]].<br />
<br />
To get things running you need to create a file synergy.conf. Assuming the host names of your systems are linux and beagle, the file looks like:<br />
section: screens<br />
linux:<br />
beagle:<br />
end<br />
section: links<br />
linux:<br />
right = beagle<br />
beagle:<br />
left = linux<br />
end<br />
Of course if the names of your systems are different or if the location of your monitors is different, you need to change the file.<br />
<br />
Store this file under the name 'synergy.conf' on the server system. Then on the server system run: <br />
synergys -f --config synergy.conf<br />
and on the client system run:<br />
synergyc -f server-host-name<br />
If the server host name is not available you can also use the server IP address.<br><br />
If on the beagle you get an error that it cannot open the display try as command:<br />
DISPLAY=:0.0 synergyc -f server-host-name<br />
<br />
After doing so, if you move the cursor to the right of the linux screen it will automagically appear at the left side of your beagle screen, and of course if you them move to the left again your cursor will go to the linux screen. Keys will also be redirected to the screen in which the cursor is.<br />
<br />
(for the technically interested: what happens is that the server detects that the mouse is on the edge of the screen and if that happens it will pass the mouse events and key presses to the client at that side over TCP/IP).<br />
<br />
If you want to autostart xynergyc when starting your system you can create a file /etc/X11/Xinit.d/99Synergy with contents:<br />
#!/bin/sh<br />
/usr/bin/synergyc server-hostname<br />
After that do a 'chmod 755/etc/X11/Xinit.d/99Synergy' to make the file executable.<br />
<br />
== Performing an automated install ==<br />
<br />
It is possible to install all James packages automatically. If that is what you want you should perform the steps mentioned in this section and skip the subsequent installation sections (although you might want to read them to learn how to configure and control the software that is installed). If you prefer to stay in control though, you want to skip this section and cherry-pick whatever parts you prefer from the subsequent sections.<br />
<br />
Beware that the automated installer is still a work in progress. At this moment you still need to do some things manually. Also the installer script does not configure most programs for automatically starting. I haven't decided yet if this should be added in the installer or by the package itself. Some packages like mpd do automatically startup on boot though.<br />
<br />
For the automatic install issue the following steps:<br />
* create and boot a kernel as explained above. Use a storage device of at least 1GB and make sure your beagle is onnected to internet<br />
* login into your beagle<br />
* wget http://www.dse.nl/~meulenbr/james/james-install<br />
* optionally review the file james-install to see if you agree with the contents and to verify that it does not do anything you do not want<br />
* sh james-install<br />
Now the installation starts. You'll see the various packages being downloaded and installed. This will take a substantial time. The actual time depends on your download speed an on how busy the package server is. As you've probably had enough coffee by now, you might want to grab something else :-) Of course you can also spent the time waiting on reading the remainder of this page.<br />
<br />
If the automated install fails for some reason you have to interrupt it or it stalls for a long time, it should be safe to stop the install and restart it.<br />
<br />
After doing the automated install you can:<br />
* connect your ptp digital camera; the beagle will then automatically transfer the pictures on it (no erasing of pictures)<br />
* manually control your camera and even remotely take pictures using gphoto2<br />
* After editing /etc/mpd.conf: play music that is on the beagle using mpd, running gmpc on the beagle or another pc on your network<br />
* manually rip CDs using cdstatus. See the section on cdstatus for more info.<br />
* set up automated ripping of CDs. See the section on automated ripping using ivman<br />
* manually encode wav files to mp3's using lame (see lame section on details)<br />
* downloading files using rtorrent<br />
* share media content on your beagle to any DLNA/UPnP client device (e.g. a Nokia N810 mobile phone, or a hardware digital media adapter or UPnP audio client using mediatomb<br />
* share media content on your beagle or external flickr photos, youtube video's, lolcats, internet radio etc etc using the Coherence UPnP server<br />
* use a wiimote to control your X11 cursor (requires wii, sensor bar and bluetooth dongle, see wiimote /cwiid section on configuration<br />
* use a remote control in your own apps or bind them to specific actions. See section on lirc.<br />
* use w3cat to capture pictures from your webcam<br />
* use motion to set up motion detection. Note that this did not work too well on my OTG port. I suspect a MUSB driver issue.<br />
* play with the PVR demo. You can do so by browsing to your beagle. A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the PVR demo locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start the midori web browser from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
Additional things that you can play with because they are installed, but that are not covered into this document are:<br />
* asterisk<br />
* ekiga<br />
<br />
NOTE: the preinstalled image is only updated at irregular intervals, so recent changes might not be in the preinstalled image yet.<br />
<br />
== Sharing your data: NFS ==<br />
<br />
Of course it is nice to access the multimedia content of your beagle on another PC. There are two ways to do so. The first one is through NFS and is handled in this section. The second one is through Samba (SMB) and is covered in the next section.<br />
<br />
In order to get NFS running on your BeagleBoard you need a recent kernel (2.6.28 and 2.6.29 kernels from after march 4, 2009 probably qualify). <br />
Apart from that you need to install the following packages:<br />
* opkg install kernel-module-exportfs kernel-module-nfs-acl kernel-module-nfsd nfs-utils<br />
You might need to insert the modules exportfs.ko, nfs_acl.ko, nfsd.ko. These live in /lib/modules. For 2.6.28 the commands to do so would be:<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/exportfs/exportfs.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfs_common/nfs_acl.ko<br />
* insmod /lib/modules/2.6.29-omap1/kernel/fs/nfsd/nfsd.ko<br />
* depmod -a<br />
Then reboot<br />
<br />
Apart from that you need to make a file /etc/exports which contains the filesystem(s) to be exported.<br />
A very simple example would be:<br />
* /home 192.168.1.0/255.255.255.0(rw)<br />
This will export /home to all systems on the network 192.168.1.0.<br />
<br />
See a good nfs document for a description on options on how to further configure nfs exports. (or man exportfs on a linux box).<br />
<br />
If you modify /etc/exports, you do not need to reboot to adapt to that settings. Just issue the command:<br />
* exportfs -a<br />
and your /etc/exports file will be reparsed and nfsd will update accordingly.<br />
<br />
== Accessing an external NFS share on your BeagleBoard ==<br />
<br />
If you want to access an external NFS share (e.g. on your linux PC) you need to install nfs-utils-client using the command<br />
* opkg install nfs-utils-client<br />
After that you can mount a share exported by an external nfs server. E.g. if your server is 192.168.1.5 and the share is /home and you want to mount on /mnt on the beagle issue the command:<br />
* mount -t nfs 1921.68.1.5:/home /mnt<br />
Of course you can also use the name of the server instead of the IP address.<br />
<br />
For automatically mounting the share above when your system boots you can add a line similar to the following one in /etc/fstab:<br />
* 192.168.1.5:/home /mnt nfs rsize=8192,wsize=8192,timeo=14,intr<br />
<br />
== Sharing your data: Samba ==<br />
<br />
In order to install samba you need to<br />
* opkg install samba<br />
<br />
The samba configuration is in /etc/samba/smb.conf. You probably want to review this file and modify it as you see fit. Use a good samba tutorial to help you with this (e.g. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ )<br />
<br />
E.g. if you want to give readonly access to /media/content with a sharename of media you need to add:<br />
[media]<br />
path = /media/content<br />
guest ok = yes<br />
writable = no<br />
<br />
A more user-friendly way to manage your samba configuration is through SWAT (the Samba Web Administration Tool).<br />
In order to have swat installed you need to do the following:<br />
* opkg install xinetd<br />
* opkg install swat<br />
* create a file /etc/xinetd.d/swat with the following content:<br />
# default: off<br />
# description: SWAT is the Samba Web Admin Tool. Use swat \<br />
# to configure your Samba server. To use SWAT, \<br />
# connect to port 901 with your favorite web browser.<br />
service swat<br />
{<br />
port = 901<br />
socket_type = stream<br />
wait = no<br />
only_from = localhost<br />
user = root<br />
server = /usr/sbin/swat<br />
log_on_failure += USERID<br />
disable = no<br />
}<br />
If you want remote access you need to modify or comment out the only_from line.<br />
<br />
After installing swat you can manage your samba configuration through port 901. (http://localhost:901 on your slug; http://<beagle ip address>:901 if you want remote access. Note that you need to log in into swat and that you cannot log in with an empty password.<br />
<br />
See http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html for info on swat.<br />
<br />
Note that if you change the samba settings you need to restart the server for the settings to take effect.<br />
<br />
Apart from installing samba, you might want to register the users that are allowed to use samba. This is done by <br />
* smbpasswd -a user<br />
where user is the user you want to add.<br />
It prompts for the password for that user. Note that this password can be different from the linux password.<br />
<br />
== Accessing your samba share from windows ==<br />
<br />
To be written<br />
<br />
== Accessing your samba share from linux ==<br />
<br />
In order to access your samba share under linux your PC running linux need to have smbclient installed. How this is done depends on your distribution and is outside the scope of this page.<br />
<br />
After installing smbclient you can access your share with<br />
* smbclient -U root //192.168.1.230/media<br />
This assumes that you want to access the data as user root. Also it assumes that your beagle is at 192.168.1.230.<br />
<br />
Another, more convenient way is by using your web browser. Just browse to smb://192.168.1.230 (or whatever the IP address of your beagle is)<br />
<br />
Mounting of a share can be done through:<br />
* mount -t cifs //server-ip/sharename /mnt -o username=user,password=pass<br />
user here is the name of a user that you added before with smbpasswd (and pass is the associated password). /mnt is the directory where you want to mount to.<br />
<br />
If you want to mount the samba share upon startup add the following to your /etc/fstab (on your client system, not on the beagle):<br />
* //server-ip/sharename /mnt smbfs username=user,password=pass 0 0 <br />
again substituting the right credentials, addresses and paths.<br />
<br />
Note: the first two methods (browsing and smbclient) can also be done if you allow anonymous access. I could not get mount to work with anonymous access.<br />
<br />
Btw: if you want to access an external samba share *from* your beagle board (e.g. on your windows PC) of course you can use the same commands.<br />
<br />
== Accessing a samba share on your BeagleBoard ==<br />
<br />
Technically accessing a samba share on your BeatleBoard is similar as explained in the previous section.<br />
However you need to install two packages.<br />
<br />
For getting smbclient you need:<br />
* opkg install samba<br />
<br />
And for mount.cifs you need:<br />
* opkg install cifs<br />
After that proceed as explained in the previous section.<br />
<br />
== Accessing data on your BeagleBoard using sshfs ==<br />
<br />
Yet another way to access data on your beagleboard is through sshfs. This is a filesystem that uses ssh. The nice thing is that ssh is already present on your beagle and no changes on the beagle are needed, and that you can even access the filesystem securely from an external location. Disadvantage is that sshfs is somewhat limited w.r.t. security. If you have ssh access, sshfs will give you access to all files you have access to, whereas with nfs and samba you can decide which directories you want to export.<br />
<br />
sshfs does require some software to be installed on your host system (the system from which you want to access the beagle fs) though.<br />
<br />
On OpenSuse:<br />
* sudo zypper install sshfs<br />
<br />
On Ubuntu and Debian:<br />
* sudo apt-get install sshfs<br />
<br />
On Fedora Core and Red Hat:<br />
* see http://fedorasolved.org/server-solutions/sshfs<br />
<br />
After installing sshfs you can mount your beagle filesystem through e.g.:<br />
* sshfs root@192.168.1.230:/ /mnt<br />
Where 192.168.1.230 is your beagle. Of course you can also use other paths and users!<br />
<br />
== Adding WiFi support ==<br />
<br />
The modules for the WiFi dongles that are supported by Linux are already present in the system. However, most likely the firwmware is still missing. This firmware need to be placed in /lib/firmware before you can use your WiFi dongle.<br />
<br />
For ZD1211 based dongles the firmware can be found at http://sourceforge.net/project/showfiles.php?group_id=129083<br />
This firmware supports the following wifi dongles: http://www.linuxwireless.org/en/users/Drivers/zd1211rw/devices.<br />
<br />
For prism54 based dongles the firmware can be found at http://wireless.kernel.org/en/users/Drivers/p54#firmware. This firmware supports the following devices: http://wireless.kernel.org/en/users/Devices/USB<br />
<br />
Configuring your wifi is outside the scope of this document.<br />
<br />
== Adding WiiMote support ==<br />
<br />
Using a WiiMote as a mouse replacement is easy. You need a bluetooth dongle, a wiimote and a sensor bar (you can use the one from your wii, but I just used a noname wireless sensor bar bought on Ebay. (Actually such a sensor bar is nothing more than a piece of plastic with a few IR leds, a switch, a battery compartment and maybe a few resistors.)<br />
<br />
Just perform the following actions:<br />
* opkg install cwiid<br />
* insert the bluetooth dongle<br />
* hciconfig hci0 up<br />
* wminput -c ir_ptr<br />
now follow the instructions to connect your wiimote to the dongle and use your wiimote as a mouse pointer. (do not forget to point in the direction of the sensor bar).<br />
<br />
For more information on how to configure wminput see http://abstrakraft.org/cwiid/wiki/wminput<br />
<br />
(btw: wminput assumes that the uinput driver is loaded, but if you use the standard kernel this is the case. If uinput is not there you need to load it using insmod uinput (probably after building it)).<br />
<br />
== Adding support for a remote control ==<br />
<br />
* opkg install lirc<br />
To be updated<br />
<br />
== Using a webcam ==<br />
<br />
I have connected a Philips PCVC680K (Vesta Pro) USB webcam to my beagle. If the module pwc is present it will be loaded when you plug in the cam. The moudule will be there if you have chosen "all kernel modules" in the image builder. If not you can still get it by issueing the command 'opkg install kernel-module-pwc'<br />
<br />
After doing so I was able to play the video on a monitor connected to the beagle by issuing the command <br><br />
DISPLAY=:0.0 mplayer -tv width=320:height=240:driver=v4l2 -fps 15 tv:// <br><br />
on the serial console (if you are running from a terminal you can omit the DISPLAY=0:0 part.<br><br />
Note that I connected the webcam on the OTG port. This resulted in a picture with some colored striping. Apparently some data gets corrupted somewhere. As the same setup works flawless on various systems (x68, nslu2) with a regular usb host interface, I guess there is a bug in the OTG driver or a glitch in the hardware.<br />
<br />
Other webcams can be used in a similar fashion, but you probably need to adjust the width, height and fps commands for mplayer.<br />
<br />
=== vidcat ===<br />
It is also possible to capture individual pictures from your webcam. You can use the program vidcat to do so. This program is part of the package w3cam and can be installed with 'opkg install w3cam'.<br />
<br />
vidcat is a little bit picky on its arguments. For my PCVC680K the command 'vidcat -p y -s 640x480 > test.jpg' did the job for me.<br />
If you get a message like:<br />
VIDIOCMCAPTURE: Invalid argument<br />
args: width=320 height=240 palette=4<br />
Error: Can't get image<br />
your parameters are probably incorrect.<br><br />
Btw you can use vidcat --help to get a list of possible options to vidcat.<br />
<br />
=== motion ===<br />
Another application that is proven to work is motion (install with 'opkg install motion'. This does support motion detection by taking a picture at regular intervals and comparing that picture with the previous one. If the differences between the pictures exceed a user-defined treshold the pictures are stored. That way the cam can be used to detect intruders. <br><br />
Unfortunately due to the random color stripes, this is not useful yet on Beagle revB hardware.<br><br />
More information on motion and how to configure it can be found at: http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome<br />
<br />
== Audio playback: mpd ==<br />
<br />
Mpd is a daemon process that can play audio. It is a daemon only and it can be controlled remotely by a mpd client (e.g. gmpc). This client can run locally on the beagle but also remotely on another system. Actually you can even set things up in such a way that your audio player can be controlled over the internet.<br />
<br />
Installation of mpd can be done with:<br />
* opkg install mpd<br />
Note: the latest version of MPD is not on the feed yet. For now you may download http://www.dse.nl/~meulenbr/james/mpd_0.14.2-r3.1_armv7a.ipk and install it manually (opkg install mpd_0.14.2-r3.1_armv7a.ipk)<br />
<br />
Installation of the gmpc client can be done with<br />
* opkg install gmpc<br />
<br />
Before starting the client be sure to review and edit the file /etc/mpd.conf<br />
Especially you want to modify the line starting with music_directory as this points to the location where your audio files are. Also if your beagle has a public IP address you might want to restrict access by modifying the bind_to_address line, which specifies what systems have access and/or install a password.<br />
<br />
More info on mpd can be found at: http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki<br />
<br />
== Grabbing photos from a PTP enabled camera ==<br />
<br />
If you have a PTP enabled digital photocamera, it is possible to automate the extraction of photos from<br />
that camera. In order to do so perform the following steps:<br />
* opkg install gphoto2<br />
Create a script photoripper. My script looks like:<br />
#!/bin/sh<br />
<br />
test "x$ACTION" != "xadd" && exit 0<br />
test "x$SUBSYSTEM" != "xusb_device" && exit 0<br />
<br />
if test -e "$DEVNAME"<br />
then<br />
# SUBSYSTEM == "usb_device" implies that DEVNAME == "/dev/bus/usb/123/456"<br />
# Determine device ID and bus ID.<br />
dev="$(basename "$DEVNAME")"<br />
bus="$(basename "$(dirname "$DEVNAME")")"<br />
<br />
cd /home/root # change this line if you want to download to a different directory.<br />
/usr/bin/gphoto2 --port usb:${bus},${dev} --get-all-files<br />
else<br />
echo "photoripper: Given device named $DEVNAME not found." >>/tmp/photoripper.log<br />
exit 1<br />
fi<br />
Place this script in a directory of your choice. I've used /usr/local/bin (which need to be created<br />
first), but you can put it in another location. Just adapt the path in the next two commands.<br />
* chmod 755 /usr/local/bin/photoripper<br />
* /usr/lib/libgphoto2/print-camera-list udev-rules version 0.98 script /usr/local/bin/photoripper > /etc/udev/rules.d/90-libgphoto2.rules<br />
This will start the photoripper script whenever you connect the camera to your system.<br />
<br />
Of course the script above is just my version. If desired you can use other gphoto2 options. E.g. you can<br />
add the option --new to the gphoto2 command so only new files are downloaded. And if you are brave you<br />
can even automatically remove the pictures from your camera after downloading them by adding a gphoto2<br />
command with the option --delete-all-files. Note that you do this completely at your own responsibility.<br />
Don't blame me if for wahtever reason you loose pictures!<br />
<br />
== Ripping an audio CD ==<br />
<br />
If you have an USB CD or DVD drive you can use it to rip audio CD's. James does that by using cdstatus. Advantage of cdstatus is that it can interface with CDDB. <br />
<br />
You can install cdstatus through:<br />
* opkg install cdstatus<br />
<br />
Ripping a CD can be done through the command:<br />
* cdstatus --cddb --drive /dev/sr0 --rip<br />
Note that this command rips to wav files. cdstatus has some more options (e.g. specifying the destination directory). Issue 'cdstatus --help' to learn about them.<br />
<br />
The speed to rip a CD depends mostly on the audio extraction speed of your drive.<br />
<br />
== Automatically ripping a CD using ivman ==<br />
<br />
It might be that you desire to automatically rip a CD when you insert it in the drive. This can be done by using the program ivman. In order to do so you should first install ivman:<br />
* opkg install ivman<br />
Note: at the time of writing ivman is not yet in the feeds. If the command above fails please manually install and download the following files in the order given:<br><br />
http://www.dse.nl/~meulenbr/james/pmount_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/pmount-hal_0.9.18-r0.1_armv7a.ipk<br><br />
http://www.dse.nl/~meulenbr/james/ivman_0.6.14-r1.1_armv7a.ipk<br><br />
<br />
After that edit the file /etc/ivman/IvmConfigActions.xml. Add the following text near the end (just above the tag </ivm:ActionsConfig><br />
<ivm:Match name="hal.volume.disc.type" value="cd_rom"><br />
<ivm:Match name="hal.volume.disc.has_audio" value="true"><br />
<ivm:Match name="hal.volume.disc.has_data" value="false"><br />
<ivm:Option name="exec" value="cd /media/content &gt;&gt /usr/bin/cdstatus --cddb --drive '$hal.block.device$' --rip " /><br />
</ivm:Match><br />
</ivm:Match><br />
</ivm:Match><br />
Of course you can replace /media/content with the path of your choice.<br />
<br />
You also might want to change IvmConfigBase.xml. There is a line there saying<br />
<ivm:Option name="user" value="ivman" /><br />
This specifies the user under which all ivman commands are run. In order to get things working you need to perform one of the following steps:<br />
# make sure /media/content is writable by user ivman and /dev/scd0 is readable by user ivman<br />
# reolace the line with: <ivm:Option name="user" value="root" /> causing the code to run as root<br />
# make cdstatus setuid root by issueing the command chmod 4711 /usr/bin/cdstatus<br />
<br />
Then start ivman. After doing so if you insert an audio CD it will be ripped automatically to /media/content (or your directory if you changed it.<br><br />
Remember that cdstatus rips to wav files, so ripping a CD may give you up to 700 MB of data (so do not do this on an SD card that is almost full). <br><br />
<br />
Note: on my beagle ripping a CD brings the rest of the system almost to a halt. Apparently a lot of time is used in I/O actions.<br />
<br />
Note2: ivman can also be very useful doing all kind of other things on device insertion/removal. See the file /etc/ivman/IvmConfigActions.xml for some examples.<br />
<br />
== Transcoding a wav file to mp3 ==<br />
<br />
Cdstatus gives wav files but probably you want mp3 files. This is easily being done by lame.<br />
<br />
You can install lampe through:<br />
* opkg install lame<br />
<br />
Then you can encode a file using the command:<br />
* lame -h input.wav output.mp3<br />
<br />
Handy trick:<br><br />
if you want to convert all files in a directory you can simply issue the command:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3; done<br />
And if you want to remove the wav file after that you can say:<br />
* for i in *.wav;do lame -h $i `basename $i .wav`.mp3 && rm $i; done<br />
<br />
Lame has options to control the bitrate, set mp3 tags etc. Use<br />
* lame --longhelp<br />
to get an extensive list.<br />
<br />
Lame does not retrieve mp3 tags or so from CDDB<br><br />
Speed of lame is about twice the time of the track when ripping with -h and 128 kbit/s on an otherwise unused Beagle, so it would be nice to be able to use the DSP to transcode wav files.<br />
<br />
== UPnP server: mediatomb ==<br />
<br />
If you have a UPnP client device like a TV with an embedded UPnP client, or a Digital Media Adapter or a UPnP audio client, or a phone with UPnP client functionality build in you are probably interested in having a UPnP server on your Beagle.<br><br />
As UPnP server James supports mediatomb. This is a server with a web based UI.<br />
<br />
Installation of mediatomb is done in the usual way:<br />
* opkg install mediatomb<br />
After that you can run mediatomb on your beagle. You might want to check out the options of mediatomb (use mediatomb --help). E.g. you might want to fix the port that mediatomb uses. The default port is the first port after 49151 so most often 49152.<br><br />
Configuration settings can also be specified in ~/.mediatomb/config.xml<br><br />
See http://mediatomb.cc/ for information on the syntax of config.xml and on general usage information.<br />
<br />
After mediatomb is running you can configure what contents is shared through the web interface. Just use a web browser and browse to the IP address:port number of your beagle (e.g. 192.168.0.10:49152 if 192.168.0.10 is the address of your beagle).<br />
<br />
Note: I have never tried the transcoding features of mediatomb.<br />
<br />
== Another UPnP server: Coherence ==<br />
<br />
When selecting a UPnP server there is another interesting candidate: Coherence. It does not have a fancy UI yet,but it has a very nice feature: it supports a variety of backends which make external (web) content available through UPnP. E.g. there is a backend to serve internet radio (iRadio). Yet another backend will serve FLickR pictures, while yet another one serves Youtube. And if you are a cat lover you definitely want to check out Lolcats!<br />
<br />
Installation is done through:<br />
* opkg install python-coherence<br />
Beware: this will drag in a lot of other packages.<br />
<br />
Coherence configuration is stored in ~/.coherence. Info on Coherence and its configuration can be found at http://coherence.beebits.net/<br />
<br />
== Downloading torrents ==<br />
<br />
The beagle, being a low power device is of course also a nice system to download torrents. rtorrent is a small and efficient tool to download torrents.<br />
<br />
Installation of rtorrent is done through:<br />
* opkg install rtorrent rtorrent-doc<br />
In order to be able to suspend rtorrent and disconnect your terminal (especially useful when connecting to yur system using ssh) it is recommended also to install screen with:<br />
* opkg install screen screen-doc<br />
<br />
Screen is a very nice application that will keep on running whenever you detach from the terminal. If you want to start rtorrent under screen you can type:<br />
* screen rtorrent<br />
After that you can start whatever torrent you want to. <br />
<br />
It is a good idea to first read the manpage for rtorrent. Leaving rtorrent can be done with ctrl-Q. Exiting screen can be done with ctrl-D, and if you want to detach from screen but keep rtorrent and screen running type ctrl-A d or ctrl-A ctrl-D. Further info on the key bindings of screen can be obtained by ctrl-A ?<br />
<br />
== PVR demo ==<br />
<br />
Work is in progress to implement a personal video recorder (pvr) on the beagle. This code is already running on NSLU2, and has been ported to Beagle. However, unfortunatly my Beagle does not want to work with my Hauppauge USB TV card through the OTG port. Therefore the only thing available is the UI part. This can be downloaded and installed using<br />
* wget http://www.dse.nl/~meulenbr/james/pvr.tar.gz<br />
* tar xvfz pvr.tar.gz<br />
* rm pvr.tar.gz<br />
* /etc/init.d/apache2 restart<br />
Note that pvr.tar.gz contains absolute paths and will overwrite things like httpd.conf.<br />
<br />
A description of the design of the PVR and instructions to operate the demo can be found at: http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
<br />
Note: if you have connected a monitor to your beagle it is also possible to show the UI locally. Select a good display resolution (e.g. 1280x720MR-24@60) in u-boot and after booting start midori from enlightenment using <br />
* midori http://127.0.0.1<br />
Or if you want to start from your serial port or an ssh session you can start midori with:<br />
* DISPLAY=:0.0 midori http://127.0.0.1<br />
<br />
= Packages that are present but still need some work =<br />
<br />
* asterisk (IP pbx): still need to look at how to integrate/use it<br />
* ekiga (SIP client): requires testing<br />
* LCD4Linux: works as expected, but it is not used yet to display James info.<br />
* rtorrent: works, needs to be more automated to download torrents<br />
* cups: haven't played with it yet<br />
* gpsd and gps-utils: these are a little bit off-topic, but I would love to use the beagle with my bluetooth gps, need to peek into this.<br />
<br />
= Things to do =<br />
<br />
In no particular order:<br />
* More automated/user friendly install script<br />
* newsreader/leechere (probably nzb based)<br />
* better UI (perhaps using Wt)<br />
* ampache?<br />
* xmltv ?<br />
* upnp client (gstreamer?<br />
* automatic import from mass storage<br />
* fle manager ? (phpexplorer?)<br />
* photo slideshow application<br />
* cd recording; I've made a package for cdrkit, but that has some issues and I have not had the time to find out what it is<br />
* improve PVR and use remote control and/or move to mythtv.<br />
* improve documentation and add sections for samba, nfs, ekiga and asterisk.<br />
* work on optimisation. e.g. I would like to use e.g thpptd instead of apache. and maybe move to LXDE)<br />
* support tux (www.kysoh.com)<br />
* text to speech<br />
<br />
= Infrequently Asked Questions =<br />
<br />
=== Where are the frequently asked questions ===<br />
<br />
LOL, there are no frequently asked questions. This is so new that any question is infrequently asked (or not at all). This section is here to give answers to some of the things that might pop up while reading this.<br />
<br />
=== Great! Where can I download this? When is this available? ===<br />
<br />
This is work in progress. For now you can reproduce things using the steps outlined above.<br><br />
<br />
=== Is this feasible? It looks very ambitious ===<br />
<br />
It is definitely ambitious. Then again a bit of ambition does not hurt.<br><br />
And feasible: I think it is, but only time will tell. A lot of the software<br />
is available in the open source domain. I have quite some experience porting<br />
software, and a lot of things I did before on<br />
[http://www.nslu2-linux.org/ NSLU2] where I am<br />
[http://www.nslu2-linux.org/wiki/Profiles/EFfeM eFfeM]<br />
<br />
But... in the end only time will tell!<br />
<br />
=== Cool, but it would be cooler if you add function XXX ===<br />
<br />
Could be. Feel free to bring XXX to my attention. If there is open source<br />
software to support this function, please mention it. Depending on the<br />
amount of effort needed and the potential benefit for others, I might pick<br />
it up earlier or later.<br />
<br />
=== Can you support hardware device YYY ===<br />
<br />
Depends. I try to make use of existing software as much as possible and try<br />
to be device independent, so it might be supported already<br />
(perhaps with a little effort).<br><br />
Then again this also depends on what kind of hardware it is. If it is<br />
something nice I'd want myself, I might buy it. If not I might still<br />
support it if someone borrows or donates me a piece of hardware to allow<br />
testing, if I consider it to be of general use. Then again if your problem is<br />
very specific you are probably on your own (although of course I am willing<br />
to give some advice).<br />
<br />
=== This project sounds good! Can I help? ===<br />
<br />
Depends on your skills, competences and time.<br><br />
If you have hardware skills you could probably come up with a prototype for<br />
an expansion board, instead of the hodge-podge of USB devices that I am<br />
undoubtedly going to make.<br><br />
If you have mechanical skills you could come up with a casing proposal<br />
(otherwise it'll probably be a shoe box project).<br><br />
If you are graphically skilled you could help defining the UI (I am<br />
graphically challenged :-) ).<br><br />
And if you are a programmer you could port and test some of the packages<br />
mentioned above.<br />
<br />
=== Unanswered questions, suggestions, remarks etc ===<br />
<br />
If you have other questions, suggestions, remarks etc. feel free to add them below. I'll try to come up with answers.</div>FransMeulenbroekshttps://elinux.org/index.php?title=User:Md84419/BeagleboardAngstrom&diff=12159User:Md84419/BeagleboardAngstrom2009-06-10T09:13:40Z<p>FransMeulenbroeks: </p>
<hr />
<div>A random collection of notes on the Angstrom builds for Beagleboard<br />
<br />
= uBoot =<br />
<br />
Older uboots display a beagleboard splash. These are outdated and broken.<br />
<br />
= Koen distribution =<br />
<br />
Koen is responsible for the distribution at [http://www.angstrom-distribution.org/demo/beagleboard/ http://www.angstrom-distribution.org/demo/beagleboard/].<br />
<br />
== LEDs ==<br />
<br />
USR0: heartbeat, driven by the Kernel. However, it is possible for the board to fail to boot yet the heartbeat to continue (for instance the "pixel clock problem").<br />
<br />
USR1: MMC IO activity monitor.<br />
<br />
<br />
== DSS2A ==<br />
<br />
DSS2 is the display driver that has been virtually rewritten. It includes a sysfs interface at /sys/class/grpahics and /sys/driver/platform/omapdss. See for instance [http://groups.google.com/group/beagleboard/browse_thread/thread/a57950001eeb54be/fc252d23f8eebc17] for more info - or just search the google mailing list for DSS2.<br />
<br />
<br />
= James distribution =<br />
<br />
James is an alternative build that is being used for the Beagleboard James project. Some developers say it has better display and devices support than the Koen distribution.<br />
<br />
NOTE: James is based upon a snapshot of Koen's distribution and is not a separate distribution. Apparently there is some regression along the line. Frankly speaking James is in need of an update, but the author of James is too busy on other issues at the moment.</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=11477BeagleBoard/contest2009-05-04T16:30:37Z<p>FransMeulenbroeks: /* FMframe */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Consumer IR remote control via LIRC|Consumer IR remote control via LIRC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Acclerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects getting >= 4 points will be approved.<br />
<br />
==== Revolt 2405====<br />
<br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
<br />
==== Consumer IR remote control via LIRC ====<br />
<br />
* '''Title''': Consumer IR remote control via LIRC <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The open source project will add the IR remote capability to the beagle.<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
* '''Expected results''': <br />
**Full port of LIRC to work with Beagle.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
<br />
==== TUD:OS on Beagleboard ====<br />
<br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Expected results''': Expected results would be to have TUD:OS running on the Beagle-Board, including userland-device drivers (USB/networking), multiple L4Linux-instances plus a small and secure GUI. Demo could be like the one available at http://demo.tudos.org/.<br />
** Outcome of this project then could be used to build small and secure and/or realtime applications directly running on the microkernel side by side with unsecure and non-realtime applications running on L4Linux.<br />
* '''Contact''': dvogt[at]os[.]inf[.]tu-dresden[.]de<br />
<br />
==== picoFlamingo ====<br />
<br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
<br />
==== Acclerated USB Graphics Adapter ====<br />
<br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
<br />
==== Apertus open source/hardware cinema camera ====<br />
<br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
<br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br>User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====Linux Hard Real-Time (PREEMPT_RT) demo====<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.28 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device driver are -rt safe; Build a typical real-time user land set of application (Ångström based).<br />
* '''Homepage''': http://www.axon.tv/<br />
* '''Note''': Created a 4 months company traineeship position on Beagle Board work which has been filled by a student.<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=11476BeagleBoard/contest2009-05-04T16:29:56Z<p>FransMeulenbroeks: /* Approved projects */</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Consumer IR remote control via LIRC|Consumer IR remote control via LIRC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Acclerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects getting >= 4 points will be approved.<br />
<br />
==== Revolt 2405====<br />
<br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
<br />
==== Consumer IR remote control via LIRC ====<br />
<br />
* '''Title''': Consumer IR remote control via LIRC <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The open source project will add the IR remote capability to the beagle.<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
* '''Expected results''': <br />
**Full port of LIRC to work with Beagle.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
<br />
==== TUD:OS on Beagleboard ====<br />
<br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Expected results''': Expected results would be to have TUD:OS running on the Beagle-Board, including userland-device drivers (USB/networking), multiple L4Linux-instances plus a small and secure GUI. Demo could be like the one available at http://demo.tudos.org/.<br />
** Outcome of this project then could be used to build small and secure and/or realtime applications directly running on the microkernel side by side with unsecure and non-realtime applications running on L4Linux.<br />
* '''Contact''': dvogt[at]os[.]inf[.]tu-dresden[.]de<br />
<br />
==== picoFlamingo ====<br />
<br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
<br />
==== Acclerated USB Graphics Adapter ====<br />
<br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
<br />
==== Apertus open source/hardware cinema camera ====<br />
<br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
<br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br><br />
User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====Linux Hard Real-Time (PREEMPT_RT) demo====<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.28 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device driver are -rt safe; Build a typical real-time user land set of application (Ångström based).<br />
* '''Homepage''': http://www.axon.tv/<br />
* '''Note''': Created a 4 months company traineeship position on Beagle Board work which has been filled by a student.<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=11475BeagleBoard/contest2009-05-04T16:28:37Z<p>FransMeulenbroeks: /* Approved projects */ added FMframe to the list</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Consumer IR remote control via LIRC|Consumer IR remote control via LIRC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Acclerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-|<br />
[[BeagleBoard/contest#FMframe |FMframe]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects getting >= 4 points will be approved.<br />
<br />
==== Revolt 2405====<br />
<br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
<br />
==== Consumer IR remote control via LIRC ====<br />
<br />
* '''Title''': Consumer IR remote control via LIRC <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The open source project will add the IR remote capability to the beagle.<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
* '''Expected results''': <br />
**Full port of LIRC to work with Beagle.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
<br />
==== TUD:OS on Beagleboard ====<br />
<br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Expected results''': Expected results would be to have TUD:OS running on the Beagle-Board, including userland-device drivers (USB/networking), multiple L4Linux-instances plus a small and secure GUI. Demo could be like the one available at http://demo.tudos.org/.<br />
** Outcome of this project then could be used to build small and secure and/or realtime applications directly running on the microkernel side by side with unsecure and non-realtime applications running on L4Linux.<br />
* '''Contact''': dvogt[at]os[.]inf[.]tu-dresden[.]de<br />
<br />
==== picoFlamingo ====<br />
<br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
<br />
==== Acclerated USB Graphics Adapter ====<br />
<br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
<br />
==== Apertus open source/hardware cinema camera ====<br />
<br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
<br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br><br />
User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====Linux Hard Real-Time (PREEMPT_RT) demo====<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.28 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device driver are -rt safe; Build a typical real-time user land set of application (Ångström based).<br />
* '''Homepage''': http://www.axon.tv/<br />
* '''Note''': Created a 4 months company traineeship position on Beagle Board work which has been filled by a student.<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=11474BeagleBoard/contest2009-05-04T16:27:26Z<p>FransMeulenbroeks: added FMframe</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the [[BeagleBoard/contest#Contest_projects| BeagleBoard Sponsored Projects Program]] (formerly known as contest #3). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a [http://gumstix.com/store/catalog/product_info.php?products_id=229 Gumstix Palo43] or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Gregoire<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Consumer IR remote control via LIRC|Consumer IR remote control via LIRC]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]<br />
|<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#TUD:OS_on_Beagleboard|TUD:OS on Beagleboard]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#picoFlamingo|picoFlamingo]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Acclerated_USB_Graphics_Adapter|Accelerated USB Graphics Adapter]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Apertus_open_source.2Fhardware_cinema_camera|Apertus Digital Cinema Camera ]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
Rule: In each week, each judge has two points (two "1") to enter for his favorite project. The two projects getting >= 4 points will be approved.<br />
<br />
==== Revolt 2405====<br />
<br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
<br />
==== Consumer IR remote control via LIRC ====<br />
<br />
* '''Title''': Consumer IR remote control via LIRC <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The open source project will add the IR remote capability to the beagle.<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
* '''Expected results''': <br />
**Full port of LIRC to work with Beagle.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
<br />
==== TUD:OS on Beagleboard ====<br />
<br />
* '''Title''': TUD:OS on Beagleboard <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': Port the L4-Microkernel based TUD:OS Operating System to the Beagleboard<br />
* '''Homepage''': will follow<br />
* '''Expected results''': Expected results would be to have TUD:OS running on the Beagle-Board, including userland-device drivers (USB/networking), multiple L4Linux-instances plus a small and secure GUI. Demo could be like the one available at http://demo.tudos.org/.<br />
** Outcome of this project then could be used to build small and secure and/or realtime applications directly running on the microkernel side by side with unsecure and non-realtime applications running on L4Linux.<br />
* '''Contact''': dvogt[at]os[.]inf[.]tu-dresden[.]de<br />
<br />
==== picoFlamingo ====<br />
<br />
* '''Title''': picoFlamingo <br />
* '''beagleboard.org project''': http://beagleboard.org/project/picoFlamingo/<br />
* '''Short project description''': A portable presentation system for the BeagleBoard and the picoDLP projector<br />
* '''Homepage''': http://papermint-designs.com/picoflamingo<br />
* '''Expected results''': <br />
** An application to perform presentations including 3D elements.<br />
** A basic hardware specification for a portable presentation system.<br />
** A remote interface for wireless control of the presentation.<br />
** A demonstration of the possibilities provided by the BeagleBoard, the OMAP 3 platform and the picoDLP.<br />
** Hopefully a lightweight 3D render engine for OpenGL ES 2.0.<br />
** A lot of fun!!!... <br />
* '''Contact''': dmo[at]papermint-designs[.]com<br />
<br />
==== Acclerated USB Graphics Adapter ====<br />
<br />
* '''Title''': Accelerated USB Graphics Adapter <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': USB-attached Graphics Card supporting OpenGL acceleration for XFree86<br />
* '''Homepage''': http://www.employees.org/~mschulma/beagleboard/cerberus/<br />
* '''Expected results''': <br />
** Use the Beagleboard to attach another monitor to a PC running Linux, and run a graphics intensive application on the expanded virtual desktop without slowing the main CPU.<br />
* '''Contact''': mschulma [at] employees [dot ] org<br />
<br />
==== Apertus open source/hardware cinema camera ====<br />
<br />
* '''Title''': Apertus Digital Cinema Camera<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Apertus/<br />
* '''Short project description''': A digital camera controler for an Elphel open hardware camera. The beagle board will be used as a realtime viewfinder unit and hardware camera control.<br />
* '''Homepage''': http://cinema.elphel.com<br />
* '''Expected results''': We intend on creating a community driven open source cinematic HD camera for a professional environment. <br />
The image is provided by an Elphel camera (elphel.com, open source camera). A beagle board would be connected to an elphel camera using ethernet. The beagle board runs a lightweight UI that allows user to view the live feed from the camera on an external display (dvi or s-video). It also allows to trigger recording and change camera settings using a user interface. The user interface is software based (on screen) + hardware based using buttons and knobs if possible (I2C interface of the beagle board would be used). This project will take 2-6 months to have visible results. The feasibility of this project has been discussed on the Beagle Board group, with positive answers (cfr. http://groups.google.fr/group/beagleboard/browse_thread/thread/6c55a10dd598bb6/e946107bd0a807b8#e946107bd0a807b8 )<br />
* '''Contact''': philippe dot jadin at gmail dot com<br />
<br />
==== FMframe ====<br />
<br />
* '''Title''': FMframe<br />
* '''beagleboard.org project''': not yet<br />
* '''Short project description''': FMframe is a picture frame application coupled with an rss news reader and clock/alarm functionality<br />
* '''Homepage''': not yet; in a few days I will try to come up with a website with some preliminary screenshots.<br />
* '''Expected results''': Plan is to make a picture frame application. Hardwarewise the beagle will connect to a DVI display. Softwarewise it will be a picture frame optionally with a clock on top of the photo (either a big semi-transparent clock in the center or a smaller clock in the corner). There will also be an alarm function which can play a preselected mp3 file when the alarm time is reached. Apart from showing pictures the frame can also show news from a user definable rss feed (e.g. cnn.com), Normally this will be in a ticker-tape at the bottom of the picture. When the user presses a button when a specific topic is shown the full message pops up. Probably there will be dedicated provisions for weather, giving the weather forecast if desired (in a style as done by the google weather widget). When waking up the frame can show the weather with the scrolling news or (user selectable) just a list of headlines. When the alarm is switched off the display acts like a regular photo frame again.<br><br />
User interaction will be through a remote control. Alternate inputs could be touch screen (if I get access to an affordable one) or keyboard (less convenient but it does allow people without IR receiver to control the device.<br />
* '''Contact''': fransmeulenbroeks at gmail dot com<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====Linux Hard Real-Time (PREEMPT_RT) demo====<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.28 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device driver are -rt safe; Build a typical real-time user land set of application (Ångström based).<br />
* '''Homepage''': http://www.axon.tv/<br />
* '''Note''': Created a 4 months company traineeship position on Beagle Board work which has been filled by a student.<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Gregoire Gentil (gregoiregentil)<br />
<br />
===Past Judges===<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=Legal_Issues&diff=11134Legal Issues2009-04-22T07:30:07Z<p>FransMeulenbroeks: other links: gpl violations</p>
<hr />
<div>== Legal Issues using Linux in embedded projects ==<br />
The intricacies of using the GPL license have been hashed out repeatedly in many<br />
other forums. [references would be nice for major issues]<br />
<br />
This page has a few specific issues relating to embedded use of Linux.<br />
<br />
== EXPORT_SYMBOL_GPL ==<br />
=== EXPORT_SYMBOL_GPL for kernel USB API ===<br />
In January of 2008, Greg Kroah Hartman submitted a patch to change the core<br />
USB API to EXPORT_SYMBOL_GPL. Here is some information about that change:<br />
<br />
* [http://lwn.net/Articles/266724/ USB: mark USB drivers as being GPL only (LWN.net)]<br />
* [http://www.linux-magazine.com/online/news/linux_2_6_25_without_closed_source_usb_drivers Linux 2.6.25 without Closed Source USB Drivers (Linux Magazine)]<br />
* [http://www.linuxworld.com/community/?q=taxonomy/term/24 USB drivers going GPL-only in 2.6.25 (LinuxWorld)]<br />
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=782e70c6fc2290a0395850e8e02583b8b62264d8 the actual git commit]<br />
<br />
== Other Links ==<br />
<br />
http://gpl-violations.org/</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoardAndOpenEmbeddedGit&diff=11049BeagleBoardAndOpenEmbeddedGit2009-04-20T12:23:42Z<p>FransMeulenbroeks: /* Prerequisites */ added quilt</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
This guide briefly describes the steps that need to be taken in order to create an [http://www.openembedded.org/ OpenEmbedded] (OE) based image for the [[BeagleBoard]].<br />
It was created while performing an install on ubuntu804jeos (a minimal console only vmware appliance). This guide differs from the official guide in that we focus on the [[BeagleBoard]] as target and Ubuntu as host platform.<br />
<br />
The first step is to get a working Open Embedded installation. This can seam a daunting task at first but the rewards are great so here we go. This guide tries to be self containing. We therefore will not push you to use Google or read the other manuals.<br />
<br />
=== Prerequisites ===<br />
Disk Space<br />
<br />
Although OpenEmbedded images for the devices are usually quite small, the development system needs significant space. Take this into account, especially when using OE within a virtual machine.<br />
<br />
* Minimum requirement: 12 GB (e.g. omap3-console-image for Gumstix Overo and BeagleBoard)<br />
* Standard requirement: 30 GB (e.g. omap3-desktop-image)<br />
* Maximum requirement: 35 GB (for full OE build, bitbake world)<br />
<br />
So the minimum free disk space is about 15 GB (no desktop images), standard would be 35 GB and a safe size is 45 GB.<br />
<br />
OE tries to be as self supporting as possible. OE will both compile the cross compiler and the tools needed to compile a whole system. Still some dependencies are to be met using the "host" system. During the install we will be able to run almost all the commands as normal user but right now we will install the basic set of packages that are required to make OE to be happy.<br />
<br />
Host tools to install:<br />
sudo apt-get update<br />
<br />
sudo apt-get upgrade<br />
<br />
sudo apt-get install ccache sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev \<br />
docbook-utils gawk help2man diffstat gtk-doc-tools file g++ python-psyco minicom build-essential \<br />
libncurses5-dev python-dev python-pysqlite2 quilt<br />
<br />
OE and many tools and scripts that are used contain bashisms. We therefore want to change the default "/bin/sh" to point to bash.<br />
sudo dpkg-reconfigure dash<br />
#and select no<br />
<br />
<br />
Ubuntu 8.04 (and ealier)<br />
An other change need need to perform as root is to change some default settings of the kernel.<br />
sudo vi /etc/sysctl.conf<br />
vm.vdso_enabled = 0<br />
vm.mmap_min_addr = 0<br />
<br />
Run<br />
sudo sysctl -p<br />
<br />
Ubuntu 8.10 (and later)<br />
Add settings to config directory (Prefix 60-* ensures that it overrides all other settings).<br />
sudo -s<br />
echo -e "vm.vdso_enabled = 0\nvm.mmap_min_addr = 0" > /etc/sysctl.d/60-oe-settings.conf<br />
exit<br />
<br />
And then run<br />
sudo invoke-rc.d procps start<br />
<br />
== The effective install ==<br />
We are going install the OpenEmbedded system under the user's home directory in a directory called "oe". We will need about 10 gig of free disk space. Under that we will be putting the different components of the OE system. Those components are [http://bitbake.berlios.de/manual/ Bitbake], the OpenEmbedded meta-data and the beagle configuration. The Bitbake task executor will be put under "opt". The OpenEmbedded meta-data ( Bitbake recipes ), classes ( Bitbake extentions) and configuration (machine and arch setup) will be located under the "openembedded" directory. The BeagleBoard configuration will be placed under "beagleboard" directory.<br />
<br />
=== OpenEmbedded and Bitbake install ===<br />
This part really is not that difficult after all.<br />
<br />
Set the dir where everything will be done<br />
export OE_HOME=$HOME/oe<br />
<br />
Install Bitbake<br />
<br />
mkdir -p $OE_HOME/opt<br />
cd $OE_HOME/opt<br />
svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ bitbake<br />
#or if your are behind a firewall<br />
svn co <nowiki>http://svn.berlios.de/svnroot/repos/bitbake/branches/bitbake-1.8</nowiki> bitbake<br />
<br />
<br />
<br />
Install the OpenEmbedded meta-data using git<br />
cd $OE_HOME<br />
git clone git://git.openembedded.net/openembedded<br />
#or if you are behind a firewall<br />
git clone http://repo.or.cz/r/openembedded.git<br />
<br />
=== Creating the BeagleBoard configuration and profile ===<br />
We now need to tweak OpenEmbedded to fit our Beagle needs. We create a profile script that we can run whenever we feel like playing with beagle. This script will perform a few tasks. It will add bitbake to our PATH so we can run the bitbake command from anywhere. It will then export the BBPATH and BBFILES. This tells bitbake where to find it's meta-data. BBPATH will both point to our own beagleboard files and openembedded.<br />
<br />
But first we create a local.conf containing the most important choices we need to make. Change at least the MACHINE to beagleboard. Select angstrom-2008.1 as distro. <br />
<br />
mkdir -p $OE_HOME/beagleboard/beagleboard/conf<br />
cat > $OE_HOME/beagleboard/beagleboard/conf/local.conf <<_EOF<br />
DISTRO = "angstrom-2008.1"<br />
BBFILES = "$OE_HOME/openembedded/recipes/*/*.bb"<br />
TMPDIR = "$OE_HOME/tmp"<br />
MACHINE = "beagleboard"<br />
ENABLE_BINARY_LOCALE_GENERATION = "0"<br />
_EOF<br />
<br />
If you have a multicore machine, you can also add these two variables to speed up things (a value of 2 is safe in most cases), see [http://dev.openbossa.org/trac/mamona/wiki/SpeedUp here]:<br />
<br />
BB_NUMBER_THREADS = "2" # Depends on your machine<br />
PARALLEL_MAKE = "-j 2" # Depends on your cluster<br />
<br />
Now we create our profile. There are TWO CHOICES here.<br />
<br />
'''NOTE''': In the recented version BitBake, it will remove all of the environment variables, unless they are trustly declared in BitBake whitelist(BB_ENV_EXTRAWHITE), therefore, you should list the env vars you need in the BitBake whitelist and export it. This is already done when creating the profile bellow using the BB_ENV_EXTRAWHITE environment variable.<br />
<br />
CHOICE 1) If you are going to operate directly connected to the internet (i.e. NO Proxy Firewall), then do:<br />
<br />
cd $OE_HOME<br />
cat > $OE_HOME/beagleboard/beagleboard/profile.sh <<_EOF<br />
export OE_HOME=\$HOME/oe<br />
export MY_OE_CONF="beagleboard"<br />
export BBPATH=\$OE_HOME/beagleboard/:\$OE_HOME/beagleboard/\$MY_OE_CONF:\$OE_HOME/openembedded<br />
export BBFILES="\$OE_HOME/openembedded/recipes/*/*.bb"<br />
export BB_ENV_EXTRAWHITE="MACHINE DISTRO ANGSTROM_MODE ANGSTROMLIBC OE_HOME"<br />
export PATH=\$OE_HOME/opt/bitbake/bin:\$PATH<br />
if [ "\$PS1" ]; then<br />
if [ "\$BASH" ]; then<br />
export PS1="\[\033[01;32m\]OE:\$MY_OE_CONF\[\033[00m\] \${PS1}"<br />
fi<br />
fi<br />
_EOF<br />
<br />
CHOICE 2) If you will be operating from behind a Proxy Firewall, then do:<br />
<br />
cd $OE_HOME<br />
cat > $OE_HOME/beagleboard/beagleboard/profile.sh <<_EOF<br />
export OE_HOME=\$HOME/oe<br />
export MY_OE_CONF="beagleboard"<br />
export BBPATH=\$OE_HOME/beagleboard/:\$OE_HOME/beagleboard/\$MY_OE_CONF:\$OE_HOME/openembedded<br />
export BBFILES="\$OE_HOME/openembedded/recipes/*/*.bb"<br />
export BB_ENV_EXTRAWHITE="MACHINE DISTRO ANGSTROM_MODE ANGSTROMLIBC OE_HOME"<br />
export PATH=\$OE_HOME/opt/bitbake/bin:\$PATH<br />
export CVS_TARBALL_STASH="http://oesources.org/sources/current/"<br />
if [ "\$PS1" ]; then<br />
if [ "\$BASH" ]; then<br />
export PS1="\[\033[01;32m\]OE:\$MY_OE_CONF\[\033[00m\] \${PS1}"<br />
fi<br />
fi<br />
_EOF<br />
<br />
Now make the profile executable:<br />
<br />
chmod +x $OE_HOME/beagleboard/beagleboard/profile.sh<br />
<br />
== Running ==<br />
We now have finished the installation. If everything goes well we can now create images for the BeagleBoard<br />
<br />
source $OE_HOME/beagleboard/beagleboard/profile.sh<br />
<br />
Pull down any changes in the git tree.<br />
<br />
cd $OE_HOME/openembedded<br />
git pull<br />
git checkout<br />
<br />
Now build the console image.<br />
<br />
cd $OE_HOME<br />
bitbake console-image<br />
<br />
<br />
If this goes well your computer will be compiling for a long time. A long time can be several hours. Once this works try using the x11-image target (bitbake x11-image) this will give you a more complete distribution<br />
<br />
If you receive an error of the form "ERROR: Unable to open conf/bitbake.conf" check that your profile.sh created earlier has the correct BBPATH setting (copy/pasting from this page may cause a line-break between the export command and the BBPATH var).<br />
<br />
== Preparing the system for booting ==<br />
The output of the bitbake command will ultimately be found under the $OE_HOME/tmp/deploy/glibc/images/beagleboard. In there you can find at least 3 interesting files:<br />
* console-image-beagleboard.tar<br />
* console-image-beagleboard.jffs2 and <br />
* uImage-beagleboard.bin<br />
<br />
The console images are representations of a full and self containing file system *including* a kernel. The uImage is a linux kernel image that is suitable to be loaded by the U-boot bootloader. The difference between the tar file and the jffs2 image is that the later is better suited to directly put on a raw partition. <br />
<br />
We are going to use the U-boot that is already provided in the NAND flash of the beagleboard as that one already support the MMC can load kernel images from a fat file system.<br />
What we will do is to format a SD-card to hold both a fat and an ext2 file system. We will put the kernel in the fat file system as U-boot failed to load the image from a ext2 file system. We will unpack the console-image under the ext2 file system.<br />
<br />
===Create partitions and format the SD-card ===<br />
We usually create two partitions, the first one has a FAT partition type and the second one a Linux file system type . We then format them and put content on them.<br />
We are not going the describe the formating other then briefly because it just if to easy to format the wrong partition. There are a few reasons for having a first partition as FAT but his is not the scope of this document ( Think of U-boot, windows , mass-storage ). Instruction for formatting the SD-card correctly can be found at: [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat Boot Disk Format]<br />
<br />
Here is the output of the fdisk -l command after creating the new partitions.<br />
Disk /dev/mmcblk0: 2032 MB, 2032664576 bytes<br />
1 heads, 16 sectors/track, 248128 cylinders<br />
Units = cylinders of 16 * 512 = 8192 bytes<br />
Disk identifier: 0x2f3dffc4<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/mmcblk0p1 2 12209 97664 b W95 FAT32<br />
/dev/mmcblk0p2 12210 248128 1887352 83 Linux<br />
<br />
We now format the file systems ext2 file system under /mnt. Some system will perform a automount of the newly created file system. Try to disable this automount feature if possible (it is not easy) or use gparted <br />
mkfs.vfat /dev/mmcblk0p1<br />
mkfs.ext2 /dev/mmcblk0p2<br />
<br />
Mount the ext2 file system and unpack the archive. Do not forget the -C option.<br />
mount /dev/mmcblk0p2 /mnt<br />
tar xvf system/angstrom/deploy/glibc/images/beagleboard/console-image-beagleboard.tar -C /mnt<br />
umount /mnt<br />
<br />
Mount the fat file system and copy the kernel image to there.<br />
mount /dev/mmcblk0p1 /mnt<br />
cp system/angstrom/deploy/glibc/images/beagleboard/uImage-beagleboard.bin /mnt/uImage<br />
umount /mnt<br />
<br />
== Booting ==<br />
We can put the SD-card in the beagleboard and wait for the U-boot prompt. The kernel we compiled only gave serial output if we first ran the coninfo command we therefore type coninfo and ask U-Boot to initialise<br />
the mmc stack. After that we set the kernel command line telling what the console is and where our root file system is located. We then load the image from the fat file system into memory and boot the kernel<br />
<br />
coninfo<br />
mmcinit<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootdelay=1<br />
fatload mmc 0:1 0x80000000 uImage<br />
bootm<br />
<br />
===One very important note:=== <br />
<br />
It's important to have an X-Loader on your Beagleboard that uses the uBoot on the SD Card that goes with the Angstrom uImage. The B5 Beagleboards do not appear to come with such an X-Loader / U-Boot combination (i.e. the B5 standard uBoot will lead to problems with the sound driver and other things, but will not tell you that it's creating a problem).<br />
<br />
The fix is to load a new X-Loader which will in turn automatically load the uBoot from the SD card, which again in turn will load the uImage properly.<br />
<br />
So you likely will have to upgrade the X-Loader. Here's what to do:<br />
<br />
* Make an SD Card with the [http://www.angstrom-distribution.org/demo/beagleboard Angstrom Demo files]. See the [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat Beagleboard Wiki Page] for more info on making the SD Card.<br />
* Put the SD Card in the Beagle, and boot up to the U-Boot Prompt.<br />
* Do the first six instructions in the [http://code.google.com/p/beagleboard/wiki/BeagleNANDFlashing Flashing Commands with U-Boot] section. <br />
* Reboot the Beagle to see that the new X-Loader is properly loaded.<br />
<br />
This will update the X-Loader to a newer version that will automatically load uBoot from the SD card, and then load uImage from the SD card, rather than always using the uBoot in the Beagleboard NAND.<br />
<br />
===Setting the video resolution:===<br />
<br />
The Angstrom kernels since 2.6.27 have used "DSS2", which is a candidate for replacing the OMAP framebuffer driver in the mainline Linux kernel. It provides greater flexibility for support of the S-Video port on the BeagleBoard and more monitor resolutions than previous mainline kernels. Documentation for the driver is in the kernel source at [Documentation/arm/OMAP/DSS http://groups.google.com/group/beagleboard/msg/4c64b2c614622053].<br />
<br />
Below is one example:<br />
<br />
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omap-dss.def_disp=lcd omapfb.video_mode=640x480MR-16@60<br />
<br />
== Using the OpenEmbedded Environment ==<br />
<br />
If you have not used bitbake / OpenEmbedded before, a helpful example for creating packages that can be installed on a beagle linux install (such as the one created above) can be found at [http://www.gumstix.net/Software/view/Build-system-overview/Hello-world-tutorial/111.html Hello World Tutorial for Gumstix].<br />
<br />
See also Open Embedded User's Manual (these links point to nightly builds of the documentation and so should always be up to date):<br />
* [http://docs.openembedded.org/usermanual/html/ HTML Format]<br />
* [http://docs.openembedded.org/usermanual/usermanual.pdf PDF Format]<br />
and bitbake User's Manual:<br />
* [http://bitbake.berlios.de/manual/ HTML Format]<br />
<br />
==OpenEmbedded development==<br />
<br />
See [[BeagleBoardOpenEmbeddedDevelopment|OpenEmbedded development guide]] for one way how to modify and build packages contained within OpenEmbedded (OE) for the BeagleBoard.</div>FransMeulenbroekshttps://elinux.org/index.php?title=Talk:DevKit8000&diff=11032Talk:DevKit80002009-04-20T06:17:50Z<p>FransMeulenbroeks: </p>
<hr />
<div>Can you say something about pricing?</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=10836BeagleBoard/contest2009-04-15T06:22:04Z<p>FransMeulenbroeks: /* Project ideas */ UVC seems to be done</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the BeagleBoard Sponsored Projects Program (former known as [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|contest #3]]). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a Gumstix Palo43 or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** <font color="#C0C0C0">UVC driver (I understood from Koen this is working)</font><br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
|-<br />
|[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Consumer IR remote control via LIRC|Consumer IR remote control via LIRC]]<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]<br />
|<br />
|<br />
|}<br />
<br />
==== Revolt 2405====<br />
<br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
<br />
==== Consumer IR remote control via LIRC ====<br />
<br />
* '''Title''': Consumer IR remote control via LIRC <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The open source project will add the IR remote capability to the beagle.<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
* '''Expected results''': <br />
**Full port of LIRC to work with Beagle.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====Linux Hard Real-Time (PREEMPT_RT) demo====<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.28 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device driver are -rt safe; Build a typical real-time user land set of application (Ångström based).<br />
* '''Homepage''': http://www.axon.tv/<br />
* '''Note''': Created a 4 months company traineeship position on Beagle Board work which has been filled by a student.<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroekshttps://elinux.org/index.php?title=BeagleBoard/contest&diff=10835BeagleBoard/contest2009-04-15T06:20:02Z<p>FransMeulenbroeks: /* Project ideas */ added ref to GSoC ideas</p>
<hr />
<div>[[Category: Linux]]<br />
[[Category: OMAP]]<br />
[[Image:beagle_first_place.png|thumb|right]]<br />
==Contest Announcements==<br />
===Sponsored Project Program===<br />
The [[BeagleBoard]] Software Design Contest has now been replaced with the BeagleBoard Sponsored Projects Program (former known as [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|contest #3]]). The biggest difference is that we'll be giving 2 boards per week to projects as they are '''[[BeagleBoard/contest#Approved_projects|approved]]''', rather than waiting until they are completed. Also, successfully completed projects may be rewarded with higher-end BeagleBoard-derived systems, such as a Gumstix Palo43 or a [http://www.alwaysinnovating.com/touchbook/ Always Innovating Touch Book] (BeagleBoard based). You are encouraged to make your entries [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|now]].<br />
<br />
===Contest #2===<br />
<br />
''Contest #2 is finished. See [[BeagleBoard/contest#Winners_2|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html contest #2]. This contest is about giving away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to the winner and another one to the runner-up. [[BeagleBoard/contest#Judges|Judges]] will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, February 27, 2009 (afternoon) <br />
* '''Voting goes over weekend, end: Sunday, March 1, 2009 (afternoon)'''<br />
* Shipping board to winner: Monday, March 2, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get before this revision is publically available by DigiKey (~end of March 2009).<br />
</font><br />
<br />
===Contest #1===<br />
<br />
''Contest #1 is finished. See [[BeagleBoard/contest#Winners|winners]].''<br />
<br />
<font color="#C0C0C0"><br />
Welcome to [[BeagleBoard]] contest #1. This contest is about give-away one BeagleBoard Rev [[BeagleBoard#Revision_C2|C2]] to winner and another to the runner-up. Judges will determine criteria and won't be eligible for winning the contest. Schedule:<br />
<br />
* Final project updates: Friday, January 9, 2009 (afternoon) <br />
* Voting goes over weekend, end: Sunday, January 11, 2009 (afternoon)<br />
* Shipping board to winner: Monday, January 12, 2009<br />
<br />
BeagleBoard revision C2 will have working USB HOST (EHCI) and newest OMAP3 silicon revision. By this contest you will get it ~2 month before this revision is publically available by DigiKey (~March 2009).<br />
</font><br />
<br />
==Project ideas==<br />
Here are some ideas which projects would be nice to be done by this contest. But don't hesitate to add your cool project [[BeagleBoard/contest#Contest_projects|below]] even if it doesn't match any of these ideas:<br />
* Stable musb<br />
** ISOCH support<br />
** High-speed USB TV tuner support<br />
** Hot-plug support for OTG (host and client)<br />
* USB Digital TV tuner (either ATSC or DVB-T)<br />
** Hauppauge HVR950 suggested as reference<br />
* Projection TV coupled with the Pico<br />
* Audio record<br />
* Latest kernel version<br />
* USB camera support<br />
** gspca driver - need to validate with multiple cameras<br />
** UVC driver<br />
* Fixing bugs listed on code.google.com<br />
* Android port and various applications<br />
* <font color="#C0C0C0">EHCI support (done)</font><br />
* <font color="#C0C0C0">USB support in u-boot (partially done by first contest, but still needs work)</font><br />
* <font color="#C0C0C0">Consumer IR remote control via LIRC (already in feed; do 'opkg lirc')</font><br />
<br />
See also [[BeagleBoard/Ideas-2009]] for more ideas.<br />
<br />
==Contest projects==<br />
Please add your project you like to participate at Sponsored Projects Program (contest #3) to [[BeagleBoard/contest#Sponsored_Projects_Program_.28Contest_.233.29_projects|Sponsored Projects Program projects]]. Please add the project to [http://beagleboard.org/project beagleboard.org projects], too. If you add a new project here, please append it at the end of list below. Then we can rely on numbering if talking about projects (e.g. "I like project 3.1.1").<br />
<br />
===Sponsored Projects Program (Contest #3) projects===<br />
<br />
If you like to join Sponsored Projects Program (contest #3), please add your project here the same way like done for contest #1 and #2 below. If you participated already previous contests, please copy your project description to this contest, again. This will let everybody know that the project is still alive and that you want to participate Sponsored Projects Program.<br />
<br />
====Approved projects====<br />
From the project proposals, [[BeagleBoard/contest#Sponsored_Project_Program|approved projects]] will get a BeagleBoard Rev C at the '''beginning''' of their project to help them execute:<br />
<br />
{|border=1<br />
!Project<br />
!Approved<br />
!Comment<br />
|-<br />
|[[BeagleBoard/contest#Revolt 2405|Revolt 2405]]<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Consumer IR remote control via LIRC|Consumer IR remote control via LIRC]]<br />
|<br />
|<br />
|-<br />
|[[BeagleBoard/contest#Gentoo Linux ARMv7 support|Gentoo Linux ARMv7 support]]<br />
|<br />
|<br />
|}<br />
<br />
==== Revolt 2405====<br />
<br />
* '''Title''': Revolt 2405<br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': First mission of a first person shooter style game using Ogre3D.<br />
* '''Homepage''': http://www.dcbcyber.com/revolt2405<br />
* '''Expected results''': Expected results would be to have a playable game demo using Ogre3D for rendering. There will be sound and music. For controls I want to have the option of using keyboard and mouse or using controls like those found on hand held gaming devices. We would also like to have this playable on a small LCD as well as on a monitor connected to the DVI port.<br />
* '''Contact''': n2vdy at yahoo dot com or dbatzle at dcbcyber dot com<br />
<br />
==== Consumer IR remote control via LIRC ====<br />
<br />
* '''Title''': Consumer IR remote control via LIRC <br />
* '''beagleboard.org project''': Add link<br />
* '''Short project description''': The open source project will add the IR remote capability to the beagle.<br />
* '''Homepage''': http://pradheeptce.googlepages.com/ yet to be fully completed.<br />
* '''Expected results''': <br />
**Full port of LIRC to work with Beagle.<br />
**Wiki page to describe the entire development method<br />
* '''Contact''': pradheep_sh[at]tce[.]edu<br />
<br />
==== Gentoo Linux ARMv7 support ====<br />
<br />
* '''Title''': Official Gentoo Linux ARMv7 support<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Gentoo/<br />
* '''Short project description''': Build ARMv7 optimized packages and stages for Gentoo Linux created officially by Gentoo developers.<br />
* '''Description''': The project is for providing official support for ARMv7-based devices like the Beagleboard, we will provide stages and packages optimized for ARMv7 processors so any owner of an ARMv7 device can get an optimized system. At the moment Gentoo only provides and supports ARMv4 and ARMv5TE, therefore we would like to expand our official support to the more powerful ARMv7 subarchitecture.<br />
* '''Homepage''': http://www.gentoo.org/proj/en/base/embedded/ http://www.gentoo.org/doc/en/handbook/handbook-arm.xml http://www.gentoo.org/proj/en/base/embedded/handbook/<br />
* '''Expected results''': <br />
**Allow Gentoo users to have ARMv7 optimized stages and packages.<br />
**Document the installation on the provided boards.<br />
* '''Contact''': armin76[at]gentoo[.]org , solar[at]gentoo[.]org<br />
<br />
===Contest #2 projects===<br />
<br />
Please don't add new projects, contest #2 is closed.<br />
==== James ====<br />
1st [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/James James]<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. <br />
* '''Expected results''': Updated recipes for all relevant packages on OpenEmbedded. A script to install the needed packages to an Angstrom image (generated by Koen's generator) and documentation on how to configure things.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
</font><br />
====BeagleEPD====<br />
2nd [[BeagleBoard/contest#Winners_2|winner]] of contest #2<br />
<font color="#C0C0C0"><br />
* '''Title''': E-Ink Interface Board and Driver for beagleboard<br />
* '''Homepage''': [http://elinux.org/BeagleEPD BeagleEPD]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/beagleepd/<br />
* '''Short project description''': This project aims to interface an E-Ink display directly with a beagleboard. This is done by creating an interface board that is connected to the Beagleboard expansion header and converts the relevant gpio signals into the levels appropriate for interfacing with the E-Ink display controller. The second part is to write a driver which is a port of am300epd.c from mach-pxa to mach-omap in order to support the E-Ink broadsheet framebuffer driver directly on beagleboard. All of this results in making it possible to connect any E-Ink display controller to a Beagleboard (via the expansion header) and to then treat any E-Ink display as another framebuffer.<br />
* '''Expected results''': Schematic for interface PCB between Beagleboard and E-Ink display controller board. A beagleepd.c mach-omap driver that will setup and control the IO pins appropriately.<br />
* '''Contact''': jayakumar at IRC (freenode, oftc) or jayakumar.lkml@gmail.com<br />
</font><br />
==== nullDC / Beagle ====<br />
<br />
* '''Title''': nullDC_Beagle - Full SEGA Dreamcast emulator, with newly added support for Beagle.<br />
* '''beagleboard.org project''': http://beagleboard.org/project/nullDC_Beagle/<br />
* '''Short project description''': Full featured emulator for SEGA Dreamcast, Naomi and Sammy Atomiswave. Supports full hardware emulation, debugger (x86 only), VMU/Memory packs, state saves and much more. <br />
* '''Homepage''': http://www.emudev.org/nulldc_beagle<br />
* '''Expected results''': For the contest: A WIP (but working) build of the emulator to show full utilization of the beagles hardware capabilities, including emulation of a 200mhz RISC processor (Hitachi SuperSH4), a 33mhz ARM7tdmi with full AICA DSP emulated on the C64x DSP, and utilisation of the PowerVR SGX hardware to emulate the Dreamcast's PowerVR CLX2 chip-set. It is expected all of the hardware will be at near 100% utilisation.<br />
* '''Contact''': ZeZu [at] emudev [.] org<br />
<br />
===Contest #1 projects===<br />
<br />
====qemu-omap3====<br />
<br />
* '''Title''': support beagle board emulation in qemu<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/qemu-omap3/ qemu-omap3]<br />
* '''Short project description''': Qemu-omap3 is an opensource project which adds omap3 related devices emulation into qemu. Beagle board is the primary devices to emulate.<br />
* '''Homepage''': [http://code.google.com/p/qemu-omap3/ qemu omap3 emulation support]<br />
* '''Expected results''':<br />
** booting linux kernel and rootfs from nand and mmc image<br />
** Wiki page how to run qemu-omap3 for beagle board<br />
* '''Submission''':<br />
** http://code.google.com/p/qemu-omap3/wiki/UserManual<br />
* '''Contact''': yajin AT vm-kernel.org<br />
<br />
====openGPS====<br />
<br />
* '''Title''': develop open source software to use BeagleBoard as a handheld GPS receiver<br />
* '''beagleboard.org project''': none yet<br />
* '''Short project description''': openGPS is a project to use a basic processing platform with open source software to develop a handheld GPS receiver. Using any of a number of available map data bases, such as Open Street Maps, a handheld GPS receiver would provide new capabilities that are not currently found in commercial receivers. In addition it would provide a platform for a number of customizations and expansion of capabilites. <br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** development of a display app with moving map capabilities<br />
** development of a user interface for handheld apps<br />
** integration with suitable LCD display<br />
** interface to map files on SD card<br />
** Wiki page on GPS receiver functions and features<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====Beagle Conference System====<br />
<br />
* '''Title''': Use beagle to come up with a conferencing system for home users<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/BeagleConf/ BeagleConf]<br />
* '''Short project description''': This is a project that aims at bringing conferencing into the drawing rooms of users' homes. The idea is to use beagle, interface it with a webcam, internet (through ethernet/ wifi), usb bluetooth (to interface a integrated keyboard/ mouse), audio in and out of beagle interfaced with a microphone and the speakers of the tv (in the living room of the user), and use a conferencing software like Ekiga (or probably Skype?). The device should be extremely affordable (low cost), to bring conferencing to homes of common users.<br />
* '''Homepage''': none yet<br />
* '''Expected results''':<br />
** A 'complete' home conferencing system would include the 'unit' and a keyboard with an integrated mouse. The 'unit' shall consist of beagle, with interfaces exposed for USB webcam, audio in for microphone, audio out to connect to the TV, ethernet interface or another USB port for USB wifi and another USB port for bluetooth.<br />
** When the system is turned on, users shall be presented with a list of contacts that they could dial (probably a customized interface of Ekiga).<br />
** The software shall provide the users, the capability to add/ modify/ delete users and their contact details.<br />
** The software shall also provide for ways to chat (text) with the users.<br />
** The software shall be capable of running through a demo for the users which includes instructions for set up and usage.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====BeagleRC====<br />
<br />
* '''Title''': Use a beagle board to drive a remote controlled car.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Connect servos to the beagle board expansion header, 802.11g wireless to the use port, and use joystick on a host to remotely control the servos. <br />
* '''Homepage''': http://chrisd.info/portfolio/indexbeaglerc.shtml<br />
* '''Expected results''':<br />
** Ability to control a RC car using only a beagle board and servos, this will work with both nitro and electric cars with mechanical speed controllers.<br />
* '''Contact''': code at chrisd dot info<br />
<br />
====Linux Hard Real-Time (PREEMPT_RT) demo====<br />
<br />
* '''Title''': Test hard real-time (-rt) Linux kernel 2.6.28 on the Beagle, report and fix -rt related bugs, create real-time applications demo using OpenEmbedded / Ångström.<br />
* '''beagleboard.org project''': None<br />
* '''Short project description''': Make sure the TI OMAP device driver are -rt safe; Build a typical real-time user land set of application (Ångström based).<br />
* '''Homepage''': http://www.axon.tv/<br />
* '''Note''': Created a 4 months company traineeship position on Beagle Board work which has been filled by a student.<br />
* '''Expected results''': hard sub 300 microseconds (us) scheduling latency for real-time class user space applications (targetting multimedia).<br />
** Real-time scheduled media playback. Less or no frame skips on video. Latency reports.<br />
* '''Contact''': likewise IRC<br />
<br />
====USB Support in U-boot ====<br />
2nd [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Add MUSB gadget support for OMAP3 to u-boot.<br />
* Homepage: [[U-boot musb gadget support]]<br />
* '''beagleboard.org project''': http://beagleboard.org/project/Uboot+USB+gadget/<br />
* '''Short project description''': Currently people require an extra serial adaptor to interact with u-boot, adding USB gadget support to u-boot enables the use of serial console, saving costs and troubles to BeagleBoard users. This enables as well the future application of the DFU patches to power fast software downloads without requiring MMC (but the DFU patches are a different can of worms to be accepted on mainstream u-boot).<br />
* '''Expected results''': U-boot patch against u-boot omap3 git tree that enables booting beagleboard and appear as an USB serial adaptor (CDC class, so it can be used in Linux/OS x without major problems), and the modified .inf file for windows.<br />
* '''Contact''': ddompe at IRC<br />
</font><br />
<br />
==== James ====<br />
<br />
* '''Title''': James - Just A Miniature Entertainment System<br />
* '''beagleboard.org project''': To be Added...<br />
* '''Short project description''': James is a home server system aiming at video recording (PVR), storage and playback, but also offering other common home functions, e.g. in the areas of security and IP telephony. <br />
* '''Homepage''': For now [[BeagleBoard/James]]. For the PVR part there is information and a demo through http://www.dse.nl/~meulenbr/pvr/pvr.html<br />
* '''Expected results''': For the contest: the proposal on [[BeagleBoard/James]] and the demo on http://www.dse.nl/~meulenbr/pvr/pvr.html. For the future: a flexible system providing the functionality as described in the proposal.<br />
* '''Contact''': fransmeulenbroeks on gmail<br />
<br />
====BeagleBot====<br />
1st [[BeagleBoard/contest#Winners|winner]] of contest #1<br />
<font color="#C0C0C0"><br />
* '''Title''': Beagle Board powered robot<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beaglebot/ beaglebot]<br />
* '''Short project description''': BeagleBot is a Beagle powered robot. It has few servos, ultrasonic ranger, webcam, wlan...<br />
* '''Homepage''': [http://www.hervanta.com/stuff/Beaglebot BeagleBot homepage]<br />
* '''Expected results''':<br />
** Partly autonomous robot<br />
** PC controlling of the robot<br />
* '''Contact''': antti at hervanta.com<br />
</font><br />
<br />
====Android Cupcake for BeagleBoard====<br />
<br />
* '''Title''': Android Cupcake for BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/beagledroid beagledroid]<br />
* '''Short project description''': This is a port of the post-1.0 Cupcake version of Android to the BeagleBoard. <br />
* '''Homepage''': For now, you can download the images from [http://www.nthcode.com/download/sd.img.gz here] and instructions from [http://www.nthcode.com/download/readme.txt here]<br />
* '''Expected results''': Android boots, runs, can browse the Internet, etc. No sound, though.<br />
* '''Contact''': ''Please add (obfuscated) mail address or Beagle IRC nick''<br />
<br />
====FreeBSD port to BeagleBoard====<br />
<br />
* '''Title''' : A port of FreeBSD-arm to the BeagleBoard<br />
* '''beagleboard.org project''': [http://beagleboard.org/project/freebsd-bgb/ freebsd-bgb]<br />
* '''Short project description''': This is a port of the FreeBSD operating system to the BeagleBoard, as the first platform for supporting Omap on the OS.<br />
* '''Expected results''': FreeBSD boots and can be used through a serial console + port of a (USB?) ethernet controller driver for NFS boot.<br />
* '''Contact''': AsqYzeron<br />
<br />
==Judging==<br />
<br />
===Judges===<br />
* Jason Kridner (jkridner)<br />
* Koen Kooi (koen)<br />
* Dirk Behme (dirk2)<br />
* Steve Sakoman (sakoman)<br />
* Hunyue Yau (ds2)<br />
* Mans Rullgard (mru)<br />
* Robert Kuhn (robertk)<br />
<br />
===Rules===<br />
* Judges cannot participate in the contest.<br />
* The ruling of the judges is final. Jason Kridner will determine when the ruling of the judges has been provided.<br />
* Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins.<br />
* All voting will be public and logged on this page.<br />
* Jason Kridner will be responsible for getting the boards to the winner and runner-up. Recipients must meet US export control requirements.<br />
* Individuals are limited to a single entry, but may include as many demonstrations as desired within that entry.<br />
<br />
===Criteria===<br />
* All new content must be open source as determined by the OSI.<br />
* Submission should be in the form of an easy-to-use image/archive provided via a webpage.<br />
** <1GB 'dd' image for an SD card is recommended. [http://www.beagleboard.org/~arago/mksdimg.txt Instructions]<br />
** Alternatives allowed, such as [http://labs.embinux.org/android-porting-on-beagle.html Android on Beagle], as long as instructions are provided.<br />
* "Wow" or "coolness" factor from usefulness/user experience point of view<br />
* Overall quality of the submission<br />
* Technical complexity<br />
** "Coolness" of the technical solution, even if it isn't useful for all the masses<br />
** Amount of work needed, i.e. x hours or x days?<br />
* Angstrom recipe for image<br />
* Documentation for the demo<br />
* Running power consumption<br />
* Use of DSP and SGX<br />
* Ease of use<br />
<br />
===Contest #1===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-01-11<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#qemu-omap3|qemu-omap3]]<br />
|3<br />
|<br />
|3<br />
|2<br />
|<br />
|3<br />
|2<br />
!13<br />
|-<br />
|[[BeagleBoard/contest#openGPS|openGPS]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#Beagle_Conference_System|Beagle ConfSys]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|[[BeagleBoard/contest#BeagleRC|BeagleRC]]<br />
|1<br />
|<br />
|<br />
|1<br />
|3<br />
|<br />
|2<br />
!7<br />
|-<br />
|[[BeagleBoard/contest#Linux_Hard_Real-Time_.28PREEMPT_RT.29_demo|RT demo]]<br />
|<br />
|2<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
!5<br />
|-<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
|3<br />
|2<br />
!17<br />
|-<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|2<br />
|2<br />
|3<br />
|4<br />
|3<br />
|4<br />
|3<br />
!21<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|<br />
|3<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!4<br />
|-<br />
|[[BeagleBoard/contest#Android_Cupcake_for_BeagleBoard|Android]]<br />
|2<br />
|<br />
|<br />
|<br />
|1<br />
|<br />
|<br />
!3<br />
|-<br />
|[[BeagleBoard/contest#FreeBSD_port_to_BeagleBoard|FreeBSD port]]<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
!<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|1<br />
|Monday, January 12, 2009<br />
|[[BeagleBoard/contest#BeagleBot|BeagleBot]]<br />
|[[BeagleBoard/contest#USB_Support_in_U-boot|MUSB for U-Boot]]<br />
|-<br />
|}<br />
:Congratulations ;-) [[User:RobertK|RobertK]] 11:30, 12 January 2009 (UTC)<br />
<br />
There is a nice [http://www.linuxdevices.com/news/NS6362979448.html LinuxDevices.com BeagleBot cruises on Linux] article about contest #1 winner, too.<br />
<br />
===Contest #2===<br />
<br />
====Points====<br />
<br />
Each judge will have 10 points to divide (integrally) as they see fit. The project with the most points wins. Points:<br />
<br />
{|border=1<br />
| 2009-03-01<br />
!Jason<br />
!Koen<br />
!Dirk<br />
!Steve<br />
!Hunyue<br />
!Mans<br />
!Robert<br />
|'''Sum points'''<br />
|-<br />
|[[BeagleBoard/contest#James|James]]<br />
|6<br />
|7<br />
|5<br />
|7<br />
|3<br />
|5<br />
|<br />
!33<br />
|-<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|3<br />
|3<br />
|2<br />
|3<br />
|5<br />
|3<br />
|<br />
!19<br />
|-<br />
|[[BeagleBoard/contest#nullDC_.2F_Beagle|nullDC / Beagle]]<br />
|1<br />
|<br />
|3<br />
|<br />
|2<br />
|2<br />
|<br />
!8<br />
|-<br />
|}<br />
<br />
====Winners====<br />
<br />
{|border=1<br />
!Contest<br />
!Date<br />
!Winner<br />
!Runner-up<br />
|-<br />
|2<br />
|Monday, March 2, 2009 <br />
|[[BeagleBoard/contest#James|James]]<br />
|[[BeagleBoard/contest#BeagleEPD|BeagleEPD]]<br />
|-<br />
|}<br />
<br />
==Other background==<br />
<br />
==Contest #1==<br />
<br />
* IRC Log of discussion: http://www.beagleboard.org/irclogs/index.php?date=2008-12-18#T18:40:58<br />
<br />
==Contest #2==<br />
<br />
* [http://www.beagleboard.org/irclogs/index.php?date=2009-02-13#T15:35:43 IRC Log of discussion]<br />
* [http://groups.google.com/group/beagleboard/browse_thread/thread/661879a591dc396d Announcement at mailing list]<br />
* [http://beagleboard.blogspot.com/2009/02/software-design-contest-2-in-3d.html Blog announcement]</div>FransMeulenbroeks