OLPC XO 1.75 Hardware, Firmware and Software
OLPC demo’ed their 3rd generation laptop – OLCP XO 1.75 – based on Marvell Armada 610 at CES 2011. The good thing about this platform is that they opened most of it including the hardware, the software and for the first time the firmware. However, I found out it’s not so easy to find the hardware / software development information and source on the OLPC site, so I’ve decided to make a summary and provide links to the hardware, firmware and software for OLPC XO 1.75.
OLPC XO 1.75 Hardware
The XO-1.75 is powered by Marvell Armada 610 CPU (88AP610) with an ARM core clocked at 1Ghz. It has 1GB DDR3 SDRAM, 4GiB NAND Flash, a TFT display, an SD Card slot, Wi-Fi, a few USB ports and a camera. I believe the touchscreen is not part of the current hardware, but the block diagram below should be close to the final version.
I’ve also been looking for the schematics and Gerber files, but they do not seem publicly available right now.
As you can see below the board is quite large, but it’s because it must fit the casing and the position of the connectors and running cables to the connectors would have been more expensive.
OLPC XO 1.75 Firmware
OLPC Firmware consists of two parts:
- EC Firmware, which runs on the embedded controller (Ene Technology KB3920 on block diagram above) as soon as the battery is installed or external power is plugged in, and is responsible for managing the battery, charging, power switching, and indicator LED.
- Open Firmware, which runs on the main processor (Marvell Armada 610) when the power button is pressed, and is responsible for preparing that hardware and loading the operating system.
The EC Firmware source is not publicly available, but the Open Firmware source is available through svn. OLPC will release the firmware for a OLPC XO 1.75 at http://wiki.laptop.org/go/Firmware#XO-1.75 which a version number such as q4a11. If you want the source for that particular version, click on the firmware page to find the svn revision (e.g. 2145) and get the code as follows:
svn co svn://openbios.org/openfirmware/ -r 2145
Since it is open it could in theory allow you to boot the OS of your choice be it Linux, Android, Windows embedded, WebOS etc…
You can find more details at http://wiki.laptop.org/go/Open_Firmware
OLPC XO 1.75 Software
OLPC is running SugarOS, a Linux distribution based on Fedora (Linux 2.6) loaded with applications aimed at helping kids learn. They apparently focus on developing Python applications for the Sugar desktop environment, but kernel, firmware and other development are also happening.
The development tools you may need include:
- Python (Version 2.5)
- Forth in Open Firmware
- Csound, a music programming language
- Etoys, an implementation of Squeak using Smalltalk, an object-based programming language.
- Turtle Art, a graphical programming environment.
- Gnash, a free and open source browser plug-in for the Adobe Flash file format supporting vector and raster graphics, a scripting language called ActionScript™ and streaming of audio and video.
- Adobe’s Flash Player, Java™ virtual machine, and players for other restricted formats can be added via Yum or Rpm install but are not part of the standard distribution.
and the libraries (non-exhaustive list):
- Mozilla Gecko/XULRunner
- GUI toolkit (GTK+)
- Matchbox window manager
- Pango text layout
- Gnome accessibility toolkit (ATK)
- Python GTK+ bindings
- Cairo 2D-graphics support
- X Window System X.org Foundation
- Font rendering (Freetype)
- Telepathy real-time communications framework
- Avahi local service discovery
- Multimedia framework: GStreamer
- Bitfrost security system
- Gettext, the GNU internationalization library
There is a more m,ore complete list of software components available at http://wiki.laptop.org/go/Software_components
The good thing is that you do not really need a OLPC Laptop to develop Python applications.
You can simply download and install SugarOS in a virtual machine via a bootable USB Thumbdrive.
The main page for OLPC software development can be found at http://wiki.laptop.org/go/Developers and explain basically everything you needs to know including Getting Started and Developers/Setup pages.