The main thing is get the hardware solid, so the amps swings all the way, good resolution, etc. Software can be flashed to fix bugs OR add features later.
Our new 255EXT has an Infineon MCU and can be flashed. Internal use only at this point. So having the MCU is a cool thing![]()
Which Arduino did you use? I might go look at them if less than $20. My favorite toy right now is the Raspberry Pi, never did get a Beagle Bone Black.
Mike R.
Email: admineverlast@everlastwelders.com
www.everlastgenerators.com
www.everlastwelders.com
877-755-9353 x203
M-F 12 - 7PM PST
FYI: PP50, PP80, IMIG-200, IMIG-250P, 210EXT and 255EXT.
Currently, I'm working off the Uno R3, but that's just because it's the one that's recommended for first-time purchasers. Going forward, I intend to look closely at something like the DC Boarduino from Adafruit or the Arduino Pro Mini from Sparkfun. Both of these are really tiny, minimalistic units, that are more appropriate for integrated application vs. prototyping.
The Boarduino design uses a through-hole 328 chip, and is sold as a you-solder-it kit with a PCB. The interesting thing about it, to me, is that you could take the Eagle file (available from Adafruit) and incorporate it into your own PCB, then order the kit and solder the parts directly to your PCB. So your Arduino is 100% integrated into your PCB, vs. floating on top of it, plugged into headers. On the other hand, if one had the level of familiarity with electronics that you have, one could certainly design their own PCB around the base 328 chip. Take the 328 chip, pull out the inputs and outputs to solder pads, lay out a regulated power supply, and that's more or less it. But for only $20, it might be nice to have somebody else do the work for you and just ship you all the parts. If you bought a 328 chip with an Arduino bootloader, you could still take advantage of the Arduino development environment, such as being able to upload and download code via USB or FTDI without having to have a programmer (although, knowing you, you've already got a programmer!).
The Pro Mini, on the other hand, uses all surface-mount components, and is not sold as a kit, so it would have to be installed on headers. On the other hand, it's only $10, so kind of hard to go wrong there. I'm a little torn between them. The Pro Mini is nearly half the cost of the Boarduino, but the layout of its PCB is a little weird--they stuck three of the analog input solder pads like, right in the middle of the board. It's a silly thing to care about, but it bugs me.
For prototyping, the Boarduino is perfect, because it's designed to slot into a breadboard. Because of the Pro Mini's odd location of some of its analog inputs, you wouldn't have access to them if it was slotted into a breadboard. Maybe no big deal if you're comfortable with DACs and shift registers and muxes, oh my.
I have gotten tired of lugging around a breadboard and having wires and stuff falling out all over the place, so I have started wiring up the circuit on a perf-board. We went to my sister's wedding over the weekend, so this is the first time I have gotten back to the project since I verified that, at least in principle, the "analog switch + PWM signal + parallel resistors = digital potentiometer" solution would work. Well, I'm sorry to report that it won't work after all. The problem is that the internal resistance of the switch is about 180 Ohms (measured between the pins with the switch in the "open" state), and that seems to be enough resistance that the welder never gets to max output. For the time being, I think I'm going to just go back to direct PWM output, so that I can get some kind of an alpha product put together, but I need to leave room on the perf-board for any additional components I'll have to put in (resistors and such), so I'm tempted to try to solve the issue before moving forward.
Scratch that. I don't think the measly 180 Ohms open-switch resistance is what's doing it. I think the real problem is that if you're using an SPST switch, you can build a rheostat, but not a potentiometer, and the circuit expects a potentiometer. Simply varying the resistance between any two pins doesn't produce the correct output values. Conceptually, what I think you need is a SPDT switch that throws the circuit back and forth between the "pedal up" and "pedal down" states in response to the PWM signal. Or two SPST switches with one hooked up to a NOT of the other's input. But for now, I'm going to just go back to feeding a straight PWM signal to the pin and get on with my day.
I have been soldering like mad. Although the hardware design was not 100% complete, I got really tired of stuff falling out all over the place when I was carrying a breadboard around, so I started wiring it up to perf-board. I also ordered a Boarduino so that I could mount the Arduino on headers on the board, instead of having it be a separate component with jumper-wires connecting it to the main-board.
Once I get all the stuff wired up, there will be a round of debugging where I shake out any mistakes I made in the wiring, followed by another round of software revision, shaking out any lingering bugs and refining any small features that I have glossed over in my desire to get to a working product. I am going to a welding workshop this weekend, and it would be really exciting to have this ready to demonstrate, but I'm not holding my breath. The Boarduino comes tomorrow, and there is every chance that I will find a show-stopping problem that I have totally missed. Even if things go smoothly, it's a lot of work to get done, but it's not out of the question.
Here are some pics of the project in its current state.
And a video:
Last edited by joshuab; 09-11-2013 at 10:48 PM.
Looks like you are getting there.
Did you ever think about using an ardunio perf-shield for a nice compact plug on solution for your wiring points and multiplexer? Something like this.
Since you are back to the PWM you could also add the voltage regulator so that the welder will never get a 5 volt signal even if something happens to stop the PWM. Just dial in the max signal you want then use PWM to lower that as required. I don't see any decoupling caps for those chips, either, something to consider to help prevent noise issues.
Last edited by Rambozo; 09-12-2013 at 12:28 AM.
Long arc, short arc, heliarc and in-the-dark!
I did, but the protoshields that I'm aware of don't have enough space for the components I'm using. For example, the one I have only has space for a total of 10 rows of DIP IC.
The Boarduino sort of turns that on its head: instead of putting the perf-board on the Arduino, it puts the Arduino on the perf-board.
Great minds think alike. I built a voltage divider to pull the Arduino's 5v down to a max of 2.7v. This makes sure that, no matter what software mistake might happen, the welder will never see over 2.7v from the Arduino. And it simplifies the code, since I can just use the full range of PWM output, instead of tracking max volts and taking output as a percentage of that. Technically, it also about doubles my usable resolution, but that hardly matters.Since you are back to the PWM you could also add the voltage regulator so that the welder will never get a 5 volt signal even if something happens to stop the PWM. Just dial in the max signal you want then use PWM to lower that as required. I don't see any decoupling caps for those chips, either, something to consider to help prevent noise issues.
For the decoupling caps, can you provide a basic schematic? Currently, I've got the chips solder-bridged over to a ground/power bus that runs down the middle of the pins. I'm familiar with the concept of decoupling caps, but I don't really know exactly how they fit in a schematic.
EDIT: Actually, come to think of it, I have seen caps in a schematic, on either side of a component, going from Vcc to Ground. Is that the ones you're talking about?
Last edited by joshuab; 09-12-2013 at 12:54 AM.