3DWelder
An overbuilt 3D pen using a CHC Pro and custom dc motor extruder powered by a power tool battery.
This is my journal of all my work and time spend on this project. Total time: 68.5 hours.
July 3rd: Pretty much just planning and some research for parts I could use (2.5 hours)
I did a lot of research into using a stepper motor powered extruder like a 3d printer but I realized that it would probably be simpler and cheaper to use a dc motor instead for this use case, I'm planning on using a 12v dc motor now. I'm thinking I'll use a 12v Dewalt battery or something and power this motor and an arduino nano off of it, I might add a boost converter to get 24v for the hotend or just run with 12v if I can get enough power. I need to do more research on that. I think I'll do like a hot glue gun design with a trigger to vary the speed of the motor, and add a screen and dial for setting the temp.
July 5th: Schematic Design and parts research (3 hours)
Today I fleshed out the whole electronics setup and made the schematic. I also researched thermal management solutions. My plan is to have a small heatsink on the mosfets and use a buck converter to get 12v from the 18v battery, then drive the hotend directly off the battery voltage. I am now planning to use a 0.91 inch OLED display and EC11 rotary encoder for the temperature selection. I'll use the screen to display the temp, dial to adjust it and press the dial to put the gun to sleep, like keep the temp lower but not fully shut off.
July 6th/7th: Rethought schematic some, lots of CAD work, PCB design completed, got a semi-final BOM (12 hours)--Through midnight
This was a mega session, I have basically everything done except for the CAD, I still have to figure out how to do the battery though. This was some quite challenging CAD work, as it's a lot of weird parts and packaging is very challenging. This thing is going to be way bigger than I'd like, partially because the motor I chose is massive, but it's too late now to change it. I removed the mosfet control for the motor, that's now just done off of the drill trigger. It turns out, drill triggers are actually all in one speed controllers. For the extruder design, I've adapted the LDO Orbiter to work with the DC motor. I essentially cut out the gearing entirely so the motor just attaches straight to the drive gear. Unfortunately there wasen't really any good place to put the pcb, so there's just gonna be a huge box taking up most of the front, it's not elegant at all, but nothing about this thing is, so whatever. I'm really not looking forward to finishing the case and making the handle. Fitting that trigger in is going to be very difficult, as it's a weird geometry and I'm horrible at organic modelling. I can't decide if I want to just buy a battery adapter or make my own, the problem with buying one is I can't find any dimensions to mount it, so I think I'm just gonna have to figure out my own adapter. I'm regretting my choice of screw terminals for a lot of the connections, as they take up a ton of space. I'd like to keep them, but I might end up redesigning the pcb if I get tired of having that huge box.
New schematic
PCB
CAD
Current BOM
July 8/9th: Went through midnight again. Corrected schematic some, redid some of pcb routing, lots of CAD work (7 hours)
Adjusted the schematic because I realized I setup the diode wrong. I also redid some of the pcb design and added thicker traces for the power supply. Most of the time was spend on CAD, I created a battery mounting system, modelled the handle and mounting for the handle, added pcb mounting, and added a cooling fan mount for the extruder heatsink. The handle was quite a pain, but I think it turned out alright. I kept running into headaches because of my poor CAD habits, like not putting sketches under their proper component. This led to a lot of redoing stuff because I had to adjust things. I really need to work on keeping an organized timeline too, I kinda like to work without it but I should definately put more effort to learning Fusion stuff more. Anyways, I'm basically done with hardware now. The only thing left(hopefully) is adding a cosmetic shell, and coding.
Schematic
PCB
CAD
July 9th: Corrected one thing on schematic/pcb and wrote code (2.5 hours)
Today was mostly just coding, I wrote code for the pid control of the heater and got the rotary encoder stuff. I still need to do the screen and wrap it all together. I tried simulating some stuff in tinkercad to test the code but I couldn't figure out anything good for pid control testing so I gave up on that. I also just had to change the input pin for the thermistor and added some stuff to the schematic to represent the battery and buck converter. I'll add images of that in a future session when it's done.
Code
July 17/18th: Went through midnight. Corrected screen pins to Arduino, small CAD detail coded screen, and BOM (6 hours)
Lots of small changes today, I realized the Oled was connected to the wrong pins on the arduino so I had to correct that. I added a little slope to the handle to route the wires through, and tried to work towards an enclosure but kinda gave up because I can't think of a good way to leave the extruder exposed enough, while still looking ok, plus I think it's cool exposed. Most of the time was spend on coding, I added code for the screen and updating it and stuff. It's pretty rough rn since I don't have anything to test it on, but it should work in theory. I made the whole BOM, everything is sourced from Aliexpress. It's around $150 for the whole thing, which I think is quite good, considering that included a lot of hardware most people probably have.
Schematic
PCB
CAD
Arduino Code
~~~ #includeBOM
July 18th: Got all the documentation set up, added a knob, and made a small correction to the PCB. (3 hours)
Today was mostly spend getting all the documentation ready for submission. During this process I noticed a couple things to correct. I added a knob to the rotary encoder, and fixed an issue with the DRC on the PCB. For documentation, I wrote basically the whole README, got final images/renders uploaded, made a wiring diagram, uploaded CAD files and code, and licenced the Github with MIT license.
Wiring Diagram
Render
July 28th: Added pullup resistors to I2C(oops), found Amazon links for faster shipping and updated BOM file with these new links, ordered everything. (3 hours)
I realized I forgot to add pullup resistors to the I2C pins, so I went in and did that. I also updated the pictures and files with these corrections. I also had to find Amazon links for a lot of the parts to get faster shipping, and updated the BOM file accordingly. I finally ordered everything and did all the stuff associated with that.
New PCB
August 4-6th: Printed a bunch of parts and soldered the PCB! (6 hours)
The last few days I printed out most of the parts I need for assembly, and did some of the heatset inserts. I soldered the PCB, but it turns out I accidentally put the wrong size resistors for some of the footprints, so I had to do some sketchy hand soldering. I also wired up the buck converter, and set it up for the battery. Everything was kinda done randomly so I decided to combine it into one session.
My beautiful soldering
August 7th: First mock up assembly and fixing some mistakes... ( 6 hours)
Oh boy, I made a few more mistakes on this thing than I should have... So today I went into the pcb design to fix up the wrong size resistors I mentioned yesterday... and well I noticed that I wired my screen to the wrong pins on the Nano. Unfortunately I can't really quick fix this, so I guess this thing is going to be fixed temp for the time being. During the mock up I realized that the motor assembly I ordered off Amazon to ship faster had the motor part offset on the other side of the original one, so it interferes a little bit. I also corrected the size of a heatset insert hole and added a little extra room in the battery area to fit the buck converter. Other than that though, everything is going well. I was able to confirm the trigger/motor work with the battery, so that's good. Printing out new parts right now. I'm so mad about that PCB, but I'm just gonna order a new one I think. It won't get here in time for August 14th demo but I'm just gonna try to demo without it.
Corrected PCB
Mock Up
Updated CAD
August 9/10th: Trying to get this thing to work. (8 hours):
Well, I don't know if this project is going to work. Today I failed at getting the screen to work, got the rotary encoder working, failed to get the thermistor working, fried my Arduino, and got the new parts printed. Alright so heres the rought timeline of events. First I got those parts printed, installed heatset inserts, went great. Then I got the rotary encoder working, took a little while to get a reliable setup, but good. Then I tried to jerry-rig the screen to work, but it just wasn't working, oh well. Then I tried to get the thermistor to work... It just wasn't working, like it would always read -60C. Troubleshooting this and the screen went on for a while, but eventually the Arduino just died on me, I don't really know what happened, but yeah. I'm pretty defeated at this point. I'm just gonna have to restart from scratch, and hope I can figure it out. I'm gonna order a new screen, encoder, and some resistors to help me with trying to rebuild this thing.
August 13/14th: Rebuilding! (8 hours):
Finally!!! It's working. This was quite a marathon. I started off with soldering up a new PCB, doing the jerry-rigged fixes as I went to make everything a bit cleaner. Then came the troubleshooting, There was a lot of troubleshooting. I just couldn't get the Arduino to connect to my PC, so I looked in the Aliexpress reviews, and sure enough, it was the wrong chipset. They sold an ATMEGA328PB under the regular P name. This basically meant there was not built in support for flashing it, and I had to figure that out. I tried a bunch of different methods, but eventually found one that worked. Use a custom Arduino board library for it, and when flashing, hold down the reset button, plug it in, flash it, then while flashing release the boot button. And the serial had to be closed. After I got that working, it was relatively smooth sailing. I did some troubleshooting the thermistor first, and realized I had the wrong value resistor. After I fixed that, I assembled everything to get the heater up and running. Then I worked on tuning the PID to a decent point, which took a while and some fixes. Then, I troubleshot the screen a while, and eventually realized I was shorting SDA to ground, due to my misrouted pcb traces. I fixed that, and after getting the rotary encoder working and everything put together in the code, it's finally done. It actually works, and I'm going to bed. This was a long night.
August 14th: Demo! (1.5 hours):
This took longer than I thought, but today I demoed. Basically just polished the code a little more, filmed a little video of it working, and got it on Printables. I still want to finish fixing the PCB design and order that to really wrap up the project, but it's done. Thanks so much to everybody at Hack Club and Highway, this was quite the journey.