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
-
report.pdf
Semester Project Report
tutorial_bluetooth.pdf Tutorial for configuring FPGA via Bluetooth (in French, applied to the ROPES project)
- Archived student projects
- Alain Dysli
- Alexandre Tuleu
- Anurag Tripathi
- Ariane Pasquier
- Aïsha Hitz
- Barthélémy von Haller
- Benjamin Fankhauser
- Benoit Rat
- Bertrand Mesot
- Biljana Petreska
- Brian Jimenez
- Christian Lathion
- Christophe Richon
- Cédric Favre
- Daisy Lachat
- Daniel Marbach
- Daniel Marbach
- Elia Palme
- Elmar Dittrich
- Etienne Dysli
- Fabrizio Patuzzo
- Fritz Menzer
- Giorgio Brambilla
- Ivan Kviatkevitch
- Jean-Christophe Fillion-Robin
- Jean-Philippe Egger
- Jennifer Meinen
- Jesse van den Kieboom
- Jocelyne Lotfi
- Julia Jesse
- Julien Gagnet
- Julien Nicolas
- Julien Ruffin
- Jérôme Braure
- Jérôme Guerra
- Jérôme Maye
- Jérôme Maye
- Kevin Drapel & Cyril Jaquier
- Kevin Drapel & Cyril Jaquier
- Loïc Matthey
- Ludovic Righetti
- Lukas Benda
- Lukas Hohl
- Lukas Hohl
- Marc-Antoine Nüssli
- Martin Biehl
- Martin Riess
- Martin Rumo
- Mathieu Salzmann
- Matteo Thomas de Giacomi
- Matteo Thomas de Giacomi
- Michael Gerber
- Michel Ganguin
- Michel Yerly
- Mikaël Mayer
- Muhamed Mehmedinovic
- Neha Priyadarshini Garg
- Nicolas Delieutraz
- Panteleimon Zotos
- Pascal Cominoli
- Pascal Cominoli
- Patrick Amstutz
- Pedro Lopez Estepa
- Pierre-Arnaud Guyot
- Rafael Arco Arredondo
- Raphaël Haberer-Proust
- Rico Möckel
- Sacha Contantinescu
- Sandra Wieser
- Sarah Marthe
- Simon Blanchoud
- Simon Capern
- Simon Lépine
- Simon Ruffieux
- Simon Rutishauser
- Stephan Singh
- Stéphane Mojon
- Stéphane Mojon
- Sébastian Gay
- Vlad Trifa
- Yvan Bourquin