Firmware (LuxOS)
API Docs
LUXMiner commands
profileset

profileset

Description

Sets the current profile for the system. It is also possible to specify the frequency and voltage steps of the profile application (see below).

Note: If autosave is disabled, the changes will be lost after a reboot.

Command

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,default"}' | nc $MINER_IP 4028 | jq
💡

Note: In previous luxminer versions, this command required a board_id parameter, to apply the profile to a single board. Profiles are now on a per-machine basis, and you should omit this parameter on new code.

However, for compatibility reasons, if the second parameter can be interpreted as a number between 0 and 3 it will be seen as the board_id parameter instead of the profile name, to avoid breaking existing code. This does not change the behavior - the profile is still applied to all boards - but allow legacy calls to keep working.

All of the examples on this page use the new format.

Examples

Set profile by name

To set the profile just specify the profile name:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,default"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 5,
      "Profile": "default",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.1.26.143259-2d8448bf",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1706294726
    }
  ],
  "id": 1
}

Set profile by selector

It is also possible to set the profile by selecting it by estimated hashrate or estimated power usage, as well as by its relative position, by using a set of special suffixes(power, hashrate) or prefixes(relative position) when specifying a profile name:

  • THs (suffix): Search the profile by hashrate, in TH/s, up to 1 decimal place.
  • kW (suffix): Search the profile by power, in kilowatts, up to 2 decimal places.
  • W (suffix): Search the profile by power, in watts.
  • + and - (prefix): Go "up" or "down" a certain number of positions, starting at default profile.

For example, if we have the following profiles (from the profiles) command:

// note: showing only relevant fields
{
  "Hashrate": 10.2,
  "Profile Name": "475MHz",
  "Watts": 903
},
{
  "Hashrate": 10.7,
  "Profile Name": "500MHz",
  "Watts": 960
},
{
  "Hashrate": 11.0,
  "Profile Name": "default",
  "Watts": 1080
},
{
  "Hashrate": 12.9,
  "Profile Name": "600MHz",
  "Watts": 1190
},

We can select the 600MHz profile by its hashrate:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,12.9THs"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 5,
      "Profile": "600MHz",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.1.29.204832-45f9624f",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1706621661
    }
  ],
  "id": 1
}

We can select the 475MHz profile by its estimated power consumption, in kilowatts:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,0.9kW"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 5,
      "Profile": "475MHz",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.1.29.204832-45f9624f",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1706621607
    }
  ],
  "id": 1
}

We can select the 500MHz profile by its estimated power consumption, in watts:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,960W"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 5,
      "Profile": "500MHz",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.1.29.204832-45f9624f",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1706621553
    }
  ],
  "id": 1
}

We can go "up" one step from default and reach the 600MHz profile:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,+1"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 5,
      "Profile": "600MHz",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.5.6.204951-60f342c2",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1520599939
    }
  ],
  "id": 1
}

We can also go two steps down from default and reach the 475MHz:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,-2"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 5,
      "Profile": "475MHz",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.5.6.204951-60f342c2",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1520599939
    }
  ],
  "id": 1
}

You can use any number to "move" on the profile list, as long as it starts with either plus (+) or minus (-), otherwise it will be interpreted as the board_id (for compatibility) or a profile name. If you try to move before the first profile or after the last one, the command will fail.

You should also note that the profile name always have priority over other selectors. This means that if you create a profile that is called, for example 960W it won't be possible to select 500MHz by power in the example above. The command will also fail if your selector does not match any profile or if it matches more than one.

Customize ramping

To customize the ramping speed, you can provide the values for the optional parameters frequency_step and voltage_step:

$ echo '{"command": "profileset", "parameter":"yJN2nlj1,default,25,1.0"}' | nc $MINER_IP 4028 | jq
{
  "PROFILE": [
    {
      "Board": 0,
      "FrequencyStep": 25,
      "Profile": "default",
      "VoltageStep": 0.05
    }
  ],
  "STATUS": [
    {
      "Code": 321,
      "Description": "LUXminer 2024.1.26.143259-2d8448bf",
      "Msg": "Profile Set",
      "STATUS": "S",
      "When": 1667918305
    }
  ],
  "id": 1
}
️🚫

Changing the default ramping steps is considered a dangerous feature, intended only for advanced users. It can cause permanent damage to the chips and/or board, as well as a decrease in hashrate over time.

Use at your own risk.

Parameters

ParameterNotes
session_idA valid session ID. See Session Management for details.
board_idDeprecated. Board ID, starting from zero. Only for compatibility reasons; ignore this parameter when writing new code.
profileThe profile name, as shown in the profiles command.
frequency_stepOptional. The step size of the frequency ramping. The default value is 5, and the max is 1000.
voltage_stepOptional. The step size of the voltage ramping. The default value is 0.05, and the max is 10.0.

Field details

FieldNotes
BoardEither the provided board ID or zero. Only exists for compatibility reasons.
FrequencyStepThe step of the frequency ramp.
ProfileThe new profile.
VoltageStepThe step of the voltage ramp.