The OSWALD Project
Computer Science (CS) education, for some time now, has been accused of being outdated and failing to capture the hearts and minds of the next generation of leaders and innovators. Rekindling the pioneer spirit and excitement of the hacking culture of the 1970s and 1980s requires flexible and accessible open hardware and software in an environment that promotes experimentation and collaboration. Although the software community has a long history of building and sharing such platforms, open and flexible hardware platforms have been few and far between. Oregon State University developed the Oregon State Wireless Active Learning Device (OSWALD) to help close this loop. The OSWALD is an open, Linux-based, ultra-mobile personal computer incorporating many of today's new technologies and gives students and enthusiasts full access to both its hardware and software. Based on discussions with the OSWALD development team, this article provides a brief overview of the platform and explores the lessons learned in re-inventing computer science through open source.
The OSWALD in Memorial Union Square at Oregon State University. Holding the OSWALD is Patrick Fancher, a New Media Communications student at OSU. (Photographer: Victor Kuechler)
One of the most frustrating challenges CS educators face today is convincing the next generation of students that room still exists for innovation and making a difference in computing. With the advancement of computing and its proliferation into most aspects of our lives, many prospective students feel computing is “a solved problem”, that the days of innovation and chances to make a significant contribution have passed. We are victims of our own success. The rapid spread of cheap hardware and polished applications had removed one of the most compelling reasons many have had for studying computer science: the need to scratch our own itch. As a consequence, CS enrollment has dropped for more than a decade.
It doesn't help that the CS curriculum has, in many ways, failed to keep up with changes. Here I refer to the core curriculum, not the electives or advanced courses, where we often see a much richer and up-to-date set of topics. Little has changed in the core curriculum during the last 15 years short of programming language choices. In all fairness, the body of CS has been growing tremendously, and the fundamentals are still fundamental, but academia has failed to make sure this core stays relevant and visible to current and future students.
Open source provides a unique opportunity to help us bridge this gap. In an article titled “Computer Science Education in the 21st Century”, David A. Patterson, former president of ACM and Pardee Professor of Computer Science at UC Berkeley, explained that open source provided unique opportunities for injecting realism and relevance into the classroom. One of Patterson's laments is that students can easily go through their undergraduate education without real exposure to computing. Students rarely read other people's code, and sharing of code is often the same as cheating. The largest codebase students might see is a few thousand lines of their code written over a period of 6–12 months with, at most, a half-dozen other students. This code will not evolve or be maintained. In all likelihood, it will be discarded as soon as the class ends. Open source allows educators to change this dynamic, opening a window into the chaotic and complex, yet realistic world of software development. A place where code is designed and written by many, and the context, metadata, discussion and collaboration required is available to all. It's a unique resource for educators to present an invaluable opportunity to students to learn real skills. Oregon State University has been busy developing curriculum centered on open source, and it is aware of how to navigate its sometimes discouraging waters.
Dr Carlos Jensen, an assistant professor at Oregon State University and driving force behind this project, explains:
Students do not want to re-invent the wheel, and can be intimidated by the quantity and quality of easily available software. Many of us learned how to program by writing small programs designed to meet some need other software couldn't. Some of us attained glory by writing something our fellow students also found useful and would circulate. Today, chances are, there is already an app to meet most needs, and students often see joining large open-source communities as their only choice to make a difference in computing. It can be a daunting and intimidating prospect for someone learning how to code, and therefore, open source must be introduced in the right context.
To be true to this open-source model, the OSWALD development team decided to take this model and apply it to both hardware and software. For students to learn through open source, it's important that this extend all the way down to the hardware platforms they use, which is still surprisingly difficult to do.
The OSWALD is a handheld ultra-mobile PC designed to be accessible and affordable to students, while incorporating many new technologies seen in the mobile device market. The OSWALD is an open platform meant to open up the creative space for student projects. With its relatively novel form factor, students are given the opportunity to explore and push the boundaries of computing again, as well as explore contemporary interaction techniques through hardware, such as a touchscreen and accelerometer. The device was carefully designed to balance power and performance with cost, equivalent to a college textbook.
We could have encouraged the use of Netbooks running open-source software. The price point and capabilities of these machines make them a tempting alternative to full laptops. The form factor was important to us for this reason. The device is an auxiliary computing device rather than a desktop or laptop replacement. Students treat their primary computing devices with care; this is where they store their media and do their work. The primary computing platform, therefore, is not a place where we would expect to see a lot of experimentation. The relatively little software customized for this form factor is a benefit to the OSWALD. A student might create or port an interesting piece of software and share it with another student who will appreciate it. With this in mind, students will have a long list of desired features to bring to the platform and are motivated to create better software.
The biggest challenges to building an open platform, such as the OSWALD, are the costs associated with manufacturing it, especially on a small scale. Because this is a university project, the devices basically are manufactured for students' own consumption at this point. For instance, though there is no shortage of companies that can assemble and test these devices, the devices are built by undergraduates. This means there will be positive and negative outcomes. There will be quality issues, and the devices take longer to assemble, but there is a relatively large number of freshman and sophomores working with the devices and, in the process, learning and gaining the confidence to work with computer hardware. Ben Goska, an undergraduate in Electrical Engineering and Computer Science and chief hardware developer elaborates: “We only make 300 OSWALDs in a build run. Talking to developers is tricky because most manufacturers are used to numbers in the thousands. We are building these by hand.”
The hardware is also not as optimized as one would expect with commercial support, but there is intentionally a fair bit of redundancy. As Dr Jensen explains:
I'm a user interface researcher. What I want to do is use this device to help students understand the trade-offs between different interface techniques. When you pick a phone, or a mobile device, typically you will have an interaction method chosen for you. For the iPhone, everything is touch. There is no way of doing anything other than by touching the screen. This is a very intuitive, slick interface, but there are instances where it's just a dumb idea. For a certain application, having a separate touch area makes more sense, or a rocker switch, or a joystick. We provide all of these because part of what I want to do is have a device that lets students experiment with all aspects of computing, including the interface. That's the reason for its flexibility. This is just one example of how, for a very specific type of course or curriculum, you can take advantage of that type of flexibility. Even if we didn't have all three capabilities built in to the device, I could plug in a mouse or a joystick, essentially anything, through a USB port that would give me that flexibility, and students can then learn their pros and cons.
At the university level, a cheap and open embedded computing platform can be valuable in multiple ways. At Oregon State University, the Physics Department has taken OSWALDs and ripped them apart to control scientific instruments. The robotics club uses the OSWALD board to control their Mars rover and aerial vehicles. The OSWALD is more robust than a laptop; it has a solid-state drive, which makes it durable. Dr Jensen explains:
We're envisioning, as we go forward, people will be taking some of these devices, taking them apart and refashioning them into whatever they need them to be, whether it's a mini Web server, file server, media server or whether it's embedded in other things. It has enough processing power to do that, and it has very low energy requirements, which make it ideal for embedding in many different applications. It's a general-purpose computing solution for your home market.
OSWALD Specifications
Software Layer
RADIX: a custom distribution of Linux created using OpenEmbedded.
Matchbox: a lightweight, themeable, window manager designed for handhelds that provides the OSWALD's GUI framework and environment (matchbox-project.org/overview.html).
JamVM: a small and specification-compliant Java virtual machine (jamvm.sourceforge.net).
Leafpad: a simple GTK+-based text editor (tarot.freeshell.org/leafpad).
ePDFView: a lightweight PDF viewer (trac.emma-soft.com/epdfview).
GPicView: a lightweight GTK+-based image viewer with low memory usage (http://lxde.sourceforge.net/gpicview"/>).
PCManFM: a lightweight tabbed file manager used for basic graphical file manipulations (pcmanfm.sourceforge.net).
Xournal: an application for note taking and sketching using the OSWALD's touchscreen (xournal.sourceforge.net).
MPlayer: a media player for Linux that plays most movies and music (www.mplayerhq.hu/design7/news.html).
Hardware Specifications and Features
Size and Weight:
Height: 80mm (3.2").
Width: 150mm (5.9").
Depth: 25mm (10").
Weight: 210g (7.4oz).
Core System:
Texas Instruments OMAP3530 applications processor 500MHz ARM Cortex-A8 Core, NEON SIMD Coprocessor, 430MHz TMS320C64x+ DSP Core, SGX530 2D/3D graphics processor (OpenGL ES 2.0 compatible).
128MB DDR-SDRAM (266MHz).
256MB NAND Flash memory.
Display:
3.5" resistive touchscreen LCD.
QVGA resolution (320x240) 24-bit color.
DVI-out at HD resolution (1024:768).
Audio:
Texas Instruments TLV320AIC33 stereo audio codec, 24-bit resolution, 96kHz sampling rate, 3-D/bass/treble/EQ/de-emphasis effects.
Speaker.
Wireless:
IEEE 802.15.4 ZigBee wireless.
Buttons and Sensors:
Touchpad.
Three-axis accelerometer.
Five-way rocker switch (up, down, left, right and center).
Six general-purpose buttons.
Microphone.
Connectors and IO:
3.5mm stereo headphone port.
HDMI (not fully complaint, just as a small DVI port).
Secure Digital card slot (SDIO- and SDHC-compatible).
Two full-speed USB host ports (USB-type A).
Power:
1300mAh Polymer Li-ion battery (~7-hour battery life).
Charging via USB or power adapter.
For more information, go to beaversource.oregonstate.edu/projects/cspfl.
On the software side, the choice of operating system was much clearer. Linux is a real operating system; it's not a toy. Students take it seriously and see the long-term benefits of learning Linux in depth. Students also benefit from joining Linux's rich open community, where newbies can find guidance and plenty of resources. From a development standpoint, Linux supports many types of software and devices, so it has simplified development. On the downside, little development has occurred on Linux for handheld devices, but this also means students still can make meaningful contributions with relatively modest effort.
Embracing Linux also differentiates the OSWALD from the many media player devices out here, like as the iPod Touch. Although many of these platforms offer a sleeker design and an attractive price point, development for these devices is difficult, as vendors either lock their platforms or apply stringent IP restrictions. In this consideration, the OSWALD has been designed with the flexibility needed to support a wide range of classes. Two USB ports were critical in meeting this design requirement. This component extends the platform in any number of directions, something that no current media player platform allows you to do. With Linux as a foundation, if someone has written a driver for it, the OSWALD can support it. This gives it great flexibility in terms of curriculum design. In freshman courses, students use the OSWALD to control small robots and sensors. In graphics classes, USB cameras enable simple image recognition, and the built-in networking allows students to design P2P protocols as part of their networking classes.
A university designing a UMPC like the OSWALD relies on the benevolence and support of both hardware and software partners. To stay on the upside of technological change, the OSWALD developers need to work with the Linux community to make sure their changes and needs are met. Tim Harder, a graduate student in Electrical and Computer Engineering and lead software developer for the OSWALD, puts it like this:
In open source, you have a lot of updates because a lot of people are working on different things. Currently, we use OpenEmbedded to create the BitBake files needed to create our custom Linux distribution, but an important fix to help us move forward is to find a development environment with rich contributions. We want to have flexibility as well as the high configurability that something like Gentoo provides. Gentoo packages more software for us, and we can take advantage of that.
Moving to a bigger development community, such as Gentoo, will minimize risks in the future.
On the hardware side, fortune smiles with positive support from a number of chip companies who have provided their chips free of charge, at a reduced rate or subsidized the build process. These include Texas Instruments, Tektronix, Intel Corporation and the National Science Foundation. Their support for this device comes from OSU's belief that the OSWALD will help train better engineers and programmers, but also because these partners believe in a substantial future demand for people trained in UMPC and embedded platform development.
Currently, the OSWALD's biggest challenge is broadening the program. Manufacturing hardware for a small community is expensive and risky, and the long-term costs may outweigh the benefits. Therefore, scaling up demand to other universities and even enthusiasts is the key to this devices' success. Right now, the OSWALD is available to students and a handful of friends. OSU, like many universities, is not set up for large-scale manufacturing or distribution. It will have to think up ways, as an Open Source community, to support these types of educational efforts in the future.
Victor Kuechler is an undergraduate student studying English literature and writing at Oregon State University. He works as technical writer for the department of Electrical Engineering and Computer Science.
Dr Carlos Jensen is an assistant professor in the school of Electrical Engineering and Computer Science at Oregon State University where he leads the Human-computer interaction research group. His research focuses on usable privacy and security, open-source systems and open-source development.