Shane Lewis from SL Interphase mailed me to tell me about a Kickstarter project that they’ve been developing. You may think it is just another robotics platform but this one is significantly different from the herd (or should I say “swarm”?). This one doesn’t have a microcontroller but uses an FPGA instead! So what’s an FPGA then? Shane explains:
Field Programmable Gate Arrays (FPGAs) are semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects. FPGAs can be reprogrammed to desired application or functionality requirements after manufacturing. You can reprogram the Xilinx Spartan 6 as often as you like, constantly redesigning its functionality and capability.
Sounds complicated? Well, it is and it isn’t. Rather than programming software that runs on hardware, you’re actually programming the hardware directly! That allows your robot to respond extremely fast to stimuli. The language to achieve this does look a bit like a lot of other programming languages you may be used to (depending on which environment, of course) but the similarity between programming a microcontroller and FPGA ends there. I remember having a lot of fun programming these when I was studying computer science almost 20 years ago. FPGAs are used a lot in applications where extremely high speed signal processing is required. Think of protocol analysers, network routers, oscilloscopes, you name it. The way the FPGA works internally, allows you to split it up into a lot of smaller subunits that can all do their own thing. Wouldn’t it be cool to try and model some kind of neural network on this thing?
The Logitraxx consists of a board, two motors, the FPGA (of course) and some peripheral parts, like sensors:
It has the following specs:
- Spartan 6 LX9 FPGA
- 8MB (64Mb) SDRAM onboard connected to FPGA
- 8MB (64Mb) Flash onboard connected to FPGA
- 4MB PROM for FPGA configuration storage
- 40 GPIO (with access to 2.5v, 3.3v, 5v, and VCHARG power input)
- 3 axis accelerometer with i2C interface connected to FPGA
- 18 User definable LEDs, including right angle LEDs for headlights/taillights
- 2 IR Sensor/Detectors in the front connected to FPGA
- Lithium battery charges from USB (can also charge from VCHARG)
- FTDI USB to Serial connected to FPGA (can be rerouted to GPIO)
- USB to JTAG for configuring PROM/FPGA
- 20Mhz oscillator connected to FPGA
- 32.768kHz oscillator connected to FPGA (Save gates by dividing down this clock for slow functions like blinking LEDs)
- Push Button (Momentary) works great as a “reset” or “start” feature.
You can easily print a body for this robot and make it look like anything you’d wish:
The files for these bodies can be downloaded via the Kickstarter page.
There are lots and lots of cool pictures, in-depth videos and info on the Kickstarter page, so go check it out!