Let's Make Robots!

The Valkyrie projects blog

Hi all,

If no one has anything against it, I will use this blog to post projects done with the Valkyrie.

To start with, here is the design flow I found to work well for doing stuff with the Valkyrie. Actually there are two flows, one for PCB making and another for cutting, milling etc. Note that I'm using Linux to do all my stuff, for Windows I have no clue which software to use. 

1. PCB's

a. The PCB is designed with Eagle which can be found here: http://www.cadsoft.de/

b. The board is then passed to the the pcb-gcode Eagle plugin available here: http://www.pcbgcode.org/

c. The pcb-gcode then generates g-code files for the top, bottom and drills

d. To visualize the output before actually doing anything, I'm using EMC (http://linuxcnc.org) in simulation mode.

e. Once I'm happy with the outcome I feed the g-code files to the machine using my python script (see robot page).


2. Cutting, milling, engraving, etc.. etc..

a. I found this open source CAD program: HeeksCAD http://code.google.com/p/heekscad/ which has a rather nice CAM plugin: http://code.google.com/p/heekscnc/. It required me to define a new machine for the Valkyrie, because by default it makes use of arcs (G02 and G03) to define the corners in the generated toolpath, but my machine can't work with them. So after a little hacking around I managed to remove the arcs and replace them with lines, scratch that it wasn't so simple, it works fine for things with straight angles but not for things with curves... I'll have to implement arcs on the arduino ... baah.

So basically you create your design and then apply NC operations to the design to generate the g-code. All generation is done using Python, and the machine definition too so it is really easy to adapt to pretty much anything.

b. After the g-code is generated as above I load it in EMC to check it

c. When I'm happy with the g-code I send it to the machine.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hi Tinhead!

Did you ever think of completely moving to emc2?

Because i will have a dedicated PC for running the Mill i came today to the conclusion that emc2 would have a lot benefits:


- Simulation

- Acceleration (i hope faster moving without loosing steps)


I started converting the Tinystepper source so that we can use the step and direction signals. (Don't want to build/buy new stepperdrivers)

If i can manage it, i will test it tomorrow...




Yup I actually did (still do) ... but:

- parallel ports are slowly taken off recent motherboards, as well as serial

- EMC requires realtime patches to the Linux kernel and to get accurate stepping the machine your run it on should only do that

- the I2C approach seemed very elegant at the time I started this ... less wires, less logic ... etc... etc.

Right now I'm thinking on how the next version of the machine should work, and if I shall stick to the original plan with the I2C drivers or just give up and do what all other people seem to do: just use step/dir/enable and maybe home/eol ..... For now I have working drivers so I'll just stick to them, I'm working on the mechanical design.

My CNC is now running with EMC - and it works nearly perfekt.

I finished the new firmware for the tinystepper drivers. Until now the enable-pins get high when they have to step and then when no new step command is received for about 2 sec it goes low again. This was the most simple solution i could imagine. This could give you the possibility to test EMC in action by yourself. The source is on my CNC Project page. The i2c pins are direction&step

 It's really beautiful to work with EMC. you see what your machine is making at the moment. You see the progress in the backplot. And the best: its faster than before, because the steppers a run with acceleration. So i could double the max-speed without loosing steps!

 Of course you need a dedicated PC for running EMC. But i just used old parts that were lying around... 1.2GHZ Athlon 512MB Ram and a PCI Graphics card....

I think the arduino/sanguino solution is a super project, but theres a lot work to do before its a full CNC... If you keep the arduino - think of including also acceleration....





can you make a little tutorial for HeeksCad? It seems i'm to stupid to work with this...

I tried some of the tutorials on his page but none worked....


I'm also planning to re-implement G02+G03 into the arduino code. So perhaps we could manage this together.




+1 for tutorial -- Now that PCB fabrication is smooth, I'm trying to figure out solid model fabrication, CAD and CAM.   I'd be quite happy with just an outline of the mouse-clicks that gave you the GCODE for the Valkyrie.  I've downloaded some RepRap Mendel parts (STL) to play around with, but I'm a bit away from creating my own.  Haven't tried the Heeks tutorials that daniel mentioned, but I plan to.

Exciting results from the Valkyrie 2.1! 


I found a HeeksCAD tutorial -- http://code.google.com/p/heekscad/wiki/Creating_a_Pump_Housing

The tutorial is in French, the HeeksCAD program is in English, so it's pretty easy to figure out what is  going on (even without translating).

This is my first time trying a 3D CAD object, although I've poked around in SolidWorks a bit (without drawing anything) and I notice some similarities between the way things are done in the 2 programs.  With the tutorial, it has already shown some subtraction and edge-shaping operations I was yet unaware of.



... I think I could mange a little tutorial, let me see what I can do.

Since you are using a sanguino there is no problem for you to implement G02 and G03, just grab the latest repRap source, get them from there, and copy into the code, it should work out of the box. 

This past weekend I've been trying to modify the code from here: http://github.com/triffid/ATmega-Skeleton/tree/master/mendel/ to adapt it to my drivers, but I did't get too far :( I'll push on maybe something will come out of it, I got it to compile, the size is half the Arduino code. 

As you can see below I had a problem:
















  So I needed to make new ones.

First I have designed them in HeeksCad:













  The black lines you see above are the actual pieces to be cut, the green lines are the toolpath going to be used.

Then I have loaded the generated G-Code in EMC:














 Looked ok so I sent it to the Valkyrie:


















 Done cutting, left too much material to hold the parts :(
















 And glued together in pairs and mounted:

















Done !