Programming Embedded Microsystems


Projects

Following is a brief description of possible projects. Please contact us for detail discussion and information about following projects.

Porting TakaTuka on Lego-NXT or SUN-SPOTS


TakaTuka currently runs on MSP430 and AVR-Atmega processors. In contrast, Lego-NXT uses ARM processor and has different hardware specification (e.g. Bluetooth instead of a packet radio). The goal of this project will be to port TakaTuka on Lego-NXT and compare the performance of the ported TakaTaka with Lejos JVM. Similary, SUN-SPOT are motes with ARM processors and one may port TakaTuka on them too.

Skills required: C programming skills and Some GCC compiler, embedded devices knowledge.




Writing a Java debugger for motes


Java has a very powerful debugger. However, this debugger will not work when a program is using mote hardware (e.g. radio or ADC). The goal is to make work Java debugger on the TakaTuka core when it is running on the mote. (please contact us for more information).

Skills required: Java and C programming.




Implement an existing routing or transport layer protocol in Java using TakaTuka


Currently TakaTuka supports DYMO and CTP routing protocols. These protocols are written in Java and run using TakaTuka on different mote platforms. The goal of this project is to implement another routing or transport layer protocol and test it on real hardware. (Bonus points for someone improving an existing protocol).

Skills required: Java programming




Improve TakaTuka Core: Enhance TakaTuka's performance or reduce RAM/storage requirements


There are many things still can be done for improving TakaTuka performance or reducing its RAM and storage requirements. The project starts by measuring TakaTuka performance or RAM/storage requirements on many application. The developer(s) of the project later on change TakaTuka core following some well thought strategies. In the final stage results should be produced for any performance gain or reduction in RAM/storage requirements.

Skills required: C programming




Implement a garbage collection algorithm


Currently we have implemented mark-and-sweep garbage collection (GC) algorithm. Furthermore, research work is in progress for implementing a novel "position based offline garbage collection algorithm" PBO-GC. The goal of this project is to implement another garbage collection algorithm from the existing literature so that a good comparison results can be produce by comparing PBO-GC with two existing GC algorithms.


Skills required: C programming




Implement file management Java library for TakaTuka


TakaTuka support almost complete CLDC but file management part of it. The goal of this project is to implement CLDC file management part of library for TakaTuka.

Skill required: C and Java programming




Reducing UTF8-strings storage requirements for TakaTuka


String are expensive to store as each character takes 2 bytes. The goal of this project is to develop a new approach in which each character takes on average less than 1 byte.

Skill required: C and Java programming





Implement Class and method inlining



The aim of this project is to reduce the Java binary size and increase speed by inlining selected Java Class files and methods. For example, if a super-class has only when sub-class then the super-class could be made part of sub-class. This will reduce sizes, as one less class and increase speed as less method lookups will be required.

Skill required: Java programming




Write Math library for MPS340



The current Math library is not Java compatible and is too big. The aim of this project is to write Java compatible Math library for MSP430 processors with reduction in library size if possible.

Skill required: C programming and GCC



Testing the TakaTuka JVM using Mauve


Currently, we have our own test cases. These test cases test only Java bytecode instructions and does not test details of Java library. The aim of this project is to test TakaTuka thoroughly using existing test suits e.g. Mauver.

Skills required: C/Java programming and Apache-Ant scripting.



We might add more projects later on.



top