Mill Rewiring

by Ivan Hamilton 4/2/2009 10:42:00 PM

The ZAY7045 I have has an interesting "feature".

Normal operation:

  • To start: Re-arm the "E-STOP", switch it to "Drilling/Milling" and press the "Start" button (spindle turns clockwise)
  • To stop: Switch it to "Stop" or press the "E-STOP" (spindle stops)
  • To restart: Re-switch to "Drilling/Milling" and/or re-arm the "E-STOP", and then press the "Start" button again (seems a little redundant).

Tapping:

  • To start: Switch it to "Tapping" and press the "Start" button (spindle turns clockwise).
  • To reverse out: Lower the quill until it triggers the bottom switch (spindle suddenly turns counter-clockwise).
  • To stop: Raise the quill until it triggers the top switch (spindle stops).
  • To restart: Press the "Start" button (spindle turns clockwise).

I can see that if you were tapping at the same Z height all day, that this could be a handy option. But the setup to get the quill switch to engage at the right point would be far too fiddly for small jobs.

This is achieved with 1 switch (SPDT centre off), 2 micro-switches (SPDT), 2 buttons (1 NO & 1 NC) and 2 relays (with 5 NO & 1 NC each).

 

So, what's wrong with current controls?

  • The tapping feature was of little use, and will be of less with the CNC conversion.
  • The spindle start is onerous, requiring switching and start button.
  • Spindle stop is uncomfortable (flicking around a flimsy switch).
  • It didn't allow a manual way to start the spindle counter clockwise.
  • The E-STOP doesn't stop CNC servo movement.
  • The spindle doesn't start and stop under CNC control.

What's the answer?

  • Change the spindle switch to CNC-Off-On
  • Create a new independent E-STOP line that cuts power to the spindle and servos, and informs the PC on E-STOP button or axis limits.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

CNC | Electronics

Corner Drill

by Ivan Hamilton 4/1/2009 1:53:00 PM

In making the mounts for the motors, there's been a few tricky spots to drill holes for. One of the first projects I wanted to try was to make a corner drill. You know... one that can drill around corners.

I didn't realise that under Mach3, an M0 program stop wasn't "terminate", but "pause", and that pressing Run (Alt-R) again would continue on from the next line.

High on the list for the next project is that emergency stop button I should have...

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

CNC | Pragmatism

Coupler Upgrade

by Ivan Hamilton 3/31/2009 7:49:00 PM

I was keen to attach my home brew servo motors and see the mill move. The shaft on the mill's screws is 17mm, whilst the motor's 12mm shafts are designed for a small chain gear (small section of keyed  shaft and a left hand thread), and I needed to grasp below this.

Since I'm coupling the motor directly to the shaft, a figured a coupler with a little flex was in order. My immediate solution was some vinyl hose and a pair of hose clamps. Affixing and tightening the coupler was tricky. The uneven shaft sizes (17mm & 12mm) made it difficult, and I destroyed several hose clamps trying to get it tight enough. That would work for a little while, but it wasn't able to handle the torque and would eventually twist in the middle. I added some support in the middle with a section of hard plastic tube to help prevent this.

But the length of the vinyl tube was too great, and its twisting added extra backlash to the system. Not only that, the backlash amount was unpredictable, increasing during use as the vinyl warmed up. It was always meant to be an interim solution, and the purchase of a 1m length of Ø40mm acetal rod ($55AUD) was the start of something better.

Technically, this was my first CNC machining experience. It was only 2 axes, and involved numerous manual interventions, but to see it moving automatically to perform the desired machining operation was very rewarding.

I've already made two couplers (X & Y), and shortly will make a third to automate the quill (Z). With that, I'll have full 3 axis control and should only need to stop for tool/fixture changes.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

CNC | Mechanics

DIY Servo Controller - Initial Mill XY Test

by Ivan Hamilton 9/13/2008 7:35:00 PM

After months of putting it off, I jumped in and slapped two motors on to my mill.

I've already identified that the XY mechanisms on my mill aren't going to be up to the task (they have excessive backlash in both the bearing mount & the nuts).

Therefore, it's not worth spending too much time on the installation, as I'll need to redo it when I upgrade the mechanisms. I still hadn't done a "real world test" on my DIY servos & controller, and was keen to see the mill's table move.

Enter the angle grinder, 2 short pieces of RHS and some hose clamps...

