Sorry. Either you don't have JavaScript enabled or you are using Internet Explorer. Please move to better browsers like FireFox

jNabServer Version 2 Available

A new version of jNabServer has been published December 9th, 2008. To download it, please go to jNabServer Google Code project. The new version features, in addition to streamlined code and API, numerous new features:

The old version remains available, but you are recommended to use the new one.


Youtube video of nabaztag

JNabServer is an open-source server software which handles communication with Nabaztag/tags, Wi-Fi enabled robotic rabbits that can be used as physical user-agents in human-computer interaction ( Nabaztag in Wikipedia).

JNabServer is written in j2se 6.0 (Java Standard edition) so it is platform independent. Main idea is that people can develop their applications and ideas more freely on jNabServer platform. By releasing this code as an Open-Source Project we want to give this extendible platform to be used in various projects including our own research.

Nabaztag is developed by Violet The Smart Object Company. Violet provides services for Nabaztags on their servers. JNabServer is designed for you to be able to replace this service with your own service. jNabServer itself does not provide service it only enables communication and gives you the possibility to do what ever you want to do with Nabaztag/tags.

Nabaztag/tag device can handle various forms of interaction, from voice to touch (button press), and from RFID 'sniffing' to ear movements. It can response by moving its ears, by displaying or changing the color of its four LED lights. It can also play sounds which can be music, synthesized speech or other voices.



SPI JNabServer is a part of a project by SPI -Research Group from University of Tampere. It is the base on our research on how Nabaztag could be used as an multimodal user-agent and studying its strengths and weaknesses as one. This project is a part of Speech-based & Pervasive Interaction Group research.


This project is released under the LGPL license. Read the license from here.


You can contact us about the development of jNabServer using the form below or emailing directly to



Version 2

Version 2 is available in jNabServer Google Code project

Old Versions of the Server:

jNabServer 1.0 (Java application)

jNabServer 1.01 (Java application)

Updates by Jaakko Hakulinen @ University of Tampere.
Web server now sends files to a Nabaztag slower than possible. This is because currently Nabaztags occasionally have problems with playing audio files when the files are received too fast. In these cases, the Nabaztag reads the file again until it can succesfully play it. In local server settings this problem can, depending on the used network, become a real issue. Slowing down file data sending in the server end scales down the problem significantly. The current version slows down the file sending 25ms/512bytes. The changes are in classes fi.uta.cs.nabaztag.utils.StreamCopier, which now has a method for copying data at full rate or at a limited rate, and in class fi.uta.cs.nabaztag.server.response.LocalFileResponse, which uses the slowed down stream copying method.

After downloading the jNabServer we recommmend you to read the guide


NabaztagClient (Example client application for jNabServer)

Both server and client packages contains source, binaries and javadoc.


The documentation contains a guide for starting to use jNabServer and a more specific documentation about how jNabServer works.

It also contains some information about how to make a client for the jNabServer.



Guide to interact with your Nabaztag using jNabServer

  1. Connecting your Nabaztag to the wireless network
  2. Get bootcode for your Nabaztag
  3. Starting jNabServer
  4. It doesn't connect?
  5. It doesn't run?

1. Connecting your Nabaztag to the wireless network

nabaztag setup

2. Get bootcode for your Nabaztag

Update (30.10.2008, 9.12.2008): It seems that the bootcode delivery mechanism was changed in the latest service update by Violet. Therefore, the following procedure results in an error. Version 2 distribtion in Google Code includes a bootcode.

3. Starting jNabServer

4. It doesn't connect?

5. It doesn't run?

Example Client

How to make a jNabServer -client:

If you would like to make your own jNabServer -client application it is essential to take a look at the documentation about jNabServer's XML API.

JNabServer expects a formatted XML message and returns one as response. Right now you can send packets to the Nabaztag from the client via jNabServer. You can also tell the server to set certain Nabaztags plugin to another one. Also the server can be asked to give a list of Nabaztags connected to it.

Example clients architecture:

This example client is programmed in Java, but it is possible to program your own client software using almost any programming language. The only prequisite for a program to work as a jNabServer client is to be able to connect to the server and communicate with it using XML formatted messages.

Important classes:

Client(fi.uta.cs.nabaztagclient.client), this class' role is to connect to the specific server and to parse and build the messages sent to the jNabServer. This class holds the connection to the server and handles sending the requests to the server and receiving the responses from those requests.

NabClientFrame(fi.uta.cs.nabaztagclient.gui), this class contains the frame for the graphical user interface for the NabaztagClient. It displays the data from server and ables the user to communicate with the server.

Example code:

Download the example client code here

Nabaztag client