Biorobotics Laboratory BioRob

Bluetooth Configuration of an FPGA:
An Application to Modular Robotics

Self-reconfigurable modular robotics represents a new approach to robotic hardware. Instead of being designed as a huge centralized system, the "robot" is composed of many simple, identical, interacting modules. With the help of some computation, sensing and communication capabilities, self-reconfiguring robots should be able to adapt their morphology to the environment in order to fulfill a desired task.


The Biologically Inspired Group (BIRG) of the Swiss Federal Institute of Technology in Lausanne (EPFL) has developed a brand new Modular Robot called YaMoR. Each module contains an FPGA, a Bluetooth board, a power board, two batteries and a servo-motor. Assembling the modules together, a centralized Java application can supervise the overall movement via Bluetooth.


The aim of the current semester project is to study the unexploited programming potential of the Bluetooth board, containing an ARM core, some Flash and some SRAM. In particular, we show how we can configure the FPGA board wirelessly.


System Overview

There exists different flavours for FPGA programming, among which the JTAG one. A higher layer description of JTAG operations (XSVF) is firstly sent on air to the Bluetooth board where it might be stored. An onboard interpreter then reads this XSVF file and generates the correct JTAG sequence to program the FPGA.


We have successfully implemented this wireless programmation in the YaMoR modules. The programming time of the FPGA is about 10 seconds. It is possible to store 2 bitstreams in the Flash and use them at the powering of the system. 3 other bitstreams can be stored in XRAM and are therefore erased at power down of the robot.


XSVF allows dynamic partial reconfiguration. For the demonstrations, we implemented a controller for the servo-motor on the FPGA. We showed it was possible to change the controller partially by just updating some lookup tables of the FPGA.

Documentation