Skip navigation

Tag Archives: Flash

Over the next academic year I intend to show a lot more of the UCF student work on this blog. The staff and students put their heart and soul into the work that is produced at Falmouth. Personally, I get a massive sense of pride from what I do and want to share the results with the world. So here is the first of many; a video documenting the first Kinect based student project to come from UCF.

Recently I attended a 3 day training session on building home-brew CNC machines which was run by Dave Turtle from the RCA. It was an amazing 3 days and I will post the photos and videos of the results as soon as possible. One of the hurdles that came crashing in on day two was the limitation of running the kit from the parallel port. There really aren’t that many computers these days that still roll out with a parallel port as standard, not to mention my nice shiny mac does not come equipped with a parallel port. I was 100% sure the solution to this problem was the trusty Arduino. There have been many projects where the Arduino has already been used as the heart of a CNC machine, the first that comes to mind is the REPRAP. There is also another CNC project called Contraptor which utilises the Arduino at its heart. The home site for the Contraptor project has a lot of useful information, it was there I came across Grbl.

I tried the RepRap g code interpreter, fiveD but I could not get it to compile for the Arduino (Any tips would be gratefully recieved). I also tried a few other interpreters with varying success: teapot, rsteppercontrol and arduino-gcode-interpreter-new. I really struggled, probably partly due to my lack of understanding when it comes to g-code. I had no success over the three days of training but I did find Grbl though I didn’t have the kit to test it. Grbl seemed like a very simple solution but the main hurdle when it comes to implementing it is that you need to use avrdude to flash it to the Arduino you can’t just send it via usb direct to the Arduino. I have never done this before so I let the Arduino rest for the the remainder of the training with a mind to try it as soon as possible.

Today I started messing around with Flashing Grbl to the Arduino and was caught out by several issues which slowed my progress. There are already several sites with information on how to do this but I found I needed bits from all my sources to get the job done. I thought I would document my process in case anyone else finds it useful.

First off the sites that proved to be most useful:

I started by downloading the prebuilt hex files for Grbl here

I then downloaded Crosspack-AVR from here which installs a version of AVRDUDE (used to handle flashing the data to the Arduino)

The Arduino that is going to act as a programmer needs to have the programming firmware uploaded to it. This is a very simple task as it is all built into the Arduino IDE. Open up the Arduino IDE then go to File -> examples -> Arduino ISP then upload the sketch to the Arduino. The Arduino is now fully setup to Flash another Arduino.

The next step was to wire one Arduino to another to use as a programmer. I found the wiring diagram from Sparkfun here and the picture below is my version of the wiring. One thing that sparkfun didn’t explain is that you must disable  auto reset on serial connection. I found out how to do this here. I could not find a cable to suit so unfortunately I had to solder directly to the ISCP headers (not pretty).

Wiring for flashing the arduino

Now all the setup is done it is time to put AVRDUDE to work, on a Mac this is done via terminal.

I found the terminal commands for AVRDUDE on sparkfun here about half way down the page.

command one (make sure the Arduino is ready for grbl):

avrdude -P /dev/tty.usbserial-A9007VP6 -b 19200 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

change the red text for the name of the serial port that your Arduino is plugged into

command two (load Grbl):

avrdude -P /dev/tty.usbserial-A9007VP6 -b 19200 -c avrisp -p m328p -v -e -U flash:w:grbl.hex -U lock:w:0x0F:m

blue text is for the location of the grbl hex file on the computer

Hopefully thats it, Grbl is now installed!

If you want to test that Grbl is working properly the you can download CoolTerm which is a GUI for mac for sending and receiving information on serial ports.

Screen shot of the NaturalDocs command line tool

Recently, I have been really enjoying AS3 because of its versatility. The projects I have been working on are growing quite complex and hard to manage. The main issue I have been having is remembering what each class does. I have been very careful to comment code but sometimes it would be nice just to have a document that describes all variables, methods etc. Today I started looking at automated systems to create documentation from AS3 project code and I came across NaturalDocs. Its a very simple to use command line tool which goes through all my project code reading the comments and structure. NaturalDocs then creates a full blown website documenting the code.

A couple of weeks ago I wrote an application in AS3 that used FFMPEG for video manipulation. The application utilised the NativeProcess class from adobe air to execute native processes via the command line. The technique really adds another level to the versatility of AS3. Since the video app I have been itching to use the technique again so I decided to make a very simple GUI for NaturalDocs. The picture above is a screen shot of an air app that has NaturalDocs embedded in. The app is very simple all the user has to do is click the top box and locate the project code then click the second box and define a folder for the destination of the docs. Once “create docs” is clicked NaturalDocs goes ahead and creates the documentation for the code. Its very simple but hopefully it will be quite useful. I was very impressed with the work that Greg Valure has done on NaturalDocs its a very intuitive and efficient system to use.

Some of the AS3 resources I have been working on are becoming very useful. I can’t wait to start documenting some of the more universal classes I have written and then releasing them into the great wild west that is the internet.

A screen shot of the documentation that is generated:

Screen shot of the documentation that is generated by NaturalDocsIMPORTANT: None of the work done for NaturalDocs is mine I am only responsible for the GUI used to short cut the functionality of NaturalDocs

