Show Posts
Pages: [1]
1  Development / Other Software Development / BAJOS - a java runtime environment now even for arduinos on: April 06, 2011, 07:08:51 am
BAJOS is a java run-time environment for microcontroller.

It consists of BAJVM, a Java Virtual Machine and of BAJOSBOOT, a collection of system classes. BAJOS can be adapted to Embedded Systems with/without operating system (
The system has been tested for 8 and 32 Bit AVR controllers on different development boards and works under Linux on PC or Linux for Embedded Systems also.
Installation of Bajos requires:
   - C-compiler (gcc) on a cross development linux-PC
   - a java develoment enviroment on pc (javac)
   - (serial) interfaces between PC and development board for programming and interaction
   - at least 80 kByte program memory on the controller board
   - at least 4 kByte data memory on the controller board
The Arduino Mega (with the atmega1280 processor 128KB flash, 8 KB data ram) or Mega256 (with the atmega256 processor 256KB flash, 16 KB data ram) is well suitable for Bajos.
Boot classes in BAJOSBOOT include necessary classes of the JVM-specification, other useful system classes as well as the class for binding the run time environment to the hardware configuration.

You can install compiled binary image with the bootloader shipped with the arduino or with bamo128 ( The terminal program arduinokermit ( is well suited for communication of the linux-pc with the BAJOS-arduino.

BAJOS controls a crane with magnetic grabber

BAJOS triggers an alphanumeric display

More information (sourcecode, wiki) you get  at .
2  Development / Other Software Development / Bamo128 - a monitor program and bootloader on: February 16, 2011, 02:05:08 am
"When I was your age, we had 8 bit CPUs and assembler! And we liked it! And we didn't complain!"
above is "cut -> copy -> paste -> modify" from

Bamo128 is a resident monitor program and bootloader  for AVR8 microcontrollers. The monitor is written in assembler (GNU toolchain: avr-as) and communicates with the host-PC via a serial interface with an appropriate terminal program (preferably arduinokermit or minikermit from

With bamo128 you can:
- visit/modify/copy the different memories of the AVR8 microcontroller.
- load arduino sketches and asm/C/C++ programs in flash (with the bootloader of bamo128 over   serial  
  port) and execute (also in step-mode and with break-points) the machine-code.
- visit and modify cpu-state (flags, regs,...).
- disassemble flash instructions.
- load data in eeprom and sram.
- copy data/programs between flash, ram and eeprom.

Useful monitor functions can be linked to external ASM/C/C++ programs with a linker script or arduino sketches can use monitor functions and variables via fixed monitor addresses.
For this functionality Bamo128 needs 4 KWords (8K Bytes) of flash memory advantageously in the boot section of the microcontroller and about 256 bytes ram for monitor variables (MONRAM).

In version 08 and later we use bamo128 at boards with the atmega128 (CharonII with 32K external RAM and the Mica2 without external RAM), the atmega1280 on the ArduinoMega board and the atmega328 (ArduinoDuemilanove).

You can use Bamo128 as bootloader and comfortable monitor in an arduino environment. The bootloader works fine together with the arduino IDE  (linux or windows).

The project has a own repository with more informations (WIKI) and  could be accessed through the .

Pages: [1]