Getting Started with your Neo FreeRunner

I just received my Neo FreeRunner. Where should I start?

I have a problem or a question. Where should I go?

If your question isn't answered here, you should search the archives of the community or support mailing lists

Next, try a larger Google search.

If you still haven't found the answer to your question, post it on the appropriate list, community or support.

Provide detailed information about what you are trying to find out, and use
the Subject line to summarize your question. More tips to asking effective
questions can be found
[[1]]

If your question requires confidentiality, you are welcome to contact Michael Shiloh directly.

You might also look for local Openmoko users to find
some local support. A few minutes with a live person might solve a simple
misunderstanding that would take hours to understand via email. (If a local
club doesn't exist, this might be the perfect opportunity to start one!)

I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed?

Where are the latest downloads?

Openmoko

What is Openmoko?

Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.

Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.

What is the purpose of this project?

By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.

How do I join the Openmoko project?

Join one or more of the mailing lists. A great place to start is the community list.

I'm not a programmer, but I have other skills. Can I still be of use?

Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.

Neo FreeRunner - Introductory/Overview/Conceptual Information

The Neo FreeRunner is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.

What can I do with the Neo FreeRunner?

The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.

The Openmoko software is not yet ready for everyday use.

The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard "locked" mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.

What are the benefits of an "open" phone over a "closed" phone?

In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model. The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are "locked down" because they do not suit the network operator. Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!

Purchasing / Shipping / Versions

If you buy directly from the Openmoko webshop you will pay USD $399 for the Neo FreeRunner, USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at Group_sales.

On what bands does the Neo FreeRunner operate? Will it work in my area?

The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.

Do I need the debug board?

With the Neo FreeRunner and NO debug board you can do:

Kernel development

Application development

U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash

Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.

Neo FreeRunner users can update u-boot in NOR flash

In summary, it is rare for a Neo FreeRunner user to require a debug board.

To emphasize, the debug board is not required in order to develop applications, system software, or even kernel or device drivers. The debug board is not required in order to gain access to the source code or the development tools.

Why won't the FreeRunner boot even with the charger connected?

Flashing (dfu-util) -- dfu-util does not find the phone.

In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and not Ethernet over USB, which is what is available when the phone has booted fully.

Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see Booting from SD.

To get the u-boot menu:

Press and hold the AUX button

Press the Power button until the phone powers on and displays the boot menu

Release both buttons

Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone).

Can the Neo FreeRunner charge when turned off? When suspended?

Can the Neo charge and use devices on a USB hub at the same time?

Wireless Connectivity

What kind of wireless connectivity does the FreeRunner have?

The FreeRunner has the following connectivity options:

Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as "European tri-band", for other parts of the world). For a list of compatible service providers, see Neo1973 compatible cellphone providers.

How do I get low-level hardware-related functions, like power up device, dump register?

Inputs

How can I type a '/' in the software keyboard?

How do I get a QWERTY layout software keyboard?

Miscellaneous

Will Openmoko "Just Work" with Mac OS X?

There has been some discussion of this on the mailing list. There is motivation, and there are interested developers.
Not being a Mac OS X user, I don't know enough
to summarize the discussion to answer this question. Can someone please fill in?

For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.

It is expected that (Bluetooth/UB) SyncML based interoperation for
contacts and events can easily be achieved by a patch
to the Apple iSync configuration tables.

There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.

Software

General Questions

Is it completely free software/open source?

Yes. All software that runs on the main CPU and can be updated by the user is available in source.

Firmware in "black box" hardware modules that can not be modified by users is not available in source form. Effectively, these modules are "hardware only".

This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.

Can the software do/connect to/...

Reviews of the latest "bleeding edge" daily builds of the Openmoko software stack can be seen here

At the moment, the answer to many other questions is "no". The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps. Most do not function in any way that would be suitable for end-users. If you want to add a feature or application request, then look over the existing Applications and either add one, or add a feature request to the applications page.

Applications

What software is on the phone?

At the moment, almost no 'end-user' applications are present and working in a usable state.
It is possible to make and receive calls in some software revisions, this frequently breaks though.

What software can be installed on the phone?

Pretty much any that can be cross-compiled for the ARM architecture.

Will it be possible to use popular VoIP applications on the Openmoko platform?

Since it has WiFi the FreeRunner should be a good platform for VOIP use.

In either case please check for softphone apps ported to the Openmoko distribution at the projects page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.

Will it be possible to use popular Instant Messaging applications ?

There many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is Pidgin, formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi will make it even better.

Does it support Flash so can I watch YouTube?

You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command:

Xoo

Xoo. Koen says: "Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)".

