CCU Program Modules

An android, robot, doll, or other construct with an ACS Central Control Unit (CCU) installed may be programmed to think and behave as desired by its owner or operator. This is done by installing one or more Program Modules, which are simply notecards containing text structured according to certain rules.

Program modules may come from any of several sources:

  • Every CCU is sold with a set of standard modules
  • A growing collection of useful program modules is available in the ACS Program Exchange at the Hub.
  • Anyone can write their own program module from scratch
  • You may download a program module from a unit
  • You may edit a program module obtained from any of the above sources, making it behave more the way you want it to.

For extensive information on writing program modules, see the Programming Guide. The page you are reading explains how to install a program module once you have it.

For Units: To install a program module on yourself

If your CCU is not bolted down, you may install a program module on your own CCU by editing the CCU and dragging the module into its inventory. It may also be possible to simply drag the module into the CCU HUD itself, without editing it first. When the new module is recognized, you will need to reboot yourself for it to be read. You may drag several new modules in at once before rebooting to load all of them.

You can also edit an already-installed program module inside the CCU. Edit the CCU HUD, open the notecard, and save it when you’re finished. However, under some circumstances these changes can be lost. It is usually safer to edit a program module in your inventory, then drag it into the CCU. Be careful to delete the existing module before dragging the edited one in.

When your CCU is bolted down, you cannot modify your own programming. Others may reprogram you following the instructions below.

For owners and operators

To install a program module using the workbench

  1. Place the unit to be modified on the Workbench.
  2. Make sure the unit is activated. If it isn’t,find and click the OPER button (under DATA/COMMAND at the lower right of the Installation Console). From the menu, click Activate, and wait for the unit to finish booting.
  3. Most units’ programming is protected by a password which you must have in order to reprogram the unit. Click LOG IN and enter the password when prompted. If you do not have a password, you can try uploading a program module anyway, but you are likely to receive an “Access denied” error.
  4. Load the desired module into the console: Drag the notecard from your inventory into the console while holding down the CTRL key. Release the module when you see a red border around the console. If it does not have the proper permissions, you will be notified. Fix the permissions and try again.
  5. Once the module(s) you want to install on the unit are in the console, click SW (software) on the Console. If the program to be uploaded duplicates an existing one (e.g. if you downloaded one to edit it and are now uploading the edited version), click on the number assigned to the existing module, then click “Replace.” Otherwise, click “Add New,” and select the module to install.
  6. The new programming will be uploaded to the unit. It may take some time for the unit to compile the new instructions. If there are problems with the program module, you will be notified of the errors and the module will NOT be installed. (See below for more information about compile errors.) You may edit the module to correct the errors, and try again. When there are no problems, the module will be installed.
  7. Once all new modules have been installed, reboot the unit to have it load the new module(s).

For owners and operators

To install a program module using a Remote Control

To upload a program module to a unit using a remote control, you must first load it into the remote. Right-click on the remote (or its name in your inventory), and click Edit. In the Build window, go to the Content panel. Drag the module(s) from your inventory into the Content panel. If it does not have the proper permissions, you will be notified. Fix the permissions and try again.

Next, use the remote and connect to the unit. (The unit must be activated.) Most units’ programming is protected by a password which you must have in order to reprogram the unit. Click “Log In” and enter the password when prompted. If you do not have a password, you can try uploading a program module anyway, but you are likely to receive an “Access denied” error.

Click “Software” on the remote menu. If the program to be uploaded duplicates an existing one (e.g. if you downloaded one to edit it and are now uploading the edited version), click on the number assigned to the existing module, then click “Replace.” Otherwise, click “Add New,” and select the module to install.

The new programming will be uploaded to the unit. It may take some time for the unit to compile the new instructions. If there are problems with the program module, you will be notified of the errors and the module will NOT be installed. You may edit the module to correct the errors, and try again. When there are no problems, the module will be installed. The unit must be rebooted to load the new module. You cannot do this directly with the remote, but most units can reboot themselves upon command. If the unit has an Access Panel, it may also be used to shut the unit down and reactivate it.

Compile errors:

Possible errors during compilation include:

  • Syntax error: There is an error in the structure of the program (perhaps a misspelled keyword or omitted punctuation), and part or all of it cannot be compiled.
  • Program not understood: The unit’s natural-language processor could not understand the desired behavior.
  • Conflict with higher-level program: The unit cannot follow the instruction because a higher-level program contradicts it. You may be able to resolve this problem by reloading your program with a higher access level (a larger number in the name), if you have sufficient permission to do so.
  • Illegal program: The instruction violates the unit’s core programming and cannot be followed regardless of access level.
  • Compilation aborted: The unit stopped compiling the module before examining all of it, usually because a previous error made compiling the remainder redundant.

In some cases, the unit may be able to provide additional details about the cause of the error when queried verbally.