Draconic Control

A program for ComputerCraft and OpenComputers to squeeze the last bit of energy out of Draconic Evolution Reactors.

Where can I get it?

The ComputerCraft version can be found HERE or on pastebin.
The OpenComputers version can be found here: tar or get the installer.

Note that the OpenComputers version is more powerful as it can control multiple reactors at once and will get more features in the future.
The current version is: 1.3 (changelog)
Old versions: 1.2 1.1 1.0 0.9.5 0.9

How to setup

First things first you need to build a draconic reactor. Furthermore you'll need lots of Cryo-Stabilized Fluxducts (or equivalent) and exactly two (!) Flux Gates from Draconic Evolution.
You will need to setup two seperate (!) energy circuits:

Circuit: Drainback/Loopback

The Drainback- or Loopback-Circuit is what keeps your Draconic Reactor Core from calling goBoom(). You set it up by connecting a Reactor Stabilizer to the input of a Flux Gate and the Reactor Energy Injector to the output of that Flux Gate. Now hook up the Flux Gate to your control computer by using a Modem (CC) or an Adapter (OC). Remember the Flux Gates name for configuring the controller later.

Circuit: Output

The Output-Circuit is what outputs power to whatever you want to power. It's set the same as the Drainback-Circuit: Connect a different Reactor Stabilizer to another Flux Gate and connect the output to whatever you need power for. Hook up that Flux Gate to the control computer by using a Modem (CC) or an Adapter (OC). Remember the Flux Gates name for configuring the controller later.

Putting everything together



Now that your energy circuits are all wired up connect the actual reactor to the control computer. For ComputerCraft you'll need to use a Peripheral Proxy to do so. With OpenComputers you can just use an Adapter as you did with the Flux Gates.

ComputerCraft: Setting up the controller

So you're using ComputerCraft, huh?
First you'll need to get the program on your computer. Just use pastebin to download it:
pastebin get N9ii4dPW draconic_control
Since ComputerCraft computers don't remember their contents unless you name it, name your computer. As ComputerCraft computers don't remember their states when they get unloaded (think server restarts), we need to make it run the controller on startup or else.....
To do so put the following code in the file "startup":
while true do
	shell.run("draconic_control");
	os.sleep(5);
end
					
This script will make sure the program runs at boot and will be restartet if it crashes. To break out of this, you have to hold CTRL+T twice. Before we restart the computer and let the controller do its thing we need to configure it.

Open up draconic_control in the editor and scroll down a bit. You'll see a lot of comments and example configurations but for now we're not interested in those. Look for lines that say "FLUXGATE_DRAINBACK_NAME", "FLUXGATE_OUTPUT_NAME" and "REACTOR_NAME". You'll need to assign the names for the corresponding Flux Gates and the reactor. If you want to use the gui, fill out "MONITOR_NAME" as well.
The CC gui adapts to any screen size above 1x2 and will gradually display more information, the bigger the screen gets. I recommend a 5x4 or 3x4 screen.
Now save the file and you're good to go. If you don't want to modify any of the behaviour, reboot. If you want to go a little more into tweaking, read the chapter on Tweaking before you restart.

OpenComputers: Setting up the controller

OpenComputers? Great choice!
The OpenComputers controller consists of multiple libraries and programs:
  • The library, which contains the controller itself.
  • The actual program, which instructs the library to start, stop, shutdown, etc...
  • The gui is a dedicated program which interacts with the controller library.
  • The oop.lua library, which is one of my helper libs.
  • The libGUI library, which is my gui abstraction library.
All files can be found here.
The controller doesn't need a max tier CPU or a lot of RAM, but you may require an Internet Card in order to download the neccessary files. Keep that in mind when building your computer. However at this point you should have no trouble making a max tier computer anyways. If you really want to stick to the minimum, you can use a T1 CPU and 1x T1.5 or 2x T1 RAM. If you intend to control more than one reactor with one computer, keep in mind that you might end up needing 2x T1.5 RAM. If you intend to use the gui, make sure you're using at least T2 CPU, RAM and GPU.
Now that you have your computer ready, download the installer with:
wget http://xypm.tenyx.de/standalone/dc_installer17.lua
Now run it with
dc_installer
.

Next you'll need to create a configuration file for the program. Open /etc/draconic_control.cfg with the editor. You can copypasta this configuration:
reactors = {
	{
		reactorAddress = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
		fluxGateDrainbackAddress = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY";
		fluxGateOutputAddress = "ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ";
	}
};
					
