OK. Ed's going to redo the control panel soon to make it both more comprehensive and simpler. We'll add the big soft stop button. As to the hardware one, it's just a question of finding an appropriate switch from Mouser or whoever and adding it to the electronics pages in the power-supply bit.by Adrian Bowyer - RepRap Host
Yes - this is a good idea. And it is possible to send a reset signal round the ring to all the controllers. However, someone who knows what they're talking about can correct me here, but is it the case that industry practice is not to use a soft-stop like that, but to put an honest-to-goodness big red button on the machine that the power goes through? If so, that might be an even safer solutioby Adrian Bowyer - RepRap Host
Fed up with us pesky developers changing the preferences file all the time, so yours hasn't got the right things in? Now, if you have debugging turned on, it'll compare your file with the distribution one when the host software is run and report the differences. I know. Debug is one of the preferences... And, if you have it switched off it doesn't do the check as soon as you switch it on. Buby Adrian Bowyer - RepRap Host
I've just created a page that describes the PIC firmware build process under Linux. It's at: All critical (and complementary) observations gratefully received...by Adrian Bowyer - RepRap Host
Yes - I didn't mean to imply that all STL files were incorrect; far from it. It's just that in general enough are wrong to mean that any algorithm has to be robust against geometrically small but topologically inconsistent errors.by Adrian Bowyer - RepRap Host
I did a foolish thing. I fixed a bug in the Java host code (in the bit that algebraically simplifies CSG expressions) and, instead of just checking that back in, I also spent some time tidying the code, then tested it, then checked in the lot. That gave Subversion revision 1333. Unfortunately my tidying introduced several new exciting features that many users would have found not entirely helpby Adrian Bowyer - RepRap Host
> Are you seriously saying that modeling apps don't even know the difference between the > inside and the outside of a solid? Yes. It doesn't matter for graphics because the ones that are wrong are almost always very small, or at least very thin. But those do matter for manufacture because everything has to really join up. > Are you allowed to call your files .stl when the contents dby Adrian Bowyer - RepRap Host
I see the point, but that is a slight counsel of despair, I think. Especially so as we know that there is a robust representation (a boolean one) if one can get to it...by Adrian Bowyer - RepRap Host
> If the triangles have the wrong cyclic sense, and the normals are broken, just stop all > processing. The stl file is broken beyond repair. Your quadtree algorithm can still grok > it, but why continue, something is really really messed up. True. True. But (at a guess) almost every STL file for anything more complicated than a cube has at least one such error, so then we'd neverby Adrian Bowyer - RepRap Host
PS. Things get interesting when the algorithm has to decide the optimal coordinates to split X and Y to make 4 quads. At the moment it searches for a gap in the line-end coordinates near the centre of a quad and cuts in the middle of that gap.by Adrian Bowyer - RepRap Host
> So recalculate the normal. That calculation is a trivial vector product, of course. The problem is getting its sign right when the triangles have the wrong cyclic sense... > Isn't there a problem (here come the open and closed sets again) with one of the ends lying > on a quadtree division line? You have to choose in what quad to put it (50% change you > choose wrong), or recurby Adrian Bowyer - RepRap Host
That assumes that the STL file is perfect, which it never is (even after being run through various "healing" programs). In particular as-recorded-in-the-file triangle normals are almost always unreliable. The current code takes the Z plane and, for each triangle that intersects it (i.e. one point one side, some points - maybe, if you're lucky, two - the other) works out the line of intersectionby Adrian Bowyer - RepRap Host
> Can you tell me why? Is it essential to the object being printed to have those tiny tiny bits of > plastic between the infill lines? I'd guess you just move the head without printing to the > nearest bit that still needs to be printed. Not an optimal path, but not really relevant, since > extruding is a whole lot slower than moving. Repeatedly turning the head on and off does notby Adrian Bowyer - RepRap Host
P.S. The current code produces lots of pretty red messages on the screen. But that doesn't mean it's going wrong a lot; they are more for my information; I should (I know) switch them off with the debug flag...by Adrian Bowyer - RepRap Host
I am not proprietorial at all about the STL slice-and-plot code. If someone can find some OS code out there that does what we want, that's absolutely fine by me. A few observations followed by a spec. Obs: 1. Commercial systems on zillion-dollar RP machines make mistakes; they usually detect them, tell you, and give up. You then have to go away and regenerate the STL files... 2. Once you haby Adrian Bowyer - RepRap Host
I think that a better solution would be to put scroll bars on the menus.by Adrian Bowyer - RepRap Host
I've spent the last couple of days banging head (Mohs hardness 2) against the Java geometry bugs* that Vik has been running up against (10). Thanks largely to the fact that Vik managed to generate an object with only six faces that still exhibited the main bug, and that I stopped staring at the code and made a dumb intuitive leap, I am making progress. I hope to check in an upgrade tomorrow (Frby Adrian Bowyer - RepRap Host
I have changed the names of a few things in the properties file to add their dimensions: Extruder0_NozzleWipeDatummm) Extruder0_NozzleWipeDatumY(mm) Extruder0_NozzleWipeStroke(mm) Extruder0_ShortLength(mm) Extruder0_ShortSpeed(0..1) And added a new number to play with: Extruder0_InfillOverlap(mm) This defaults to 0, when it has no effect. But if you put a number in it, the infill hatch willby Adrian Bowyer - RepRap Host
Sorry about that. Done...by Adrian Bowyer - RepRap Host
That was a little premature. However... I have now imported Andreas's improvements and corrections to the PIC firmware into Simon's experimental autoconf version of the code for the PIC16F648A. It all compiles, and - when put in a RepRap machine - works (at least it did for me...). If you want to download it it's at You should probably also look at Simon's instructions on the forum at: Wby Adrian Bowyer - Developers
Jonathan Marsden wrote: > If we're going to improve the whole issue of handling debug and error > output (which is definitely a good idea!), wouldn't it make more sense > to use either log4j or the JDK Logger class from java.util.logging.* ? > My suggestion would be log4j. That way, people can rotate log files, > divert the messages to syslog or the Windows Event Viewer, or sendby Adrian Bowyer - Developers
Quoting Simon McAuliffe : > The fix I thought I made (but perhaps I just thought about), was to have > a global variable that is set to false when a temperature sample is > about to be taken. Whenever an interrupt occurs, set the variable to > true in the main interrupt handler. If at the end of a temperature > sample that variable is set to true, then just disregard the sampleby Adrian Bowyer - Developers
I've corrected the PIC firmware so that it now does half-stepping properly. It's checked back into the Sourceforge repository in Subversion. This means that we can definitely use the cheaper 200-steps-per-rev stepper motors. You need a bipolar one where the coils can take a voltage of 12v and each use a current of 2A or less. To switch half stepping on (not the default, to maintain upwards coby Adrian Bowyer - RepRap Host
Mea culpa! I have yet to document how the code deals with STL files and slices them. Nor will I do so this weekend because I am trying to fix a bug in it found by some bloke called Vik :-) However, here's a quick overview. STLs are read by a standard Java3D file format handler that returns them as Java3D objects. These are basically lists of triangles in space - three doubles per corner. Wheby Adrian Bowyer - RepRap Host
For a while now there has been a problem with the way the movement speeds of the carriage have been calculated. Speeds are integers in [0, 255]. When a speed is sent to the PICs it is treated as a pre-load for an interrupt timer. Thus if you send 255 you get one tick between a stepper motor step and the next. 254 gives two ticks (i.e. half the speed), 253 gives 3 (i.e. 1/3 the speed) and so oby Adrian Bowyer - RepRap Host
Thanks to Andreas Unterluggauer we have a new firmware release. This improves the communications functions and reduces (indeed, on the Bath Darwin eliminates) comms errors. You can get the .hex files from Sourceforge here: or get the sources using subversion at:by Adrian Bowyer - RepRap Host
Steve DeGroof writes usefully: This might be handy for looking up alternate sources for components:by Adrian Bowyer - Controllers
Argh! Looks up and checks the machine beside him using actual glasses: Zach's right - the Z motor does use the back shaft. Sorry. But 2-shaft motors shouldn't be much more difficult to find than one-shaft ones. Most manufacturers offer both options.by Adrian Bowyer - Mechanics
Apologies for this slightly disconnected haven't read-all-the-posts-above reply, but I am at a conference in Boston at the moment typing this on the laptop that is also running Darwin at the conference exhibition... 1. None of the motors use the back shaft - we specified that as it didn't make any difference to the price (for us at least) and it gave us a lot more potential design freedom. 2. Tby Adrian Bowyer - Mechanics
Thanks Andreas. I have to go to a conference tomorrow, and term starts next week, so things are getting a bit hectic here. I'll try to test your code at the weekend.by Adrian Bowyer - RepRap Host