Categories
Projects

Christmas Gifts

Samantha and I are very deliberate with our budget; it allowed us to pay off our debt including our house. You can only be so strict before it wears you out, though. So part of our budget is “blow money”. We each get money to spend on whatever we wish, no questions asked. (though legal and ethical limitations probably still apply)

We also try to be deliberate with gifts and avoid blatant consumerism. We both became annoyed at family gatherings that just seemed to be an exchange of gift cards. Generosity is also supposed to be part of our ethos, so that along with our frugality lead us to find a replacement. We’ve settled to trying to substitute the plastic stuff and gift cards with quality time (a nice dinner together) or homemade gifts (but ones that take effort, skill and time).

Enter my new laser. Samantha didn’t really get it. I saved up several months of my blow money to purchase it, so she didn’t care that I bought it. She did, however, ask what it was for and why I wanted it. That, of course, is the dumbest question in the world… to which I had no concise answer. Finally, it came time to think about Christmas and the answer manifested itself.

For all the women in the family, I made wooden earrings. Complete with a backing card made from scrap reclaimed corrugated cardboard. For the important women (mothers), I made honeycomb earring holders. (also pictured with the holders is the vanilla extract we’ve made for several years that is now a gift expected by a few)

They were well-liked, and more importantly to me, Samantha thinks I’m a little less crazy for wanting the laser.

Categories
Projects

K40 Wiring Diagram

The power supply that came with my K40 was a bit different than the typical one that I have seen in the various builds. In the end the only difference is the placement and labels on the output pins. I received a question about how to hook it up, so I dusted off and completed a wiring diagram I had started for when I get around to making a comprehensive page of my build (minus all the trial and error).

It seems people are stumbling upon this blog now; I should really think about completing the design of the website… Just another project on the list.

Here is the diagram for those who might find it useful.

Categories
Projects

New Air Assist Nozzle

I mentioned in my previous post that, after installing the z-table, the air assist nozzle proved to be too long and ran into the frame of the table. Though, there was already a problem with the length; the gap between the tip and the work surface was too small. The close proximity allowed loose bits that popped out (which also happened more with the air blasting out so close to the cut) to be pinched, which would stall the gantry. So, with two good reasons to remake it I pulled a piece of aluminum out of the scrap bin and put it in the chuck of my lathe.

The last nozzle I made to have the tip about a 1/4″ above the focal length; the new one is about an inch. The airflowis less concentrated on the piece, but after a few test cuts it does seem to still be quite sufficient.

Categories
Projects

Air Assist

An air assist is a needed accessory for a laser cutter that my K40 did not include. An air assist does a few things. It helps blow away bits of carbon out of the way so the laser is more effective at cutting through the material and it keeps a flame from forming which makes black smoke that fouls up the lens, blocks the laser from cutting the material, and instead heats the lens– eventually damaging it.

The few things I have cut usually resulted in me lifting up the lid to blow on the laser point because when the carriage was traveling in a certain direction the flame would ride right up against the plastic bearings. Also, the lens needed to be removed and cleaned with nearly every use or it would block the beam to the point it was not effective.

The first thing I needed was an air supply. It doesn’t take a lot of air and I didn’t want to deal with the noise of a compressor, so I went with a large aquarium aerator. The Active Aqua AAPA70L supplies plenty of air and the sound is hardly noticeable along with the water pump and steppers.

To deliver the air people have either put a bent piece of tubing to the side aimed at the general location or created a nozzle that fits over the lens and directs the air straight down into the piece. The later has the benefit that the lens being sounded by positive pressure so it’s pretty much impossible for the smoke to come into contact with it.

There were some plans on Thingiverse, but I don’t have a 3D printer. Prints of a couple of those were being sold on eBay, but the quality looked terrible– which is why I do not have a 3D printer.

Then I found plans from Bart Dring (of MakerSlide fame) as well as a blog of another who turned a metal one on a lathe.

I have a Mini Lathe. I could make my own.

 

The Problem
Nozzle made by Bart Dring

I did some measuring on the carriage and realized the one from Bart Dring would fit the laser lens (it was designed for the same one) but it would interfere with the rails the bearings were mounted too.

