Pages

Friday, January 21, 2011

First-time experience with the MakerBot

At the MakerFaire two years ago, I saw Bre Pettis demonstrating the first generation of Makerbot. I got fascinated, and since then I've always hoped to find a reason to buy one. Fortunately, a few weeks ago one of our projects needed 3D printed objects, and we had a chance to place an order of the Cupcake CNC Ultimate kit before it went out of stock. I heard many orders were placed, and we would like to thank Ethan at Makerbot Industry for his great help in assisting us with the ordering.

Assembling the Makerbot is an enjoyable task but requires skills and persistence. It took us two days to put everything together and get the device running. Here is a nice picture of the bot:



It really looks adorable. Now, that being said, keeping it to running stably turned out to be a quite challenging task, and there were several engineering issues we encountered. I am documenting these issues and the ways we solved them, in case they may help other Makerbot owners.

The first issue we encountered was that the extruder motor was not operating properly. Sometimes it would run for a few seconds then stopped rotating. I was very puzzled by this at first, but after looking around for a while, I noticed that when it stops, the motor's resistance drops to 2.6 ohm, which is way below normal (should be around 45-50 ohm normally). I suspect that it may be due to the motor brush running across a specific point that corresponds to a low resistance state, and normally due to the inertia it would pass that point immediately. But in this case, it seems the h-bridge that is driving the motor is not capable at handling the instant large current, causing the motor to stop eventually. After searching online for a bit, I found the extruder relay fix by rwensley, and we made a simpler version of the fix, assuming that the motor will only move forward and never backward. The fix involved an extra 5V relay, and 2 resistors that serve as voltage dividers to adapt the h-bridge's 12V to 5V for driving the relay. This has nicely fixed the extruder problem. I think a better option should be to use a more powerful h-bridge, or use a separate MOSFET driver. In any case, for now the quick and dirty fix works (see the picture below).



The second issue we encountered was that the heating unit of the automated build platform (abp) did not function -- it was simply not turning on the heating power. We thought of many potential causes of it, but none of them was correct. Eventually we noticed that the LED corresponding to the heating unit output never lit up, and this allowed us to quickly nail down the problem to the NIF5003 MOSFET. After testing, we found it's defective. This came as quite a surprise: a component on the extruder driver board is dead on arrival?! This was a hard find! I didn't have an NIF5003 replacement, but a quick look at the schematic reveals that this MOSFET is only used to drive a 12V relay, so it should be replaceable by a standard MOSFET like IRF510 (which I have tons of). Once we identified this, the fix was easy. The IRF510 is largely pin compatible with NIF5003 (even though the latter is a SMD component). After replacement as shown in the picture below, the heating unit worked like a charm.



The last issue that got really annoying was the z-axis motor making a gigantic noise and skipping steps. We found that this was due to the overly tightened screws and one solution I found online seemed to suggest that one platform screw should be released and ignored just to remove the over-constrained tension force. I was doubtful about this fix, but to our great surprise, this actually worked! No more loud noise and no more z skipping!



At this point the device is basically functioning properly. There are still a couple of small issues we need to fix, such as the heated abp not being able to stick the objects onto the platform. But overall we are able to print some nice 3D objects and are enjoying playing with them. So much for our first-time experience with the Makerbot!

Update on 'How to control Orbit 62035 valve'

It has been a while since I updated my blog. Things have been quite crazy the past few months, but now I am back alive writing more blogs sparingly.

The first thing I want to share about is an update to my previous post that talked about how to control the Orbit 62035 valve. There have been a couple of missing pieces there which I would like to clarify. First, I found that a MOSFET cannot reliably control that valve. I am not sure why, but it may have to do with the on-state drain to source resistance. But using a MPSA14 (NPN darlington) works, and it requires a base current limiting resistor, so I've updated the schematic as below. Second, I was reminded that two kickback protecting diodes are needed to protect the transistor from the inductive current from the solenoid, so those are also added. These are the two main changes. The circuit below has been tested to work. Feel feel to leave comments.



Eagle schematic can be downloaded from here.

Sunday, October 3, 2010

Tesla's image on Serbian money, and Tesla coils


I was listening to the 'Ask an Engineer' show on Saturday night, and they mentioned that the $100 Serbian paper bill has Tesla's image on it. A friend of mine happened to be traveling in Serbia, and so very luckily, I requested one from him :) It seems this is equivalent to 1.29 US dollars.

And speaking of that, I am excited to post this video I recorded at the Make Faire New York 2010. It's the ArcAttack guys performing in the middle of a bunch of Tesla coils. Totally awesome!





