Archive for the ‘WebDMA’ Category

WebDMA demo video

Saturday, April 25th, 2009

If you read my previous post, I was talking about this new open source library I’ve created that allows you to embed a web server in your C++ application so that you could modify variables inside of it. I had created it for our FIRST Robotics team so that we could use it to tune things on our robot (and its been extremely useful for that) and use it for simple data acquisition. Of course, driving a robot is nothing more than changing variables… so I thought it would be a neat demo to set it up so that it could be driven by the web interface. 🙂

Here’s a video of our robot being controlled via the WebDMA interface:

And theres a (non-working) HTML version of the interface (though, its no longer the exact one that is on the robot, but its close) at

Changing variables using a web interface and embedded HTTP server

Tuesday, April 21st, 2009

When walking around during the Boston Regional, I had been talking to some people about code, and they mentioned that LabView was great because they could tune their PID controllers on the fly while the robot was operating. So I thought to myself, “why can’t I do this with C++?”. And… so I did. WebDMA was created to allow our FIRST Robotics team to tune our robot in an easy to use and intuitive way via any modern web browser.

Using C++ operator overloading, WebDMA provides proxy objects that your application can use as normal variables which can be manipulated or displayed by your application via a configurable jQuery/javascript powered Web 2.0 interface hosted by an lightweight embedded web server.

Despite that WebDMA was specifically created for use in FIRST Robotics on the NI-cRio/vxWorks platform, it uses the Boost ASIO portable networking library and Boost Thread portable threads library and is usable on any platform supported by these Boost libraries (tested on Boost 1.38, requires a patch for vxWorks).

A non-functional (but very shiny) demo of the interface is available at

Visit the Google Code project site for WebDMA

Update: Go here for a video: