CNC, first project!

Well, that was satisfying.

A case for my Super-PID, and water for my horses!

I finally used the new CNC machine “in anger” and cut out a “real” project. I’d been thrashing around, trying to convince myself that I wasn’t just procrastinating, and after a couple of hours of messing around last night, I decided to “just do it”.

I cut these pieces out of a quarter-sheet of MDF I had lying around (it did the final few parts of the big CNC when I got sick of wasting good hardwood ply), and I really enjoyed being able to unbolt the sheet from the small CNC (where it was hanging off the edge by about a foot), and put it onto the big CNC “sideways” (with the long axis across the table, and the short axis down the table). The new machine is just… big.

I ran the cut at 100ipm, which is a bit more than 3x as fast as the old machine could do. There is still a small amount of tweaking that needs to be done. The edges of the 3 pieces don’t completely line up, but it’s all close enough to be dealt with.

This was the first cut where I attempted to use pocketing to hold accessories in the wall of the cut. I think it turned out pretty well, but I need to remember to oversize everything by the bit diameter.

This was the first time trying the vacuum shoe. It certainly kept a lot of the dust on the table, which is very nice. I’m used to having a large cloud of dust floating everywhere. However, I could use a brush around the cutter, because I got a little rooster-tail of sawdust coming out behind the bit, which ended up spraying dust a bit more than I’d like. getting the vacuum actually sucking up the dust as the cut is in progress would be really nifty — I am still in search of that solution.

The finished part could be a little smoother, and the machine could stand to be tuned and tweaked more, but I’m pretty much ready to start cutting “art” on it.

My CNC “build” TODO list just got a lot shorter, but the “project” TODO list just exploded. πŸ™‚

Posted in Making, Woodworking | Tagged , | Leave a comment

CNC, Super-PID installation continues

As I was looking around for something else today, I ran across the spare motor controller for the G540, and decided to install it before I put the computer back together fully. It was another uninstallation of the G540, but now that it’s all back together, I feel great knowing that, barring the failure of some part, I won’t have to touch the G540 again.

I spent the rest of the afternoon (and much of the evening) working out the CAD files for a case for the Super-PID. There are a lot of pieces that need to be considered, the size of the S-PID, the sizes of all the ports and parts that need to go into the case, the size of the area on the gantry it’s getting installed on, and the directions of all the cable runs.

I decided to do the case as stacked layers, rather than 6 separate parts. This means that I can get perfectly square corners for the side-porting cables, but also made things a bit of a challenge, as I had to really think “in 3D” to determine both the geometry and the depth-of-cut to make the holes the right size.

The router AC plugin required the most thought; it’s wide enough that it would be difficult to put it in only 2 layers of MDF. So I went with 3 layers, one all the way through, and 2 pocketed (mirror images of course).

The next piece I needed to place was the home sensors and RPM sensor. I had decided to use a piece of perfboard to set up the circuit, but I needed to figure out how to have part of the circuit “inside” the box, and part “outside” and accessible. So, I decided to have a “cutout” area, which I think will look pretty sharp and took a moment to figure out.

With the two major ports done, all that was left was the DB9 input for the “All in One” port, and the port for the AC in cable. I found some technical drawings for the DB9 port, and guesstimated the port for the AC cable.

I threw in a hole for the LCD and some guesses about holes for a switch (to switch from computer control to Pot control, and maybe for “open loop” or PID) and a Pot (most of the time this will be unused, but might as well put it in, in case I do want it).

I decided that I could probably cut the top and bottom out of 1/4″ ply, and the center pieces out of 3/4″ MDF.

I’m almost ready to cut the S-PID case out, just need to set up all the MOPs and get the machine zeroed.

And with some “real” cuts done on the machine, I think I’ll be really ready to call the CNC ready to roll!

Posted in Electronics, Making | Tagged , , | Leave a comment

CNC, G540 ports full

I finally decided to bite the bullet and get the wiring run from the G540 to the Super-PID.

The Super-PID will ride on the Y gantry, as that will bring it close to the places it needs to be without requiring too many cable nightmares (I can picture several cables being too short, and others being unnecessarily long in that scenario). I decided to use Servo connectors for the home switches, and to put the interface circuit onto a piece of perfboard.

The PC to S-PID cable will be CAT5, with cable ends set up for straight-through. They will be distinguishable from the motor wires because both the pins and the gender are different. Pin 5 is NC in the S-PID connections, where pins 2-4 are NC in the motor connections.

Hooking up the S-PID “all-in-one” cable (which has connections for inputs 1-4, output 2, and VFD ports 1-3) required shuffling wires around on the G540, which meant uninstalling it and reinstalling it at the end of the evening. While I was in there, I did a few minor repairs that had been needed, and right before I put everything back together, I decided to hook a servo cable to the G540 output 1 (plus 5v and ground), so that all ports on the G540 are now broken out, and I can just plug something in when I need it. Of all the inspired ideas I had last night, that’s the one I’m most proud of. At this point, I should never have to move the G540 again. (I just remembered: at some point, I’ll have to pull it again to replace the faulty Y axis controller board, hopefully that won’t be for a long time).

I pulled 5v/Gnd off of the PC power supply. That connection was a little sketchy, but I taped it and put in strain relief, so I think it’ll work.

I tied together the PC power supply ground and the 48vdc power supply ground. I don’t know if it was necessary (they both run off grounded power cables, so they share the AC ground already), but it felt right.

I had a CAT5 cable lying around that was too short to be a motor cable, but works fine for a Super-PID cable.

While I was messing with cabling, I also crimped a male servo cable end onto one of the Hall Effect sensors. I probably need to solder those on, as the connection isn’t as firm as I’d like. Also, the sensors have the pinout: +5v, Gnd, Signal, which is swapped around from the “normal” servo wiring of Gnd, +5v, signal. I just have to remember to hook up the wiring properly in the interface board, and it’ll be fine. The wires will be improperly color coded, but I can use standard servo cable to do the runs.

I have a couple more sensors to cable up, and a case for the S-PID to design and build, but the wiring inside the PC is done, and that feels really good. The CNC side needs to be done, and I’ll get router on/off, speed control, and home switches all available to me in one shot! Nice.

Todo:
– Servo end for S-PID RPM sensor
– Wire up the “inside” of the S-PID case
– 3-prong extension cable
– make home switch wires
– connectors on the home switch sensors

Posted in Electronics, Making | Tagged , , | Leave a comment

UAV project underway

I finally decided to bite the bullet and buy an RC airplane so that I can start thinking more seriously about making a UAV someday.

In order to do a UAV, I’m going to need to understand a little more about motors, ESCs, servos, batteries, chargers, and all of that “RC” stuff. I think I have a pretty good handle on the IMU side of things; I can figure out the coding and wiring and hardware for the “brain” on my own (or, at least, at a later time).

I thought about building a Towel (Make Mag’s super simple RC airplane), and I thought about building a quadcopter, and both of those are probably in the long-term plan. But for now, I needed a nice, easy, toss-it-together-and-try-it kind of craft, and I decided on the HobbyKing Bixler. It was billed as having a lot of cockpit room for adding UAV electronics later, and also as a nice, easy trainer aircraft. The price is right, too — the plane showed up on my doorstep, ready to be hooked to my Tx/Rx gear, for $125.

I bought the ARF version, which required me to pick out an ESC, a battery, and a charger on my own (it came with motor, prop, and 4 servos). The order only took about 4 days (including a holiday weekend!) to turn up from the USA warehouse.

I spent some time test-fitting everything together last night; it goes together nicely, and it doesn’t look like I forgot anything.I’ll have to spend a little more time taping wires down, gluing on control surfaces, etc., but the kit gives me a lot of confidence that I’ll be able to put together a working model in very short order.

I’m going to use packing tape to seal the fuselage; I could use CA, but I have he sneaking suspicion that I’ll be diving back in there to add, replace, or otherwise mod the beast.

So, the plan is to get the plane constructed, make it fly a little, and then I can start working on adding an IMU.

Once I get my feet wet with this guy, I can start thinking about what motors to pick up for the quadcopter, or whatever the next step is.

Posted in Electronics, Making | Tagged , , | Leave a comment

CNC – accessory design

I’m starting to be up against a time limit with the CNC again; if I want to get Halloween decorations cut for this year, I can start with the already-working machine, but everyone involved will be a lot happier if I can get just a few accessories installed, too.

To that end, I started the weekend by installing the extra chunk of hose to the ShopVac, and taping up the router foot to create a seal. The amount of airflow is not huge, but it’s net upward, instead of very much downward with just the router running. I’m hoping this will mean that the sawdust will tend not to get thrown all over the place, and perhaps some of it might even get sucked up. We’ll see.

With a working machine and the vacuum hooked up, I’m already probably ready to cut, but I decided to take another stab at getting the Super-PID installed, which will make the machine ready to cut plastic as well as wood.

The Super-PID installation is going to be quite complicated. There are 5 connections that need to go between the computer and the S-PID (3 for the VFD/Pot signals, plus “Enable” and “Tachometer”), along with several jumper connections (for 5v/0v), the RPM sensor, and the AC power. Once it gets all installed, there will be a significant amount of configuration that needs to happen in Mach3, too.

As usual, I’m stymied by connectors. I want the S-PID (which comes with screw terminal blocks) to have pluggable connectors, so that I can unhook it without having to use a screwdriver. But, do I use Molex? Servo pins? DB-9?

Long ago, when I’d originally installed the G540, I decided to install a DB-9 that was hooked up to the 4 G540 inputs and had individual ground connections for each; the idea was to hook these up as limit switches, so I wanted to be able to hook them up separately. What I have, though, is a DB-9 with 8 wires coming out of it (a perfect match to CAT-5), and with a little finagling, I can turn those 4 “ground” wires into a single ground wire, a +5v wire, the PWM output wire, and the enable output, with one wire attached to the home switches (you can hook them all together because of the way the homing protocol works in Mach3), another for the Tach input, with two spares for later use! Groovy.

So, hook up those 8 pins to a DB9-to-RJ45 adapter, build an ethernet cable of sufficient length, and finagle the G540 as above, and the PC side of things is done. However, a couple of further problems then crop up.

First, I need to figure out how to connect on the S-PID side. I can still use another DB-9, or put on an RJ-45 jack, or use servo ends… There are benefits and drawbacks to each of these, which I’ll detail later.

Second, Note that all 8 pins from the G540 are going off to be consumed by the S-PID. I still need to expose the limit switches (and the other 2 inputs, currently open), so now the S-PID is going to have to pass-through those pins in some way.

Third, I have to decide whether the S-PID should be at the “PC” end of the system, or at the “router” end (or perhaps somewhere in between). I need to bring 5VDC, 100VAC, and the sensor wires to it (as well as the limit switch wires), no matter where it is. Some of these cables can be more easily made longer or shorter than the others, but at the end, I just want to be able to connect or disconnect the S-PID without having to tear down the whole rig.

So, I needed to think about how to solve for these criteria.

Another underlying thought is that I need the thing to work 6 months from now when I’ve forgotten all the ins and outs of the design (I’d totally forgotten that I’d hooked up the DB-9 to the G540 for instance). So, since I’m using DB9-RJ45 connectors all over the place, if I use DB9, I need to be able to distinguish this cable from the motor cables. The connection also needs to be repeatable, so when I unplug it, I can’t plug it in backwards. I’m pretty well set on DB-9 connectors at this point, since the servo connectors can definitely get put in wrong, and I think Molex connectors are ugly. I’m beginning to understand the value of bus bars.

I had a burst of inspiration as I was staring at the router today; I realized that I could put the Super-PID in at least 2 different places on the gantry (one on the Y axis and one on the Z axis) that would allow me to have the S-PID LCD in a useful spot, but also minimize wire runs, especially ones that needed to move with the gantry. Putting the S-PID closer to the PC means that I’d need to “homerun” 5 cables (110VAC, RPM Sensor, and 3 home switches), but putting the S-PID on the gantry somewhere means I’d only have to run 2 (110VAC and the CAT-5 all-in-one cable), and the 3 home switches could be wired in such a way that they could all be part of the gantry, without extra wires going back to the PC. Nifty!

OK, put the S-PID on the gantry. Now I need to figure out how the all-in-one cable gets broken out. My current thought is to add it to the S-PID case itself (which of course needs to be built), although I could picture making an intermediary box that splits the cable out into “cable for the S-PID (5 pins)” and “cables for the other inputs (3 inputs)”. Nah, that seems too complicated. OK, just push it all to the S-PID and have 2 connector blocks; one for the all-in-one cable, and one for the home switches.

To differentiate the two (and because each home switch needs +5v and GND), I can use DB9 for the all-in-one connection (and I can decide on gender based on not confusing it with a motor cable end), and I can then break out the home switches into servo connections (they all go to a single input, ORed together, but each one needs its own 3-wire connection). I could put these on another DB-9 if I wanted, and make up a special RJ-45 with 3 tails coming out of it. For modularity’s sake, I think I’d rather have these as 3 cables.

Time to get wiring.

Posted in Electronics, Making | Tagged | Leave a comment

CNC – first sawdust!

It’s been a long time coming.

I finally decided to bite the bullet and get the CNC machine running. It’s been eating at me that I haven’t been able to get anything done on the machine. I have stopped really thinking about CNC cutting projects because the machine was not working yet.

I started to realize that I’ve been building the machine for nearly a year, with nothing really to show for it, and I had finally had enough.

Between the chicken coop project and the abortive Maker Faire Seattle exhibit, a lot of the pieces and parts I need were scattered around the shop. It took a bit to get them all gathered back together.

A couple weeks ago, I spent time getting the motors moved off of the small CNC machine and reinstalled onto the big one. As I did this, I realized that I’d cut some of the motor cables a little too short; I’ll deal with that later.

Yesterday, I reinstalled the vacuum hose and the router power cable. I need to buy another box of ShopVac hose to hook the Dust Deputy to the vacuum. I also need to figure out how to power the machine off of different circuits, because I recall having problems with the little machine tripping a breaker if things spike in amperage. More stuff to deal with later. For now, there’s no vacuum, and the router is plugged into the same power strip as the PC. I also decided to leave the Super PID out for now. Hey, look! I’m building a to-do list! πŸ™‚

I spent a lot of time making sure that the machine could move through its whole range without binding. I have a cool video which is probably too large to post.

With the machine moving properly, I quit for the day on Saturday.

On Sunday, I again forced myself to head into the shop and work on the machine. I looked around and decided that I was completely unable to find yet another reason to delay, and thus I was more or less ready to start cutting. It’s possible I was having some second thoughts about the process.

I decided to do some text for the first cut, but I didn’t want to do “Hi there” again, so I decided on “Hilltop”, and then found a font that would work for an engraved cut (it had rounded serifs). I laid in a scrap piece of CDX ply (like I said, I was not feeling very confident, so I didn’t want to “ruin” a “good” piece of wood if it wasn’t going to work), got it all laid out, and fired it up.

I was as surprised as anyone could be to watch the machine happily cut out the required text.

I was running the machine at 50ipm, which is nearly double the 30ipm that I’d been able to achieve on the smaller machine. Credit goes to the chain drive for that. With the first sign done, I decided to do some speed tests to see what I could achieve. I cut a series of circles at varying speeds and cut depths. The results are as follows:

50ipm, 1/8″ per pass: not a problem. Nice, clean cut.
100ipm, 1/8″ per pass: still pretty good.
200ipm, 1/8″ per pass: the machine did it, but there were some jitters.
300ipm, 1/8″ per pass: yikes, that’s pretty fast. It cut, but there was a lot of tearout.

With these results, I tried 200ipm, 1/16″ per pass, and I decided that it will do it, but I think I would like the quality a little better at a slightly lower speed. Maybe 200ipm for roughing and 100ipm (or 150? haven’t tried that) for finishing.

In any case, the machine is cutting multiple times faster than the old one.
More tuning will need to happen to get all the feeds and speeds just right. RPM will come into it, too, as soon as I put the Super PID back into the mix.

But, the CNC machine is cutting!

TODO:
– cut a new motor cable for X axis
– buy another set of ShopVac hose
– split router/vac and PC/steppers onto different circuits
– integrate SuperPID (including hooking to G540)
– upgrade to PC890 router for better vacuum control (here’s how to mod it for SuperPID)
– integrate Hall switches
– create a feed/speed setup in CamBam for new machine

Projects:
– “Boo!” sign
– Halloween decor
– Xmas decor
– bookcases
– door sign
– …that should be enough to get started.

Posted in Making, Woodworking | Tagged | Leave a comment

Random project thoughts

I’ve been thinking about doing the soon-to-be-passe Christmas lights synched with music thing. The lights don’t come cheap; it’s $50 or so for a strand of 35.

Here’s a stripped-down version from Adafruit for $40: http://www.adafruit.com/blog/2012/07/18/updated-tutorial-12mm-led-pixels/

More holiday circuits, this one is for chirping Easter Eggs

Here’s a circuit for watering the livestock:
http://www.adafruit.com/blog/2012/07/19/stock-tank-filler-project-to-control-the-water-level-in-a-stock-tank-for-livestock-horses/

This should probably be put in with the CNC stuff, but I don’t want to confuse myself later:

low-power laser cutter CNC conversion The StarHam driver circuit is particularly interesting.

XBee 7-segment display

Directly upload Arduino sensor data to Google Docs note that you need to use POST, so best done via script, did not work for me via GET.

Posted in Electronics, Making | Leave a comment

Arduino-hating: I don’t get it.

I love me some Arduino.

I have several. I build pretty much every project around them. Even when I’m building a circuit that doesn’t use the microcontroller at all, it’s very convenient to have a regulated 5V USB power supply (and of course a mini breadboard sitting on a Protoshield with lots of access to the 5V).

I understand that the Arduino is, at the same time, extreme overkill for some projects (I can make blinky LEDs without a uC, thank you), yet extremely underpowered for others (hey, it’s only 16MHz, with a paltry amount of RAM, and I’m forever running low on I/O pins). There are other options out there. Cheap ones. I could make something more powerful for less money, probably.

Frankly, I could care less about that.

If I had a project that required more horsepower than an Arduino, I’d figure out what I needed, and then upgrade. But my projects haven’t demanded that yet.

If I wanted to produce units in bulk, and I was worried about the $30 price tag for each one, I’d figure out how to build a circuit without an Arduino, or at least without an off-the-shelf one.

For the bulk of what I do, however, the Arduino affords me the ability to simply create, without a lot of extra baggage. Need to read some sensors? No problem. Need to drive a motor or two? No problem. Need some buttons/switches/LCD for user input? No problem. I can spend more time thinking about solving problems, and less time thinking about filtering capacitors and voltage regulators.

I am a professional software developer. The code both doesn’t scare me, and is powerful enough to do what I want. I’m sure that it’s limited in one way or another, but I haven’t had to care, because I’m not looking for edge cases. I’m trying to solve problems.

I have tried PIC, and found that using a PIC chip made my project *more* difficult, because I had to wrestle the PICkit, the MCU, the breadboard, and the code, before I could even begin to think about the problem I was trying to solve. I was able to take my most complicated PIC project, 1200 lines of PIC C converted into 800 lines of hand-crafted PIC Assembly, a project that took a month to complete; and recreate it in a weekend on an Arduino, with about 100 lines of Arduino C code.

There are a lot of people out there who came to Arduino out of a desire to create something, who don’t have an EE or CS background. For every one of those people who was able to do something with Arduino they’d otherwise be unable to, the Arduino is a huge win.

For the people who can’t understand that this is valuable, please, just move on.

For everyone else, welcome. Show me what you’ve made.

Posted in Electronics, Knowledge, Making, Technology | Tagged | Leave a comment

Arduino power control

The digital scale project has been a measured success, as most maker projects tend to be “in the early revisions”.

On the one hand, the circuit works dandy when it’s up; step on scale, weight gets transmitted, computer processes and saves. I’ve been charting my weight daily for over a month now in this manner.

On the other hand, there are a few… usability concerns. Foremost, because the scale has no way to power down the Arduino, I have to remove the battery to turn things off every morning. This is less than user-friendly. Second, I find myself unimpressed with the transmission range of the XBee. With the computer in direct line of sight and less than 10 feet away, I get nearly 100% transmission. Being able to add some kind of handshaking/feedback so that the user knows that the computer received the transmission would make things better (would allow the computer to be out of sight, for instance).

In all, it works, but it’s a bit of a pain.

While I was building the original circuit, I looked around for a power-saving solution, and I came up with watchdog and sleep. That’s an … OK… solution, but I was really looking for something to kill the power completely.

And then I found this auto powerdown circuit. Very cool! I am so adding this to the build. Great little utility circuit, especially if you have a uC around anyway.

Update: I guess other folks are learning how to make the Arduino go silent, too; I just found an article online about a guy who can make his Arduino run on a AA battery for over 5 years.

Posted in Electronics, Knowledge, Making, Technology | Tagged , | Leave a comment

Whats the difference between Arduino, Raspberry Pi, BeagleBoard, etc?

uC Comparison

Posted in Electronics, Making | Tagged | Leave a comment