Welcome! Log In Create A New Profile


Success: Dremel IdeaBuilder 3D20 with slic3r under Linux

Posted by fhwedel-hoe 
Success: Dremel IdeaBuilder 3D20 with slic3r under Linux
August 30, 2017 06:46AM
Hi Everyone

I am taking care of a "Dremel IdeaBuilder 3D20" 3D Printer. I use it in an environment which prefers Linux. The original "Dremel 3D Printer Control Software" is available for Linux, but the configuration options are rather limited. Also, it often crashes on me. So I took the task of feeding code generated by slic3r to this particular printer. In order to find the right settings, you need to know that the Dremel 3D20 is actually a re-branded FlashForge Dreamer. I found these slic3r options to produce prints of good quality:

Printer Settings
MakerWare (MakerBot) dialect
228x150 size
114,75 position
0.4 nozzle (from drucktipps3d.de)
1.75 filament (taken from the filament packaging)
0mm Z offset

Print Settings
0.2 layer height (matches Dremel default)

Filament Settings
1.0 extrusion multiplier

Print Start Code
M104 S[first_layer_temperature] ; switch on temperature (slic3r)
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
M6 T0 ; auto-feed? (dremel)
M106 ; switch on fan (dremel)
M108 T0 ; set extruder speed (dremel)
M109 S[first_layer_temperature] ; wait for temperature
M116 ; wait for all temperatures (unused, but just to be sure)

Print End Code
M107 ; switch off fan
M104 S0 ; turn off temperature
G1 Z140 F3300 ; lower table
G28 X0 Y0 ; home X and Y
M18 ; disable steppers
M84 ; disable motors (slic3r)

slic3r produces standard G-code. The Dremel 3D20 understands but only if wrapped in a proprietary file format, which is abbreviated with g3drem. Dr. Peter Falkingham found out you can "transplant" the binary header of an existing g3drem file onto arbitrary G-code. I wrote a script "gcode2g3drem" that can post-process slic3r output (needs to be invoked manually). I have been unable to determine what settings are stored in the header, though. That's why the printer always estimates the print process to take 6 minutes.

I hope you may find this useful, too.
Re: Success: Dremel IdeaBuilder 3D20 with slic3r under Linux
September 03, 2017 02:28PM

I hope you may find this useful
Not just useful, I think it's awesome!!!

I'm helping out the library with it's 3D20 printer, being used to open source printers, I wasn't really enjoying it's limited software, and want unable to take into consideration adjustments for third party filaments.

So I will put into practice your discoverings ASAP, even looking into add slic3r support.

Re: Success: Dremel IdeaBuilder 3D20 with slic3r under Linux
October 09, 2017 03:00PM
Thanks for the script - I think that the time in seconds may be stored at byte 29 (assuming the first byte is 1). I haven't had a chance to validate this yet, but in my limited sample size (two files) the numbers seem to correlate.

I pasted the header data (below) in your script into hexplorer: [sourceforge.net] and started poking around the header data.

The first line is ASCII for "g3rem 1.0" The second line had a number stored in it at byte 29 that equaled 382 (highlighted in red). Three hundred eighty two seconds is six minutes twenty-two seconds...

67 33 64 72 65 6d 20 31 2e 30 20 20 20 20 20 20
3a 00 00 00 b0 38 00 00 b0 38 00 00 7e 01 00 00
be 01 00 00 00 00 00 00 01 00 00 00 19 00 03 00
64 00 00 00 dc 00 00 00 01 ff

To validate I then went and downloaded this file from instructables:

which came from this instructable [www.instructables.com]

In it, there's this picture that shows that the part should take 1 hour 8 minutes to print.

below are the first two lines of the file in hex -
67 33 64 72 65 6D 20 31 2E 30 20 20 20 20 20 20
3A 00 00 00 B0 38 00 00 B0 38 00 00 F3 0F 00 00

Looking at the word stored at byte 29 (again, first byte is byte 1) the value stored in that file is 4083, which is 68.05 minutes, or one hour eight minutes - so they match here as well.

I haven't had a chance to modify a file and put it into the dremel to validate this, but If I had to make a semi-educated guess, I'd imagine that the time in seconds is a 4 byte (probably unsigned) integer that I highlighted above.

Edit: I validated this by taking a benchy file that had been converted to .g3drem format and loading it into the Dremel 3D software. By default the print time was estimated at 1h 55min and the estimated filament was 5.36 meters.

I then set about editing the bytes of the .g3drem file and then loading the edited file into the Dremel 3D software - after editing the 4 bytes around byte 29, the estimated time shown to print changed. It seems that the maximum time that the software can handle is 4660 hours and 20 minutes (which would show up in the file as FF FF FF 00, or as normal hex 0x00FFFFFF, or as decimal 16,777,215 minutes), so it would seem that the fourth byte is not used

Then - poking around the file a bit more, it seems that the estimated amount of filament in millimeters is stored in the next four bytes (highlighted in blue above). It seems that that this number uses all four bytes, for a maximum value of 4,294,967,295 millimeters, or as the dremel software reports (after some rounding): 4,294,967.5 meters (hex 0xFFFFFFFF)

Edited 4 time(s). Last edit at 10/09/2017 09:44PM by ts.
Sorry, only registered users may post in this forum.

Click here to login