Mega-Cool FPGA-Powered Tracked Robot

With an FPGA, you can perform a lot of different operations simultaneously in a massively parallel fashion.

I just saw a really cool FPGA-powered tracked robot project on Kickstarter. I'm sure there are all sorts of FPGA-powered robots roaming around the world. I know that my chum Duane Benson is building a robot avatar that includes a mix of MCUs and FPGAs. It's just that I've never actually seen one in the flesh, as it were.

As you may recall, I'm working on an Arduino-powered robot. One of the issues I face is that the Ardunio's MCU quickly gets overwhelmed with the amount of sensory input I want it to process.

The problem is that -- multi-cores and multi-threads notwithstanding -- MCUs tend to perform tasks sequentially. In fact, the only thing MCUs really have going for them is their versatility due to the ease with which we can modify their programs. When it comes to performing nitty-gritty mathematical operations, MCUs are painfully inefficient. We don't notice how bad they are only because they perform so many such operations each second.

The solution I adopted (with Duane's help) was creating a custom sensor board. This little beauty has its own Arduino-compatible MCU that handles the sensors, freeing up my main processor to concentrate on its high-level decision-making activities.

Of course, there is another alternative, which is to use an FPGA. The thing about an FPGA is that you can perform a lot of different operations simultaneously in a massively parallel fashion. Each sensor can essentially have its own state machine-like controller and/or hardware accelerator. You can even configure portions of the programmable fabric to act like one or more soft-core MCUs. All this leads us to the Kickstarter project I just saw: the Logitraxx Xilinx FPGA-powered tracked robot.

The Logitraxx Xilinx FPGA-powered tracked robot.

I don't know what it is about robots, but they have a certain something that entices me to want to play with them. This is especially true in the case of this FPGA-based beauty. What do you think? Wouldn't you love to lay your hands on one of these little scamps?

So far, the soft cores have a reputation of too big and too slow. As Max said, the MCU has a very fast clock, but is too slow or inefficient, whatever. Having to access a memory to load registers and store the result serializes the function by definition.

Changing behavior by loading a new program is an advantage of MCU. FSMs were also mentioned as many can run in parallel. FPGA takes longer to reconfigure than just reloading memory.

A memory and a counter can be an FSM. A basic C program is an FSM as the source line numbers can be used as states and the memory outputs as control signals. Yeah, I know horizontal micro-code is about 50 years old. It still works.

Parse the C source to generate memory content, load, execute. Run and debug the C code first is a good idea.

Logitraxx reconfigures FPGA which looks great as educational tool. Auto coded FSMs are just an easy way to control/change behaviour.

For computation, the true dual port RAM can deliver both operands to the ALU per clock cycle, so load the data and go.

Definitely so FPGAs can be daunting depending on the application and design. So, my statement is meant in the spirit of the graduated complexity of FPGA design. They can be very complex and yet for simple tasks, the design and execution is also simple. For instance I had just received the boards back from assembly and needed a picture for the campaign page. And so I had not even hooked up the motors yet. I wrote something as simple as "hedlights <= not lightsens;" then assigned some pins and hit the synthesis. After programming the FPGA, boom I had headlights working and ready for the photo.

The Logitraxx main purpose is to introduce FPGAs to the embedded world that typically designs with MCUs or ARM and might be unfamiliar with FPGAs though their design applications increasingly could greatly benefit from the use of them. That's been something I have been running into more often with my design services. And so Logitraxx is a learning tool that is meant to be fun, and to encourage FPGA design while learning at the gadget level that has similar traits that MCU based gadgets may have.

Albiet after the "many" minutes it takes to install the webpack tool :~)

Thanks for the link, Max. I'm always looking for cheap (in the USA) reliable FPGA boards, preferably Xilinx. The current winner for my purposes appears to be the Papilio One 250K at US$38.

Logitraxx isn't the one I need, but it looks like a pretty nice project. However, I am disturbed when I see text like this in a Kickstarter:

Easy to Learn – Easy to Use

With a basic understanding of Boolean logic, VHDL, or Verilog, you'll be on your way to programming your first FPGA in minutes.

FPGAs are not easy to learn, or easy to use well. There's a pretty steep learning curve -- Duane Benson gave an excellent talk on this subject at last year's ESC AKA "design west" called "FPGAs: I know nothing... yet."

So unless by "in minutes" they mean "in N minutes where N is a surprisingly large number", it makes me wonder what else the Kickstarteur may be exaggerating. Heck, it takes tens of minutes just to install Webpack.