Saturday, August 21, 2010

Meet the Arduino WaterValveShield

After finishing the previous minty water valve controller, I decided to make it an Arduino shield. This way, I can easily stack it onto other shields and extend its capability. I also added a few input buttons, and a DS1337 real-time clock, so that it can keep up with accurate time. Now the circuit has become much smaller, so I can't produce it with home-made PCB any more(sadly...). Instead, I ordered professionally made PCBs from Laen, and here you are, meet the Arduino WaterValveShield!

PCB board:

Components soldered:

Close-up view:

Connected to a serial LCD display


The schematic:



You can download Eagle schematic and PCB design here. Feel free to use it and/or modify it, but be kind to give me some credit for it :)

Parts list with Mouser/Digi-key links: valve_shield_parts.zip

As for sketch code, refer to my previous posts for code to control the valve and read input buttons. To interface with DS1337 RTC, I use this excellent RTC library.

Next steps:

Sunday, August 8, 2010

Multiple button inputs using Arduino analog pin

At times I feel short of digital pins on the Arduino to handle multiple button inputs. Here is an easy way to use 1 analog pin to handle many input buttons. The way it works is very straightforward: use a resistor network as voltage dividers, and then let each button feed a different voltage to the analog pin. Thus by detecting the voltage we can tell which button has been pressed.

Schematic:



Download the corresponding Arduino sketch code.

As a downside, it cannot handle simultaneous button presses. To do that, one could potentially use resistors at doubly increasing resistance (1K, 2K, 4K, 8K...). Hence by checking the detected voltage, we should be able to tell which buttons are pressed simultaneously.

Tuesday, August 3, 2010

How to control Orbit 62035 valve

As an update to my previous post, I took a look at the Orbit 62035 valve, which works with the older Orbit's yard watering system 62032. This valve is white colored, and has a standard 3-pin 3.5mm stereo audio plug.



To figure out how to control the valve, my initial guess is that the valve contains two coils, one opens the solenoid and one closes it. To verify this, I measured the resistance between the 3 pins of the plug. It turns out that pin 1 and 2 have a 4.5 ohm resistance, while pin 1 and 3 have a 0.9 ohm resistance. The 4.5 ohm resistance is reasonable, as it's roughly the same with the Orbit 91592 valve that I used previously. But the 0.9 ohm resistance is strange -- it clearly indicates a coil but the resistance seems too lower.

Having no other reference, I went ahead to apply voltage on the pins to see what would happen. Interestingly, applying +24v on pin 1 and 2 successfully opens the valve, but doing the same on pin 1 and 3 fails to close the valve. I tried everything I could to figure out what went wrong, but nothing came up. Out of luck, I decided to buy the full kit (62032) and reverse engineer the control unit a little bit. When I opened the control unit, I found that the entire circuit board is covered by a thick layer of water-resistant paste. This didn't look good. However, I did notice several big resistors, each reading about 3.9 ohm. The size of the resistors seems to suggest that they are rated at 2W.

Given this finding, my suspicion is that applying +24v directly across pin 1 and 3 discharges the voltage too quickly, thus cannot close the solenoid properly. In fact, given the 0.9 ohm resistance, a momentary current of 26 Amp is produced, which sounded quite scary. Adding a 3.9 ohm resistor is probably used to limit the current, slowing down the voltage discharge. This actually helps to build the electromagnetic field in the solenoid, allowing it to close properly. The idea turns out to work like a breeze: I connected a 3.9 ohm resistor between pin 3 and ground, and this time the valve nicely closed. At this point, I'm pretty sure I've figured out how it works.

You might wonder what the differences are between this valve with the Orbit 91592 valve. Here are my two cents:

Pros:
- 3.5mm stereo audio jack makes it easy to connect (in comparison, the 91592 valve requires custom connector)
- Pin 1 can remain connected to +24v, while grounding pin 2 or 3 is used to control the opening/closing of the valve. This simplifies the circuit design a lot. In fact, only two low-side drivers are needed to ground pin 2 or 3, which is much simper than h-bridge driver required by the 91592 valve.

Cons:
- Seems to be of its own kind on the market (my impression is that this is a discontinued product). Most other latching solenoids available on the market are similar to the 91592 valve. Fortunately Walmart still carries this product currently, but I don't know how long it will last.

Below is a sketched schematic when using this valve to replace the 91592 valve. As you can see, the circuit is much simpler than before. The driver can use either a darlington transistor (such as MPSA14), or an N-type MOSFET (such as IRF510).