Update: Stefan Schmidt has resized the Neo1973 Mock-up and written a small description for xoo. In his words:

It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.

Where can I find some type of tutorial for a 'Hello, world' on Openmoko?

Can PalmOS apps applications be ported to run on Openmoko?

Making legacy apps written for the "Garnet" OS (née "Palm OS") run on Linux
is decidedly non-trivial.

PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.

The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.

It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run. This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.

Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.

Does it support Java?

Project [Jalimo] is a project aiming to provide a Java stack on mobile devices. There is a port of Jalimo for Openmoko.
The Debian distribution supports CacaoVM and JamVM through apt-get. See Java for more infos.

How do I dump details about X11 configuration and extensions?

Distribution Customization

NOTE: Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like "How do I customize a distribution?" could be added to the Software - Distributions part, linking to the new page. --eddsouza 07:35, 7 September 2008 (UTC)

Compilation & packaging

What is the 'overlay' approach to bitbake development?

Which .bb files are related with the Openmoko?

Are there any configuration files for Openmoko?

How can I port an application written with autotools to Openmoko?

After you source the Openmoko toolchain variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ./configure --host i686 and then make - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.

How can I add an application written with autotools to the openmoko tree?

How do I input text?

Can I record calls and/or play audio files in calls?

Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an Answering Machine is possible. Also using text->speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the Answering Machine functionality, amongst other things. See the audio page. Neo1973 Audio Subsystem

What is the battery life?

There has been no word on this so far, but see these estimates for a rough idea. More information about the battery here.

USB

What can I do with the USB port on the Neo?

Charge the phone, communicate with it over USB-serial, or USB-networking.

Plug external devices, such as wifi, cameras, or mass-storage devices.

What can't I do with the USB?

The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.

Why is only USB 1.1 provided?

The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.

The FreeRunner has the same processor as the Neo1973.

What are the details of the USB port on the Neo? How does it compare to USB On-The-Go?

The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go. OTG is a complex specification, and it comprises way more than just
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.

You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard: a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).

Getting Started with your Neo FreeRunner

I just received my Neo FreeRunner. Where should I start?

I have a problem or a question. Where should I go?

If your question isn't answered here, you should search the archives of the community or support mailing lists

Next, try a larger Google search.

If you still haven't found the answer to your question, post it on the appropriate list, community or support.

Provide detailed information about what you are trying to find out, and use
the Subject line to summarize your question. More tips to asking effective
questions can be found
[[1]]

If your question requires confidentiality, you are welcome to contact Michael Shiloh directly.

