You are viewing outdated content for BUG. If you have a BUG Y.T. edition or 2.0 series device, please visit our updated wiki:


From BUG Wiki

Revision as of 13:23, 28 October 2011 by Mgrundy (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search


How technical do I need to be to use BUG?

At present, it is our strong recommendation that only Java programmers, or those familiar with developing Linux applications purchase BUG. However BUG is a great place to get started learning embedded development! As our developer community builds useful gadgets with the initial units, we anticipate the entire system getting easier and easier for less technically inclined people to pick up and use BUG.

I already have Eclipse installed. Can I use it with Dragonfly (the BUG SDK)?

You can run Dragonfly (the BUG SDK) using Eclipse version 3.3 or greater.

Can I use my BUG with Mac OS X

  • Yes. For 10.4 Tiger, follow the instructions at Start Guide Mac OS X 10.4. For 10.5 Leopard, follow the instructions at Start Guide Mac OS X 10.5. We currently do not support USB Networking on 10.6 (Snow Leopard), please do not install the driver for OS X 10.5 on OS X 10.6. To connect to your BUG from OS X 10.6, we recommend connecting your BUG directly your LAN using wifi networking or a USB Ethernet dongle.

I installed or upgraded Firefox 3 on my Linux machine and now my Eclipse Browser doesn't work.

  • From the command line execute: sudo apt-get install xulrunner

Where is all the source code?

  • Source code for Eclipse, the tooling platform on which we build, is available from

What type of Web services are supported with BUG?

By default, BUG exposes information via RESTful Web services. That is, each resource or entity is accessed via a simple URL such as http://<mybug>/services/location. The HTTP operations GET, PUT, POST, and DELETE are used to manipulate Web service resources. BUG supports a simple service discovery mechanism via the base URL: http://<bugip>/services

When I create a BUG application I see What's that?

BUG utilizes a runtime environment and service model known as OSGi. This allows applications to be managed in a context of dynamic services. Additionally it enforces a component model and service access pattern that applications use to safely share hardware-based services. The specific OSGi implementation we use is called Concierge.

An introduction to OSGi can be found here.

What version of Java runs on BUG?

By default, the BUG uses an open source CDC JVM from Sun called phoneME Advanced. This JVM is roughly equivelent to J2SE 1.4. Other JVMs are installable on the BUG, such as CACAO and OpenJDK, however there may be performance and stability issues. The Virtual BUG relies on the Java Virtual Machine (JVM) that is installed on your desktop PC. The class libraries are limited to CDC/Personal Basis. Sun has a good article on explaining this.

Where are the Javadocs?

Glad you asked. It's here:

I don't see my Java Apps when BUGview is in Slots 1 or 3.

Java Apps now render on Slots 0 & 2. In R1.3 and earlier, BUG apps would display on slots 1 or 3 (X DISPLAY 1), but in R1.4 they are now display on slots 0 or 2 (X DISPLAY 0). This relates to the video overlay feature, which is currently only available on X DISPLAY 0.

How do I prevent a BUG application in my workspace from launching in the Virtual BUG?

Currently you will need to close the project. Right click on the Application (Project) in Eclipse and select Close Project. The Dragonfly (the BUG SDK) will attempt to launch the Virtual BUG with any BUG projects in your workspace.

How do I add (SQL, XML, SOAP, Jini, etc.) functionality to the Virtual BUG?

First have a look at places that host OSGi bundle repositories such as OSGi bundles are a great way of extending a BUG runtime because they can be shared among BUGs easily and multiple bundles can use their services. Once you have a bundle you're interested in adding, put it in the Virtual BUG "kernel" directory. Most likely this is in your Eclipse installation in the com.buglabs.dragonfly.kernel plugin. Mine is here: ~/dev/apps/eclipse32-test/plugins/com.buglabs.dragonfly.bug.kernel_1.0.0.226/kernel.

Now if you restart your Virtual BUG you should see the new bundle has loaded. You can type "bundles" at the Concierge prompt to see your bundle.

Actually, these steps are over-simplified and I will work on a more robust HOWTO shortly.

Java is a registered trademark of Sun Microsystems.

I get an exception when I run a Bundle on BUG

java.lang.NoClassDefFoundError: java.lang.StringBuilder
        at com.buglabs.bug.base.MenuAdapter.createChildren(Unknown Source)
        at com.buglabs.bug.base.MenuAdapter.getChildren(Unknown Source)
        at Source)
        at Source)
        at Source)
        at java.lang.Thread.startup(Unknown Source)

This happens because the Java compiler is set to 5.0. The compiler needs to build for 1.4. To change the compiler settings, go to Preferences in Eclipse, type "compiler" in the filter box at the top of the dialog, and select the Java Compiler item.

Where is your contact information?

How can I install new apps on my BUG?

There are two main types of applications for BUG: BUGapps and native applications. BUGapps are developed in the Dragonfly SDK and can be shared on BUGnet. Native applications are provided via a package repository and can be installed with command-line tools.

What is the difference? Native applications provide much of the core operating system functionality of the BUG. Additionally, many third-party open source projects are available only via native applications. BUGapps, in contrast are BUG-only applications that use our APIs for BUG modules. BUGapps are the easiest way to explore BUG hardware in Java and web services.

How can I configure what OSGi bundles start on boot?

Concierge, the OSGi framework running on the BUG, is started from an init script located in /etc/init.d/concierge. There is a symlink to this file in /etc/rc5.d/ that causes the program to start at runlevel 5. The actual script that is called is located at /usr/share/java/ Within that directory are two important files: and init.xargs. The former is used to define some common system properties for the BUG. For example, the port that the HTTP server listens on is defined in this file. init.xargs defines the bundles that start in Concierge and in what order they start.

Where are BUGapps stored on my BUG?

The core BUG OSGi bundles are located at /usr/share/java. User applications are located at /usr/share/java/apps. com.buglabs.bug.program OSGi bundle is responsible for loading and running bundles found in /usr/share/java/apps directory.

How can I change what programs run when my BUG boots?

The init scripts in /etc/rc.*/ define which programs run on the BUG. Looking in /etc/rc3.d/ and /etc/rc5.d will show most of the programs that start on the BUG. As an example, to keep the JVM from starting on the BUG, simply remove the /etc/rc.5/S99concierge file.

What countries do you ship to?

BUG 1.3 is FCC, CE and RoHS compliant.

EU countries we ship to
EU countries we ship to

So far, our regulatory compliance is limited to countries in the CE consortium, namely the EU states, including:

  • Austria
  • Belgium
  • Bulgaria
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • United Kingdom

However, this doesn’t include Iceland, Liechtenstein, Norway, or Switzerland :-(

Non-CE countries:

Yes, we ship to:

  • United States
  • Canada
  • India
  • Philippines
  • Chile
  • Vietnam
  • Laos

No, we don't yet ship to:

  • Mexico
  • China
  • Korea