So, what did I learn?

Keyboard: The wireless flexible keyboard I got is great. Chuck it where you need it.

Current Draw: It's not unusual in my 1:1 setup to see the motors draw 10A @ 12V. Hopefully this should drop when we switch to 36V. w

H-bridge Temperature: The H-bridge chips got hot. Real hot. I couldn't keep my finger on the heat sink, hot. Since pairs of H-bridges share heat sinks, I swapped the Y axis onto a different pair than the X axis. Then they both got hot... How hot? Not that hot: 57°C. I put a small fan near and let it continue to run: 32°C (ambient was 25°C). Not neccessary, but a larger heat sink or small fan would keep it cool.

PID Tuning: The inertia & friction of the table's screws changed the tuning requirements quite dramatically.

Encoder Inputs: Since I only used 2 of 4 servo channels on my controller, the other 2 encoder inputs were left floating. Phantom transitions on these lines fire interrupts and unnecessarily consume controller time.

Limit Switches: This was a simple test, and no limit switches were installed. Luckily, the flexible coupling slipped when it attempted to go beyond the table's travel. Limit switches are a must.

DIY Flexible couplings: OK, small length of hose with hose clamps. While there is some twist in the soft hose I used, when you consider the 0.2mm of existing screw backlash (@ 3mm/rev) equals 24°, the <10° of hose twist & <6° of servo error is quite acceptable (for now).

The Z axis hasn't had anything done yet, but that's OK. Baby steps. Although it would be easier, I don't want to automate the quill since it's got a lot of play in its rack & pinion setup. I should get moving on the ball screw upgrade and automate the column.

Even with only the X & Y axes done, the machine is transformed. I'm happy to perform any required Z movement manually for the time being.

All in all... I'm pleased, and it's quite exciting (chips will fly soon).

Currently rated 3.8 by 5 people

  • Currently 3.8/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

CNC | Electronics | Mechanics

StackOverflow.com - Don't hate the player, hate the game

by Ivan Hamilton 9/11/2008 7:09:00 PM

