So I decided to finally do something with that Pogo Plug today. I got a USB to SATA converter for about $8 from Microcenter and got all my old files off of the hard drive from my old Macbook Pro. (more like ‘Scrap Book’ amiright?) Changed the filesystem from FAT32 (I always thought Apple used something else) to EXT3. I thought I was doing it wrong for a long time, but it turns out it’s because the pins on the converter were making a bad connection. So if you need a USB to SATA converter, don’t get the one made by Kingwin. (more like ‘King FAIL’ right? guys?)
So I basically just followed the instructions here: http://archlinuxarm.org/platforms/armv6/pogoplug-provideov3 and here: https://www.youtube.com/watch?v=PwPN7jp_A24&feature=youtube_gdata
If you want to do this, the video is a little out of date. Basically what I got from that was how to get Apache, MySQL and PHP installed. They’re both good resources though.
There wasn’t a lot of thought or creativity that went into this one, but it’s my first server. How can I not feel like a badass?
Now I just have to figure out what to do with it.
I’ve moved out of town and was not able to bring my laser cutter with me. I should be able to get it back this weekend, but I’ll be busy with work and school. So progress will be slow. What else is new?
Today I calibrated each axis of the laser cutter. A good place to go to figure out how to do that is the RepRap Calculator, but instructions are also included in the Teacup config.h file:
/** \def STEPS_PER_M
steps per meter ( = steps per mm * 1000 )
calculate these values appropriate for your machine
for threaded rods, this is
(steps motor per turn) / (pitch of the thread) * 1000
for belts, this is
(steps per motor turn) / (number of gear teeth) / (belt module) * 1000
half-stepping doubles the number, quarter stepping requires * 4, etc.
valid range = 20 to 4’0960’000 (0.02 to 40960 steps/mm)
#define STEPS_PER_M_X 1440000
#define STEPS_PER_M_Y 1007874
#define STEPS_PER_M_Z 320000
Here’s the process I went through:
X-axis: My motor is pretty standard. 1.8 degrees per step, 200 steps per revolution. However, the motor has a compound gear train, so there’s an extra step. 10 teeth on the first gear, 30 teeth on the second, 10 on the third (which is locked to the second), and 30 on the fourth. So there are two gear pairs with a ratio of 3/1, making a ratio of 9/1. So it takes 9 revolutions or 1800 steps to turn the outside gear one time. The pulley attached to the outside gear, which drives the belt with a pitch of 2mm, has 40 teeth. The pitch is multiplied by the number of teeth to get 80.
360°/1800=0.2°/step 0.2°X80=16mm/rotation. That would make 112500 steps/meter.
The part that got me was that the Easydrivers use 1/8th microstepping by default, which multiplies the number of steps per rotation by 8. That gives us 1600 steps per rotationon on the motor itself. Multiply that by the gear ratio (9) and we get 14400 steps per rotation or 0.025° per step.
So 14400 steps X 1/(1/8 microstepping) / 80(belt pitch x tooth count) gives us 1440 steps/mm or 144000 steps per meter…I think.
Y-axis: The x-axis was considerably easier. However, I bought my leadscrew from a hardware store in the US, and the RepRap calculator only uses metric. So I counted the number of threads per inch, which is 16, meaning one turn of the screw moves the axis 1/16″. Still having
200 steps per revolution 1600 steps per revolution, There are 25600 steps per inch. That means there are 25600 steps for every 25.4 mm.
25,600,000/25.4=1,007,874.015748031 steps per meter.
I just rounded it off to 1,007,874 steps per meter.
I’ve spent the whole weekend trying to get a g-code interpreter loaded onto my Arduino. I’ve learned quite a bit.
Mainly, I’ve learned that there really is no g-code interpreter that works with an Arduino Diecimila (ATmega168). It seems to be due to a lack of memory.
I’m going to have to switch to an Arduino Uno (ATmega328p) or something better.
I plan on illustrating exactly how to install a g-code interpreter on an Arduino so that other n00bs with similar projects don’t have to do quite as much guess work as I did.
For the time being, I want to say with certainty that Grbl and Teacup DO NOT work on an ATmega168! People on the RepRap IRC channel have said it might be possible if one were to decrease the buffer size. I’m not sure how to do that and it hardly seems worth it if it’s going to slow down this low-power laser cutter even more. So why not get a new microcontroller?
EDIT: Open mouth, Insert foot. Apparently it is possible to fit the Teacup firmware onto an ATmega168. A friend of mine who knows a hell of a lot more about microcontrollers and programming than I do, edited out parameters in the config.h file that, in my case, are superfluous. such parameters as temperature sensors, extruder heaters, bed heaters, and PID controls. You can find my edited config.h file here.
A waiting list has been open for a couple of months and I guess it’s my turn. It will be here in about 6 weeks.
If you don’t know about the Raspberry Pi project, the goal is to make a 64-bit ARM GNU/Linux computer for under $25. The current model is about the size of a credit card and it costs $35. Not bad.
I’ve heard talk of using one of these to drive a CNC machine. I’m not sure I’ll be doing that. I’m not sure what I’ll do with it at all, actually. Maybe a server. Maybe a pirate box. Maybe just a desktop PC. I’ve got 6 weeks to think about it in any case.