You might also look for local Openmoko users to find
some local support. A few minutes with a live person might solve a simple
misunderstanding that would take hours to understand via email. (If a local
club doesn't exist, this might be the perfect opportunity to start one!)

I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed?

Where are the latest downloads?

Openmoko

What is Openmoko?

Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.

Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.

What is the purpose of this project?

By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.

How do I join the Openmoko project?

Join one or more of the mailing lists. A great place to start is the community list.

I'm not a programmer, but I have other skills. Can I still be of use?

Absolutely. If you're a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.

Neo FreeRunner - Introductory/Overview/Conceptual Information

The Neo FreeRunner is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.

What can I do with the Neo FreeRunner?

The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.

The Openmoko software is not yet ready for everyday use.

The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard "locked" mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.

What are the benefits of an "open" phone over a "closed" phone?

In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model. The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing yet unfortunately inaccessible: many features are "locked down" because they do not suit the network operator. Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!

Purchasing / Shipping / Versions

If you buy directly from the Openmoko webshop you will pay USD $399 for the Neo FreeRunner, USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at Group_sales.

On what bands does the Neo FreeRunner operate? Will it work in my area?

The Neo FreeRunner is a tri-band GSM phone. It is available in a 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.

Do I need the debug board?

With the Neo FreeRunner and NO debug board you can do:

Kernel development

Application development

U-boot updates(equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash

Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.

Neo FreeRunner users can update u-boot in NOR flash

In summary, it is rare for a Neo FreeRunner user to require a debug board.

To emphasize, the debug board is not required in order to develop applications, system software, or even kernel or device drivers. The debug board is not required in order to gain access to the source code or the development tools.

Why won't the FreeRunner boot even with the charger connected?

Flashing (dfu-util) -- dfu-util does not find the phone.

In brief, you need to boot the phone into the NAND or NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and not Ethernet over USB, which is what is available when the phone has booted fully.

Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see Booting from SD.

To get the u-boot menu:

Press and hold the AUX button

Press the Power button until the phone powers on and displays the boot menu

Release both buttons

Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone).

Can the Neo FreeRunner charge when turned off? When suspended?

Can the Neo charge and use devices on a USB hub at the same time?

Wireless Connectivity

What kind of wireless connectivity does the FreeRunner have?

The FreeRunner has the following connectivity options:

Tri-band GSM (850/1800/1900 MHz in North America, and 900/1800/1900 MHz, commonly referred to as "European tri-band", for other parts of the world). For a list of compatible service providers, see Neo1973 compatible cellphone providers.

How do I get low-level hardware-related functions, like power up device, dump register?

Inputs

How can I type a '/' in the software keyboard?

How do I get a QWERTY layout software keyboard?

Miscellaneous

Will Openmoko "Just Work" with Mac OS X?

There has been some discussion of this on the mailing list. There is motivation, and there are interested developers.
Not being a Mac OS X user, I don't know enough
to summarize the discussion to answer this question. Can someone please fill in?

For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.

It is expected that (Bluetooth/UB) SyncML based interoperation for
contacts and events can easily be achieved by a patch
to the Apple iSync configuration tables.

There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of
PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.

Software

General Questions

Is it completely free software/open source?

Yes. All software that runs on the main CPU and can be updated by the user is available in source.

Firmware in "black box" hardware modules that can not be modified by users is not available in source form. Effectively, these modules are "hardware only".

This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.

Can the software do/connect to/...

Reviews of the latest "bleeding edge" daily builds of the Openmoko software stack can be seen here

At the moment, the answer to many other questions is "no". The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps. Most do not function in any way that would be suitable for end-users. If you want to add a feature or application request, then look over the existing Applications and either add one, or add a feature request to the applications page.

Applications

What software is on the phone?

At the moment, almost no 'end-user' applications are present and working in a usable state.
It is possible to make and receive calls in some software revisions, this frequently breaks though.

What software can be installed on the phone?

Pretty much any that can be cross-compiled for the ARM architecture.

Will it be possible to use popular VoIP applications on the Openmoko platform?

Since it has WiFi the FreeRunner should be a good platform for VOIP use.

In either case please check for softphone apps ported to the Openmoko distribution at the projects page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.

Will it be possible to use popular Instant Messaging applications ?

There many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is Pidgin, formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi will make it even better.

Does it support Flash so can I watch YouTube?

You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command:

Xoo

Xoo. Koen says: "Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)".

Update: Stefan Schmidt has resized the Neo1973 Mock-up and written a small description for xoo. In his words:

It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.

Where can I find some type of tutorial for a 'Hello, world' on Openmoko?

Can PalmOS apps applications be ported to run on Openmoko?

Making legacy apps written for the "Garnet" OS (née "Palm OS") run on Linux
is decidedly non-trivial.

PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.

The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.

It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run. This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.

Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.

Does it support Java?

Project [Jalimo] is a project aiming to provide a Java stack on mobile devices. There is a port of Jalimo for Openmoko.
The Debian distribution supports CacaoVM and JamVM through apt-get. See Java for more infos.

How do I dump details about X11 configuration and extensions?

Distribution Customization

NOTE: Suggestion: this should be split off into a separate page, since many of the questions below aren't really overview-level but specialized; a question like "How do I customize a distribution?" could be added to the Software - Distributions part, linking to the new page. --eddsouza 07:35, 7 September 2008 (UTC)

Compilation & packaging

What is the 'overlay' approach to bitbake development?

Which .bb files are related with the Openmoko?

Are there any configuration files for Openmoko?

How can I port an application written with autotools to Openmoko?

After you source the Openmoko toolchain variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ./configure --host i686 and then make - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.

How can I add an application written with autotools to the openmoko tree?

How do I input text?

Can I record calls and/or play audio files in calls?

Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an Answering Machine is possible. Also using text->speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this.
There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the Answering Machine functionality, amongst other things. See the audio page. Neo1973 Audio Subsystem

What is the battery life?

There has been no word on this so far, but see these estimates for a rough idea. More information about the battery here.

USB

What can I do with the USB port on the Neo?

Charge the phone, communicate with it over USB-serial, or USB-networking.

Plug external devices, such as wifi, cameras, or mass-storage devices.

What can't I do with the USB?

The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.

Why is only USB 1.1 provided?

The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.

The FreeRunner has the same processor as the Neo1973.

What are the details of the USB port on the Neo? How does it compare to USB On-The-Go?

The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go. OTG is a complex specification, and it comprises way more than just
an AB socket, but also electrical and software components which cannot be provide by the S3C2410.

You will need a special Mini-B to regular-B cable (note that this won't actually comply with the USB standard: a compliant cable has to have an A or Mini-A plug on one end, and B or Mini-B on the other).