I will upload the app and post link to download it soon. I don’t think this would break the GPL license the NaturalDocs project is licensed with.


First tests with the matrox triple head. 3 screens 800×600 running a flash mac app 2400×600 in full screen mode. All powered by a standard mac book pro. The triple head was really easy to set up on a mac and is a very powerful device.

This was my first attempt at blogging on my htc desire hd using wordpress app for android.

Try to keep up! The statement I have been telling myself a lot recently. The shift to HTML5 and CSS3 has left me scrambling for browser support comparisons and video encoding specifications. Web technologies like tectonic plates are shifting, some struggling to find their place while others are emerging powerful with claims of modularity and future proofing. All this change has rekindled my love for web development but there have been a couple of changes that I really want to shout about so here it goes:

Starting with the most obvious first – jQuery

This JavaScript library is an awesome alternative to the Flash based websites of the past. Don’t get me wrong I am addicted to AS3 and spend a lot of time tinkering with FLAR Toolkit (Flash augmented reality), Papervision 3d and APE (Actionscript physics engine) but the idea of having to install a third party plug-in to view a standard web page seems a little outdated. jQuery is a very capable library allowing tweening, DOM manipulation (Document object model) and AJAX capabilities all in an easy simple to implement package. I am not convinced that Flash will be run out-of-town by this JavaScript alternative, instead the technologies will settle in their own rightful places.

I love the power and ease of use that the java framework provides so I was excited to hear that an evolution of this framework has been developed, again utilizing the power of JavaScript. is a port of processing that runs within the browser without having to install a third-party plug-in (Are you starting to notice a pattern here?) The port has most of the important features of its parent and renders them within the HTML5 canvas tag. I have not had time to experiment with but if it’s as addictive as processing is then my schedule is about to be ruined. This is also a good example of why the move from HTML4 to HTML 5 was so important.

The last few changes that I find interesting are still based around the wonders of JavaScript but this time focusing on mobile technologies. If you have experience with jQuery then you will probably enjoy using jQtouch. The official site describes jQtouch as a “jQuery plugin for mobile web development on the iPhone, iPod Touch, and other forward-thinking devices.” I presume by forward thinking devices they mean other touch screen equivalents to the iPhone. This plug-in allows a developer to emulate a lot of the UI style and functionality of the iPhone within their mobile website. This means that a developer can bypass the rigmarole of getting that app accepted and published in the app store as long as they don’t mind it being run in the browser of the phone instead of installed on the phone itself.

Last but not least I want to talk about PhoneGap. PhoneGap allows you to write apps for many different smart-phones using HTML and JavaScript. I recently spent some time experimenting with the iPhone SDK and learning a bit about xCode (from what I can see xCode is another name for objective C.) The process is very bloated and slow, probably due to my lack of experience in objective C. There are a lot of well written tutorials around though so eventually I managed to get a couple of apps running reasonably well. This being said at the time I had not heard of phoneGap but if I had then I probably would have achieved my end goal in half the time. Not to mention the fact the finish article could have been exported for not just the iPhone but also Android, Symbian and Blackberry phones. What a breath of fresh air.

The underlying theme here is most definitely that 2010 is a good year for JavaScript. There are still some issues with browser compatibility and these are mainly down to Internet Explorer none the less I am excited to see what else can be achieved with a language that has been built into browsers ever since Netscape in 1995.

Above is one of my Favorite examples I have seen so far of augmented reality. It was coded by Saqoosha who I am very thankful to as he was one of my main sources of information and documentation for the FLARToolkit.

The last two days I have spent bashing about with the FLARToolkit for AS3. Its very addictive and there are some very good example online. In the end I produced some working examples by mixing the examples given by Mikko Haapoja and into one AS3 file. I can’t wait to see where these experiments will take me and i hopefully post them up here soon.

Well formed Eigenfactor

One of the nicest data visualisation projects I have come across in my research so far is designed by Moritz Stefaner using the AS3 framework Flare. Moritz has tapped into the massive database created by and produced some very beautiful and intuitive Flash applications. The Flare toolkit is very comprehensive, versatile and capable of producing some very nice visuals I can’t wait to start playing with it.

Recently I have spent a considerable amount of time researching data visualization techniques using Flash and AS3. The main driving force for this research was to inspire first year Digital Media students without allowing them to be intimidated by AS3. To make the process of visualizing data in AS3 less daunting I have started writing a toolkit of classes the students can use to bypass some of the fundamental and structural elements of visualizing data. This way the students can concentrate on the creative and experimental aspects of the visualizations and achieve results at a much faster rate.

Here is one of the classes I have completed that I believe to be quite useful. The purpose of the class is to convert time into units along an axis. The class takes the start time and end time for a period of data collection and maps that across either the x or y axis. The class has a getPoint method which you can pass any time within the data collection period and it will return the point in pixels along the specified axis.

Once an instance of has been defined only two lines are required to start utilising the class for example:

converter.setAxis(“12:00:00”, // The start time
“12:05:00”, // The end time
“x”);       // the axis to apply the units to

trace(converter.getPoint(“12:02:00”)); //get a value along the defined axis

Anybody is welcome to use this class I just hope other people find it as useful as I do.  However I would love to know any improvements that could be made to the class and how it has been implemented.

DOWNLOAD class and examples

%d bloggers like this: