Brice Morin edited this page Oct 24, 2013 · 42 revisions

Welcome to the JArduino wiki!

JArduino is a Java API and an Arduino firmware which allow programming Arduino boards in Java. It makes it possible to develop advanced Arduino applications (GUI, advanced monitoring or control, etc) using only Java. To get started with JArduino, read the tutorial, the notes on the JArduinoAPI, or [[the guide on how to use the new JArduino GUI | https://github.com/SINTEF-9012/JArduino/wiki/JArduino-GUI]].

JArduino in Action


What JArduino is?

A Java API which gives access to the functions of the Arduino board. It works by communicating the commands executed on the Java API to the Arduino board in real-time. It needs the Arduino board to be connected to the device/computer/phone/... running the Java program via the serial link. This link can be a cable or a wireless module. For example we are experimenting with Bluetooth, the documentation is here.

What JArduino is NOT?

It is not a Java virtual machine for Arduino: the Java programs are not running on the Arduino board. The Arduino board is running the JArduino firmware which gives remote access to the functionalities of the board. The Java API uses this remote access through the serial communication.

When and why use JArduino?

To enable any Java application to read values from sensors, perform digital I/Os, take inputs or command some physical devices, ... In all these case JArduino provides a very easy to use solution since you only have to import the JArduino Java library in your Java program and use it directly. It is also an easy way to start with Arduino for any Java programmer!

When NOT to use JArduino?

Whenever you want your Arduino application to run autonomously on the Arduino board JArduino should not be used since the Java program in not running on the board. If you want to use your Arduino to do more than analog and digital I/Os or/and some time-critical calculations based on sensors, the time delay of the communications could be a penalty. Basically, there is a tradeoff between the time it takes to compute something on the Arduino VS the time it take to communicate data to the Java node + to compute the same thing on the Java node.

##Releases download

Distributions of the JArduino firmware and API can be found here together with release notes.

  • JArduino 0.1.7: Updated the Advanced GUI. It is now capable of running sequences of actions instead of running them manualy one and one. Also visualistion of digital and analog writes are implemented, alowing you to use the application as a partial emulator. And lastly a code generator that generates JArduino code and Arduino code has been added.
  • JArduino 0.1.6: Fixed bug related to the GTalk sample.
  • JArduino 0.1.5: Added a new GUI that are more user friendly and looks a lot nicer.
  • JArduino 0.1.4: Added small GUI to select serial port + some bug fixes.
  • JArduino 0.1.3: Refactored the example folder structure, and added several Tone examples.
  • JArduino 0.1.2: Added an example which lights up a LED when you receive a new tweet on Twitter.
  • JArduino 0.1.1: Added an example which blinks an LED when messages are received on Google Talk. Also include bug fix related to issue #2.
  • JArduino 0.1.0: Initial revision which supports Arduino boards based on ATMega microcontrollers.


Do not hesitate to contact us if you would like to use or contribute to the JArduino project.

The JArduino Team