I didn’t have a piece of material suitable so I ordered some 6061 1-1/4″ round bar. I also ordered some better tools for the lathe that I already indented to have– An OXA quick-change tool post, 3/8″ indexable insert cutters, and a boring bar set.

The ability to position the calipers in the laser was limited so I was not very confident in the precision of my measurements. I made a piece to check. I chucked up an old aluminum “cupcake” ingot that’s been aging in my basement for a few years

I finalized the dimensions and it was time for the real thing.

Categories
Projects

Cutting Vent to Extend Work Area

The ventilation duct on the machine protrudes into the work area quite a bit. The sheet metal is spot welded in a number of inaccessible areas– otherwise I would remove the entire duct. So I just lopped it off with a Dremel (actually a Rotozip). Not perfect, but much straighter and cleaner than the cut made by the factor in the aluminum channel next to it.

Categories
Projects

Mounting the LCD Display

The control panel on the lid was the obvious place to mount the LCD. I had already removed the potentiometer for laser intensity and the momentary switch for test firing the laser– both of those functions were present in the Arduino controller. I had thought about keeping the ammeter and the laser power switch, but they were in the way and really didn’t provide anything too useful. So they’re gone now, leaving only the power switch.

The only other issue was the distance from the panel to the Arduino at the bottom of the case. So I found som

The control panel on the lid was the obvious place to mount the LCD. I had already removed the potentiometer for laser intensity and the momentary switch for test firing the laser– both of those functions were present in the Arduino controller. I had thought about keeping the ammeter and the laser power switch, but they were in the way and really didn’t provide anything too useful. So they’re gone now, leaving only the power switch.

e 70cm IDC cables on eBay.

In Inkscape I drew a mounting panel as well as some spacer washers that would hold the LCD and cover all of the holes left by the abandoned controls, starting with GLDC controler.GTO from the schematics file of the RepRapDiscount Full Graphic Smart Controller page. I opened it in Gerbv and exported it as an SVG. The size of the LCD screen was way off of the outline in the file, but everything else seemed correct so I made an outline slightly smaller to overlap the metal frame around the LCD and centered it on the PCB as the LCD seemed to be.

I experimented with some scrap hardboard I had and decided to cut it at 300mm/sec at 50% power. I renamed the Inkscape layer to 50[feed=300] and exported it with Turnkey Laser Exporter plugin.  After starting I had to stop and go back to Inkscape to reorder the paths to cut from the inside out for the nested parts. It worked great other than there being a bit more flame than I would like, but an air assist which is already in my plans should help with that.

As amusing as the instructions on the panel in broken English are, I didn’t really want them there. After tearing off the sticker on the panel there was some chipped paint and a bit of adhesive that just didn’t want to come all the way off, so I just flipped it over. I placed the mounting panel were I wanted it traced the location of the LCD and marked the holes with a transfer punch.

Everything bolted together nicely and looks pretty clean. The SD card is also quite easy to access on the open lid which saved a bit of effort of trying to line that up with a hole and requiring the LCD to protrude from the case more.

 

Categories
Projects

Wire Cleanup & Blown Fuse

I cleaned up the rat nest of wiring I had from testing. I got some series 2500 wafer connectors and pins from Tayda to replace the headers on the RAMPS so I couldn’t accidentally hook something up backward in the future, as I tend to do that while quickly messing around in my moments of free time.

I still need to properly mount the boards and screen. I’m still debating where I want to mount the screen. I’m leaning toward mounting on the lid, but I would need some much longer IDC cables to be able to easily open the lid. To keep things clean and avoid wire nuts and splices, I also ordered some series 2400 pins to utilize in the wafer connector on the power supply for the 5v(red) and active low laser pin(green). I scavenged some XH series JST connectors (from an old IDE Raid array module) to use for the laser PWM(blue).

After reconnecting I fired it up and ran a program. I realized I had left the laser switch off. I clicked it on while the program was running and after a couple of seconds the motors stopped, the laser turned off and the LCD faded to black… shit. I could hear the pump and water running which was my first fear (a flow switch is on my list because I will forget to turn it on at some point) and I checked the tube and didn’t see a problem. I didn’t have a light on the power switch but I had 120v on the female end of the power cable.

