frequencyset
Description
Sets a target frequency for one or more chips of a given board.
This command returns immediately, but internally the frequency is slowly changed, either up or down, to reach the target value. This is done to avoid hardware damage or board failures when the difference between the "current" and the "new" frequency is to big.
While frequencies can be set per chip, for miner safety they should be set per board.
If you are setting the frequency for scripting purposes, it is recommended to use this command and then check the frequencies every 1-2s (with frequencyget) until the target is reached before continuing with the script. Alternatively, you can also check for the IsRamping
flag on devs command for that specific board.
Notes:
- This command will always fails if the curtailment mode is
sleep
. See the curtail command for details. - This command will always fails if the curtailment mode is
idle
orsleep
. See the curtail command for details.
S9 limitations
On S9 machines, frequency change has a set of fixed points, instead of supporting all arbitrary values. In this case, the returned Frequency
field in the output will be the closest of the allowed frequencies acceptable for S9 machines. If your script requires precision frequency values, always double check the returned Frequency
field.
Command
$ echo '{"command": "frequencyset", "parameter":"yJN2nlj1,1,650"}' | nc $MINER_IP 4028 | jq
Examples
Setting all chips to the same frequency.
$ echo '{"command": "frequencyset", "parameter":"yJN2nlj1,1,650"}' | nc $MINER_IP 4028 | jq
{
"RAMP": [
{
"Board": 1,
"Frequency": 650,
"FrequencyStep": 5,
"TargetChip": "all"
}
],
"STATUS": [
{
"Code": 302,
"Description": "LUXminer 0.1.0-15436f7140",
"Msg": "Set Frequency",
"STATUS": "S",
"When": 1667917531
}
],
"id": 1
}
Sets a specific chip:
$ echo '{"command": "frequencyset", "parameter":"yJN2nlj1,1,650,10"}' | nc $MINER_IP 4028 | jq
{
"RAMP": [
{
"Board": 1,
"Frequency": 650,
"FrequencyStep": 5,
"TargetChip": "10"
}
],
"STATUS": [
{
"Code": 302,
"Description": "LUXminer 0.1.0-15436f7140",
"Msg": "Set Frequency",
"STATUS": "S",
"When": 1667917538
}
],
"id": 1
}
You can also set the step size of the frequency ramping. This can be used to speed up the ramping process dramatically, at the cost of miner health, and can be used in critical scenarios, when you need speed over safety.
Do not use this option unless you know what you're doing; this can cause permanent damage to the chip and/or board, as well as a decrease in hashrate over time.
Use at your own risk.
The example below will set all chips to 650MHz, but will use step sizes of 25Mhz in each iteration:
# Note the use of '*' to specify all chips; you could, of course, use
# a specific chip number instead
$ echo '{"command": "frequencyset", "parameter":"yJN2nlj1,1,650,*,25"}' | nc $MINER_IP 4028 | jq
{
"RAMP": [
{
"Board": 1,
"Frequency": 650,
"FrequencyStep": 25,
"TargetChip": "all"
}
],
"STATUS": [
{
"Code": 302,
"Description": "LUXminer 0.1.0-15436f7140",
"Msg": "Set Frequency",
"STATUS": "S",
"When": 1667917531
}
],
"id": 1
}
Parameters
Parameter | Notes |
---|---|
session_id | A valid session ID. See Session Management for details. |
board_id | Board ID, starting from zero. |
frequency | The frequency value to set. |
chip_id | Optional. The chip number, starting from zero. |
step | Optional. The step size of the ramping. The default value is 5, and the max is 1000. |
Field details
Field | Notes |
---|---|
Board | Board ID, starting from zero. |
Frequency | The new frequency value. This is the real target frequency, already adjusted for S9 miners. |
FrequencyStep | The step of the frequency ramp. |
TargetChip | The target chip, or "all" for all chips. |