Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 07/16/2016 in all areas

  1. 20 points
    I'm Steve Cox, a member of the Utimaker Community. I'm an experienced engineer having spent many years in the automotive industry but I'm now focussed on the world of 3D technologies, specifically 3D product design and 3DPprinting. I'm an Autodesk Certified Instructor for Fusion 360, so many of the images in this post are taken from that design software but this post is not specific to that software but is about designing for 3D Printing and Additive Manufacturing. This is a first of a series of blog posts in this area that will be focussing on how engineering is interacting with the latest 3D technologies. Additive Manufacturing (AM) and 3D Printing (3DP) - whilst the way they produce an object from nowhere can often seem like modern-day magic, the truth is that in many ways they are no different to any other way of making things. Every method that we use to manufacture things has it’s own rules that we need to consider when designing. These rules are known as DFM – Design For Manufacture. This approach takes into account the pros and cons of the chosen manufacturing method to produce a design that can be made repeatably, reliably and to meet the intended function and life expectancy of the product. This way of thinking when applied to AM (or 3DP) is now becoming known as DfAM, or Design for Additive Manufacture. In reality there are two aspects of DfAM, the first we will deal with in this post where we will concentrate on the use of DfAM applied to detail features of the design to ensure manufacturability. The second aspect is using DfAM at the conceptual design to realise some of the unique capabilities that AM has to offer, and that will be covered in a later article. The rules of DfAM tend to be slightly different for each type of AM/3DP technology. Here we will be assuming that we are using Fused Deposition Modelling (FDM) 3DP but, for instance, in metal AM residual stresses build up in the part during manufacturing due to the high local energies applied by the laser or electron beam. These have to be taken into consideration if warping and possible early-life failure are to be avoided. So, in metal AM, the use of DfAM can involve designing out thick sections where heat build-up can be greatest. This is seldom a significant issue in FDM 3D printing. Two of the main DfAM considerations in FDM 3D printing are layer orientation and overhangs which we will take a closer look at here. Layer orientation When a detail design is being prepared for manufacture one of the first things to consider is the loads that will be applied to it, and 3D printing is no different. There can be potential weaknesses in 3D prints in the “welded” joints that exist between every layer which provide multiple potential crack propagation opportunities. So at the detail design stage the loading direction may need to be taken into account, which can in turn lead to a decision being made on the print direction to be used very early on and that will then set the tone for the rest of the design. In this particular case the stress analysis in Fusion 360 on a loaded side wall of a design shows that the peak stress occurs on the inside face of that wall near to it’s base which, if we were to print it in this orientation, will coincide with the end of a layer and hence one of these potential crack propagation sites : Which can lead to this : The better way of 3D printing this design to withstand this loading condition would be to orientate the printing direction by 90 degrees to ensure that the load is being applied along the layer lines rather than across them. The strength of a part with this layer orientation will be many times greater under the loading condition described previously, though the amount is difficult to objectively state since simulation software taking into account the layer construction of AM is still an emerging area of activity. So this is a DfAM consideration to think about at the very start of your design - what are the main load bearing directions and is it possible to optimise the design to ensure that the way that you will make the part which does not result in loads being applied across a layer? This is the single most effective step that you can take, but it may not always be possible to do that, in which case you need to employ mitigation factors into your design. The usual best practice in any design is, where possible, to add a fillet (or radius) at the base of the wall to counteract these high stresses. This reduces the local stress moves the higher stress point further up the side wall and is an optimal way of adding strength with the addition of minimal material. However, in AM/3DP it is often a better option to use an angled face rather than a curved face to achieve the same effect The reason for this different approach is that the "staircase" of layers in more uniform in the case of the angled face, whilst with a fillet radius the smooth blend into the base results in a longer first layer step which reduces it's effectiveness. So this is another aspect of DfAM where strategies used for other methods of manufacture may need to be subtly modified to make them most effective when using this particular method Overhangs Once the print direction has been selected then the design of overhangs, and preferably the elimination of as many of these as possible, can be addressed. Fewer overhangs means less requirement for support which leads to a more efficient print time, lower material usage and reduced post processing time for removal of supports This is the most obvious way to eliminate an overhanging feature : Things like this are simplistic and often easy to spot, but you may find that your design is more complex than this and there is a tendency to design from experience with traditional manufacturing methods and put in features that aren’t good for AM almost without thinking. For instance in this example of a flanged coupling the features with blind tapped holes for the connection have been designed with a feature that would cause no problem for a moulding process but produce an overhanging area for 3D printing (highlighted in red when viewed in Cura) With some re-examination it was possible to re-imagine these features like this which result in no overhang and hence no support. Rather than fill this post with lots of examples of individual examples of this kind of comparison my recommendation when engaging with DfAM is to regularly check your design in the slicing software as your design develops, looking for those overhanging areas using an inspection tool that highlights those areas, or looking through the layer stack for areas that look difficult to print. The layer stack should be something that’s looked at before every print as a matter of course and is also a great way of spotting issues at the design stage that you may be easily able to address. In Fusion 360 the ability to go from the design workspace to the slicer software (such as Cura) to check for printability can be done with a single click of a button, and without the need for any time-consuming exporting and subsequent importing of .stl files. This can make the iterative process of Design → Check → Modify → Recheck much quicker, and result in a faster convergence to an efficient design for additive manufacture The approaches we have looked at here are when DfAM is applied at the detail design stage and looks to address, and deal with, the drawbacks of 3DP/AM. In a future post we will look at applying DfAM at the conceptual design stage where the advantages that AM has to offer can really become very valuable. This approach can be much more powerful and result in designs that really do provide unique and extremely effective solutions that would have been unthinkable just a few years ago.
  2. 19 points

    Version 1.0.0

    242 downloads

    Here is my full size Velociraptor skeleton. Juste made for the challenge. Lenght: ~180cm Sculpted with Zbrush. Total printing time: ~392h. Printer: Ultimaker2+ Filament: PLA Speed: 30mm/s - 50mm/s Nozzle: 0,4mm Layers: 0,15mm Painting : acrylic paint (spray and brushe)
  3. 19 points
    Especially for you, here's the post again, so you can give it a second like: Yay, picking is working:
  4. 19 points
    Hi to all The 2016 year had inspired some of us in 3D field, we are always looking to improve our jobs and our equipement. For a long time I wanted to print with ultra-flexible filament without meeting all the difficulties due to the bowden tube on the one hand and the disadvantages of weight and power of the direct drive with the stepper motor on the head of printing on the other hand The flexible shaft is an interesting solution but also has some disadvantages and requires a significant addition of adjustments in a specific software to remove them. I tried to find a compromise between these 3 systems, here are the results Extrusion in direct with the usual stepper motor and using the components of the original extruder or those of the upgrade. The system is quite simple by replacing the Bowden tube by a straight and rigid square shaft between the stepper motor and the feeder, the latter 2 being installed on pivot points to be able to follow freely the X/Y displacements. There is little added weight, +/- 10 grs more on the print head, it's why it is called by Neotko " Zero Gravity Direct Drive ", thanks to him for that and also for giving some good ideas There is absolutely no play in operation, extrusion and retraction have become very accurate by having the full torque power. Printing with very flexible filament has become almost as easy and fast as with the PLA My average retraction setting distance down to 1.5mm (1 to 2mm maxi) Now my average print speed is 60mm / s The other settings remain in accordance with the usual settings depending on the filament used. I improved the ringing by lowering the acceleration values ??and the X / Y jerk, (2500/15 UM2 extended) Depth of 150 hours of test performed with different filament types without encountering problems, the videos shows tests of a hobby car tire wich is printed with the 2.85mm Recreus Fila Flex A82 Shore at 50mm/s print speed and 2mm/30mm/s retractation settings. the Bondtech feeder parts are used here for the 2 print heads, a system with the UM stock knurled wheel is in preparation; some other works future UM stock feeder parts uses in a customized" I Roberti" feeder system
  5. 17 points
  6. 15 points
    Hey guys, I would like to share a lever action dual extrusion solution I came up with for Ultimaker 2+. The approach is based on the great effort everyone put into Mark2 and Ultimaker 3. The print head holds two hot ends, which are originally to be installed on standard UM2 head for 1.75 filament. The right nozzle move up and down for nozzle swapping. This compact dual print head can achieve single extrusion print area of 220x223x205, and dual extrusion print area of 202x223x200. Video clips: Files and instructions available at: https://github.com/yyh1002/DXU Credits: Lever lifting mechanism is inspired by Ultimaker 3. The firmware is modified based on Mark2 version of Tinkergnome firmware by @tinkergnome. CURA profiles are modified based on the Mark2 profiles by @tinkergnome and @foehnsturm. Used Mark2Tweaks plugin for CURA by Krys Lawrence.
  7. 15 points
    Missed me? I know you did. - As the Ultimaker 3 is now known and will be shipping out towards people and, (don't quote me on this one) hopefully be in the hands of users by FridayNovember. So, I figured I will explain in depth technical details to prevent surprises and improve knowledge for you. I will assume that you are already experienced with certain things from the Ultimaker 2 or Ultimaker Original. I hope this knowledge will help in understand why things work the way they do, and how to get the most out of your new shiny machine. - Other days: Day 2 - Remote access part 1 Day 3 - Remote access part 2 Day 4 - Electronics Day 5 - developer mode linux Day 6 - active leveling GCode If you are reading this, and you don't know what GCode is, you should read up on that somewhere else first. - So. The Ultimaker 3 accepts GCode. Again. Just like the Ultimaker Original, Ultimaker 2, and almost every other printer. However, after much consideration, we decided to break backwards compatibility. So it is no longer possible to run Ultimaker Original or Ultimaker 2 GCode on the Ultimaker 3. We had good reasons for this, during testing we discovered it was quite easy to run the wrong GCode file and thus get bad/unexpected results, which resulted in wasted time and filament. This is also a lesson learned from the introduction of the Ultimaker 2 go and Ultimaker 2 extended. Where running files for a larger machine on a smaller machine could go very wrong. (Checks have been build in the firmware now, but for running extended files on a normal 2 this still triggers very late) The header! So, introducing: The header. The Ultimaker 2 already had a tiny header, containing a few lines. The Ultimaker 3 uses a new header format. This header contains a lot more information, and allows the printer to make a better decision on if the print job is suitable for this printer. It also allows us to upgrade/improve this header in the future. - This does mean, that if you use a different slicer then Cura 2, you need to put in this header. Slightly unfortunate. But that's why I kick this "insider" posts off with explaining this detail. However, not to worry, we did think this one trough. - But enough talking, let me show you a header: ;START_OF_HEADER;HEADER_VERSION:0.1;FLAVOR:Griffin;GENERATOR.NAME:Cura_SteamEngine;GENERATOR.VERSION:2.1.99-internal.20160623;GENERATOR.BUILD_DATE:2016-06-23;TARGET_MACHINE.NAME:FDM Printer Base Description;EXTRUDER_TRAIN.0.INITIAL_TEMPERATURE:210;EXTRUDER_TRAIN.0.MATERIAL.VOLUME_USED:2060;EXTRUDER_TRAIN.0.MATERIAL.GUID:506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9;EXTRUDER_TRAIN.0.NOZZLE.DIAMETER:0.4;BUILD_PLATE.INITIAL_TEMPERATURE:70;PRINT.TIME:474;PRINT.SIZE.MIN.X:0;PRINT.SIZE.MIN.Y:0;PRINT.SIZE.MIN.Z:0;PRINT.SIZE.MAX.X:215;PRINT.SIZE.MAX.Y:215;PRINT.SIZE.MAX.Z:200;END_OF_HEADER That's a whole lot of information. Some information isn't used by the machine, but can still be useful for diagnostic goals. But let me go over each one in a few sentences. - START_OF_HEADER, END_OF_HEADER, these need to be included. Only the lines in between here are seen as the header, if these are missing, then the Ultimaker 3 will flat-out refuse the file. HEADER_VERSION Once again, this needs to be 0.1 for now. When we make incompattible changes we will increase this number. We are software engineers, so we start at 0. (yes, we had a 0.0) FLAVOR And another one of these. This indicates the flavor of GCode we generated. Griffin is the name for our Ultimaker 3 internal software stack. So this flavor name matches this. It indicates which GCodes are used for what. Which I will go on into detail later. Right now, this needs to be Griffin. (captital G) GENERATOR.NAME This field is required to be present. BUT you can fill in whatever you want. It is to indicate which backend tool was used to generate the GCode. In this case, it's the CuraEngine, still called Cura_SteamEngine as a wink to the past. GENERATOR.VERSION Also required to be present, but same as the generator name, this can be anything you want. It's an indication of which version of a slicer that was used. Useful for diagnostic goals. GENERATOR.BUILD_DATE Pretty much the same as the version, but needs to be a valid date in yyyy-mm-dd format. TARGET_MACHINE.NAME Optional field, filled by Cura in this case to indicate which machine was selected. But you can leave it out. EXTRUDER_TRAIN.{X}.INITIAL_TEMPERATURE Used to indicate to which temperature a hotend should be heated before the GCode file is started. Note, leave out all the EXTRUDER_TRAIN fields if you are not planning to use that extruder. This example is a single extrusion file, and thus does not has lines for the 2nd hotend. EXTRUDER_TRAIN.{X}.MATERIAL.VOLUME_USED When the initial temperature is set, this field is required. You are allowed to set this at 0 if your slicer cannot fill it in. Right now, it is only used to display towards the user how much filament is going to be used (same as the Ultimaker 2). EXTRUDER_TRAIN.{X}.MATERIAL.GUID This field is OPTIONAL. Good thing it is, as it indicates which exact material this file is intended for. As we are using unique codes that can indicate brand material type and color it's easier to leave this field out if you are not using Cura. The Ultimaker 3 will then not check if the material in the machine matches the one for the GCode. EXTRUDER_TRAIN.{X}.NOZZLE.DIAMETER A required field. While we only ship with 0.4 nozzles in our PrintCores right now. We did account for having future versions with difference nozzles sizes. A mismatch in nozzle size and slicing is bad, I don't think I have to explain that. BUILD_PLATE.INITIAL_TEMPERATURE Another required field. This one is important. Because heating up the bed takes a long time. Which is why we want to start heating it up as soon as possible. So we can level, and do whatever we need to do in the meantime. The file won't start till this temperature is reached. If you put this at 0, it will wait till the bed is cooled down before the print. PRINT.TIME Used for time estimates, same as the Ultimaker 2. This is a required field. But once again, put it at 0 if you cannot fill it. PRINT.SIZE.MIN/MAX.X/Y/Z Required fields. Used to indicate how large the print is. As you can see in the example, we just put the size of the printing volume in there. You can do the same. This does mean that a file prepared for an extended, even if it's not tall, will not be accepted on a normal 3. - So. So far the header. Most likely there will be questions. The GCodes While the Ultimaker 2 supported a very wide range of GCode commands due to being Marlin based. We did strip out a whole lot of unused commands in the Ultimaker 3. So to make it extra clear, these are the commands you are used to and are still supported: G0, G1, G4, M104, M109, M140, M190, M106, M107, M201, M204, M205, M302, M400, M117 While not obvious at first, the most obvious missing code here is G28. Yes, you are not allowed to home the head or the bed anymore. As this screws with the leveling correction code. The printer is homed before and after the print, so there is no real need to have this in a gcode file. So G28 does nothing. - Other absent codes are the M82/M83, relative E mode. I don't know if there is a slicer that depends on this. Due to some archtectual things in the code, these commands are difficult to support right now. (Note, I think they do something, but they might stop working in the future, or we will fix the bugs related to them) - I did not list T0/T1 yet. They are however, fully supported, they are more supported then supported. They are very important. As they switch between the different hotends. This means these codes activate the lifting mechanism. So if you want to abuse the lifting mechanism (and we have done this) you just need a long series of T0 T1 lines. It is important that the machine handles this. Not only improves it compatibility with other possible machines, but the "bay" in which the switching happens isn't 100% in the same location for all machines and thus is at a calibrated position, which only the machine knows. Fun fact, we've ran this lifting mechanism test for days and days in a row on multiple printers. I think we have machines with well over 100000 lifts and not showing a single sign of wear. This did take a few design iterations, as the first lifting mechanism prototypes wore out in 10000 lifts. I don't know our full testing numbers right now. But we abused the hell out of this thing. - New code: G280 There is a new GCode command we added. It primes the nozzle with whatever priming strategy the printer has. As we are tracking the position of the filament in the nozzle, the printer has better information on how to properly prime the nozzle. You are not required to use this, but Cura does. - Other codes might still work, but are not officially supported, and we could break/remove them in the future. However, let us know what you miss so we can make sure we are not breaking anything. Compression .gcode and .g are the traditional file names for a gcode file. We are still supporting and using those. We are also introducing a "new" format. And it is everything except hip and fasionable. - It is.... .gcode.gz. The real nerds I have to explain nothing now. The rest of you, this is just a gcode file, but then compressed, a sort like a zip file, but then even simpler. This does mean a massive file size reduction. It uses "gzip" file compression, which is easy to do on Linux, and for example 7zip can do this on Windows. The cool part for us, as software, is that we can read a .gcode.gz file in exactly the same way as a .gcode file. We don't need to unpack the whole file, we can unpack it as we read it. So we don't need to store a 2GB unpacked gcode file when we are printing. End result is that we can fit more files on a USB stick, and we require less time to send a file to the printer trough a network connection. Wrapping it up This is day 1. What will I tell tomorrow? We shall see. Feel free to put in suggestions, but I have more then enough topics. - - Disclaimer: Any information presented here could be wrong. I did my best to proof read everything, but it could conflict with official statements and the actual behavior of the printer.
  8. 14 points
    Difficulty level High Warning, this isn't a easy trick if you don't know every aspect of S3D. And I mean, 'every'. Hi guys,! First, the images... Basic Elements to make this Trick & have cool toplayers (sometimes perfect) - Create a process that REprints only at the height of the last toplayer - Adjust the settings so it doesn't extrude, and it things that his nozzle it's 0.25 size (play with this from 0.25 to 0.35). This trick will make that the nozzle (0.4 for this example) will do MORE passes on the same places, making it a better and smoother sanding. - Adjust the speed of this new process so it's done really fast. Best results so far where at 100mm/s, I had some weird events at 150mm/s and at 70mm/s the speed it's too low and might affect the finish. - You must remove top/bottom layers, set the process to 100% infill and play with the infill angle. - Infill angle of the process MUST occur on the oposite angle of the real print top layer angle. - Extrusion rate of the sanding process must be 0 or 0.02 (it's the less amount s3d allows) What will happen? It will 'sand' the top layer with the nozzle, removing the lines of the extrusion, making the print look much more 'natural' and (ONLY TESTED ON PLA) on PLA it gives a matte (or gloss if you play with the temp/speed & other things...) finish. If you don't know S3D from A to B this will sound like an alien language DOWNLOAD at youmagine my Example in FFF S3D (Factory file with the cube test) Neosanding ready to see how works. https://www.youmagine.com/designs/neosanding-better-toplayers-finish WARNING - The starting/ending Gcode it's the one I use on my machines, IT WILL 100% make the hotend crush with the bedclips, YOU must change it to your machine. If you didn't read this, sorry it's your problem. Also filament size, settings of the normal process, all, it's customized to my UMO+ with 1.75mm, FatIRobertI Bondtech, UM2+ hotend with custom fans. So EVERY setting will need to be readjusted. Disclaimer: I share this so users with basic know-how can understand the concept, I take ZERO responsibility if you didn't read this before using the FFF on your printer. Ok... The first thing to learn to do this trick it's this... Process ORDER DO matter. So... If you have a process (normal print) and the top layer gcode renders 'after' the toplayer sanding effect, then you need to a) Copy/Paste the process (this will make the copied process to pop on 'last' position. b) remove the copied process. Use this method to realign the process up/down as needed. It's the only way to make S3D does the effect just when you want it, and that's just after printing the real top-layer. Edit: Just found out a faster, and easier way to force S3D to do the sanding process after the real print process. If the real print it's done at 0.2000 layer height, then make the Sanding process have 0.2001 layer height. Photos of the basic stuff to have a good control of See that the sanding process it's before the print, this it's unintended. It doesn't need to be group, but weirdly enough it did work. Sometimes Process order won't look this neat, but 99% of the time the sanding process must be just before the real print process. Why? No idea. As you see extrusion it's set to 0.02, extrusion width 0.25 to make more 'sanding' and retractions are off but for big dripping systems (aka 2.85mm or high temp) it might be good to use retracts. The angle of the top layer done by the sanding process, since it has no 'top layer' or 'bottom' it's done by changing the angle of the infill. Remember the object must has 100% infill and NO toplayer or BOTTOM. Old S3D 2.0 did allow to change the top/bottom angle, but 3.x doesn't, so this it's the way to trick it. Since it has no perimeters, you need to increase the outline overlap to at least 60-70%. 99% does work, but might leave marks on the perimeters. If you use 'perimeters' to make cleaner edges, remember to lower this to 40 or so, it's good that it goes beyond the normal area, but not too much. Play with this, each model might need readjustments. Most and most important. On your sanding process you must choose where it happens. Otherwise it will the full object... and.. well, that works too btw, but it will make your print sooo slow and will create gabs of underextrusion on some places Cura? I think to do this on Cura it might need a lot of tricks, you can't make each top layer for each process, and if you mix this and plugins you might just go crazy. I hope @nallath like this and he or other guys make a Toplayer Sanding Plugin to replicate this hack. It works, and works everytime, but it has a few issues that need to be controlled. - It might cause under-extrusion when it goes back to print. I found that the first perimeter printer after doing this effect had a slightly bit less material, no biggie, didn't affect the print. - On high dripping materials this might not work or create mixed results. I did this for PLA since it's the material I use 99% of the time. I don't think that this will be a good idea for materials like wood (easy to scratch) - On very easy to scratch materials, like carbon, wood, etc, YOU might need a Prime tower object to reload the material that did drip. - The temperature of the nozzle while it's doing this will affect the finish. I did some crazy experiments before this playing with z, making the nozzle cooldown, etc. It was ok, but also a bit dangerous because the print could get knockoff, and ofc sometimes the amount of material on the nozzle was too much. - Playing with the Z offset of the sanding process you can actually 'compress' the material, did some crazy tests with this with semitransparent red from colorfabb and was quite cool, but again, that's up to your experimentation. It doesn't work for me, how do I do this!!?? Sorry this it's a really advanced hack with process, isn't something to click-print, and need's a good understanding of how process work and settings, and grouped things share settings, etc... Have fun with process!!
  9. 13 points
    This is a project by a group of community members which was also involved in the Mark2 dual extrusion upgrade. More precisely, it's me coming up with an outside the box approach / weird idea for a certain unresolved problem. Smart people like @gr5, @Anders Olsson, @Dim3nsioneer, @rooiejoris throwing in ideas and @tinkergnome who implants the stuff into firmware. My impression of the current state of development when I started this was as follows. There have been filament monitor projects since the beginning of reprap. Only very few made it to some kind of product state, like the one by Aaron Tunell. Manufacturers like Prusa and others recently introduced some kind of filament monitors, with mixed success / reliability issues. The Duet3D guys set their hardware research (laser-based and rotating) on hold because they were experiencing inaccuracies of +/-20%. Well and then there was Ultimaker ... until yesterday with the S5 All these efforts have been or still are struggling to fulfill the most important objective: NO FALSE ALERTS. Otherwise any filament sensor would quickly render itself useless. What we want to achieve Objectives, the obvious part: zero false alerts detect filament runout ("nothing there") detect filament grinding ("nothing/very little moves") Objectives, the challenging part: detect first layer issues (see video below) detect when real flow leaves a certain safe process window and starts to compromise part quality (first, inter layer adhesion will suffer, then classical under extrusion will be visible) and try to counteract, that's where the real fun starts ... Current state of development We chose an encoder and there's a reliably working prototype for an easy to attach external flow sensor, mounted to the entry side of the feeder. Resolution is in the range of 0.015 mm. It's integrated in Tinkerware with a dedicated menu and we (well, he) implemented a gcode command: M591 T0 S1 E0.5000 L0.01695 R35:130 A0.3 P100.00 I leave the parameter interpretation as a little quiz here. Right now I'm working on a modified design which, besides the encoder, doesn't need some parts which cannot be printed and are in the +30€ range to have them manufactured. But most likely some parts will still not be FFF printable. How can I get this? First give us some more time to test and evaluate. If everything works like intended we might proceed like with the Mark2 project. If we should offer this as a product I'd expect a price tag between 70-100 €. And the UM3? That's the BIG question. Like @Daid recently stated their main market is already different. And indeed, has anyone seen any kind of (hardware) upgrade for the UM3 so far? Feeders are the same, mechanically our sensor fits. Electronics, not sure. Ultimaker originally wanted to use a serial interface on the UM3. For the UM2+ we simply connect the sensor's quadrature output signal to free I/O pins, there are enough left (4) for two sensors for a Mark2 dual extrusion UM2. Ultimaker won't do anything to support a sensor on the UM3. Anyway, if a large number of UM3 users would show interest, they might at least not impede a development ...
  10. 13 points
  11. 13 points
    Recently I started experimenting with cutting out vinyl stickers with my Ultimaker 2 and figured I'd share my method to save time for others if they want to do the same thing. Using a 3D printer to do this is nothing new, it has been done plenty of times before. But this is how I did it. Get comfortable, this is going to take a while. I've tried to make it as easy as possible to do but be prepared to do some tweaking and experimenting along the way. What you need (if you want the software to be free): - A holder and knives. The one I got was this: "15pcs 30°/45°/60° Degree For Roland Cutting Plotter Vinyl Cutter BladeHolder" http://r.ebay.com/STTdJx - A printed holder (see zip) - Some vinyl: Available from arts and craft stores, ebay, sign makers etc. I got a random piece from Ebay to try. - Vinyl transfer tape (or in my case, some random blue painters tape from tesa I had in the junk drawer that worked well) - Inkscape to create your design: https://inkscape.org/en/ - dxf2gcode: https://sourceforge.net/projects/dxf2gcode/ - Better Better DXF Output for Inkscape: http://tim.cexx.org/?p=590 - Pronterface/Printrun: https://github.com/kliment/Printrun A slightly modified version of the DXF exporter and dxf2gcode with my current settings are included in this zip: http://www.theintarweb.net/ultimaker/vinyl/um2_vinyl_cutter.zip Setting up your hardware Print out the little mount that is included in the zip. It was made quick and dirty, but it works well enough. Attach it to the head using the screws that hold the fan shroud in place. Install a knife into the holder and adjust the amount it sticks out so that it just barely cuts through your vinyl, but not through the paper backing. It's important to get this distance right or you will either not cut enough, which means you can't remove the excess vinyl, or you'll cut too deep and ruin your knife (good thing the knock-offs are cheap ). As you can see in the image, we're talking a tiny amount that the knife is sticking out. Try the setting on a piece of vinyl by pushing the holder up against the vinyl and dragging the knife in a circle. Try peeling the circle out. It will be obvious if you're cutting too deep or not deep enough. Adjust accordingly. I also recommend using some fine sandpaper to polish off any sharp edges on the front of the knife holder as it will be dragged across the vinyl. Push the holder into the mount in your printer and use a short M3 screw to secure it in place. Install Pronterface and connect your printer to your computer via USB. Set your baud rate to 250000. Choose the correct port (you can find that in the Device Manger in Windows under the "Ports" section) or just pick one from the list in Pronterface and try connecting until you find the right one. The printer will go *clunk* and the lights will go out temporarily, this is normal. You now have full control over your printer. We will use this program to figure out the correct z-distance for your installed knife. Start by clicking on the homing button (the small house) to home all axes on the printer. Next, move the head into a position where you can get a good view of it in relation to the glass. I like to put it in the middle of the bed, slightly towards the front. You do this with the large circle area of Pronterface. Click the different quarter circles to move the head in increments of 0.1, 1 or 10mm in X and Y. Now it's time to raise the bed. In the lower right corner of Pronterface there's a small field where you can put in GCode to be sent to the printer. Type in "G0 Z20" and hit enter. The bed will now move up and stop 20mm from the tip of your nozzle. Now use the buttons next to the quarter circles to raise the bed further until the tip of the blade is just barely in contact with the glass. Type in "M114" into the little box and hit enter. The printer will now give you the current Z-height (in my case it's 1.7mm). Write this number down. Optionally you can also print out "um2_bed.pdf" from the zip and put it underneath the glass. It makes it easier to position the vinyl pieces. Setting up and using the software Start by downloading and installing Inkscape. After the installation is done, unzip the contents of "b2_dxf_output.zip" directly into your "[installation directory of inkscape]/share/extensions" folder. You will be asked to overwrite "simpletransform.py", this is normal. Unzip "exe.win32-3.4.zip" to a place of your choosing. I've included a file called "decal_helper.svg" in the zip. You can use this file as a base to make things easier to position. Make sure that any shapes you draw are not on the "IGNORE:HELPER" layer. That layer will be ignored by dxf2gcode. Also make sure the design is within the red outline. When you're done with your design go to File->Save a copy. Under "Save as type" select "Better Better DXF Output (*.DXF)", this is the extension you installed earlier. If things go according to plan this will save your file as a DXF that dxf2gcode likes (it chokes on the default exporter that is built in by default in Inkscape). Now open up dxf2gcode and go to Options->Configuration. You probably want to start by changing the two paths shown on the top right as you will not have those folders on your system. It's not strictly necessary to change it, but it makes things less of a hassle when importing and saving files. Next, go to the "Machine config" section and put in the value you wrote down earlier in the "Final mill depth" box. Yes, this means that the gcode produced will cause the printer to raise the glass so that it's almost touching the blade when cutting. BUT, we set the blade in the holder so that it only peaks out enough to cut the vinyl, so as long as you have vinyl under the holder, the "springiness" of the gantry will let holder move up ever so slightly and the knife will cut to the perfect depth. Hit "Apply" and close the settings. Now it's time to load the dxf-file you created via File->Open. It may take a little while for the program to process your file. When it's done you'll get a warning about some elements being too short, just hit OK. You should hopefully be looking at something like this now. In this screenshot I've zoomed in on a corner of a path to show the drag knife compensation that dxf2gcode does. This is one of the reasons I picked this program, the other being that it's free. As a last check, make sure that "Z final mill depth" matches your value when clicking on one of the shapes. Now it's time to export the file via Export -> Optimize and Export Shapes. We're almost done. Cut out a piece of vinyl and attach it to your bed. This is where the guide lines in my Inkscape helper-file and the printout comes in handy. I like to put a piece of tape on all sides of the vinyl to make sure it stays firmly planted to the bed. You can probably get away with less, but tape is cheap. Switch back to Pronterface and open the file you just created. Finally, it's time to try your first cut. If your printer has been turned off since you last used Pronterface, remember to home the machine first with the little house button. Hit the Print button and keep a finger on the power button of your printer in case something goes horribly wrong. If all goes well you should now have a freshly cut piece of vinyl ready to clean up and get ready for application. Remove all the excess and then apply some vinyl transfer tape. Use something like a credit card to really push the tape onto the vinyl to make sure it sticks properly. If your design is a bunch of small shapes (text for example), I recommend putting the transfer tape on right away, scrub it down really well and then carefully peel it off, this will lift the letters from the backing (with some patience and a helping hand from tweezers/scalpel). I found this to be a lot easier than trying to pull the excess away from around the text. Did you make it all the way down here? Sweet!
  12. 12 points
    Mark2 is an asymmetrical multi-extrusion upgrade for the Ultimaker 2, based on Foehnsturm's magnetic tool changer. It offers some unique features compared to conventional approaches. Keep it smart and simple The Mark2 upgrade doesn't require to modify or even disassemble the well-working single extrusion setup. Instead it adds a detachable second extruder. This leaves you with several benefits. Powerful - print quality on par with eg. the UM3 or BCN3D Sigma Flexible - use whatever you want: Olsson ruby, 3Dsolex block / nozzles, ... Cost-efficient - all you need is a second drive train, some magnets and screws Simple - all tried-and tested standard components Smart - Z-offset managed by firmware, calibration wizards Open & scalable - a non-extrusion tool head, a 3rd extruder ... all possible Mark2 is an Ultimaker community project, we don't offer a complete kit but we can help you out with a package, including all the parts you need, besides the second drive train. See it live Probably the best way to get an impression of the usability and print quality is to watch a few videos. https://www.youtube.com/watch?v=PLeNzDYMnqAqIeZHWU9iOWnj_2OaemupQG Full Cura 2.5 integration Mark2 comes with a set of Cura definition files and can be added as a pre-configured printer. Tried and tested Mark2 setups have been printing for more than 5.000 hrs now, which equals more than 500.000 tool changes. Beta-testers and co-developers include well-known guys here like Tinkergnome, Ultiarjan and many more. The Mark2 website ultimaker-mark2.com is the place where you find all the information you need for doing this upgrade. ... and The Mark2 Dual Extrusion Project Contest is still running.
  13. 12 points
    How can the very latest, cutting-edge design software combine with a 5,000 year old manufacturing technique to deliver outstanding weight reduction opportunities? Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts upon the energy usage of the product during it’s service life. Lighter products mean less fuel to move them around, which can make our fossil fuel reserves go further, or make more efficient use of the renewable energies that we’re now beginning to adopt. Generative Design (GD) is the very latest design software released by Autodesk and is now included in Fusion 360, which is at the heart of their "Future of Making Things" strategy for Design and Manufacturing. It changes the way we design things and can deliver very efficient designs that deliver structural performance with optimised use of material. The aerospace industry is expected to be one of the early adopters of this technology because in that industry the cost and environmental savings from improved fuel efficiency carry the greatest rewards. Also, I see interest from the automotive industry for the same fuel efficiency reasons, but in the long term the drive for lighter weight parts could benefit many industries, even those outside of transportation. Another example of the benefits of lighter weight alongside reduced material usage is that shipping costs for parts reduce as their weight reduces, which can therefore also deliver cost efficiencies. GD is targeted initially at metal parts where the biggest opportunity for light-weighting exists. The complex forms it generates though often means that parts conceived in this way cannot be made with conventional manufacturing routes. They therefore need to use Additive Manufacturing (AM) techniques to produce them. The route of using high energy, laser-based AM to do this comes with associated high costs because of the specialised set-up knowledge required together with expensive processing, and post processing, to deliver a quality-assured part. This project explores the possibility of a more cost-effective route to a metal GD part which, even though at this stage may be just used for a small quantity of evaluation prototypes, can act as an enabler for understanding the potential that GD has to offer. This is the baseline design for this project. It is an aluminium bracket design similar to those used in aerospace applications to mount control surfaces, and in this form has not been optimised for weight. This design would weigh 383 grams in the intended material, aluminium A356. After processing this through Generative Design in Fusion 360 it’s time to review and evaluate the many alternative design options presented and decide upon the design that is considered the most appropriate taking into the other factors that have an influence on design selection such as manufacturability, aesthetics etc. This was the design option chosen for this part and Fusion 360 was used to create the final version of the model. The bio-mimicry that’s evident in most of the designs created by GD is interesting to see, in this case the design of the part can be seen as essentially a swept I-beam (which engineers, especially those in construction, are taught is a strong section), but with tendon-like attachments back to the mounting points to carry the tensile loading that’s created by the applied loading conditions What GD does is to turn the standard design workflow that we’re familiar with on it’s head. Traditionally we design a part and then stress test it virtually to determine if it fulfils the required structural performance. Any failures seen during this process require an iterative loop back to the design to correct them. With GD the stress analysis is a core part of the design synthesis, and happens as the part design iterates, which means that the output at the end should meet the requirements of the intended loading requirements. The software is searching for an optimal solution where the stress is ideally evenly distributed across the part as can be seen above. To prove that everything is good with the finalised design this part has then been virtually tested again in Fusion 360 to confirm that the original loading requirements are still met So we've created our lightweight part design, and maybe now we need to produce that in aluminium A356 to do some physical testing, but don’t want the expense of using a metal AM process. What follows is a way of achieving this where FDM 3D printing can play a role as an “enabler” to help create the final parts in conjunction with a very old (if not ancient) manufacturing technique called investment casting. This technique is 5,000 years old according to Wikipedia. The company involved with casting this project is Sylatech who have been using Ultimaker 3D printers as part of their process for investment casting of prototype parts Sylatech took the .stl file of this model and used it to create a 3D print of the part on an Ultimaker 3 in PLA. This PLA part was then used as the pattern in the investment casting process where it is submerged in plaster under vacuum conditions to ensure that all air is excluded from the mould and creates an accurate reproduction of the surfaces of the part. The picture below shows a display box which demonstrates the set up of the 3D printed parts partially encased in plaster. Once the plaster has hardened the casting box is put into a furnace at very high temperature in order to burn out the PLA, leaving behind a cavity into which molten aluminium can be cast. After solidification of the metal, and cooling of the mould, the plaster is broken away from the parts, and then they can be quickly and easily removed from the material feed gate resulting in these aluminium A356 versions of the PLA original. The final part weighs 122 grams which is a weight saving of 68% over the original baseline part, which shows the potential that GD has to make significant reductions in weight and material usage. Using this method we now we have an excellent quality physical part made very quickly in the final intended material in order to commence some physical testing.This is a different route to get to that physical test part in metal at a fraction of the cost of having it metal additively manufactured. It also shows how a brand new, cutting edge piece of software that only became available in May 2018 can combine with FDM 3D printing (which many people still see as a new technology even though it’s been around for over 20 years) and a 5,000 year old manufacturing technique to deliver potentially huge benefits in weight and material usage. Using the investment casting route in this case study is why I chose the title for this article, and shows that we can effectively go “Back To (Deliver) The Future”. Do you see the need for lighter weight parts in what you do, and can you see the potential benefits of using Generative Design and this method of producing metal parts? I'd welcome comments, suggestions, and discussion about any aspects of the above article, the next steps that I'm looking at are how this process could scale up to batch production of the parts using 3D printing techniques that could support low volume production quantities
  14. 12 points
    A small update, we are doing a lot (A LOT) of testing to optimize every single part, from print time to assembly to tutorial videos. Is quite a lot of work, but so far we are on a really good point print quality. Ofc like any beta testing we found stuff to improve. Right now we have 3 versions and we are testing every single part as much as we can. Basically from the first design to the new we had 5 versions, and atm the last 3 versions are under stress testing. Also please, if someone has a REALLY difficult print, something that requieres finesse and precision, I would like to print it and test it to see if there's any weak point. Ofc if someone want to share it with me and keep the files form being public that's ok too. I would really like have an architecture file or something really challenging apart of voronoi and very thin walls. Also after talking to @bondtech and we just got 2 ideas that could be really interesting for the guys like us that want as much precision as possible from the extrusion, up to the decimal points of estep calibration for each kind of filament. Very interesting stuff, we will publish more when we have more tests of this ideas.
  15. 12 points
    successful proof of concept !! the first print is done...
  16. 12 points
    Are you one of the many users who need to stop Cura from using the whole CPU as soon you drop a STL to slice? Do you want to enjoy the freedom of being able to change settings without the constant autoslice bullying you? Very easy: Quick tutorial to stop Cura from autoslicing at every single change. How to: - Change Flow to 1% - Done! How to restart autoslice - Change flow to 100% - Done! Easy enough? So easy I made a video, because this deserves it! a 3 Minutes video! That's how much I enjoy this trick Note, yea my English is NO BUENO. I know Press Like on this 'idea' to show that you like to be able to stop Autoslice! (or don't if you love to use more CPU than necessary and you don't care about energy savings or the poor Rain Forest!)
  17. 12 points
    Been playing around a bit with Colorfabb HT clear, trying to get it as clear as possible. This is the latest print I made and I'm pretty happy with this one. As an extra experiment I also tried "suspending" something inside the print, sort of like those 3d laser etched crystal things you can get. Post processed by wet sanding (240-320->600->1200), followed by polishing paste, followed by a polishing wheel. I tried some clear coat in a rattle can as well but I think I suck too much with one of those, I got better surface clarity with elbow grease I also had to baby sit the print and pause it a few times to clean off the nozzle. HT loves sticking to the nozzle, burn into black goo and then drop into the print.
  18. 11 points
    I'm working on a plugin that changes the new GUI in Cura to be more settings-centric by adding back the concept of a sidebar. If you can't get used to the floating panels in the new GUI, there will soon be a plugin for you. While rearranging things into the sidebar, I am also taking the chance to rearrange some other bits: move X-ray from the Preview tab to the Prepare tab in my opinion it makes more sense to detect/show errors *before* slicing reunite the Open button with the Toolbar Fitts's law suggests keeping distances between small items smaller; I just dislike having UI elements in all corners of the UI. add the same menu and sidebar between Prepare and Preview so things don't jump around The plugin is currently in the state of a proof-of-concept; there is currently no way to switch between the Recommended and Custom sidebar, and there is no way to change the materials/printcores in the sidebar. When all standard functionality is in its new place I'll post a prerelease here before publishing the plugin to the Marketplace. If you can't wait, you can check out the code here: https://github.com/fieldOfView/SidebarGUIPlugin Things I'm considering: integrate the action panel into the sidebar move job name into sidebar move standard view items into view options/legend area The plugin is a spiritual successor to the Compact Prepare Stage plugin, though it was written from scratch with a different end-goal in mind. That plugin will not be developed further. Update: a beta is available below:https://community.ultimaker.com/topic/26014-sidebar-gui-for-cura-40/?do=findComment&comment=229800
  19. 11 points
    Here’s my new printer cabinets to keep noise in my office down and to store them in a neat & tidy way. Made by my favorite furniture maker. PSU, cables, Raspberry Pi with OctoPrint are stowed in the drawers underneath the printers. The printers can slide out for filament change or other maintenance. The doors have gaskets so the noise can’t escape.
  20. 11 points
    I MADE A BETTER AND INTERACTIVE GRAPHS HERE: http://gr5.org/mat/ Okay well this post will grow when I add temperature properties. I've been thinking about posting this for a few years. Here is a graph showing some mechanical properties of some common filaments. Please read explanation as this is a complicated subject. Click to zoom in on chart (click 3 times - first click zooms, second click jumps to actual image, third click zooms into that). Higher up is stronger. Farther to the right is stiffer (not steel). Both axes are logarithmic. Most data is published by various manufacturers. I have personally verified a few of these numbers with my own equipment. VERTICAL AXIS So the vertical axis is tensile strength. It's measured by pulling on a cylinder of material from each end until it breaks. Divide the force by the cross sectional area and you get the strength in psi (pounds per square inch) or MPa (mega pascals) for those who prefer metric (like me). Anyway this is kind of complicated because the materials towards the left are quite stretchy and long before their breaking point the parts are damaged. The point where it won't bounce back is the yield strength but I choose the ultimate aka breaking strength. Or whichever was higher (some materials actually start to get weaker again - like steel. Or PLA). Now the weakest material shown, PP is actually showing the yield strength - it is actually much stronger than you would think so this is unfair. But the machine that UM used to test PP wasn't long enough to test this value (the part never broke). HORIZONTAL AXIS This is the tensile young's modulus wherever possible (sometimes it's the flexural modulus which is close enough). This is tricky and complicated but for the most part indicates how stretchy/flexible a material is. So ninjaflex on the left edge has very similar flexibility to a rubber band. Most nylons (except shapeways) are much more flexible than PLA or ABS and this makes them very tough. Materials to the upper left will be tough as hell. In fact anything to the left of and including "nylon UM" can probably be driven over by a car and come out just fine afterwards. Or a tank. Or you can throw it against a brick wall with full strength or hit it with a hammer. Most of those materials in most shapes can handle it. Tough. Materials to the lower right are more likely brittle (hence glass is the most brittle). XT is probably somewhat brittle among filaments (I've never tried it). Materials to the right tend to be hard. The hardness scale and the modulus are closely intertwined. Things to the right are harder, to the left are softer. Specific Materials The table that created the graphs here is at the bottom of this post. Red materials above are for comparison and are not filaments. ABS is shown in green above - this shows how different people testing the same material get different results. Most of these tests (maybe all) were done on printed parts which will be a bit down and to the left of injection molded parts. Two different companies tested Taulman Nylon 645. With professional equipment and also got different values hence the two data points. UM=Ultimaker in the chart. XT is colorfabb. POMC is delrin. I'm very skeptical about nylforce CF specs. If someone wants to send me some I'll print and test it with my stress/strain machine. In the graph above there are a few points to keep in mind. Materials with low softening temp are the easiest to print because they don't warp much in the temperature range from this temperature to room temp. It's only about 30C difference. As you move to the right the yellow group of materials is a little harder - parts are more likely to warp off the bed so you need to learn some tricks. Maybe. They really aren't much worse. The orange area with ABS and other materials are tricky now for a few reasons - they don't stick as well to the bed, you are now getting into materials with layer adhesion issues so you need to lower the fans, the bed takes much longer to heat up - you really need to enclose the printer to raise air temp to around 35C to get decent quality. The red group needs nozzles that can go over 300C (no teflon please!) and print beds that can go to 150C and ambient air in the printer at 80C. So this requires special equipment. Also as you move to the right your materials can handle working environments of higher temperature. The green materials can't handle a car with windows rolled up on a hot sunny day (neither can a human for that matter). The yellow materials can handle this but can't handle boiling water. The orange materials can handle boiling water. SOFTENING TEMP (horizontal axis) In the graph above the horizontal axis is a mythical characteristic called "softening temp". For many of these materials in the green and yellow area I have tested them myself personally by sticking them in hot water. Above a certain temp they can be easily bent and when they cool a few degrees they stay in the new shape. That's what I call the softening temp but in reality this value came from HDT (heat deflection temp) or glass temp in other cases or functional temperature in other cases. It's a mixed bag. So it's very approximate! Normally you want the heated bed at a temperature a bit above this temperature such that the material is soft enough to flex a little and spread out the warping forces. PRINTING TEMP (vertical axis) Also somewhat arbitrary as some materials like PLA have a wide range of printing temps. Also variation in heater block design and variations in nozzle length, filament diameter, airflow touching nozzle, and more - affect what this temp should be. But it is a good place to start. Mostly I'm just showing that the red materials need special equipment to print them. The green, yellow, and orange materials can all mostly be printed by most printers no problem. In table below, take all values with a grain of salt. Especially temperatures. For tensile modulus notes read "horizontal axis" paragraph far above. For tensile strength read "vertical axis" far above. For softening temp - please read "softening temp" paragraph above. I've already fixed several mistakes in the table below but ONLY on the website - please go my website for better data! gr5 materials
  21. 11 points
    Hello! Je reviens par ici avec un nouveau montage: Utilisation de PLA avec une buse de 0,4. Le squelette a une envergure de 1m60 ailes déployées. Pour s'imaginer, le crâne du bout du bec au bout de la crête fait 40cm (je l'ai imprimé en 3 parties), ce qui m'a un peu fait suer pour l'assemblage (peur que le poids fasse pencher l'ensemble ). Mais au final ça a été. Je ne saurais pas vraiment dire le temps total d'impression parce que ça fait un petit moment que ça a été fait. Mais bon, le temps de peindre, faire son petit coin photo etc etc....
  22. 10 points
    I was asked to sum up some facts about the alternative "tinker" firmware. Here are the basics and the main links to start with it: What is the "Tinker-Firmware"? It's an alternative firmware for machines of the Ultimaker 2 series. The main development was made by me in my spare time. It's open source, based on the standard firmware from Ultimaker, but driven by the community. One of the benefits is that special requirements can potentially be adapted faster. At least there's a good chance that someone 'jumps on the bandwagon' and implements it. The tinker firmware does not work on an Ultimaker Original, but @amedee made an excellent job and offers a free online firmware compiler for these machines: https://bultimaker.bulles.eu/ If you want to learn more about firmware in general (what it does and how it works), you find more information on the homepage of the Marlin Firmware: http://www.marlinfw.org/ What are the differences to the standard firmware? Basically - the user interface. Most of the "driving logic" under the hood is untouched and derived from the Ultimaker standard firmware (and finally from the Marlin firmware). The menu structure of the tinker firmware is intended to support the needs of advanced users and tinkerers. In the beginning I developed it only to fulfil my personal interests, but it began to grow after I shared the result with the community. The initial intention was easier access to the 'tune' options during printing. In addition: more preferences are configurable directly on the printer. For example: the beep on key-press and the printing area can be changed without the need to re-compile. There is also a 'sleep timer' that switches the light off after a configurable period of time. It's unlikely that something on your printer gets damaged by this firmware, but there's no guarantee. You are using it on your own risk. If necessary, you can always re-install former versions (or the standard firmware) with Cura. After a subsequent factory reset all behaves like before. How to get it? At first: be aware that I don't own all printer models by myself. It should work, but each new release should be considered as "untested" until the contrary is reported. Still interested...? The source files and ready-to-use binary files for several variants of Ultimaker 2 and 2+ machines are hosted on GitHub. Just download the appropriate hex-file for your printer and store it on a local drive. The file names should be pretty much self-explanatory: https://github.com/TinkerGnome/Ultimaker2Marlin/releases The hex-file can be installed on the printer with the assistance of Cura. If you own an Ultimaker, you probably have already installed it. If not, you can download the current version of Cura from the Ultimaker site: https://ultimaker.com/en/products/cura-software Within Cura 2.3.x. choose from the menu: "Settings" -> "Printer" -> "Manage Printers" Take care that the active printer is the one that you want to use for the firmware update and connect printer and computer with the USB cable. Click on the button "Upgrade Firmware" and choose the option "Upload custom firmware". Where to get help? There's not much documentation for this alternative firmware yet. Just explore the menu structure on your own... If you have further questions you should ask for assistance on the Ultimaker forum. There are many active and cooperative community members. Please use the original topic from the link below for questions, suggestions and discussion. That helps to keep everything in one place. https://ultimaker.com/en/community/7436-more-information-during-print You can even join the team and contribute by yourself, just offer your skills and ideas there. If you notice a specific issue, you can also report it on the GitHub page: https://github.com/TinkerGnome/Ultimaker2Marlin/issues Have a good time!
  23. 10 points
    Here's my entry in the contest, as the Netherlands are big in Logistics I decided to design a set of material handling equipment (MHE) I made 7 vehicle types, each with a variety in loads to carry, making a total of 22 unique pieces. Looking from top to bottom; NAT ; narrow aisle truck (man up) FLT-2T ; 2 ton electro forklift RT ; 1.6 ton Reachtruck OPT: orderpicktruck with 3 rolcages Tow ; Towtruck FLT-4t-; 4Ton Gas powered forklift FLT_10T ; 10Ton diesel forklift Print the files as they are, laying flat, I printed them quickly in PLA, using a 0.4 nozzle and 0.15 layer. You can find all files here on YouMagine, including a step file so you can make any changes in most CAD software, if you make any new variants please share them back.... https://www.youmagine.com/designs/material-handling-equipment-scale-1-100-architect-design-contest-vehicles and to promote the contest a bit I also uploaded here; https://www.thingiverse.com/thing:2975986
  24. 10 points
    I been testing for almost two months a different bed glass called Neoceram as an alternative to the UM bed glass, so here they some my impressions and 'why'. Neoceram is a Ceramic infused glass made by a Japan company. Is a glass designed to withstand up to 800C heat impact. Why it can do that? That's one of the interesting things. The Neoceram glass doesn't 'Expand' when it heats up, it doesn't change of shape when heating up, so it doesn't break, chip, or get damaged by heating/cooling. A video is worth a thousand words right? Well this guys sell this for Fireplaces, so yea it can hold heat. Why is this interesting for a 3Dprinter? - Glass wont change shape when heating. So even without PID on the bed, the print won't suffer from changes of temperature (All umo, um2, um2+ without Tinkergnome firmware work on a Bang Bang Mode for the Bed) The other advantage is that it doesn't loose structural integrity when used, because Tempered Glass looses strength when heating/cooling due glass expanding/contracting. Neoceram Glass, specially on the range we use, has a expansion close to zero, so even at 120C the shape would remain the same. (OFC the print might compress when cooling down, because Plastics do compress) I have used this glass only with PLA and GreenTec, Recreus Filaflex and other flexibles. There's a clear improvement on adhesion strength, but the improvement isn't enough to replace hairspray, at first it did seem like it was enough, but isn't. It grabs better, but it doesn't replace hairspray for adhesion when using materials like GreenTec. But, for flexibles it did improve the adhesion. Why the fast cooling is interesting? Very easy. You can get your hot plate at 100C (with gloves doh!) and put it under a water, freezer, etc. Just after print has finish. Making the slow down of waiting it to cooldown close to nothing. With UM Tempered Glass I have damaged 3 glasses on this last 6 months now that I use Greentec + Hairpsray + Fast cooling at 60C to remove the print parts faster. Is the only way to keep the production cost down for me (speed). So I been using this Neoceram glass on two printers for this 2 months and I been pushing the limits of what you shouldn't do every day. And this are my impressions (but remember I'm no engineer, I just hack & chop and test everything I find) - Temperature is more stable along the print bed when using Neoceram. - The Gloss side has a almost invisible, but is there, 'Frosted' texture, so that's how the back of the prints look, but ofc it leaves a shiny gloss look. - Is Cheaper than UM Tempered Glass. - Not even a scratch after many forced pulls to remove them (to test it). - Is REALLY flat. So, how flat it is... That's a good question. The long history I did search for a few days for this glass. There's a 3D printer on USA that uses neoceram glass, but they sell the bed glass for an absurd 70-80€. So after many google hours, I did find one where the price was ok (because most of the places I found the lowest price was around 40-70€) The shop where I bough mine cristalamedida.com (I did pay for my stuff and they didn't give any part free and I also don't have any deal with them) allows to cut the size custom, so it was around 25€ each glass. So after getting the glass and testing it for weeks, I did contact the shop to know more, and surprisingly they where very very nice and did explain quite a few things about, why this Ceramic Glass is better than Tempered Glass. Tempered Glass is made on a Tin Bath (like @tomnagel said on a post long ago). So I asked this guys about that, and the guy Sergio from Cristalamedida did send me a mail with all the info about why the 4mm Tempered glass are how they are. Sergio told me that So well, just get a Caliper and measure your bed glass. The other issue he told me is that since Tempered Glass is cool down on tin bath, the cooling ratio allows the glass to suffer some degree of curvature. Making our bed glasses less flat. And about how flat UM bed glasses are ATM: This is the 'check' I did after buying 3 Glasses to the UM distributor in Spain I could clearly see that they where 'Banana' more than flat... Fortunately UM distributor is awesome (kudos for Tr3sdland) and I was able to return the bed glass (after send the video and explaining my concern ofc). And that 3 UM bed glass where 100€ with delivery. So, how flat is the 2 Neoceram Glasses I bough? Really really really reaaaaaally flat. Does that mean that yours will be? Dunno I don't sell glass ! So... I did ask Sergio again about the Specifications of the Neoceram Glass they sell, you know the PDF info about Flatness, heat resistance, all the info one gets when buys a product (the kind of Info UM doesn't offer when he sells a bed glass, because well is their right not to offer details of where the bearings, glass, etc etc come...) So this guys did send me the PDF of the brand they use for the Neoceram glass they sell: - I have upload the file to my dropbox so anyone can read it The flatness Neoceram glass gives is of a Flatness ≤ 0.3% × D So.. 0.3% for a 4mm, now we move on a 3.98 to 4.012mm range? Well officially this Cristalamedida guys they sell it as 1.0mm +-, but ofc that's to be safe from people with calipers like us. I was worried when I bough it but I can't be happier with my Neoceram glasses. So... Remember this is my own opinion, based on how I work day after day.
  25. 10 points
    Gudo agreed on sharing this early beta designs. As soon I get more time I'll upload the um2hotend Beta (NO INSTRUCTIONS FOR NOW) if someone is brave enough to use the ZGE with Mark 2. It uses a 4dia 3mm depth magnets and it uses 31 for a full 2 head setup. So, isn't assembly friendly but the design really rocks. So, for now just photos. Oh also UM3 Core version for um2 zgemark2, Gudo is testing it just now the first designs. It will only need 2 fans for the print cooling but each head will have his 5v fan. The fans are very easy to assemble or remove and every part is modular. The clip system uses a 'spring-magnet' system, that so far looks amazing but need's testing. Also the print precision will be really crucial on the clip system. Also Gudo moved the bed, by changing the screw points, this gives a 1cm area for the hotends to rest, so they don't need to rampup/rampdown while park/unpark. Also the magnet clip system allows for smooth removal to avoid any misstep lost or shift on movement forces. I'll share more when I know more I have printed a full version but my reseller doesn't have um2 3 aluminium parts in stock so I'm waiting for other source arrival to start assembling it. @Gudo will post more about this soon. Also since the files are on my dropbox, if anyone wants to beta test, PM me with your email so I give you read access. Edit. At the moment I can’t test this, I have all printed, but my agenda is getting fill of stuff to test and work.
  26. 10 points
    Hi to all ! Thank you neotko for the introduction, also thanks for the support and help of the entire Mark2 team, sorry for not mention all the names, you will easily recognize. As you can see, the goal was to adapt the ZGE DD extruder to the Mark2 magnetic tool change, for reasons of room in order to install a Dual ZGE, it was necessary to review and modify the Mark2 magnetic tool change system , print heads and routing while respecting as closely as possible the the Original Mark2 operations. It was necessary to install a second docking holder mirrored with the front right docking at the printer's left front, which necessitated modifying the magnetic tool change routing while retaining the possibility of exploiting the Mark2 firmware in almost its totality. This firmware tool change modification was realized, as usual with great success by Tinkergnome that I will never thank enough! In order for the ZGE use, to retain the print head and to ensure a very sure clamping of it , a magnetic locking/unlocking lever system has been set up, the lever exploits the magnets force more as springs to stay mechanicaly in locking position, it’s impossible to remove the head without turning by hand or by the unlocker docking key the head locking lever, so the magnetic tool change, while staying very smooth, needs much less force to dock/undock with no risk of motor micro misstepping issues or anything else. Also the fact of being able to dock the 2 heads, it has been logical to provide to that a single common cooling unit which stays attached to the gantry. This has given some advantages such as, less loss of print aera and the same weight is always supported by the gantry, a same print speed could be set if the materials are identical to the 2 print heads…, Print head Offset at less 0.5 mm tolerance X : +/- 18mm Y : +/- 0mm Z : +/- 0mm For all the rest the dual mode settings and operations are completely similar to the original Mark2 The result is quite satisfying, the Foehnsturm magnetic tool change really opens very interesting prospects and also for future the use possibilities of tools other than the FDM print head. Sorry for having not made the system with the wellknown UM2 hot end, as I got 2 UM3cores thanks to neotko ,I was very curious to tested them, contrary to all the uncertainties, I can say that it works wonderfully ! . Anyway any decent hot end could work with the system under condition to make the appropriate hot end holder adaptation.
  27. 10 points
    My name is Ruben, I'm a 26 year old software developer working at Cura. I've been at Ultimaker for 3 years. My day-to-day task consists of processing bug reports, fixing bugs and developing new features for Cura. I like to think of myself as the one guy that knows about all components of Cura: Front-end, back-end, translations, profiles, etc. Basically being very broad. Nowadays I'm not the only one any more that knows both front-end and back-end, but I'm still quite knowledgable about Cura and the go-to guy for a lot of colleagues. I'm quite an idealist when it comes to open source software, and a champion of keeping Cura open. So I'm doing the best I can to keep the process open, keep Cura usable for the whole of the 3D printing community, and involve the community. The other influence I try to exert on Cura is to make it more stable (as opposed to featuritis) through automating tests and taking care of bug fixes. Aside from work I like to play bass guitar, write subtitles for films and of course to program. I'm afraid no music of mine has been published on the internet, but you can see my subtitles online and of course my hobby programming projects, though I'm afraid that I tend to not finish most of those.
  28. 10 points
    I am very pleased to be given the opportunity to publicly reveal our current project. We have been commissioned to produce a studio scale Imperial Star Destroyer to coincide with the upcoming release of Rogue One which is scheduled for release this coming December. Our Patrons wish to, at least for the time being, remain anonymous however they have graciously given us permission to reveal publicly our project. We wanted to wait until we reached an important milestone that was far enough along to demonstrate the size and scope of this project. This is a mixed media project using both our Ultimaker 2+ Extended and our X-Carve with J-Tech Photonics 3.8W laser. We decided at the outset to tackle perhaps the most difficult section first the drive section and so far we are very pleased with the results we are getting from our process.
  29. 10 points
    quick update on the "CORE HEAD" decided to improve the electronics connector mounting, so I made a tiny pcb on my shapeoko, using a small engraving cutter. Finally also made the aluminium bottom plate, cut the main shape on the shapeoko, drilled the 60 degree center hole, and manually made the needed chamfers. Not the most accurate process but ok for now. Mounted the whole thing, did 2 prints, big improvement, think I nailed it this time. Used fuzzy skin in this print, don't really like the looks on this model but the print is fine imho.
  30. 10 points
    Want another teaser? ... I made some decorations for next Monday In summary approx. 40 printing hours without any problem. Sliced with Cura 2.3.0 Printed on Ultimaker 2 with (dual) Extrusion Upgrade Kit foehnsturm toolhead changer foehnsturm "Spandex" add-on
  31. 9 points
    This is day 2 of "Inside the Ultimaker 3", Remote access. - Other days: Day 1 - GCode Day 3 - Remote access (part 2) - A new day, a new piece of information. Yesterday we took a quick look at the changes in gcode files. Which is the core of pretty much any 3D print. Today, we will look at the remote access trough the network. The remote API is designed to allow control of the machine trough the network. It is what Cura uses to control and monitor the machine remotely. - Even if you are not a software engineer, there is added value for you here. So do not stop reading yet! The technology behind the API The API is a REST interface using JSON. That could be 3 new words for you right there. Don't worry. API: Application Programming Interface. Simply meaning it's an thing designed so that applications can talk to eachter. Does not mean we cannot use it as an user. But the end goal is for other applications. REST: Representational State Transfer. Just a fansy way of saying that every "request" you do to the printer is "stateless". Also, just a standardized way of doing things. The really cool part here is that is done trough HTTP. JSON: Javascript Object Notation. A standadized way to represent data. This makes it easier for applications to understand each other. Nothing to worry here, it is quite easy to read by humans. HTTP: Hyper Text Transfer Protocol. For those that missed it, I introduced this term in the REST term. If you are now like "I have seen this before, but where?" that is most likely true. Http is the way your browser talks to a webserver. So, in a nutshell. Our remote access on the printer is actually just a website acting in a standarized way so applications (like Cura) can understand it. Example time! You most likely don't have your fansy Ultimaker 3 yet. But I do. Now, first things you need to do is connect your printer to a network. As it's not really possible to access something remotely without access. So setup that WiFi or just plug in a cable. - Next you need your IP address. You can find it in the {SYSTEM}->{Network}->{Connection status} menu. It is those 4 numbers with dots in between. For this example, I'll be using 10.180.1.71, as that is my printer. - Now, you don't need any tool. As you already have the tool for basic viewing of data. You are looking at it. It is your browser. You have this fancy location bar at the top of your browser. And if we enter http://10.180.1.209/api/v1/system/firmware there, we will see the result: "3.4.12.20161017" That is your firmware version. Could not be simpler. Just so you know, the firmware version is build out of [major].[minor].[revision].[date], every version we use, even internally for testing, gets a new number for tracebility. - I picked a simple example for a reason, so we could look into this at a bit more detail first. The address you entered. Or URL as it is called in fancy computer terms is made up out of these parts: http://: This means we are using http. Part of REST remember? 10.180.1.209: The IP address we looked up on the printer. /api/v1: This means we are accessing our API, and the first version of it. If we ever need to make incompattible changes, we will have a v2 here and keep the v1 for a long as we can. /system: We are accessing the "system" part. System contains things that are not really 3d printer specific. Any device could have these properties. /firmware: We are requesting the "firmware" part of system. Which is defined are returning the firmware version. Having that made clear, in the system we have the following parts: http://10.180.1.209/api/v1/system/platform - Returns the linux version that we are running on, who cares right? http://10.180.1.209/api/v1/system/hostname - Returns the hostname of the printer. This is not user configurable and will remain the same unless electronics are replaced. So you can use this to uniquely identify the printer. http://10.180.1.209/api/v1/system/name - This is the user configurable name. You are asked to configure this during the WiFi setup. http://10.180.1.209/api/v1/system/firmware - As explained, the current firmware version. http://10.180.1.209/api/v1/system/memory/used - The amount of memory in use by the system. http://10.180.1.209/api/v1/system/memory/total - The amount of memory available in total. http://10.180.1.209/api/v1/system/memory/log - The system keeps a log of many state changes, this API accesses that log. More on it later. http://10.180.1.209/api/v1/system/memory/language - The configured language, we are preparing for providing the printer in your native language as well. But we decided not to delay the release for this. So this is always empty right now. http://10.180.1.209/api/v1/system/memory/country - 2 letter country code, if configured. This is done during the WiFi setup. WiFi hardware needs to be configured for your region to make sure the proper WiFi channels are used. If you don't use WiFi this is most likely empty. - However, if you want all of these in a single go. You can just request: http://10.180.1.209/api/v1/system Which will respond with: {"country": "", "firmware": "3.4.12.20161017", "hostname": "ultimakersystem-ccbdd3000229", "language": "en", "log": ["...", "..."], "memory": {"total": 1057030144, "used": 125394944}, "name": "Ultimaker-000229", "platform": "Linux-4.2.0-rc7-opinicus-00001-g63c264e-armv7l-with-debian-8.1"} Note that I cut out the log data, the rest is a JSON response. It looks a bit hard to read, but computers have no problem in reading it. There are however, tools to format it in a more readable way: { "country": "", "firmware": "3.4.12.20161017", "hostname": "ultimakersystem-ccbdd3000229", "language": "en", "log": [ "...", "..." ], "memory": { "total": 1057030144, "used": 125394944 }, "name": "Ultimaker-000229", "platform": "Linux-4.2.0-rc7-opinicus-00001-g63c264e-armv7l-with-debian-8.1"} There is http://10.180.1.209/log.html currently on the printer that uses /api/v1/system/log to view the latest log data in a more readable format. It was quickly put together and I'm sure we will expand to a better web interface for the printer in the future. But, it is a 3D printer! Yes yes. It is a 3D printer. So we want 3D printer data. And we have that. There are 2 basic important start points: http://10.180.1.209/api/v1/printer http://10.180.1.209/api/v1/print_job The first contains a lot of information about the printer itself. And all of those things can be accessed in the same way as the system part. The second contains information about the currently running print job. If no job is running, you will get a "not found" error. For the technical people, this includes status code 404. /api/v1/printer Let us look at the /api/v1/printer first. This as the following sub parts: /api/v1/printer/led - Part to access the printer casing leds. /api/v1/printer/heads - Part to access the printer head (more on this one later) /api/v1/printer/bed - Part to access information of the printer bed, limited to current and target temperature. /api/v1/printer/status - Best thing to look at first. Basic status of the printer. This could be "idle", "printing", "error", "maintenance" or "booting". Will explain in a bit. /api/v1/printer/beep - Nothing to read from here. Can be written to to make the printer beep. /api/v1/printer/diagnostics - Different diagnostic functions. Retreiving this part does not do anything, but it has sub parts that are not collected in the /api/v1/printer that can be used for in depth diagnostic functions. We WILL go over this for sure. /api/v1/printer/network - Contains the WiFi and Ethernet information. Mostly usefull to see if it is cable of WiFi connected. But the WiFi setup process uses this to connect to a network and to see which networks are available. /api/v1/printer/status The main status of the printer, can be: idle: Printer is doing nothing and ready for action. printing: Printer is actively printing something, or still needs to be emptied, print_job needs to be retreived for details. error: Something is wrong with the printer, and requires action at the printer itself to be corrected. maintenance: Someone is actively doing things with the printer, for example changing materials or PrintCores. booting: Printer is still starting up. This only lasts for a few seconds. /api/v1/printer/heads The printer has a single head. However, the API is prepared for possible futures, so it accounts for multiple heads already. Do not take this as a reason to think we are developing multi head printers. It just good engineering practice to have this in place when it costs almost no effort. - So, the actual part that we need to access for print head information is: http://10.180.1.209/api/v1/printer/heads/0 Software engineers are mighty annoying, as we start counting at 0. So the first head is identified by 0. The first hotend is identified by 0 and the second one with 1. - In here we have some basic settings like acceleration values, maximum speeds, the current position and linked extruders with their hotends. Feel free to explore. As you are all in love with the current hotend temperature, I will show you that one: http://10.180.1.209/api/v1/printer/heads/0/extruders/0/hotend/temperature http://10.180.1.209/api/v1/printer/heads/0/extruders/1/hotend/temperature For the first and second extruder. But, by sheer magic, we also know what type of PrintCore you have in the machine, which can be seen from: http://10.180.1.209/api/v1/printer/heads/0/extruders/0/hotend/id In my case, it returns "AA 0.4" There is the fan entry: http://10.180.1.209/api/v1/printer/heads/0/fan Which contains the print cooling fan speed in 0% to 100% (not 0 to 255 as you see in GCode). The head cooling fan state is not accessible, but directly linked to the hotend temperatures. Small note of warning There is http://10.180.1.209/api/v1/printer/heads/0/extruders/0/active_material/GUID. However, this breaks with the rest of the API and will be removed. Use the lower case http://10.180.1.209/api/v1/printer/heads/0/extruders/0/active_material/guid instead. /api/v1/printer/diagnostics Currently, the only intressing part here is: http://10.180.1.209/api/v1/printer/diagnostics/temperature_flow/10 The last number can be changed up to 20000, but that might take a while to load. The printer takes about 10 samples per second. The result of this is: [["Time", "temperature0", "target0", "heater0", "flow_sensor0", "flow_steps0", "temperature1", "target1", "heater1", "flow_sensor1", "flow_steps1", "bed_temperature", "bed_target", "bed_heater"],[62868.34765625, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.299999237060547, 0.0, 0.0],[62868.453125, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.700000762939453, 0.0, 0.0],[62868.5625, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.399999618530273, 0.0, 0.0],[62868.671875, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.399999618530273, 0.0, 0.0],[62868.78125, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.399999618530273, 0.0, 0.0],[62868.890625, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.5, 0.0, 0.0],[62869.00390625, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.299999237060547, 0.0, 0.0],[62869.11328125, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.700000762939453, 0.0, 0.0],[62869.22265625, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.5, 0.0, 0.0],[62869.328125, 23.100000381469727, 0.0, 0.0, 0.0, 0.0, 23.0, 0.0, 0.0, 0.0, 0.0, 18.0, 0.0, 0.0]] It is a history of temperature data for both hotends, and the bed. There is the current temperature, the target temperature and the amount of heating output. There is also something in there called "flow", but that returns 0 for you. Sorry. Now, this data is a bit hard to parse. But lucky for you, if you want to save this data you can do so very easy, by adding ?csv=1 behind it. Note that this is the only API part that supports this download. http://10.180.1.209/api/v1/printer/diagnostics/temperature_flow/10?csv=1 However, like this you can store it for later viewing, or do all kinds of crazy math and graphing with it, as microsoft-excel or libreoffice-calc can both import this file with relative ease. - There is http://10.180.1.209/temperature.html currently on the printer that uses this data to plot a real-time temperature graph. It is not an official feature of the printer and something we used during development. But it is damn cool. I'm a 100% sure will will expand this diagnostics part later with more data collection. So stay tuned for firmware updates. /api/v1/print_job http://10.180.1.209/api/v1/print_job That's the part that returns the currently active print job. Or it returns: {"message": "Not found"} If there is no print job running. It does not return a whole lot of information, but I think it is the most important information that you can have about the printer. So I will go over it in great detail. A result when a job is running looks like: { "name": "Most awesome PVA print ever done.gcode", "progress": 0, "state": "pre_print", "time_elapsed": 0, "time_total": 0} Initially, the most important entry to look at is the "state", this is different from the printer status. And can have the following values: printing: Print is currently busy. Most common state. pausing: Print was busy and the printer is in the process of going to the paused state. This usually does not last long. paused: Print is paused and thus will not finish without used interaction. resuming: Print is resuming after a pause. Could be heating up the hotend again so this can take a while. pre_print: Preparing to print. This is the state before any gcode is run. Active leveling is done during this state as well as heating up the bed/hotends. post_print: Print is finished, cooling down things and homing the head. This state lasts a while because of how the hotends are properly released from filament. (user can skip part of this at the machine) wait_cleanup: Print is fully finished, everything is cooled down. But the print still needs to be removed from the printer. This waits for a conformation of the user at the printer itself. The progress value is from 0.0 to 1.0 for 0% to 100%, the time values are in seconds. Note that the time_total will be updated during a print as the estimate on when the print is finished will be adjusted during printing. Printing estimates from Cura are usually within the 5% error range. And due to some extra time markers we added the estimate is generally less then 1% off after 2 layers of printing. - If you only care about a single value, you can request just that, just like all the other parts of the API. http://10.180.1.209/api/v1/print_job/name http://10.180.1.209/api/v1/print_job/state http://10.180.1.209/api/v1/print_job/progress http://10.180.1.209/api/v1/print_job/time_elapsed http://10.180.1.209/api/v1/print_job/time_total Documentation I've uploaded our work-in-progress documentation files at: http://software.ultimaker.com/jedi/api/2016.10.20/, these can be viewed with http://editor.swagger.io/. Note that there could be errors and mistakes in this documentation. Wrapping it up This is day 2. I think this is a information overload for quite some people already. I also have actual work to do. Tomorrow I will go into the details of using the API to actually change things. That will be a lot more technical then today. Expect code. Also, I don't know how many days I will fill on remote access. As there is a lot to cover. Stay tuned. - - Disclaimer: Any information presented here could be wrong. I did my best to proof read everything, but it could conflict with official statements and the actual behavior of the printer.
  32. 9 points
    This is day 3 of "Inside the Ultimaker 3", Remote access part 2 - Other days: Day 1 - GCode Day 2 - Remote access part 1 - Welcome back. Yesterday we look at accessing data from the printer. Today we will look at changing data in the printer from remote access. - This is a whole lot more technical and complex then just accessing data. The reason for this is security and mistakes. First off, you might not want everyone on your network to start/abort/pause prints. And you might, by mistake, control a different printer then you wanted. Think excidental use is uncommon? It happened at our office during development. And think how often you send something to a 2D printer to find it at a different printer then you expected. Security! First off, we had quite a few discussions about this at the office. As you need to have the proper trade-off between security and ease-of-use. Also, security is not an easy subject. Things that might look secure don't have to be. Things that are secure might be a pain to use. - So, we made the following decisions: Reading of data is always possible. To make monitoring of printers easy, and while you can access camera feeds and print head positions. It's not possible to get the exact gcode file out of the printer. Thus the model is still quite secure. Any "change" in the printer requires authentication. A change can be starting a print, aborting a print, or even changing the LED colors. Authentication is done by a pairing mechanism. So your printer and Cura, a phone app, or any application you want need to "pair up". Most of this is invisible to the user. Physical access is access. So if you can touch the printer you should also be able to pair up. Multiple applications/devices can be paired with the printer at the same time. The end result of this means that if you have an Ultimaker 3. And you connect with Cura for the first time, you need to say on the printer "I allow this Cura to use this printer". - On the technical side, this means any REST request to the printer that is not a HTTP GET request requires this pairing to be done correctly. Pairing, under the hood. The pairing process is actually a multi step process. These steps are: The application request a new ID/KEY combination from the printer. It does this with the name of the application and the name of the user that wants to access the printer. The printer returns this new ID/KEY combination to the application. The printer shows the dialog with DENY/ALLOW Until the user has selected ALLOW on the printer, this ID/KEY combination is not valid. The application keeps checking if the user selected allow or deny on the printer. Once ALLOW is selected, the ID/KEY combination can be used as username/password combination for HTTP Digest. HTTP Digest... The nice things about standards is, that you have so many to choose from. For security we looked for something that was quite easy to implement, but offered the security we needed. While we did look at HTTPS, the problem there is that you need certificates, and which the openness of the devices this became complex really quick. - So, we looked at RFC 2617, known as HTTP Digest authentication. This standard on top of HTTP allows for easy username/password checking, while being protected against: Man-in-the-middle attacks Eavedrop attacks Replay attacks However, there is one problem with the standard. It says that you can always fall back to lesser secure modes. Which offer limited or no security at all. So, we chose to implement one of the strongest forms of HTTP Digest, and REQUIRE it, instead of making all the security features optional. - This all sounds very complex. However, if you are a software engineer and you want to talk to the printer. You most likely have a library that will solve this for you. However, as suggested in the other topic, postman is implements Digest auth as such a low level that it is impossible to get this to work consistantly. The HTTP librart of QT has no problem with this. The "requests" library from python can also be used with almost no effort. I will provide an example in a bit. The cop-out If you are developing, and the security is in your way and you want to deal with it later. There is a cop-out. All this complex digest and pairing is disabled in the WiFi setup right now. As you are a local hotspot. This also made it easier to develop the WiFi setup. So, for quick testing, you can start a WiFi setup, and connect to the local hotspot, and talk to the printer without any security. The real thing Finally, some actual things. There are 3 API parts that are important at first. They are: /api/v1/auth/verify: Used to check if your authentication id/key is still valid. This is the only API which requires authentication on a GET request. If you go here with your browser, you will get the username/password popup. /api/v1/auth/request: This is used to setup a new pairing request. This needs to be done as a POST request, with 2 parameters "application" and "user". The API will return a JSON result with an "id" and a "key". This is your username and password for the HTTP Digest. However, this isn't valid till you pressed "ALLOW" at the printer. If you press "DENY", this combination of ID/KEY is discarded. /api/v1/auth/check/{id}: This can be used to check the status of your new request. {id} should be filled with the result from the /api/v1/auth/request call. The result will be one of: "unauthorized", "authorized" or "unknown". "unauthorized" means that the user pressed "DENY" and you can discard the ID/KEY. "authorized" means "ALLOW" is pressed and you can now start using this ID/KEY. "unknown" means that the user hasn't done anything yet and you should try again. Side effect: Currently, the printer only allows for 1 pairing request at the same time. If you send a 2nd request, the first one is denied automaticly. - So, in pseudo code: if no (id, key) or "api/v1/auth/verify" == "unauthorized" then id, key = post("api/v1/auth/request", application="Test", user="Daid") while "api/v1/auth/check/" + id == "unknown" do sleep 1 second end if "api/v1/auth/check/" + id == "unauthorized" then abort: failed to pair up. endend//We now have a valid id/key combination. All that, just to pair up. Doing actual things Still following me? Good. If not, sorry, this is all very technical. I will provide example code at the end. Now, we want to do thing. And there are quite a few things we can do with the API. I will cover a few things. Changing the printer name. Why? It's the easiest API. Changing the LED colors and heating up things. Starting a print job. Why? It's the most important API. Aborting a print job. After you started it, you might decide that you do not want it. (Or the print could be failing. But that is rare right?) Change the name Remember from day 1, the printer name was read at /api/v1/system/name. Now, we can set the printer name the same way, but instead of a HTTP GET, we need to use a HTTP PUT. Now, all our APIs require JSON as input. This means a few things, the data in the PUT request needs to be valid JSON. And the Content-type header of the request needs to be set to "application/json". If we want to set our printer name to MyUltimaker3, we get a request that looks like this: PUT /api/v1/system/name HTTP/1.1Host: 10.180.1.209Connection: keep-aliveAccept: */*User-Agent: python-requests/2.11.1Accept-Encoding: gzip, deflateContent-type: application/jsonContent-Length: 14Authorization: Digest username="2af8417b8501e0422e191d5fbe64209e", realm="Jedi-API", nonce="76684432bdb9a1a386a877e41468a681", uri="/api/v1/system/name", response="50da68df53c0eeb9906212560b0077aa", qop="auth", nc=00000003, cnonce="b2316951bb03e010""MyUltimaker3" This is an actual request that I logged. My auth ID is "2af8417b8501e0422e191d5fbe64209e" which you can see in the Authorization part, my auth KEY is "f9a43169c49bb9e81d670c946d6358dac428b820e0d9676e15b63bdcf57be45f", which you cannot see, and is used to generate the "response". Placing this here to possibly assist in debugging if you are doing your own implementation of HTTP Digest. The printer name is under some restrictions. So your printer might not always accept the new name. Changing the LEDs and heating up. Important note, in firmware versions 3.4.x these APIs are broken. They should be fixed as of firmware version 3.5.x Changing the temperature. This is easy, we want to set the target temperature. The APIs for this are: /api/v1/printer/heads/0/extruders/0/hotend/temperature/target /api/v1/printer/heads/0/extruders/1/hotend/temperature/target /api/v1/printer/bed/temperature/target And, just like the name, you can just put a value into it to change the target. As this needs to be in JSON format, it needs to be a number without quotes, while the name was a string and thus needed quotes. Setting the LED brightness and colors can be done in a single call. There are the APIs: /api/v1/printer/led /api/v1/printer/led/brightness /api/v1/printer/led/saturation /api/v1/printer/led/hue The last 3 set each value seperately, but the first one can be used to set all 3 in one go. You do this by sending a single json dictionary containing the proper key/value combinations to /api/v1/printer/led. Once again, this needs to be a HTTP PUT request. Example: {"brightness": 50.0, "saturation": 20.0, "hue": 100.0} Note, the current implementation of the API returns no status when you do this. So you do not know exactly if the request was accepted. Starting a print Starting a print is the most complex call there is, as you need to send a multi-part file upload. If you are not using a library for HTTP communication. Forget about it. Else, it's easy, just do a HTTP POST request with a file upload to /api/v1/print_job, with the name of the file parameter to "file". Abort/pausing a print job You might want to abort or pause a print job remotely. This is all done trough the /api/v1/print_job/state API. Once again with PUT requests. You need to PUT the new state you want into this state API, in the form {"target": "new state"}. There are 3 possible things you can PUT here. abort, requests the print to be aborted. pause, if the print isn't paused it will do so now. print, if the print is paused, it will resume printing. Note that this API in the current implementation always reports no content. So you need to poll the state to see if you request was actually honored. Wrapping it up. I'll just finish with my python3 code that can talk to the Ultimaker 3. You can use this as an example, or if you make an open-source product you can use it directly. ## This program is free software: you can redistribute it and/or modify# it under the terms of the GNU Affero General Public License as# published by the Free Software Foundation, either version 3 of the# License, or (at your option) any later version.# # This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU Affero General Public License for more details.# # You should have received a copy of the GNU Affero General Public License# along with this program. If not, see .import requestsimport jsonimport osimport time## Ultimaker 3 API access class.# Allows for access of the Ultimaker 3 API with authentication.# Uses the python requests library to do the actual http requests, which does most of the work for us.class Ultimaker3: # @param ip: IP address of the printer # @param application: name of the application in string form, used during authentication requests and is shown on the printer. def __init__(self, ip, application): self.__ip = ip self.__application = application self.__session = requests.sessions.Session() self.__setAuthData("", "") # Set new authentication data, authentication data is send with each HTTP request to make sure we can PUT/POST data. def __setAuthData(self, id, key): self.__auth_id = id self.__auth_key = key self.__auth = requests.auth.HTTPDigestAuth(self.__auth_id, self.__auth_key) # Load authentication data from a file. If this file does not exists, or the data in it is invalid, we request a new authentication set and store it in the file. def loadAuth(self, filename): try: data = json.load(open(filename, "rt")) self.__setAuthData(data["id"], data["key"]) except IOError: self.__checkAuth() self.saveAuth(filename) if not self.__checkAuth(): self.saveAuth(filename) # Save the authentication data to a file. def saveAuth(self, filename): json.dump({"id": self.__auth_id, "key": self.__auth_key}, open(filename, "wt")) # Check if our authentication is valid, and if it is not request a new ID/KEY combination, this function can block till the user selected ALLOW/DENY on the printer. def __checkAuth(self): if self.__auth_id == "" or self.get("api/v1/auth/verify").status_code != 200: print("Auth check failed, requesting new authentication") response = self.post("api/v1/auth/request", data={"application": self.__application, "user": os.getlogin()}) if response.status_code != 200: raise RuntimeError("Failed to request new API key") data = response.json() self.__setAuthData(data["id"], data["key"]) while True: time.sleep(1) response = self.get("api/v1/auth/check/%s" % (self.__auth_id)) data = response.json() print(data["message"]) if data["message"] == "authorized": print("Authorized.") break if data["message"] == "unauthorized": raise RuntimeError("Authorization denied") return False return True # Do a new HTTP request to the printer. It formats data as JSON, and fills in the IP part of the URL. def request(self, method, path, **kwargs): if "data" in kwargs: kwargs["data"] = json.dumps(kwargs["data"]) if "headers" not in kwargs: kwargs["headers"] = {"Content-type": "application/json"} return self.__session.request(method, "http://%s/%s" % (self.__ip, path), auth=self.__auth, **kwargs) # Shorthand function to do a "GET" request. def get(self, path, **kwargs): return self.request("get", path, **kwargs) # Shorthand function to do a "PUT" request. def put(self, path, **kwargs): return self.request("put", path, **kwargs) # Shorthand function to do a "POST" request. def post(self, path, **kwargs): return self.request("post", path, **kwargs) It's a very basic wrapper around the very new "requests" library for python. But it helps in setting up the authentication. Example usage: api = Ultimaker3("10.180.1.209", "Test script")api.loadAuth("auth.data")# Get all the system datasystem = api.get("api/v1/system").json()print(system["name"])# Change the system nameresult = api.put("api/v1/system/name", data="MyUltimaker3")print(result.json())# Set the target hotend temperature to 100C, and then back to 0.print(api.get("api/v1/printer/heads/0/extruders/0/hotend/temperature").json())result = api.put("api/v1/printer/heads/0/extruders/0/hotend/temperature/target", data=100.0).json()print(api.get("api/v1/printer/heads/0/extruders/0/hotend/temperature").json())result = api.put("api/v1/printer/heads/0/extruders/0/hotend/temperature/target", data=0.0).json()print(api.get("api/v1/printer/heads/0/extruders/0/hotend/temperature").json())# Change the LEDsapi.put("api/v1/printer/led", data={"brightness": 50.0, "saturation": 20.0, "hue": 100.0})# Start a print job.result = api.post("api/v1/print_job", files={"file": ("UM3_Box_20x20x10.gcode", open("UM3_Box_20x20x10.gcode", "rb"))})print(result.content)# Pause the printapi.put("api/v1/print_job/state", data={"target": "pause"})# Resume the printapi.put("api/v1/print_job/state", data={"target": "print"})# Abort the printapi.put("api/v1/print_job/state", data={"target": "abort"}) - - Disclaimer: Any information presented here could be wrong. I did my best to proof read everything, but it could confict with official statements and the actual behavior of the printer. This post is purely informative and does not necessary reflect the official view of Ultimaker.
  33. 9 points
    I just finished this. It was a multi-part print for ease of painting. Some of it I am not sure what happened...but hey, it is purty....And, I am unanimous in that ? Test Render Parts Finished piece
  34. 9 points

    Version 1.0

    9,687 downloads

    The original dodecahedral kinetic sculpture by Stijn van der Linden a.k.a. Virtox. Made of five nested dodecahedra, each one is limited to rotate around its own axis. It was printed with dual extrusion on an Ultimaker 3 with water-soluble PVA support material.
  35. 9 points
    I managed to go to Europe about a month ago. While there, I got sick....really sick. Sinus infection that had moved into my lungs as well. Bad enough so that I am about to start my second round of antibiotics to fully wipe this out. That is what I get for treating the symptoms instead of the infection for the last year. Yes, I thought things were fine with just my antihistamines. Well...nope..... The upside? It hit me so hard and fast that I barely smoked two cigarettes when I got there it hurt so badly, and today makes 1 month of no smoking. And, just to let you know how bad I was, I have had no desire to smoke since. So, after being a complete addict on smoking.....no shame in that since it is truly addictive, I have been smoke free for one month and ready to continue being smoke free. Even when the habit part starts in (not the addiction, but the actual habitual rituals of smoking...after eating, etc.) it lasts for about 2 seconds and is gone quite easily. I have never been so happy to have gotten that sick in my live. LOL Probably good for the printers too, eh?
  36. 9 points
    ZGE Authors - ZGE Idea and design & development by Charly - @Gudo - Crazy Ideas and ZGE Logo by Sebas - @Neotko General FAQ Can I use other bearings? NO. There's much math and simulations and beta testing on all the parts, if you fell like changing something just to save a buck, then this isn't the extruder for you, sorry! Can I use a shorter square rod? NO. I did bang Gudo with this many times, he is just so patient and explained me over and over how and why it can't. Basically that's the correct size for a umo/um2. Can you use 400 instead of 390mm, yea you can. But 390mm is the perfect length so it doesn't pick an eye while moving or hits you, and also is the length that allows the slider part to have always full contact with the square rod. So, like I said before, file the tip, because metal can hurt. (It never ever happened to me and I do look at the printer like a mad men when printing to debug stuff). Could I move the holder to the other corner? Yes, print it mirroed (that's something I did ask at the beginning, but after using it on the Left side I would not change it, it just make's sense... Hard to explain.. Can I use a cheaper drivegear? NO (well you actually could if you redesign most of the stuff, but if you just want to extrude without quality you can do it by hand ) Can I just print it on ABS or PLA, or China cheap PLA? NO. ABS for example size changes a lot, it can't get as much flex torsion without deforming as platec/greentec. Ofc if you thing you can, just do it, but don't come here asking why it fails Also the material used must be as precise as possible, that something that only good brands give. You wan't to have as many things under- control as possible when printing printing this with a bowden since the tolerances are quite hard. Short answer, we recommend Greentec / Platec for hightemp and strength. - Could I avoid to print the Flexible material parts? Oh yes, I forgot, there are parts that actually need to be printed on flexible materials like ninjaflex, recreus and a semiflex material. WHY? Just because (will explain all this on the video/tutorial). Most of them you can actually print them after installing the system, but also, well you can print them one by one very slow until you get the zge working - Why the motor holder moves a bit when printing? Because the system compensates the extrusion forces to avoid as much motion transmission to the printhead. Also, better the motor holder than the printhead, right? - I have a dual printer, I wan't to use this!? That's actually doable, Gudo even made a design that could work on a UM3. But... More or that someday. Basically we don't want to just make stuff that could work, but stuff that actually put something interesting on the table. There are many factors beyond making the extruder work on a um3 than just making it. Gudo actually I think did cover all of them, but then there's the part of the firmware. The UM3 firmware need's quite a lot knowhow to actually change parameters like Extrusion retraction while changing tools, prime amount, retraction amount, esteps, etc etc etc. So change this parameters on a um3 the user would need to know much knowhow to do stuff on linux without bricking the machine (editing stuff is really easy in the end but is a giant leap for most users). So for now we choose not to, but is there, if UM or maybe a modder makes a easy way to access the Machine Json files and edit them, then we might release it. Just because, it doesn't make sense to release stuff just for releasing stuff. Also, there's a big problemo for flexibles on um3, and that's the gap of air on top of the cores while they rest on the printhead.. So, could it work? Sure, but would it work everytime? That's the question... So, short answer, not yet. More FAQ And important points about ZGE Why we made it Gudo and Neotko are moving forward this extruder because we are always pursuing quality, speed and precision. Bowden is a lightweight solution that creates quite a number of handicaps, like for example hysteresis (filament compression due pressure) making it impossible to actually control the extrusion. With ZGE Direct Drive this is now posible, for 1.75mm filaments and 2.85mm, without any compromise on Extrusion horse power. Why don’t we sell it atm Gudo and I (Neotko) have other interest than just selling upgrades. Is a nice idea, but we been crunching numbers and isn’t something we would love to be doing on the short time. I have a business and is starting to work and it demands my full time (except weekends where I try to keep improving every bit of the printer). Also isn’t that easy, to make a comercial version of the ZGE would requiere most probably a mold, and that’s freaking expensive, delivery, stock, gudo making sliders, me printing all the other parts, and that could be a nice dream but we don’t have a 100 printers farm to do it right, and sincerely is great to not need to defend something that you want to 'sell' it keeps the mind objective and fresh to new ideas. So we have choose the YDIY (You Do It Yourself) path. I will make videos of how to print and assemble the key parts that requiere extreme love and care to do them right. Gudo I think can provide for some individuals the key parts, but don’t overwhelm him, if you don’t get one, you need to DIY. The good It freaking works, it extrudes beautifully, it keeps working and working and delivering repetition and amazing precision even with flexibles. Bondtech dualdrive has a lot on that, it could be done with a lesser quality extruder gear, but it would give troubles, bondtech does work and work and work. It grinds a bit, NO, it pushes the filament over and over (and we get Zero commission from bondtech on this!). The system moves a 390mm square shaft of 4mm square. This was the first challenge. I have been testing a 3x3 thinner rod and it works beautifully, but it will only be of use for 1.75mm guys. 1.75mm requieres less heat to extrude, less pressure, but also it has a drawback, it need’s more rotation on the drive gear, this means more stuff moving. That’s why a 3x3mm is better, because it delivers less noise to the weak um head (more on that latter) 2.85mm requieres more heat to extrude, more pressure but also has the advantage of less rotation on the drivegear, this means less noise translated to the printhead, but more force. So for this the best is a 4x4 square shaft. The Bad The punny UM2 hotend. We are using a hotend designed specifically for bowden, and bowden has one advantage, remove pressure and movement on the printhead, that’s why any single force done on the printhead (even a wooble bowden shacking) can add noise to the prints. And for the ZGE this means that every rotation on the drivegear can, since the head has very easy to bend and flexible shafts, translate tinny bits on Z noise. Does this Z noise is perceptible? Well, is hard to see, but is there, most users that don’t have a perfect Z might not notice this, but since I’m a crazy guy I did noticed it. The first version was much more dependent of a perfect square shaft. Gudo made an amazing improvement to this problem developing a printable UJoint system that allows to remove the imperfections of a inexpensive rod (more on this later). And just yesterday, I got an idea (star medal for me on this since I’m really proud) we changed a part to be printed on flexible material removing almost 50% of the noise and making the prints look even better. So... Does it print better than a Bowden? It freaking does. Does it has a bit more of noise on Z? Yes it does, sorry, that’s how things are. UM2 head, even the 8mm shafts can ‘bend’ and they keep wobbling making them very susceptible to Pressure from the drive-gears to the head. Every retract/extrude is a sudden move, that translates this sudden moves to the printhead. But with this last update the problem is hard to see, and most of normal users won’t ever see it. The Ugly To print a ZGE you need aprox 5h for the most delicate parts (slider+driveshaft) and they will need some post-processing. Add one hour of assembly for this part, that must be done with love and not by brute force. Also you do need a hightemperature material, like greentec, platec. Just because this part get’s heat from the bed, so if you print at 60, the air will get there to 35C, and that + extrusion forces = bends. The Extruder head also should be greentec, platec. Is a very amazing material (we also get zero commission on this), but need’s hairspray on the bed and brims, and cleaning. I made a good article about how to add custom brims to the support, read it, read it again, and use it. You need all the parts to be printed perfect. More than 50mm/s can ruin the print and will add time to manual cleaning, that is less reliable than a 3dprinter. You will need to calibrate your printer to the 0.02-0.03 closeness to the measures we will show as base. Just like Gudo and I did, we used one of the parts, print it and with a digital caliper of at least 2 decimal points, I did print the object 3 times, with different Horizontal Expansion values of -0.02 -0.03 -0.05. For me the winner was the 0.02. So as you can guess, the difference from printing it right or wrong is very very small. You need to keep that in mind for the main part of the ZGE, since is the most delicate part. First time I print one I did it horrible, and after printing 20-23 I thing I have enough practice to make a perfect ZGE slider+shaft. The rest of the parts, need screws, nothing hard to find. There are two types of heads, one is more compact but need’s some special small 4mm mini shafts. The other, is more complex to assemble and is based on my Neotko-FatIRobertI extruder. Gudo also added a tension selector (very cool) to have 3 basic positions easy interchangeable. But is much complex to print. Also is taller... That... Well, shorter means less vibrations, taller more vibrations... Yea there are many many factors that we have take into account before posting this. We still need to talk Gudo and I of what basic version we release. Most probably the slider, they key part, won’t have a step file release, but the others might, or not. The important is that all the parts will be easy to print, except the slider (the slider, as I said over and over here must be printed with love and finished more or less by hand). The Main key parts you will need to get to DIY. First of all, the square rod of 390mm, there are shops on ebay that cut on demand, but try to be ware that the tip you need to soft it (file it) for safety! You don’t want to loose an eye because you didn’t hear us out right? For precision square shafts (they call them Key Steel or Parallel Key) the max length we where able to find is 350mm (on misumi) so that means that it would not work. It need’s to be a minimum of 390mm. Gudo might be able to provide this to some users, but again, ask once, if he doesn’t answer he is busy doing something more interesting, don’t hammer it. And you will need to pay for it, you know, square shafts don’t grow on trees. A shorter smaller screw. You know the four screws that hold your hotend? Well, one must be shorter, like 4mm taller, you can ‘sew’ it yourself indeed. Again, not easy to find. Gudo is amazing and he made me a few with the first kits he made for me. I have a shop, I want to sell it! Contact Gudo for this, you two might get along and do some business. I personally would love to see this extruder on every printer out there. But mind one thing, no shortcuts, no china quality. If you thing you are decent, come talk with Gudo. I want it for my printer! Our dream is to have this on as many printers as possible, a Bowden-free world. If you are a 3d printer maker contact us and we will study making a version of our ZGE for your machine. But remember this is Open Source, so we will focus on Open Source machines like UM, BCN, and probably others. If we don’t support your printer, give us time, we are just two guys that love 3d printing and making our printers as precise as possible. Contact your printer company, if they give us access to your files we might do it! And ofc if you have a Solid Robust No Woobly printer, we are interested But ofc, Maybe Gudo just make's a better printer out of this UM.... But that's a history for other day List of things to do: - An assembly manual. Atm users that found IRobertI Feeder hard to assemble, should stay away from this, since this is probably 10x times harder and requieres much finesse to assemble and to print it. (sorry is just how it is) - Video of the ZGE SliderUjoint system. I need time to do it, but is on my todobedobedo list. Important before Downloading it - The zip has STEP and STL files - The STL files have TEXT that indicates the level of quality to print it, DO READ IT. Quality Levels are MIDQ - Medium Quality 50mm/s tops and 0.2mm layer is ok HIQ - High Quality 40-50mm/s is ok but no more than 0.1-0.15mm layer height HIQSLOW - Keycomponent 30-40mm/s max and 0.1-0.12mm layer height TEMP - Version printable in PLA or any material at hand that will need to be replaced with a FLEX later FLEX - Flexible material part. Print it after having the ZGE working (since is much easier). Recommeded Flexible material like NinjaFlex or Filaflex. Basically Very flexible. Did you read everything?, are you sure? Ok, you can download Zero Gravity Extruder at Youmagine by Gudo & Neotko Much still to write about how to print this, assemble and use it correctly. For now Check this OLD VIDEOS (REMEMBER THEY ARE OLD and they show OLD version assembly, but should give some hits to the pro users) Example of BAD SliderUjoint print Old post with a few print test videos and etc etc https://ultimaker.com/en/community/35608-zero-gravity-direct-drive-extruder
  37. 9 points
    Dear UltiSanta, I have been a good boy this year and would like to see the following things on an Ultimaker 4 system: Larger build volume because, well, I like big things and I cannot lie, other guys might deny, teeny weeny things can be done by every other thing..... Properly enclosed build area to remove heat issues on the whole. Smoother ops between firmware and software. While firmware accepts 'PLA' (or other various substrate) regardless of color or type Cura wants to choke on it requiring a manual override when printing even though all the settings are the same when you are slicing (unless you change them of course), So if you are using presets, does it really matter what color it is? A pausing function between prints to allow for cleaning ops as I change plates between each print A pausing function During prints to allow for cleaning ops as long prints can accumulate or cook hygroscopic materials and require cleaning An actual resume print after some sort of failure would be cool, especially on those long prints of days and days and it chokes at the last few hours And, finally, a dilithium crystal matter/antimatter mix chamber for off grid printing when Armageddon hits
  38. 9 points
    Hi, I'm BagelOrb a.k.a. the engine guy a.k.a. Tim a.k.a. that dude with the beard which is better than that of SandervG. I work on the inner workings of the slicing engine which actually generates the gcode from the 3D model data. This requires a lot of knowledge of both hardware and firmware and of course of Cura itself. In the next couple of years I will be researching slicing advanced geometry which goes beyond the scope of an STL: texture information, infill density heatmaps and similar 3-dimensionally defined data which cannot be captured in a surface mesh alone. In my free time I like turtles.
  39. 9 points
    Now, that the hero of my childhood has died, i´d like to show you this little diorama. I started some time ago, but i finished it today. All vehicles are printed with a 0.25 nozzle, the landscape with a 0.4 nozzle. Most of the parts are made in 3dsMax and Zbrush. I hope you like it and godspeed, Roger[/media]
  40. 9 points
    You, sir, are a coward. You rant and rave here, link us to your additional ranting and raving blog...and delete Nallath's well-crafted reply/comment on it. You like to make a lot of noise but can't stomach a response. Grow up.
  41. 9 points
    This is day 4 of "Inside the Ultimaker 3", Electronics. - Other days: Day 1 - GCode Day 2 - Remote access part 1 Day 3 - Remote access part 2 - Another week day, another "Inside the Ultimaker 3". Today we will take a step away from the usualy software side of things and look at something we can touch. Touch, and shock you (well, only if you lick it. Do not lick the machine while it is ON!). We will be looking at the electronics. - Why electronics? Why now? This is because for a lot of things I would like to explain you need to know what is inside the machine and where. And for which function. A history lesson The Ultimaker 3 evolved from the Ultimaker 2. And Evolution can be a bit messy. But, to fully understand what we have we need to go back to the Ultimaker 2. So let us look at the electronics of the Ultimaker 2 first, as they are simpler and easier to follow. This image shows the general components of the Ultimaker 2 (and Ultimaker 2+) electronics. The boxes show different components, and the lines present wires connecting these components. The UM2 Main board is the center of everything. And drives all logic. This is also where the USB port is located, and where the firmware is installed. - The UM2 Main board is the brains of the machine. It controlls the menus, reads the SD card, controls the motors, regulates the heaters. Simple, contained. - Most things going to the print head are connected by seperate cables, directly to the main board. Everything from the user-interface is connected to the UltiPanel board, and this board is connected with the ribbon cables to the Main board. So, we have 2 clear distinct parts. The top part makes it a printer. And the bottom part handles the user interaction. For details, what every bit is: UM2 Mainboard: The main electronics. The big white board under the biggest cover in the printer. The brains. Bed heater: This is the actual alu plate of the printer bed. About 120W of heating power under the glass plate. Bed PT100: A PT100 is a type of temperature sensor. This one is directly soldered on the printer bed. But it has seperate wires going to it. Head heater: A 25W (I think) heater in your hotend. Wires come out of this directly, pretty thick wires that are specially insulated to withstand the heat. Head PT100: Same as with the bed, this is used to measure the temperature. However, this one isn't soldered, it's in a round casing. And also has special wires comming out of it. Directly connected to the main board. Print cooling fan: Side fans at your printer head. These two small 12V fans connected in series to a 24V switchable output from the main board. Hotend cooling fan: Tiny fan at the back of your print head. In early UM2 models this fan was always on. In later models this is switched off if the hotend is cold. It's a tiny 5V fan to prevent too much heat from reaching your PTFE coupler. X/Y/Z endstops: Simple micro switches to detect that the print head and bed has reached a location. Used to create a defined starting location for everything. X/Y/Z/E motors: 4 strong and nice stepper motors. Controlled by the main board. You may guess what these do. UltiPanel board: The extra board in the front of the printer that contains the user interface. This board contains no inteligence. And directly connects everything to the ribbon cable. SD card: The SD card slot at the front of the machine. OLED display: The pretty 128x64 ON/OFF pixel display. In a greenish/blueish color. Rotation button: The rotation button, with a rotary encoder that can be pressed. Provides a simple interface without too many confusing options. LED ring: Just some extra color and feedback to the user. A simple I2C LED driver is used to control this. The board has space for 4 RGB LEDs, but we only use 2, else it is too bright. Beeper: Basic piezo buzzer. Beeped when you press a button. Fun fact, there is only 1 beep sound in the code. But you can hear 2 different sounds. This change in pitch depends on if the display is updating or not at that point in time - In the end, all this, the architecture is quite simple. The UM2 main board reads gcode, checks the commands, and executes them. Could not be simpler. The Ultimaker 3 As I said before, the Ultimaker 3 is an evolution of this design. Lets just start off with an update picture: So. That is a whole bunch of extra boxes. Took me a while to get this all proper in a single picture. All the extra boxes also helps in explaining why an UM2 to UM3 upgrade isn't that feasible. Most parts from the UM2 are still there, in some way or another. But almost every part has a change. So, what changed? UM3 Mainboard: This is no longer the "main" board. It is still called like that, but is no longer the brains of the operation. It mainly does motion planning and temperature control now. Head heater: The heater is now contained within the PrintCore. And it does not have the long wires to the main board anymore. Instead it uses pogo-pins in the print head to make the connection. Head PT100: Same as with the heater, it's contained within the PrintCore. Also pogo-pin connected. Another important difference is that we do the analog to digital conversion in the print head now. This gives a more accurate measurement. Print cooling fan: The two side fans are different fans now. They are both 5V. And electronicly, we can control them seperately. However, currently, they are controlled as one at the lowest software level. UltiPanel board: This was upgraded with a small temperature sensor, but the SD card slot is removed. It is also connected to the new A20 LIME2 board. More on that in a bit. OLED display: It is white now. Other then that exactly the same. And, we have new parts, quite a few of them: A20 LIME2 Linux: This is the new brains of the printer. It's a full Linux system. Which means you have an actual computer in there. PrintCore EEPROM: Each PrintCore comes with a small EEPROM. In this EEPROM we store the type of PrintCore it is, and we keep track of runtime data. Print head LEDs: Behind the PrintCores there are 2 RGB LEDs, those are used for status indication and cannot be controlled by the end user. Active leveling sensor: A special capacitive sensor is in the print head. It is used to measure the position and tilt of the print bed. It is also used to measure the difference in height between the left and right nozzle. NFC Reader: This reader is located inside the spool holder on the Ultimaker 3. This is used to identify spools of material. Potentially we can write back to the tags inside spools in the future. But right now we are not using that yet. Front USB: You requested it, here it is. No longer SD, but USB drives. WIFI: No cables, no problems? There is a small USB WiFi module in there, connected with USB to the A20 LIME2 board. Ethernet: But, for a most stable and fast network connection, I recommend cable. This is directly provided by the A20 LIME2 board. Camera: Quite a simple camera with a wide angle lens. It's connected trough USB with the A20 LIME2 board. Current resolution is configured at 800x600, but camera supports up to 1600x1200. However, the framerate is much lower at higher resolutions. - So, we hooked up all of the user interface to the A20 LIME2 Linux board. This is because we wanted this board as the "brains" of the machine. It's much faster and much more feature rich then the Atmel in the UM2 Main board. This new board also provides all of the network functionality, and USB drive reading. - Cutting it short I have to cut it short today (I have less time today then usual). There is work to do. I hope this helps in giving some overview of the new Ultimaker 3, and what has been changed electronic wise. - - Disclaimer: Any information presented here could be wrong. I did my best to proof read everything, but it could conflict with the actual behavior of the printer.
  42. 9 points
    so i'll reply as well.. the whole UM2 and dual extrusion discussion is pretty much dead. yes it was promised for the UM2, no it was never promised for the UM2+ and if you were expecting it for the UM2+ that is not something Ultimaker had anything to do with. sorry if that sounds harsh, but they have been very clear since the beginning of the UM2+ that that device would not do dual extrusion. if you were expecting it that;s not something you can blame on them.. yes it was promised for the UM2 but they made a very good point about why it couldn't be done. and if you look critically at the UM3 (which i've been testing for the past few weeks) it is very obvious why it could not be done this way for the UM2. that being said, there's also the point of the UM2+ versus the UM3. the UM2+ is the improved version of the UM2. a lot of community feedback and testing went into that. the UM3 has, in my opinion, nothing to do with the UM2(+). it has a very different target audience, and a very different use case. the fact that some people are already saying they now need to replace all of their specialized nozzles with cores and how that is super expensive quite frankly just don't get it. this machine is not meant to be tinkered with all the time. this machine is a workhorse. you buy it because you need a lot of very reliable prints. done. if something's clogged or broken, you want to replace it on the spot with minimal downtime. if you put material in it, it needs to be back up and running ASAP. if you read the description of the UM3 carefully, you can see their target audience is universities, prosumers, prototyping environments. it's simply not the tinkerers.. if you want a lot of swappable nozzles, different feeders, and your own way of doing things, you need an UM2+. if you run them 24/7 and need a very reliable consistent printing experience, you need an UM3. they are simply very different machines. I run one of the, if not the largest 3d hubs of the benelux. i run 4 UM2+ printers 24/7 and I could not be more excited for the UM3. your comparison for 7 euros for a nozzle versus 100 euros is simply wrong. i've calculated maintenance cost for my UM2+ printers at around 125 euros per 500 hours, and I expect the print cores to last for about the same time. once the performance starts dropping, i'll throw out the core and get a new one. no more taking the head apart, risking damaging any of the axes, realigning the build plate etc. etc. you have to compare apples to apples.. if i run abbrasive filament through the head, i think i run a greater risk of damaging the feeder then the nozzle to be honest. but even if i damage the nozzle, I'll just charge more for abbrasive filament. it's just a business calculation. I can actually see my prices dropping with the UM3 instead of going up.. that being said, if I'm focussed on building great models, like valcrow or any of the other great artists that we have on this forum, the UM3 would not interest me at all since it lacks the flexibility I would need. I would love the Um2+ in that case.. anyway, that's my rant.. you gotta put things into perspective. the UM3 is not a successor to the Um2+. it's a new device for a new market. a market currently dominated by the 10K+ printers.. and I think the UM3 can easily hold it;'s own.
  43. 9 points
    Let me comment on the "But but but, dual extrusion of the UM2 as promised!" Yes, we sort of did. We wanted to. We REALLY REALLY did. The Ultimaker 3 is a direct result of this. We started on UM2 dual extrusion when the UM2 was launched. We only had a small team back then. And we worked on it, and we learned more and more. Then we discovered that it would take more them to make dual extrusion work reliably then we wanted. And thus we took some time of the project to make the 2go and extended. To "win time". Fast forward a bit, and we put more time in dual extrusion. Slowly discovering that it's not feasible for the UM2 in a reliable way. At the same time, we did have this new nice feeder that we wanted to put in this upgrade. So... that became the UM2+. Continuing development, we discovered we needed to lift the nozzle for the best reliable result. Producing 1 printer with the nozzles on the same height is possible. Producing 10000 printers with the nozzles on the same height was not. And that's when we made the choice not to produce it as an upgrade anymore, and the UM2 dual became the UM3. Not because we wanted. Not because of money. But because we didn't want to push out an inferior product. The UM3, started out as the project "UM2.1".
  44. 8 points
    Introduction The 3.3 beta introduces new functionality that is intended to improve Cura's ability to print bridges and overhung areas. The current Cura code base has long had the ability to detect when a skin region spans across islands of support and those skins that Cura thinks are bridges will have the direction of the lines aligned with the detected bridge detection. But nothing was done to detect walls that spanned unsupported areas and no changes were made to the wall or skin print speeds, flows or fan speed. The new bridging functionality does now detect when walls cross unsupported regions and it does now modify the print settings for those walls and skin that are determined to be unsupported. This topic introduces the new settings that are grouped together in the experimental section and are enabled using the Enable Bridge Settings checkbox. The settings Explained You will immediately notice that there are quite a few settings. Why so many? Well, I realised pretty early on in my experimentation that modifying the skin settings for the first bridge skin and then using the normal skin settings for the skins above the first does not always lead to a good result. So there are settings to not only modify the print speed, percentage flow, density and fan for the first bridge layer (bottommost layer) but also for the two layers above. If you want to keep things simple you can un-check the Bridge Has Multiple Layers checkbox and then only the first bridge skin layer settings will be modified. The settings used for the bridge walls are Bridge Wall Speed, Bridge Wall Flow (aka line diameter) and Bridge Fan Speed. Also relevant for walls are Minimum Bridge Wall Length which only considers wall line segments that are longer than this length as bridges. Shorter wall line segments are just printed using the normal settings. Bridge Wall Coasting controls a feature that reduces the pressure in the nozzle as it approaches the start of the bridge. This is necessary because the extrusion rate will need to be very much reduced from the normal rate as the speed and flow used on the bridge is likely to be less. If this is not done, the wall line tends to droop very badly at the start of the bridge. Finally, there is Bridge Wall Max Overhang which controls how much a wall line can overhang the layer below before it is considered to be a bridge wall line. By default it is 100% of the wall line width so the line has to be completely over air with no overlap whatsoever with the layer below. Reducing the value of Bridge Wall Max Overhang means that the line doesn't have to overhang the layer below so much for it to be printed using the bridge wall settings. See below for an example of its use. For a given material and print temperature, there will be some combination of the bridge wall settings mentioned above along with Bridge Skin Speed, Bridge Skin Flow (aka line diameter), Bridge Skin Density (line spacing) and Bridge Fan Speed (and the similar settings for the 2 other skin layers) that produces the best results. This is where the fun starts because it's going to require a lot of experimentation to come up with suitable settings. The default values are tested with PLA at 200deg, 0.4mm nozzle and 0.2mm layers and may work OK, or not (YMMV). One other setting is Bridge Skin Support Threshold which is the percentage of a skin area that is supported for it not to be considered a bridge. i.e. skin areas that are supported for less than this percentage (default 50%) are considered to be bridges and will be printed using the bridge settings. Skins that are supported for more than the threshold value will be printed just as normal. Here's some picture that, hopefully, will make things clearer! First, here's the settings showing some typical values: Here is the first bridge layer, I am showing the layerview as feedrate so you can see the speed changes on the bridge. Notice also the coasting just before the bridge walls start (the walls are printed anti-clockwise): Here's the second and third skin layers: Finally, here are a couple of images of a model (thanks to the community member that sent it to me) that has some overhung regions. The first image is using Bridge Wall Max Overhang set to 100% and the second is using 50% and you can see that more of the lines are going to be printed using the bridge settings. For overhangs, I recommend setting Minimum Bridge Wall Length to zero as the wall line segments are likely to be very small. Feedback Required From You Please give it a go and share your experiences, all feedback is welcome (good and bad). You can either reply to this topic or for really bad news, please submit a github issue.
  45. 8 points
  46. 8 points
    I got this switching mechanism idea already a year ago, but never took time to realize. Since I'm printing now a couple of months w/o any switching issue's, it's time to share this upgrade here on the forum. It's working with a simple cam-plate, which is moving both nozzles at the same time. The cam-plate is bi-stable, by using the existing (UM2) springs which also hold the teflon isolator in place. Benefits of this modification, besides enabling 2 material prints: Simple modification on the existing hardware Switching is done above bed clips, so no loss of additional print space Modification works both on UM2 and UM2+ Switching in action: Some prints:
  47. 8 points
    Big announcement! [German version] [French version] [spanish version] Hold on to your seats. It is not every week I can make an announcement of this magnitude. In a few weeks time Ultimaker will migrate its forum to a new forum software, provided by IPboard. For some it may be a surprise, for others it may be a decision overdue. Nonetheless we are happy and confident that this is the best decision we could make to provide a healthy environment for our community and ensure a bright future. We are aiming to migrate mid-December and do the complete the migration in ~3 days. Some parts of the preparation are still in progress, so the exact date may change (if it would get too close to the holidays, we might decide to do it early January instead). In any case, we wanted to share this prospect with you ahead of time. Make sure to like or follow this topic, so you will be kept up to date about possible changes and there will be no unpleasant surprises. Migrating means there will be a period of time that the forum will unavailable for contributions. In order to migrate all content, we have to close it down, bundle everything and deploy it in our new environment. We are looking into keeping the forum available for searching but no new posts can be made. Or perhaps have a designated chatroom available to bridge this period. Obviously we try to mimic the existing forum as much as possible for a smooth transition, however it is inevitable some things will work and look a little bit different. We’ll do our best to make the introduction as easy as possible. Why IPboard? A little while back I invited some of the most active members of our community and Ultimaker to help test different types of forum software. Among others we tested vBulletin, phpBB, IPboard and we looked into Vanilla and Discourse. After some thorough testing it was pretty clear that IPboard won the comparison with a landslide. Why migrate to a new forum? There are a few different reasons why we think it is a good move to migrate to a new forum. For starters, there have been some bugs haunting the forums which have proven difficult to fix. Some of these bugs have been more intense than others, regardless, they boiled to a point where they (could) harm the user experience significantly. Obviously, that is the last thing anyone would ever want. Secondly, when we moved to our existing forum we had big ambitions to build a collaborative forum where users would gather and ignite projects together. For example, in the user tab you could look for users with certain skill set, to potentially invite to your project and many interesting projects would surface from our community. And indeed some have, the Mark 2 project being one of my favorite community projects. But we don’t feel that vision still matches with our community, with knowledge increasingly becoming more important. The Ultimaker 3D printers becoming more advanced, a better ‘out of the box’ experience will take over a lot of the questions originally asked in our community. At the same time, that is where it gets interesting! After the ‘out of the box’ experience and your first handful of prints, you want to go and explore what you can really do with 3D printing and the Ultimaker ecosystem. And that is where the community shines. We have so many product experts in our community, it is unbelievable. That is also where we want to focus on in the upcoming era, educating our community further. Of course, we need a healthy, cooperative and supporting software environment to do this in, so the migration is step 1. If there is anything you want to learn from us, make sure to let me know! Can be about CAD modeling, post-processing, materials. But more about this, in our new forum As always I’m curious to hear what you think. Make sure to follow this thread so you will be kept up to date when things get more clear further down the road.
  48. 8 points
    We think we have it! While we are still testing to be a 100% sure internally. We've put this change up for installation already as the "Testing version" 3.6.3. The only change in this update is the fix for the USB always showing empty file list issue. There is still a 2nd issue, where it shows a empty file list on the first try, and a full list if you press return and open it again. We didn't fix that issue yet (We do know the cause, but due to the easy workaround of closing and opening the menu we didn't spend time on that a fix yet) The bug itself. Now. If you want to get technical. The cause here is... the glowing of the LED ring at the front of the printer when your print is finished. What? Yes. This ring is glowing by some code on our side, but the LED output is controlled by a linux driver. So we are talking to this driver. Due to changes in how we manage the LEDs, we are updating this LED more times per second then before. A bug in the LED subsystem of linux caused every write we did to this LED ring to cause 3 or 6 "udev" events. This is a general event system from linux for hardware changes. Hardware changes that include USB removal or insertion. Now, this LED glow was generating these events faster then they where handled. Creating a backlog. This backlog in turn caused the handler of these events to use a lot of system resources, at which point another system decides at some point that this handler is most likely misbehaving and needs to be restarted. Only increasing the amount work to be done instead of decreasing it. Why is this important? Well, because these events where never proper handled anymore, the USB drive removal was never properly handled, and the insertion was also not properly handled anymore. Causing the system to look for the "old" insertion of the USB stick instead of the new one. And thus not being able to read it, it shows no files at all (and the read error never bubbles up to our code) Currently we placed a tiny fix in the code to prevent these events, and nothing else. We already had plans to update our linux kernel towards a more stable version. But we didn't want to push out this kernel in a hurry just to fix this bug, at the risk of introducing a different (possibly larger) problem. This was one of those, you have to be kidding me right? bugs. Now, why didn't we catch this one during testing? We didn't catch it at the development team because we clean our printers pretty much as soon as they are done. Our printers get updates multiple times a day, and you need a lengthy session for this bug to happen. Our testing team switched to mainly network printing to better validate the Cura network printing at the time this bug was introduced. So they did notice it once or twice, but didn't get to notice the severity of the problem. And they also had a bad batch of USB drives before, which made them a bit less alert on USB problems and quicker to think "oh, bad USB drive". Why in the 3.6? Wait you might say! The LED ring was glowing before as well. Yes. It was. But the update was at a lower frequency, reducing the amount of events, giving the system more time to handle them. This change was introduced when cleaning up the LED control code during 3.6 development. Before this release the LED control code was pretty much the first prototype we made for this code. It functioned, but when we wanted to add the user configurable lighting, we also cleaned up this code. Introducing this unintentional bug in the process. The big thank you I want to thank you all for reporting this, and the people that helped in the diagnose both online and offline. It was a tough nut to crack, and really every tiny bit of information helped here.
  49. 8 points
    Ne sous-estimez jamais un homme qui aime les Pink Floyd https://ultimaker.com/en/community/prints/12007-pigs-on-the-wing
  50. 8 points
    I've been meaning to do this for a while, but I finally got around to posting the CAD files & assembly instructions to my bag and wallet on YouMagine. The little hinges are printed in place. If you use a heated glass bed (like on Ultimaker 2 or 2+), you can achieve a glossy candy-shell finish. The clasps are magnetic, so they snap shut and open without the need for fumbling to find buttons or zippers. Files & Instructions: https://www.youmagine.com/designs/mixee-wallet and https://www.youmagine.com/designs/mixee-bag Photos
This leaderboard is set to Amsterdam/GMT+02:00
×
×
  • Create New...

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!