User avatar
BaronWilliams
Posts: 159
Joined: Tue Jul 15, 2014 8:30 pm

FlashForge Dreamer Simplify3D Firmware Profile

Mon Aug 04, 2014 8:38 pm

Here's my FlashForge Dreamer Simplify3D Firmware Profile. By using this firmware profile, the cooling functions in the Print Process that control the fan in Simplify3D will work properly (except it's either on or off, no middle ground). I hope people find this useful. The firmware profile file is ZIP compressed because the Simplify3D website doesn't allow files with the frm extension to be uploaded. So you need to unzip the file before you can import it.

After you unzip the file you can import it into Simplify3D by going to TOOLS -> FIRMWARE CONFIGURATION and then clicking the IMPORT button. Locate the file FlashForge Dreamer.frm and open it.


Note that USB connectivity still does not work because Simplify3D doesn't appear to support G-code sent inside of packets.

The Simplify3D packet structure is pretty simple. Using a sniffer I found out that all commands start with a standard Start Delimiter of 7E and they end with an End Delimiter of 0A in hex. All commands need to be sent right after sending M601 S0 or they are ignored. M601 S0 also needs the delimiters, so it's sent as 7E 4d 36 30 31 20 53 30 0A. I'm not sure why this is needed, but it is. Once you send M601 S0, it can be followed by any number of commands, as long as they are sent quickly, within a second or so afterwards.

To send the G-code command M105 to the FlashForge Dreamer over USB, you would send the values 7E 4D 31 30 35 0A. Remember that 7E 4d 36 30 31 20 53 30 0A must be sent right before sending any command, so the total byte stream would be 7E 4d 36 30 31 20 53 30 0A 7E 4D 31 30 35 0A.

If we could tell Simplify3D to use these Start and End Delimiters then we could get some of the USB controls to work. But I can't see a way to do this. In order to do this, I believe that the software engineers at Simplify3D need to either allow users to configure packet delimiters, or they need to add the special FlashForge Dreamer packet delimiters to Simplify3D.

Sending a print job Dreamer style via USB (where the entire print job is sent as a large file) is a bit complex. I won't get into those details at this point in time. But adding support for jog controls, etc., is easy if we could just add the proper delimiters to each command Simplify3D sends over USB.
Attachments
FlashForge Dreamer.zip
FlashForge Dreamer Firmware Profile
(621 Bytes) Downloaded 470 times

User avatar
BaronWilliams
Posts: 159
Joined: Tue Jul 15, 2014 8:30 pm

Re: FlashForge Dreamer Simplify3D Firmware Profile

Tue Aug 05, 2014 4:45 pm

It's possible to control the FlashForge Dreamer fan using the macros in Simplify3D's Machine Control Panel.

Here's a macro for turning on the fan. Note that M601 S0 is always sent before sending a command. The "~" character is 7E, the required Start Delimiter. The End Delimiter 0A can be generated by having a new line in the macro (press enter to make a new line). A new line is 0A in hex.

Go to TOOLS -> FIRMWARE CONFIGURATION -> MACROS and enter this as one of the macros.

Code: Select all

~M601 S0
~M106

To get this working, make sure you turn off the Wait For Startup Command option in TOOLS -> FIRMWARE CONFIGURATION -> COMMUNICATION.

Now when you are connected in Simplify3D's Machine Control Panel, you can press that macro and the fan turns on.

To turn off the fan use this macro:

Code: Select all

~M601 S0
~M107

Here's a macro for making the LED lights flash RED to WHITE using M146 with a 100 millisecond pause between the color change using G4. At the end it uses M105 to report temperature information from the Dreamer.

Code: Select all

~M601 S0
~M146 r255 g0 b0
~G4 P100
~M146 r255 g255 b255
~G4 P100
~M105


I would like to be able to get more Machine Control Panel commands working, but I can't find out how to enter the 0A End Delimiter in other areas of Simplify3D where they only accept a 1 line G-code command. Is there a way to insert a new line character in these other fields. For example, the Report Temperature G-code field only accepts 1 line. I couldn't find a way to add the 0A character to it. Pressing ENTER doesn't work. Any ideas on how to do that?

Return to “General Discussion and Tips”