Make sure to input the correct addresses and save the file. More advanced configurations can be found here.
If you're upgrading from an earlier version of the controller, you have to restart the computer.
You can now start the controller with
draconic_control start
or
rc draconic_control start
and you're ready to go. If you want to automatically start the controller at system boot, make sure to add
"draconic_control"
to "enabled" in your
/etc/rc.cfg
file.
Note: This will only start the controller, not the gui.
To start up the gui use
dc_gui
. To terminate it, hit the title at the top of the screen. The OC gui adjusts to any screen size above and will hide information if the screen ratio does not allow for them being fit on screen. I recommend a 5x4 or 4x4 screen if you like big screens or a 2x2 screen if you prefer smaller displays. Even a 1x1 screen will do but you (propably) won't actually be able to read anything on it unless you open the screens gui.

The final step: Acticating the reactor

After you've set up everything up you'll have to manually charge the reactor. The controller will not automatically ignite the reaction, you've got the honors to do so ;).
As soon as the reactor goes online, the controller will take over.
Note that once the reactor has started, you can not simply shut it down without prior preparation. Read here for further information.

The default settings

If you do not intend to tweak anything, these values may be of interes to you:
The default settings will yield 2.38626 TRF over the course of 12 days, 3 hours and 45 minutes at 1.10684 MRF/t average.
It takes 9 hours and 12 minutes (real time) for the reactor to shut down completely (already included in the total runtime).

If you want to get more out of your reactor (which is entirely possible), you may want to check out the chapter on tweaking and have a look at the presets section. If you decide to tweak on your own, give the simulator a try.

Emergency shutdown

In case something goes wrong and you suspect the controller to drive your reactor critical, simply disconnect the output power.
DO NOT MANUALLY SHUT DOWN THE REACTOR YET (click).
Containment load should now drop and the saturation will increase. Once saturation reached 99%, you can safely shut down the reactor.
Note: Once the containment load gets too high, all hope is lost. If you still have time, you may try to connect the drainback circuit to some kind of power source and disconnect the reactor from the circuit. In most cases however you won't have time for that. Go grab whatever you can and get the hell outta there - although you most likely won't be able to do that either.
May the odds be ever in your favour.

Changelog

Version 1.2 -> 1.3
	Fixed an incompatibility with later revisions of Draconic Evolution 1.0.2
	Fixed a bug where the controller failed to shut down the reactor properly.
	
Version 1.1 -> 1.2
	The shutdown behaviour has been reworked and it no longer uses arbitrary values to figure out when to
	initiate the reactor shutdown. Instead it approximates the fuel, required for a successful shutdown and uses that value.
	This greatly increases compatibility (read: no explosions) with non-default fuel consumption multipliers in the DE config.
	
	While this is not a change, I will note it here: There were no changes in the reactor code from DE 1.0.2-snapshot9 to 1.0.2 so everything still works.
	
	The "Temperature Load Factor" is no longer being displayed as sub 100% when the reactor is not yet running.
	
	The following changes only affect the OC version:
	
	A bug has been fixed where the "Temperature Load Factor" has always been displayed as 100%.
	There is now an init file and thus the controller can now be configured to start on system boot	using default OC methods.
	I've included a newer version of my libGUI and thus the GUI now automatically adjusts to screen ratios and is bigger in general.
	
Version 1.0 -> 1.1
	A bug has been fixed where the OC version failed to shut down the reactor properly.
	Failsafe-modes have been implemented that kick in if some part of the reactor has been disconnected.
	Please note that these modes are only meant to be used for a short period of time so nothing bad happens
	if you accidentally break some connection.
	
	The GUI is here!
	Using the GUI you can now make the controller shut down the reactor by punching the health-display repeatedly.
	
	The algorithm itself has not changed so you can still use the simulator for 1.0.

Version 0.9.5 -> 1.0
	The control algorithm has been reworked again and is stable now.
	Low values for TICKS_BETWEEN_CONTROL no longer cause explosions.
	
	The OpenComputers version is ready for launch as well :)

Version 0.9 -> 0.9.5
	The control algorithm has been reworked.
	It is now more efficient and allows for even higher power output (at the cost of efficiency).
	Some protective measures have also been improved and additional parameters for tweaking are now available.
	IMPORTANT NOTE: Too low values for TICKS_BETWEEN_CONTROL may cause explosions now.
	
	The simulator has been updated and is now easier to use. See "draconic_control.exe help" for further information.

Looking for something?

Some of the more advanced topics have been moved to a different page, to tidy up this one. Have a look here.

Disclaimer, Copyright and other stuff.

First things first: I'm not responsible for any exploding reactors or computers. As always: Use this program at your own risk. If Draconic Evolution gets changed/rebalanced, the controller may easily yield explosive results.
Because of this I do not allow anyone to redistribute my code. If you want to tell someone about this, send him or her a link to this page as you'll always be able to get the latest version from here.
If you want to use parts of my code for whatever purpose you are permitted to do so if you credit me.
If you have any questions, you can contact me on JABBER (JID/xyfreak@tenyx.de), Twitch (XyFreak) or Twitter (XyFreak1).

Core elements for the design of this website have shamelessly been plaged from ffmpeg.org.