Settings
3 min read
February 1, 2026The Cassandra firmware is highly configurable through the settings.json file, typically located in the config/ directory. These settings control various aspects of the machine’s operation, including heating logic, press control, and Modbus communication parameters.
The configuration is divided into three main sections: General Settings, Device Configuration (Master/Slaves), and Partitions.
General Settings
These settings are grouped by their functional area. You can modify these values to tune the machine’s behavior without recompiling the firmware.
Heating
Parameters controlling the thermal management system.
| Setting Name | Type | Key | Description |
|---|---|---|---|
| Always Warmup | bool | ALWAYS_WARMUP | If enabled, the system will always execute a warmup phase before starting a profile. |
| Always Stop PIDs | bool | ALWAYS_STOP_PIDS_ON_PROFILE_FINISHED | Automatically turn off all PID controllers when a heating profile completes. |
| Sequential Heating Exclusive | bool | SEQUENTIAL_HEATING_EXCLUSIVE | Enforces sequential startup of heaters to reduce peak power consumption. |
| Always Use Sequential | bool | ALWAYS_USE_SEQUENTIAL_HEATING | Forces the use of the sequential heating strategy for all heating operations. |
| PID Lag Compensation | bool | PID_LAG_COMPENSATION | Enables compensation logic for thermal lag in the PID control loop. |
| Max Temperature | long | MAX_TEMPERATURE | The maximum allowable temperature setpoint (e.g., 280°C). Safety limit. |
| Min Temperature | long | MIN_TEMPERATURE | The minimum allowable temperature setpoint (e.g., 10°C). |
| SP Deadband | long | SP_DEADBAND | The deadband range for the setpoint to prevent oscillation around the target temperature. |
Press
Configuration for the press subsystem, including load cells and solenoids.
| Setting Name | Type | Key | Description |
|---|---|---|---|
| Loadcell Slave ID 0 | long | LOADCELL_SLAVE_ID_0 | Modbus Slave ID for the first load cell amplifier. Master: 20, Slave: 21 |
| Loadcell Slave ID 1 | long | LOADCELL_SLAVE_ID_1 | Modbus Slave ID for the second load cell amplifier. Master: 21, Slave: 20 |
| Solenoid 0 Modbus Addr | long | SOLENOID_0_MB_ADDR | Modbus address for the first solenoid valve control. |
| Solenoid 1 Modbus Addr | long | SOLENOID_1_MB_ADDR | Modbus address for the second solenoid valve control. |
Modbus RTU
Low-level communication settings for the RS485 bus.
| Setting Name | Type | Key | Description |
|---|---|---|---|
| Operation Timeout | long | OPERATION_TIMEOUT | Timeout in milliseconds for Modbus operations. |
| Omron Read Interval | long | OMRON_E5_READ_BLOCK_INTERVAL | Time interval in milliseconds between block reads from Omron E5 controllers. |
Device Configuration
This section defines the Modbus network topology.
Master
- Master Name: Defined as
"plc". This represents the main Cassandra controller.
Slaves
A list of defined slave devices on the network.
cassandra-1
Partitions
Partitions allow you to group individual controllers into logical units (e.g., “Left Side”, “Right Side”). This is useful for organizing the UI and managing multi-zone heating.
Cassandra Left
A partition containing controllers for the left side of the machine.
- Carina (Slave ID: 10)
- Castor (Slave ID: 11)
Cassandra Right
A partition containing controllers for the right side of the machine.
- Coma B (Slave ID: 12)
- Corvus (Slave ID: 13)
- Start Slave ID: 14 (Used for auto-generating additional controller entries)
- Num Controllers: 4
Configuration File Structure
For reference, the settings.json file follows this structure:
{
"master": "plc",
"slaves": ["cassandra-1"],
"partitions": [ ... ],
"settings": [
{
"enabled": true,
"name": "ALWAYS_WARMUP",
"group": "heating",
"type": "bool",
"value": true
},
...
]
}