Difference between revisions of "KAL-1000 Controller"

From Kerbal Space Program Wiki
Jump to: navigation, search
(Add controller)
 
m (Fixed code tag [ <code> -> <pre> ])
 
(8 intermediate revisions by 7 users not shown)
Line 2: Line 2:
 
{{User:ArnePeirs/created part}}
 
{{User:ArnePeirs/created part}}
 
{{:KAL-1000 Controller/Box}}
 
{{:KAL-1000 Controller/Box}}
 +
The '''KAL-1000 Controller''' is the first micro-controller part added to the game. It allows physical actions by parts to be automated.
  
 
== Product description ==
 
== Product description ==
 
{{Quote|A first of its kind, this intelligent programmable controller can manage a number of parts across a vessel.<br/><br/>Its not an entirely autonomous entity... yet...|manufacturer=MPEG}}
 
{{Quote|A first of its kind, this intelligent programmable controller can manage a number of parts across a vessel.<br/><br/>Its not an entirely autonomous entity... yet...|manufacturer=MPEG}}
 +
 +
== Usage ==
 +
When added to an assembly, new action groups appear, one per controller. When the action group is selected, part actions can be added to the group actions field, like usual, but a new option "Open Track Editor" is available. When an appropriate action is added (indicated by the heading in the Selection field, "Axis Fields"), the Track Editor will display a graph control panel defined by a time x-axis and a min/max y-axis with a spline indicating the status of the part. By using the interface to add discrete adjustable points, the spline can be manipulated to create a motion/magnitude frequency for the part.
 +
 +
An example: the [[SC-9001 Science Jr.]] has one “Axis Field,” one that controls its doors. Once added to the KAL-1000 Controller action group, the Track Editor will create a graph controlling the state of the [[SC-9001 Science Jr.]] doors. By setting an amount of time (maximum 100 seconds) and dropping 3 points onto the spline in the Track Editor interface, the [[SC-9001 Science Jr.]] can be set to open its doors halfway, then close them, then open the doors all the way, then close them at chosen time intervals. When launched and the KAL-1000 Controller activated, the [[SC-9001 Science Jr.]]’s doors will follow this pattern over and over, until the controller is deactivated.
 +
 +
==Controller Priority==
 +
Controller priority does nothing if you only have one controller.  Otherwise, they obey these undocumented rules:
 +
* '''Paused controllers are ignored.'''  An active low-priority controller will "win" over a paused high-priority controller.
 +
* If two or more active controllers are controlling the same part, '''the highest-priority controller wins outright'''.  Other controllers are ignored.
 +
* If two active controllers have '''the same priority''' controlling the same part, their output is averaged.
 +
 +
It is important to not let your controllers become paused if you wish priority or averaging to occur.
 +
 +
==KAL Overclocking==
 +
By forcing the spline in the KAL editor to go outside the normal range, you can input extreme values into parts. This can be used to make engines produce more thrust, make engines produce ''negative'' thrust (which does not actually apply negative thrust to the vehicle, but refills its propellant tanks), make robotic parts rotate faster or extend farther, change fireworks to have huge explosions or launch distances, and more.
 +
For instance, using KAL overclocking and [[Fireworks]], you can reach absurd speeds, sometimes faster than light itself.<ref>https://www.reddit.com/r/KerbalSpaceProgram/comments/qpc051/my_fastest_accelerating_ship_yet_0_to_c_in_less/</ref>
 +
 +
== Modifying KAL curves in a .craft file ==
 +
It is possible to modify KAL curves in a .craft file. Each track is saved under something like this:
 +
 +
<pre>
 +
timeValueCurve
 +
{
 +
key = 0.0 0.0 0 0
 +
key = 0.5 0.0 0 0
 +
key = 1.0 1.0 0 0
 +
}
 +
</pre>
 +
 +
The <code>key = 0.0 0.0 0 0</code> things have four values, which are from left to right: Position (between 0 and 1), value, left handle, right handle. It is possible to write a script that generates a custom track, which the user then pastes at the right place in the .craft. This has been proved very useful in the KAL logic & computing project since there are so many curves, each with so many points, that opening a KAL's editor would crash the game.
 +
 +
== KAL Computer Hardware ==
 +
