Thingiverse - http://www.thingiverse.com/thing:436118
3D Modeling for 3D Printing Playlist - http://www.youtube.com/playlist?list=PLSO20OpG15P8Li0RPiHRwwYHfhVIqSMmj
/* Created by David Taylor as part of a video series Video are available at http://bit.ly/GineerTube */ include <libraries/MCAD/boxes.scad> hw=40; d=20; t=5; hr=3; cr=2.5; difference() { union() { translate([(hw/2)-(t/2),0,0]) { //cube([hw,d,t], center=true); roundedBox([hw,d,t],cr,true); } translate([0,0,(hw/2)-(t/2)]) { rotate([0,90,0]) { //cube([hw,d,t], center=true); roundedBox([hw,d,t],cr,true); } } translate([((hw/2)*sqrt(2))/2,0,((hw/2)*sqrt(2))/2]) { rotate([0,45,0]) { cube([hw,d,t], center=true); } } cube([t,d,t],center=true); } translate([(hw/4),0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } translate([(hw/4)*3,0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } rotate([0,-90,0]) { translate([(hw/4),0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } translate([(hw/4)*3,0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } } translate([(hw/4),0,(hw/2)+(t/2)+0.1]) { cylinder(h=(hw), r=(hr*2), $fn=100, center=true); } translate([(hw/2)+(t/2)+0.1,0,(hw/4)]) { rotate([0,90,0]) { cylinder(h=(hw), r=(hr*2), $fn=100, center=true); } } translate([(hw/4)*3,0,(hw/2)+(t/2)]) { cylinder(h=(hw), r=(hr*2), $fn=100, center=true); } translate([(hw/2)+(t/2),0,(hw/4)*3]) { rotate([0,90,0]) { cylinder(h=(hw), r=(hr*2), $fn=100, center=true); } } translate([(hw/4)+(hw/2),0,(hw/4)+(hw/2)]) { cube([hw,(hr*4),hw], center=true); } translate([(hw)-sqrt(pow(hw/8,2)-pow(t/2,2)),0,(t)]) { rotate([0,20,0]) { cube([(hw/4),d,t],center=true); } } translate([(t),0,(hw)-sqrt(pow(hw/8,2)-pow(t/2,2))]) { rotate([0,-20,0]) { cube([t,d,(hw/4)],center=true); } } } |
include <libraries/MCAD/boxes.scad> hw=40; d=20; t=6; hr=3; cr=2.5; difference() { union() { translate([(hw/2)-(t/2),0,0]) { //cube([hw,d,t], center=true); roundedBox([hw,d,t],cr,true); } translate([0,0,(hw/2)-(t/2)]) { rotate([0,90,0]) { //cube([hw,d,t], center=true); roundedBox([hw,d,t],cr,true); } } translate([((hw/2)*sqrt(2))/2,0,((hw/2)*sqrt(2))/2]) { rotate([0,45,0]) { cube([hw,d,t], center=true); } } cube([t,d,t],center=true); } translate([(hw/4),0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } translate([(hw/4)*3,0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } rotate([0,-90,0]) { translate([(hw/4),0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } translate([(hw/4)*3,0,0]) { cylinder(h=(t*2), r=hr, $fn=100, center=true); } } translate([(hw/4),0,(hw/2)+(t/2)+0.1]) { cylinder(h=(hw), r=(hr*2), $fn=100, center=true); } translate([(hw/2)+(t/2)+0.1,0,(hw/4)]) { rotate([0,90,0]) { cylinder(h=(hw), r=(hr*2), $fn=100, center=true); } } } |
hw=40; d=20; t=6; hr=3; translate([(hw/2)-(t/2),0,0]) { cube([hw,d,t], center=true); } translate([0,0,(hw/2)-(t/2)]) { rotate([0,90,0]) { cube([hw,d,t],center=true); } } translate([((hw/2)*sqrt(2))/2,0,((hw/2)*sqrt(2))/2]) { rotate([0,45,0]) { cube([hw,d,t], center=true); } } |
In this video I take you through the theory of how I plan to hack into the display of the Jura Impressa FX50 Classic automatic coffee machine to allow me to display what ever is being shown on the 1 line x 10 character dot matrix display, on the web app in real time.
|
In this video I show you an easy way to stick Kapton tape onto a print surface such as aluminium. In the video I also show off the first version of the Printer plate I made available on Thingiverse.com.
PCB Heatbed MK2a Plate (3 hole mounting) (4 hole mounting)
|
While being in Cape Town on Business, I decided to make use of some free time and recorded a quick YouTube Video to provide an update on progress with CremaBot. Below is a Walkthrough of the Schematic:
Since I recorded the video above, I've actually completed the PCB layout and ordered it from OSHPark. I've never used them before, so I'll let you know what I think of the quality and speed of delivery all the way to South Africa.
|
So project Bob is dropping the code name and will from now on be known as CremaBot.
The main goal behind this project is to web enable the Jura Impressa XF50 Classic. The goal for the tear down was to confirm the working of the 1x10 (one line by 10 character) LED dot matrix display. In my previous video you could see that the idea was to display anything that was being displayed on the coffee machine on the associated web app. To do this I would have to intercept the data being sent to the display, decode it and then send it off to the web app.
Here is the overall idea with CremaBot:
So far I have proven all the various aspects that would be required to build this system with the exception of actually reading the data from the data stream going to the 74HC595.
The tear down below took me about 3 hours to get roughly 1 hour worth of video footage which resulted in the 8 minutes of YouTube video below :-) (My first tear down, so comments would be highly appreciated.
|
Here are two quick videos I created for a talk I presented on my printer.
This one is a quick overview animation from Sketchup. Note that in these videos it still shows the first version of my Magnetic Joints which I have recently improved.
This version show my Delta 3D Printer in action.
|
When I looked at an Optical End-Stop for the first time, I noticed it had 4 pins while most diagrams show it with 3 pins. I then took one of my Optical End-Stops apart and looked inside to see how the device is wired up. In my case I could do this non-destructively, and I could close it back up. Internally the device has a small PCB which has two of the pins connected together.
I looked around for an interface circuit to make my optical End-Stops work on my 3-pin Ramps 1.4 board and found the hand-drawn diagram below by RetireeJay on the Printerbot Talk forum on the same subject.
I figured I could get rid of at least one resister and came up with the circuit below, which works just fine.
I had some Vera board lying around and made up the board as follows. which ended up being about 1.5cm x 1.5cm.
Here is a photo of the final product.
On this circuit the LED turns off when the optical end-stop is triggered and the LED's aren't super bright, but it does the job by passing about 2.3mA through the LED when it is tuned on.
|
A quick update that I've been meaning to post for a couple of weeks now on my heat bed.
I've used a Printed Circuit Board (PCB) based heat bed. More specifically I got my hands on a RepRap Mk2A bed. I am able to heat this bed to 110°C but during printing it's only able to maintain about 97°C at best.
The image above shows a fairly consistent heating profile for my bed. The downside is that at the moment I only have ABS filament. With PLA, we should be able to get going in about 6 minutes and should also be much easier to maintain the temperature.
The MK2a also support 3 point mounting which I did go for. As you can see from the image below, my aluminium print surface sits snugly against the back two posts.
Having washers between the screws and the PCB Heat bed required that I cut a space for them out of the aluminium heat bed with my Dremel to ensure that the print surface plate sit snug against the PCB at all times.
I've also installed a cork backing to the bottom of the heat bed to minimise heat loss in that direction. so the entire assembly, with Cork, PCB Heat bed, Aluminium Print Surface covered in Kapton tape is shown below.
With all of the above, I was still battling to make parts stick long enough to finish printing. I tried Hair Spray (although I think I used the wrong type), but in the end I am super impressed with ABS Juice.
Basically I take about 10ml of Acetone, drop a couple of small reject ABS parts in and wait for it to dissolve. Once I have a slightly thick white smooth liquid, I pour it onto the heat bed and smooth it out with a small paint brush. Once this is dry, I can print just about anything without it ever coming off the bed. It actually makes it quite hard to take it off even afterwards, but with a bit of gentle persuasion, it pops free without breaking the part you just printed.
Tip: I lay another cork tile on top of the heat bed while heating it up. This reduces the heating time by about 15%. I've seen guys using cardboard, news paper and boxing to do the same. Effectively, just give your heat bed a blanket and remember to remove it before you start printing ;-)
Those of you that have been following my tweets where I've been saying that I want to print my quadruped leg would have noticed that I have still not done that. The universe seems to be holding me back: Power outages and Thunderstorms are to blame. (For those of you in the UK, thunderstorms in South Africa require unplugging all electronics and internet connections... ;-)
|
Now that my printer is up and running I've started experimenting with a couple of things and also looked at improving some aspects of it. More on that in another blog post coming soon.
I just wanted to make a quick mention of a design I have recently uploaded to Thingiverse.
At my local hacker space (House4Hack) one of the guys brought along a little quadruped that he printed from thingiverse and showed off his kinematics. I was quite impressed. However, given that it only had 2 degrees of freedom per leg, the kinematics weren't that great.
Various quadrupeds on YouTube look way better, but all of them had 3 degrees of freedom per leg. Each of them however had quite chunky legs because the servo's were located in the leg. The 3rd degree of freedom also made the legs quote a bit longer, creating even more torque for the servo's to manage. This got me thinking:
This was enough to give me an excuse to fire up my favourite 3D modelling app and out popped my version of a leg which I posted onto Thingiverse.
Below is an image showing 4 legs configured into a quadruped, but I gues nothing stopps you from building a hexapod or more...
The design places all servos inside the body. The hip is also made to be modular so that you can use servos you like. I've also not included the body skeleton as this would depend on your servos and design.
This is my design for a quadruped. Most 3 Degrees of Freedom (DoF) legs also have 3 parts to the legs. I wanted to see if it was possible to get 2 DoF from one joint.
Design Decisions:
The first part of the leg is just over 120mm long and the second part is about half that, so it should just fit onto a 200mm x 200mm heat bed with a couple of mm to spare or you could rotate it 45 degrees if it's to close.
Download it, print it, and let me know...
I would love to hear feedback if anyone finds any bugs or if you have any bright ideas.
|
The little blob on the laft was my first attempt at printing a cube of 10x10x50mm. On the right was what I printed last night.
Success.... finally. The previous two failed because the RAMPS 1.4 board was overheating even with what I thought was adequate cooling. After liberating a fan from an old dell workstation I had in the cupboard, all started working. That fan does create ALLOT of airflow though.
Next steps are now to refine the process to improve print quality, but I can finally say I have a working Delta 3D printer.
I'll post some videos of the event a bit later.
|
The names in this post have been omitted to protect the innocent... ;-)
I went to the House4Hack Johannesburg chapter for the first time last week. I walked in and introduced myself as David, but no one knew who I was, despite me visiting House4Hack Centurion fairly frequently for the last 8 months. One of the guys then asked if I was very active on the forums. I said I was, but they still didn't know who I was. I then mentioned that my username was Gineer.
Suddenly everyone knew who I was, grind and said: "O, that gineer?". I'm not that active on the forums, but I knew exactly what they were thinking of.
While I was building my Delta 3D printer, I needed a print surface to put ontop of my heatbed. I thought of using glass, but by some fluke the glass place was closed over Christmas and I ended up designing an aluminium plate cut-out. In hindsight this was less of a design and more of a form function. Have a look at my "PCB Heatbed MK2a Plate (3 hole mounting)" and "PCB Heatbed MK2a Plate (4 hole mounting)".
One of the guys, who runs a shop where H4H'ers can buy bits and pieces, contacted me and said that his design looked very similar, after I offered to have a couple extra cut since I was having some done anyway. The puzzling thing to me was that the design he sent me was only similar in the fact that you could cut both out of 3mm aluminium.
I had the plates cut and handed out 18 of them at House4Hack Centurion. One of the guys who I gave some plates to mentioned to me that the aforementioned shop had an item marked New that looked very similar, and that he heard rumors that this particular shop had liberated a couple of designs from other members and profited from them. I had a look and sure enough, there was my plate, being sold for more than double what it cost me to have it manufactured.
I contacted him and asked how my design was doing in terms of sales...
Long story short: turns out he designed a very similar plate, sent me the wrong design file, originally, and took exception to me saying that it was my design. We had both designed the same plate. The unfortunate part came when he decided to publish our discussion on the forum, which obviously upset the rest of the forum members and provided me with the aforementioned notoriety.
To save the House4Hack forum from further public discussion, I bowed out and gave him the accreditation for version 1. I have however subsequently added some real design features in version 2.0, 2.1 and 2.2 which is now starting to depart from the forum function to an actual design anyway.
Lesson Learnt: Be careful when people send you queries,
|
I had 20, 3mm aluminium plates cut last week based on the two designs I created and uploaded to thingiverse.com. I had 2 plates cut for the 3 post mounted MK2a board, for my 3D Delta Printer, and 18 of the plates for the 4 post mounted boards. The 4 post plates were destined for friends at H4H, my local hackerspace, where most people have Morgan printers, requiring the 4 post mounting system.
After wasting 2 pieces of Koptan (always thought this was Capton tape, why does everyone pronounce it like that?) I figured I'd use a trick my sister, who works in advertising, where she often has to stick vinyl signs to glass and other stuff, taught me.
I dripped a couple of drops, really just a small amount, of dishwashing liquid onto the plate, then wet it with water and gently mixed it with my fingers until the plate was evenly wet and slippery from the soap. I lay the Koptan tape onto the wet surface, which allows for really easy bubble removal, using a credit card, until the water dries up, and the tape takes over.
Here is the finished product installed on the MK2a heat bed on my 3D Delta Printer:
With all the bits finally in place I figured it was time to get some filament moving through my extruder. I had set all the values in DEFAULT_AXIS_STEPS_PER_UNIT to the same value, 167, including the extruder. Turns out the extruder needs 954 steps to push the filament 1 mm, thanks to the slightly customised Reprap pro mini extruder I now have. (A review of this coming soon). Anyway, with it all set up and ready to go, I decided to see if I could get some molten plastic squirting out of my hot-end for the first time.
And so was boren: Worm 1 and Worm 2
@Gineer Worm1 and worm2?
I am having slight problems with the balls not being held tightly enough to the trucks, but theoretically, I should be ready to print my first actual object soon. Just need to recalibrate with the new plates installed.
Whish me luck ;-)
|
I have finally been able to get my Delta 3D printer moving the way it should even while printing an actual file.
The ProblemMy printer could move around correctly except when I loaded a file and tried to print, it would go crazy and simply try to move the x tower down forever.I eventually figured out that I could replicate tis by moving the head myself by moving the head 100mm in any one of the directions and then move the head more than 60 mm in any other direction without centring the first axis again. This would be moving the head outside the delta radius which obviously confuses the math and makes strange things happen in the 4th dimension ;-) Opening the GCode showed that the first move of printing my 10mm x 10mm x 10mm cube sent the head to G1 X90.310 Y90.310 which would be outside the safe area. I then realised that it was starting to print somewhere which was not the centre of the heat bed.MarlinIn Marlin the DELTA_RADIUS is calculated as follows:// Effective horizontal distance bridged by diagonal push rods.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
Then later on we set the print surface limits as follows: // Travel limits after homing
#define X_MAX_POS 100
#define X_MIN_POS -100
#define Y_MAX_POS 100
#define Y_MIN_POS -100
#define Z_MAX_POS MANUAL_Z_HOME_POS
#define Z_MIN_POS 0
While this is strictly correct, you could never really move to the corner of the print bed anyway as this would be outside the Delta Radius so I updated it to be: // Travel limits after homing
#define X_MAX_POS DELTA_RADIUS
#define X_MIN_POS DELTA_RADIUS*-1
#define Y_MAX_POS DELTA_RADIUS
#define Y_MIN_POS DELTA_RADIUS*-1
#define Z_MAX_POS MANUAL_Z_HOME_POS
#define Z_MIN_POS 0
This step wasn't really required, but Slic3r should keep everything nicely inside limits of the actual bed.Slic3r
Under the Printer Settings tab in Slicer you once again set the print bed limits which I had set as follows because of the "mm" after "Print centre"
Turns out the Print centre is a coordinate and not a measurement. So it should be 0, 0.
This probably just shows that I am new to this, and since I couldn't find any help on the net about this problem, I guess I might also be the only person to misunderstand the Slic3r setting. The gcode now actually starts of near the centre, so lets open Pronterface...Pronterface
With Pronterface Printer Settings set as follows everything plays nice and works well.
Next stepsGet extruder, hopefully on Tuesday, and then I should be good to go as soon as I get the glass cut for the printer bed. |
I set myself a target to complete the assembly of my Delta 3D printer before the end of the year (2013). On New Year’s Eve I assembled the final parts, but the point is I reached my target, except for my Bowden extruder, which I requested in August when I decided to start this build, but still have not received… (Let’s not dwell on this)-:
Assembly I’ve had a couple of questions asking why I used pressed wood for the base plates after going through all the trouble of using aluminium extrusion. The answer quite simply is that this is still a prototype until I get it working. Perspex is quite expensive and after getting the first version working and finding out exactly where each whole should be drilled, I might rebuild it or simply build version 2 with all the aesthetic consideration required. Below is a time-lapse video of the physical assembly.
One motor wouldn’t move I realised that one of my stepper motors wouldn’t turn after my initial tests. After swopping my stepper drivers around I found that one of them was the problem. I decided I would take it back and get it swopped, but had one last look and found two of the components (capacitors) on pins 2 and 3 had gotten themselves soldered together during reflow. Apparently these boards were tested…sure: http://black-box.co.za/coolsteps_2_1/. A quick [tiny and very controlled] chopping motion with a Stanley knife sorted that problem out and I soon had all 4 steppers doing what they did well. Z+ moving in the wrong direction Things were moving around, but I was a bit puzzled because the Z+ only moved small amounts and in the wrong direction?!? I checked the other movements and they were correct so my motors were not connected in the wrong direction. It turned out that I had swopped my Max and Min end-stops. Also didn’t have the min end-stops installed or disabled. Checking end stop status with M119 reported that all end-stops were triggered all the time. Swopping the end-stops and disabling the min end-stops which are not really required on a Delta anyway, solved that problem. The first time I tried the Home button after that, left me diving for the power button as I wasn’t expecting it to home quite that fast and the fact that I hadn’t attached my end-stops yet, the trucks where trying to climb through the top of my printer. (Luckily nothing broke.) Magnetic-connectors and hot-glue I’ve posted a couple of photos of the way I connected the magnets to the trucks. The problem with that is that the heat shrink leaves a nice rounded end which allows the balls to easily move off the end of the magnet without much effort (a bad thing). I tried a drop of hot glue on the balls and then stuck it onto the magnets. After cooling, the balls quite easily pop off leaving a perfectly shaped seat for them to sit in.
Diagonal rods
I might upgrade these to Carbon fibre tubes at a later stage.I opted for aluminium for my diagonal rods. You get a much better selection of these at the local hardware shop in the UK, but I ended up getting 6mm rod which I had to reduce to the 5mm required to fit into the magnetic ends. Calibration I found the image below on a forum post on seemecnc which had no link to the original source. This really helped allot. After entering the values and reloading the firmware, my hot-end was coming down about 20mm to far still. I realised that my trucks where moving about 11mm for every time I clicked the 10 move button in Pronterface. I will reduce my 177 DEFAULT_AXIS_STEPS_PER_UNIT to 161 and see if that makes a difference. Sounds about right given 1mm per move over the full Z-axis movement. Calibrating a Delta 3D Printer has been really helpful so far. Extruders I originally requested Stephan to print me an Airtripper extruder for my printer (Back in August… stop, don’t go there). Quentin Hartley mentioned that his extruder stepper motor was heating up allot due to the excessive current required to keep this extruder going. So much so, that the filament was getting soft on the drive wheel which was causing him some problems. I’m now waiting for Quentin to print me a RepRapPro mini extruder. Next steps: Get an Extruder and complete calibration… |