This is a follow up to my original StackOverflow experience. Bear in mind, this was based solely on my initial interaction with the site (I've gained a little more experience since). I'm not knocking the whole concept, and I know it's "still in beta". Anyway, that post gained commentary on J&J's podcast #21.

Firstly, for Joel, I'm the 1 in 10 who has no stake in anything. I have no interest in the failure of StackOverflow. I don't think it's a bad idea, in fact I loved the idea. I still do. I'm just rethinking the implementation, as I don't think the problem is an easy one. I think I cared, because I believed in the idea so much. As for the effort in registering a domain name and throwing a site up... 20 minutes & Paint.NET.  Ivan needs a girlfriend? My fiancée thinks I spend enough time listening to Joel, without having to hear from him that she's not fulfilling her duties.

Jeff suggested two options:

  1. Leave comments - I didn't have to rep to do this at first. But after earning a little rep, I had already run around and done this. And what I found most amazing, is that two of three of the authors have come back and changed their answers (but personally I have doubts that this would stay the case once the novelty wears off).
    So how do I like the game now? Not much, but I'm hopeful. I'm left feeling a little empty (I know... whinge, whinge, whinge). I don't like the idea that an incorrect answer will sit there at the top until enough people bug the author of it to get it edited. Maybe I feel it's unjust that a top rated answer is later changed to say "Whoops. I'm wrong. What Fred said below it right", yet Fred gets no cred. Maybe I'm just pissy that I don't have the rep to go and change these things on a whim. Maybe I'm pissy that to get that rep, I'd need to give "popular" answers... "Survey says!"
  2. Vote it down - I would, but it hurts my rep to vote answers down. As Jeff's stated before, the site is setup to be "anti-down". Many of Jeff's comments draw parallels to gaming, and voting something down damages your own reputation. No gamer would set themselves backwards for no gain (I also think, there's not enough down-voters to correct these situations).

I do agree that you should never look at any site and take the "accepted" or top rated answer as lore. As it's not hard to check all the answers to see if what you're after is mentioned there. Well, not hard for some of us in our "areas of expertise", but I've worked with many people before who have taken code from "Expert Q&A" sites, and wondered why it didn't work. They didn't understand the answer, so couldn't understand why it should have worked, and therefore couldn't fix it when it didn't. I worry for these people... maybe they're just lost.

Jeff makes many references to Wikipedia, but Wikipedia has massive guidelines on it's content. And from Wikipedia, here's what I think StackOverflow may be missing: Verifiability. I don't know how you get people to, firstly answer, and secondly vote, based upon such criteria, but I'm worried that without it, it's too open to group opinion.

I've seen some great answers on StackOverflow, and hope to continue to.  But I'll stand by my original point. How many times did you watch "Family Feud" and ask yourself "What random drug smoking monkeys did they survey to get that as the most popular answer?". Be wary of the popular posts.

P.S. Jeff, I love you man. Joel had the daggers out, but you were there for me. ;-)

Currently rated 4.7 by 3 people

  • Currently 4.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Date raped by StackOverflow.com

by Ivan Hamilton 9/7/2008 2:27:00 PM

Falling in love with StackOverflow.com

I have been very interested by the idea of StackOverflow and have been listening to the podcasts with great enthusiasm. A place for programmers to get and receive answers. A place where good answers rise to the top. A place where the knowledgeable get the recognition.

I'm not naive, I've read the criticism, but it couldn't be that bad. There's always jerky naysayers around every endeavor. Although not really relevant to the site's development, I was seriously concerned (shocked actually) when Jeff Atwood suggested NOLOCK as an answer to a SQL locking problem... without even understanding the root cause. Was it a sign?

A couple of days ago I got my beta invite. I was so excited. This early in its life, the site would contain only those truly devoted to IT knowledge. Awesome!

I jumped in and looked around for a topic that I know well enough to give answers on. I found a question on C#, something I know moderately well.

Question #1: C# Language Syntax - Control Flow

The top rated answer had nearly 10 times the votes as any other answer, a pure winner... and was plain wrong. It confidently made a statement, that was simply incorrect. The second top answer was... just confused. It stated incorrect facts about an aspect of the question that weren't even relevant.

I posted a "correct" answer... but without any up-votes, it disappeared into the obscurity of the bottom of the page. And let's face it, when was the last time you looked at the second page on Google?

OK, it's only one crappy question & answer. It was time to find a better question.

Question 2#: C# Language Feature - Variance

OK, even more my style. So much so, I've even previously posted here on variance in C#.

So, let's... oh shit. The top rated answer... wrong. Oh crap, the question's author has even selected it as the "accepted answer". In fact, its opening statement doesn't even make sense. The only relevant word it uses, is the exact opposite of what the question is asking about... and it's used... vaguely. How does this answer have 5 times the votes of the first accurate answer? The next top answer is off-track and doesn't answer the question, merely repeating something about the question that the author already knows.

It's just bad luck... I've picked 2 bad examples. A third... I should try a third. Jokes always reveal themselves at the third item.

Question 3#: C# Date Algorithm

Hey... this one was asked by Jeff Atwood himself. He wouldn't... shit. The top answer is nice, highly up-voted, but contains a serious implementation flaw. Not one that you'd get bitten by very often, but it shows that people aren't exhibiting much skill or care.

I can't take any more.

Falling out of love with StackOverflow.com

My new friend Christie said the other day: "Half the people in this world are below average." It really struck a chord (just not the "this world" part). What's important here is that half of the anything in anything are below average (well, below median technically, unless it has a symmetric distribution). Half the practicing brain surgeons are below average. Scary huh?

Half the developers that visit StackOverflow are below average. But, they can influence the "value" of answers, and herein lies the problem. Charlie once said "ignorance more frequently begets confidence than does knowledge". It appears that those who are least capable of making accurate judgments on the value & accuracy of responses at StackOverflow, are the ones doing so the most. And that generates a lot of noise. Or so I thought...

But it's not noise. Back in the day, it was much easier for someone to say (and think): "The earth is really a flat plate supported on the back of a giant tortoise". It's something they can somewhat understand, and from their perspective it sounds valid enough. It's also means they don't have to accept that they don't really know the basics of the topic. And there's also confirmation bias - people expect answers that match their prior beliefs. Would someone accept the belief "The earth has sufficient mass for its self-gravity to overcome rigid body forces so that it assumes a hydrostatic equilibrium" when that's something they've never experienced, and it would mean accepting that they don't know anything about it?

Years ago I read a novel research paper on what's now referred to as the Dunning-Kruger effect. If you want to understand a little more about the below average half, read this. But the key tenets are:

  1. Incompetent individuals tend to overestimate their own level of skill.
  2. Incompetent individuals fail to recognize genuine skill in others.

What happens when you give them them power to vote? Self appreciating chaos.

These answers are not being up-voted at random. They're selected because those are the answers that appeal to this relatively unskilled group. And what answers appeal to a below average group? Fairly simple answers, with a bit of techno-babble just beyond their full reach. They rely on existing ideas and buzzword recognition, without trying to understand any of the more thorough responses that might make them feel intimidated. Who writes such vague, inaccurate & terrible responses? A member of the same group.

These incorrect, inaccurate and often unintelligible "answers" go rocketing up the charts. Later attempts to get correct information included are doomed to obscurity, being dwarfed by the popularity of the initial wank-fest of mediocrity.

Devoid of any accuracy-based-recognition, it's just popularity driven by popularity - much like I remember high school.

Follow Up:  StackOverflow.com - Don't hate the player, hate the game

Currently rated 3.7 by 22 people

  • Currently 3.727273/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Quad H-Bridge Design - Ideas

by Ivan Hamilton 9/4/2008 1:36:00 PM

I'm thinking about the quad H-bridge board I want to build to match my quad DC servo controller.

Standard thinking is a discrete bridge built from four MOSFETs and a pair of half-bridge drivers: 4 x IRFP260 @ ~$5 + 2 x IR2184 @ ~$3 = 200V 30A ~$26
But for lower voltages STMicroelectronics make the VNH3SP30-E a "Automotive fully integrated H-bridge motor driver": 1 x VNH3SP30-E = 36V 30A ~$8

These are used by the H-bridge boards I've currently got (packing a lot of power in to a small space). I was initially scared by SMD devices like this, but having seen people achieve amazing results without specialised equipment, I think it's worth the effort.

The only feature I feel is missing is current limiting. The VNH3SP30-E has internal thermal, over-voltage and over-current protection, but that won't stop it delivering 30A to your stalled 2A motor. Dropping a resistor between the VNH3SP30-E and GND would allow you to determine the current by measuring the voltage at VNH3SP30-E's GND pins and combining that with your knowledge of the resistor's value.

Let's use a low 0.01Ω resistor:

  • V = IR = 30A x 0.01Ω = 0.3V
  • P = I²R = (30A)² x 0.01Ω = 9W 

Therefore, for a 30A draw to show 0.3V, a 0.01Ω 9W current sensing resistor is needed: let's say 2 x 0.02Ω 5W resistors in parrallel.

For low current systems (<3A), the 0.03V drop may be too small to adjust. Let's use a slightly higher (but still very low) 0.1Ω resistor:

  • V = IR = 3A x 0.1Ω = 0.3V
  • P = I²R = (3A)² x 0.1Ω = 0.9W

A single 1W 0.1Ω current sensing resistor could be used in low current situations to make the drop more pronounced.

Add an LM339 to compare the 4 drops against a reference voltage and pass that thru a 4081 quad 2-input AND chip with the PWM signal for the H-bridge.

Piece of cake!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

CNC | Electronics

4 Channel Servo Control - v0.1 Assembled

by Ivan Hamilton 8/29/2008 3:35:00 AM

Well, it's done. I now have a self "contained" version of my 4 channel servo controller.

I've made PCBs for the controller, encoder & driver boards and mounted them all with the CNC4PC break out board I bought.

  • Controller Board (Top Left) - This was my first DIY PCB, and the design is a bit rough (no nice mounting holes, board shape, etc). The firmware can be updated via serial, so I didn't add an In System Programming connector (uC is in a ZIF socket in case of fuckup).
  • PC Break Out Board (Top Right) - This is a CNC4PC C10 Bidirectional Breakout Board. It's a basic BOB with buffered I/Os. Gets data from the PC into the servo controller.
  • Driver Board (Bottom Left) - It takes the 4 PWM+DIR signals from the controller and maps those into 2 dual H-bridge Pololu boards. I've added a couple of heat sinks to the H-bridge driver chips, which should help their cooling.
  • Encoder Board (Bottom Right) - Simply takes neat 4P4C modular connectors into jacks.

The final product is a neat little package... at least for my first attempt.

What comes next?

  • Finish the firmware - Add a few more features I'd like (obey & control e-stop line, output override, set speed, boot-loader CRC checks)
  • Finish the tuning software - Add a few more features I'd like (current status display, general UI cleanup)
  • Mount the meters nicely - The voltmeter & ammeter are just loosely connected at the moment.
  • Load testing & tuning - Does its performance match my original goals? Are there areas in the firmware that need attention?
  • Mounting motors on real milling machine - What's the real world like?

For the first time, I would happily pick it up, move it, and feel confident about it working when reconnected (little coloured bits of heat-shrink reduce confusion).

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

CNC | Electronics

Toner Transfer PCB creation - Attempt 2 Assembled

by Ivan Hamilton 8/23/2008 11:27:00 PM

If you've seen my latest PCB creation attempt, you'll know I'm ready to try and assemble my servo controller.

This is the ultimate test of my newly acquired PCB layout and fabrication skills. A good "looking" board will show its true colours when assembled... and I learned a few things.

  • The fill (leaving most of the copper in place and only etching enough to isolate the required tracks) caused problems during soldering. There just wasn't enough clearance for my rough soldering skills. The minimal clearance gap used to allow tracks to weave between the 0.1" pitch pads was too small to deal with when soldering every pad. I dragged solder from pad to fill a number of times, and had to grab the wick. I don't mind taking the extra care when needed, but on every pad? I'll increase this gap in the future.
  • The physical clearances around header sockets and the ZIF sockets were a little tight... I should check such things a little more thoroughly. A sharp knife made them fit.
  • The resistor lengths weren't checked... the carbon films I used were longer than the default I'd selected. They fit with a little inward bending.
  • Repairing tracks is best done with a strand of copper wire laid & soldered along the broken track. A more elaborate method I tried (cutting a new track in the fill) only made things worse.


The assembled controller board

I fired it up, setting the current limiting on my adjustable supply very low to protect the circuit in case of a short. It didn't consume more than a few 10's of mA which was all good. I plugged the serial plug into my machine and powered it up. Boom! Fizz!

Nah, just kidding. The boot-loader showed its startup message and then it all appeared fine. I couldn't properly test it, since my ad-hoc board has all the encoder inputs & driver outputs wired in (as can be seen here), and this new board doesn't. My plan includes making another board (or two) which takes the 10 pin header from the controller and breaks it out into the 4 channels with separate connectors. Given the relative ease with which I've made this one... I'll pump out the extra board in no time.

I think its fair to say, that I'm a little pleased with myself.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Electronics

Toner Transfer PCB creation - Attempt 2

by Ivan Hamilton 8/22/2008 6:24:00 PM

In my previous attempt, removing the paper after ironing was an issue. The Inkjet Photo paper I used had a thin, yet tough, film on the glossy side that stuck between tracks. Removing it was a slow process as any rough attempt would lift the toner track. Also, the paper would bubble and lift when dropped in the water... taking the toner with it. From the web, I knew the results depended largely on the paper, with everyone having their favourite paper. What you need is something smooth (glossy) to transfer a clear image, and easily removed with water.

An idea I had seen was using pages from colour magazines or brochures. The paper is glossy and easily breaks down in water. I looked thru my bin for some junk mail and found a Kmart catalogue: smooth & glossy - yup, disintegrates in water - have you seen these after rain?

I also filled the unused area of my PCB. This will give extra toner to hold the paper down, and also gives the etchant less work to do.

I'm pleased with the result...


The result

The shadow you can see was from my first attempt. This was using the inkjet paper, but chunks of toner pulled up when getting the last of the paper up. I removed it was acetone, but the outline remained. The dark spot at the top right is from lighting, and not really visible (except in this photo).

The outcome was: two bridges & 1 broken track. The bridges were easily fixed with a knife, and the break was repair with some light wire.

The bridges may have been from the toner transfer (I'll look closer next time), and the broken track I think is where I (once again) didn't apply enough pressure near an edge.

Now I'm going to try drilling (not looking foward to that job) and soldering it together.

If I can iron out the bugs from this PCB creation method, it'll open new doors into custom circuit creation. 

We live and learn.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Electronics

Powered by BlogEngine.NET 1.3.1.30
Original theme by Mads Kristensen

About the author

Name of author Ivan Hamilton
"My inner nerd can beat up your inner nerd."

E-mail me Send mail

Adsense

Calendar

<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

Recent posts

Recent comments

Tags

None

    Entropy

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2010

    Sign in