The Kerbal KAL Logic & Computing Laboratory<ref>https://forum.kerbalspaceprogram.com/index.php?/topic/214231-the-kerbal-kal-logic-computing-laboratory-wip/</ref> has managed to create several pieces of computer hardware with KAL controllers, such as RAM (in the form of registers), ROM, a bus, an adder, a 7-segment dispay, etc. A full computer made out of KALs may be possible, although more experiments and thinking will likely be needed to achieve this goal.
  
 
== Changes ==
 
== Changes ==

Latest revision as of 14:09, 15 March 2023

This article is a stub. You can help KSP Wiki by expanding it.
KAL-1000 Controller
Part image
Robotic controller by
Moving Parts Experts Group

Radial size Radial mounted
Cost (total) 1 000.00 Funds
Mass (total) 0.01000 t
Drag 0.2
Max. Temp. 2000 K
Volume  ?
Impact Tolerance 8 m/s
Research Advanced electrics.png Advanced Electrics
Unlock cost 8 000 Funds
Since version 1.7.1
Part configuration KAL1000.cfg
Electricity required 0.1 ⚡/s

The KAL-1000 Controller is the first micro-controller part added to the game. It allows physical actions by parts to be automated.

Product description

A first of its kind, this intelligent programmable controller can manage a number of parts across a vessel.

Its not an entirely autonomous entity... yet...

Moving Parts Experts Group

Usage

When added to an assembly, new action groups appear, one per controller. When the action group is selected, part actions can be added to the group actions field, like usual, but a new option "Open Track Editor" is available. When an appropriate action is added (indicated by the heading in the Selection field, "Axis Fields"), the Track Editor will display a graph control panel defined by a time x-axis and a min/max y-axis with a spline indicating the status of the part. By using the interface to add discrete adjustable points, the spline can be manipulated to create a motion/magnitude frequency for the part.

An example: the SC-9001 Science Jr. has one “Axis Field,” one that controls its doors. Once added to the KAL-1000 Controller action group, the Track Editor will create a graph controlling the state of the SC-9001 Science Jr. doors. By setting an amount of time (maximum 100 seconds) and dropping 3 points onto the spline in the Track Editor interface, the SC-9001 Science Jr. can be set to open its doors halfway, then close them, then open the doors all the way, then close them at chosen time intervals. When launched and the KAL-1000 Controller activated, the SC-9001 Science Jr.’s doors will follow this pattern over and over, until the controller is deactivated.

Controller Priority

Controller priority does nothing if you only have one controller. Otherwise, they obey these undocumented rules:

  • Paused controllers are ignored. An active low-priority controller will "win" over a paused high-priority controller.
  • If two or more active controllers are controlling the same part, the highest-priority controller wins outright. Other controllers are ignored.
  • If two active controllers have the same priority controlling the same part, their output is averaged.

It is important to not let your controllers become paused if you wish priority or averaging to occur.

KAL Overclocking

By forcing the spline in the KAL editor to go outside the normal range, you can input extreme values into parts. This can be used to make engines produce more thrust, make engines produce negative thrust (which does not actually apply negative thrust to the vehicle, but refills its propellant tanks), make robotic parts rotate faster or extend farther, change fireworks to have huge explosions or launch distances, and more. For instance, using KAL overclocking and Fireworks, you can reach absurd speeds, sometimes faster than light itself.[1]

Modifying KAL curves in a .craft file

It is possible to modify KAL curves in a .craft file. Each track is saved under something like this:

timeValueCurve
{
	key = 0.0 0.0 0 0
	key = 0.5 0.0 0 0
	key = 1.0 1.0 0 0
}

The key = 0.0 0.0 0 0 things have four values, which are from left to right: Position (between 0 and 1), value, left handle, right handle. It is possible to write a script that generates a custom track, which the user then pastes at the right place in the .craft. This has been proved very useful in the KAL logic & computing project since there are so many curves, each with so many points, that opening a KAL's editor would crash the game.

KAL Computer Hardware

The Kerbal KAL Logic & Computing Laboratory[2] has managed to create several pieces of computer hardware with KAL controllers, such as RAM (in the form of registers), ROM, a bus, an adder, a 7-segment dispay, etc. A full computer made out of KALs may be possible, although more experiments and thinking will likely be needed to achieve this goal.

Changes

1.7.1
  • Initial Release
  1. https://www.reddit.com/r/KerbalSpaceProgram/comments/qpc051/my_fastest_accelerating_ship_yet_0_to_c_in_less/
  2. https://forum.kerbalspaceprogram.com/index.php?/topic/214231-the-kerbal-kal-logic-computing-laboratory-wip/