From FSI
Revision as of 12:31, 7 June 2013 by Cof (Talk | contribs)
Jump to: navigation, search


The Kart module is a Summer School module for students at the end of the first year. It's a home-made car remotely controlled by a smartphone.

The work of the students can be summarized in three main tasks:

  • design and build the chassis
  • configure the controlling FPGA
  • complete and extend the GUI on the smartphone
Demo Kart

System Architecture

The kart is controlled by a smartPhone via BlueTooth.

A BlueTooth receiver on the kart control board communicates via an RS232 serial link with the control board FPGA.

In the new version, the control is distributed over several boards connected via I2C:

  • An I2C master received RS232 controls, stores them into a set of registers and dispatches them at a regular pace on the I2C. The master also reads data values from the I2C, stores them into a second set of registers and sends the corresponding information at a regular rate to the RS232.
  • A DC motor controller receives speed information and builds a PWM and a direction control.
  • A stepper motor controller receives the desired angle and builds the coil controls signals.

BlueTooth communication

A BlueTooth communication transfers serial port data. A receiver chip creates the RS232 signals for the FPGA. The protocol defines how the registers are accessed.

The FPGA receives following controls:

  • the propulsion DC motor speed and direction
  • the steering stepper motor target angle and step period
  • two LEDs

The FPGA sends following information back:


Board connectors

The FPGA board has following connections:

  • a 26 pin Header connector
  • a 9 pole DSub connector for RS232
  • the FPGA JTAG programming connector
  • the PIC RJ11 programming connector


For special designs, some boards have larger FPGAs:

  • Board 29 has a AGL125V5
  • Board 30 has a AGL250V5

Within the Actel Project manager, the settings of the FPGA have to be changed: in Project Manager, change FPGA type in Project -> Settings -> Device -> Die.

For the AGL250V5, pin 46 associated to jtagIo[3] is not available. Edit the motorControl.pdc constraints file and change the jtagIo[3] constraint to pin 43.

Getting started

In order to start the projects you should do the following:

Additional Information

Personal tools
Modules / Projects