Skip navigation

Tag Archives: y

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:

http://www.sparkfun.com/tutorials/247

http://www.arduino.cc/en/Hacking/Bootloader

http://dank.bengler.no/-/page/show/5471_gettinggrbl

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.

Advertisements

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 timeToAxis.as 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: