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.