After taking a closer look at the male connector I see a built-in fuse holder.

I think it says 4A on the fuse. First I checked that there were no direct shorts, and there were not. 40W at 120V would be about 3A. Plus maybe a couple of hundred mA from the motors. Some more current from a spike from pushing the switch and of course some inefficiency in converting to higher and lower voltages. 4A seems reasonable to get to, so hopefully, it is that and not a failure somewhere. I’ll find out after I get some replacement fuses… I think there is still one Radioshack left in town. 

Perhaps I should dial back the laser output as well.

 

Categories
Projects

Rev 2 PCB

So the last PCB with the tacked on diodes finished off the 2014 season. I did have an issue at the begining of the year, but luckily that was just an isue with the 5v wall wart I was powering board with.

 I pretty finished next PCB design sometime toward the end of the season, but never got around to ordering it, or the new parts I needed. I kept the diodes on the back of the board between the coil pins, but used a DO-213AA package. I switched the relay indicator LEDs and paired resistors to 0603 SMD components. Which turned out to quite small. With a no-clean solder syringe they were quite easy to solder, though. I did use my stereo macroscope and it helped a lot. I found out after I ordered my PCBs from Tayda carries 0805 resistors, so any further revisions will probably switch to those. Tayda also now carries relays with the footprint I use. So, potentially they have everything but the SMD LEDs, SMD diodes, and 2.54mm pitch screw terminals.

 There, of course, was one issue with the PCB I found after testing the SMD LEDs before I put anything else on the board. I accidentally put a trace between the pads for LED3. A sharp razor blade made short work of fixing that though.

As long as everything keeps working, I’m not going to do much with this for a while, but try to document it a bit and get the files in better order.

Update: I have the Fritzing file on Github

Categories
Projects

New Project Delivered

I’ve had a laser on my list of tools to acquire for well over 10 years. I’ve thought about building one, but with no prior experience with laser tubes I never really felt comfortable starting that project.

I noticed, maybe last year, cheap Chinese made 40w laser cutters (K40) has been coming down in price and contemplated getting one, but my money was stretched to thin between other projects. At the time and I only had $50/month budgeted that I could spend without the wife’s say (we call it blow money) because we were on the last stretch of a multi-year effort of pouring extra money into the mortgage to pay off our last debt. Plus I would need to build a new controller for it because I couldn’t find anyone happy with the software it came with.

I came across a buildlog for conversion of one of these lasers a couple of weeks ago. He had the laser at $487 and replacement electronics at $65.  It had been a few months since I really spent any blow money… I could do $550 in another couple of months.

I started shopping and found the laser for $387 and the replacement electronics (Arduino Mega2560, RAMPS 1.4, Reprap Smart Full LCD, and A4988s) for $35 total.  Done.

A week later I found a crate on my porch. Most importantly everything, including the glass tube, was in one piece. Pulling the box out of the crate was a bit awkward by myself, but it was going to be hours before my wife got home, so I managed.

The software came with a USB hardware key. (really!?) Trying to get that to work with Wine under Linux was probably not going to be worth the effort to test it since I was going to pitch it after replacing the electronics. Microsoft products don’t run in my household, so I’ll just have to wait for the new electronics before I can test it.

I didn’t realize the K40 laser intensity was manually set only with a potentiometer. So, not only is the Arduino/RAMPS open source and run with g code, it adds the ability to dynamically change the power output during a program. It looks like I should be able to just drop the firmware in place thanks to Lasing Makers Network and TurnkeyTyranny modifying Marlin (the firmware the 3D printer RepRap uses) for use with this laser.

Categories
Projects

New PCBs, New Problems

The new PCBs arrived and I soldered everything on, testing as I went. I used an Uno to bit-bang the Duemilanove bootloader to the Atmega328P. ICSP programmers are pretty cheap on eBay, so I ordered one for the future. The headers below the Atmega are for a USB FDTI adapter for uploading sketches. Everything worked great on the bench with no solenoids connected– you can see where this is going.

Once I installed the board It would cycle through one or two steps of switching on/off solenoids and reset. I pulled it out and gave the board a good looking over and found a possible problem. I left some points for the extra digital pins (which was down to 1 after I realized my mistake mentioned in my last post) in case I wanted them for something in the future. When I fixed the last problem I, for some reason, decided to also connect the 5V point, from a trace that passed the VCC supply pin on the Atmega to a trace supplying the relay coil power. I cut that extra trace and it now worked better, but only for a minute or two.

The only thing I could think of was some interference from the current in the 24v solenoid circuit. I now know that interference to be called di/dt (dee eye by dee tee). When the solenoids shut off the inductance of the 24V wire creates high voltage(radio wave) that jumps to the relay coil (antenna). That spike doesn’t do good things to microprocessors.

In my sketch I had 4 of the 8 relay pins randomly selected and turned off, then four randomly selected of the 8 again. So sometimes 4 relays could be shutting off at the same time. I changed the code to select one relay that was engaged and swap it with one that was off. It actually cycled through the entire program… sometimes.

The Darlington array (ULN2803) has internal diodes, but maybe they weren’t good enough? I soldered a 1N4803 Diodes between the coil pins on each relay. The polarity is backward of the current on the board, otherwise, it would short the DC– which would be bad. But it does still short the high voltage AC from the di/dt– which is good. Success! Working as planned. It’s been running for 2 days with no issue… so far. I’ll see how it works for a while before I bother creating a new PCB design including the new diodes. Even with a third (and let’s just assume I’ll need a 4th) round of PCBs, with the components for 3 boards (2 backups), I’ll be under $200. With a price tag of $2K on the replacement computer that I had no confidence in and would still be waiting to arrive, I feel pretty good about this. I’m not a programmer and the Arduino IDE is my only exposure so far to C++, but here is the sketch that I painfully got to work.

int stepLength = 6000;//6 sec steps
int steps = 50;//50 step
//6sec * 50 = 5min
int waitState = 1;


void setup(){
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  
}

void loop() {
  digitalWrite( 2, LOW);//turn off motor
  digitalWrite( 4, HIGH);//HIGH is inactive for internal pullup
  int pin = 5;
  while(pin <= 13){//turn off all solenoids and run led
   digitalWrite( pin, LOW);
   delay(100);
   pin++;
  }
  waiting(); 
}

void waiting(){
 if(waitState == 1){ 
   Serial.println("Waiting for Input...");
   waitState = 0;
 }
 if(digitalRead(4) == LOW){//wait for input
   beginSeq();
 }
}

void beginSeq(){
 digitalWrite( 4, HIGH);//HIGH is inactive
 digitalWrite(13, HIGH);//turn on run led
 startFour();//open 4 solenoids
 digitalWrite(2, HIGH);//start motor
 delay(stepLength);
 int stepNum = 2;
 while(stepNum <= steps){
   Serial.print('\n');
   Serial.print("Step ");
   Serial.print(stepNum);
   Serial.print(": ");
   swapFeature();
   delay(stepLength);
   stepNum++;
 }
 Serial.println("");
 digitalWrite(2, LOW);//stop motor
 digitalWrite(4, HIGH);//deactiveate input pin
 delay(5000);//wait 5 seconds before all the solenoids slam shut
 waitState = 1;
}

void startFour(){
 Serial.print("Step 1: ");
 int pin = 5;
 while(pin <= 12){
   digitalWrite( pin, LOW);
   pin++;
 }
 int i = 0;
 while(i  ");
 Serial.print(turnOn);
 digitalWrite(turnOn , HIGH);
 digitalWrite(turnOff , LOW);
}

int turnOffPin(){
  while(true){
   int pin = random(5,12);
   if(digitalRead(pin) == HIGH){//check that pin is on
    return pin;
   }
  }
}

int turnOnPin(){
  while(true){
   int pin = random(5,12);
   if(digitalRead(pin) == LOW){//check that pin is off
    return pin;
   }
  }
}