User Modes

Experimental V1 firmware documentation. Koheron products currently ship with V0.x firmware by default. V1 firmware executables are not publicly available yet. Please contact us if you are interested in early access or would like to evaluate V1 on your device.

V1 firmware uses access modes to decide whether a command is allowed to modify a setting. The current mode is read or changed with usrmode.

Access modes are not a replacement for hardware protections, current limits, interlocks or safe operating procedures. They are a firmware-level guard against accidental use of commands that should not be available in every context.

Modes

The public firmware documentation uses these modes:

  • 0: restricted.
  • 1: normal.
  • 2: advanced.

The default user mode is 2. Products may load a saved mode at startup. Invalid saved mode values are restored as 2.

Read the current mode

>> usrmode
2

Change mode

The write form is:

>> usrmode 1 <key>
1
>> usrmode 2 <key>
2

The key must authorize the requested mode. If the key is invalid or insufficient, the firmware sets an invalid-argument error and leaves the mode unchanged.

Startup behavior

The UART configuration stores the user mode together with baud rate, board ID, multiplexing, error mask and sequencer enable state. At startup, restricted, normal and advanced modes may be restored. Invalid values are replaced by the default mode 2.

Common write restrictions

The exact restrictions are implemented by each command. Common patterns are:

  • Read-only commands such as version, IDN?, serial, err, errlist and many monitoring commands can be read without changing mode.
  • Normal access is required for common user writes such as userdata write, errmsk, errclr and many product setpoints.
  • Advanced access is required for communication and integration features such as brate, bdid, muxon, memw, sequ writes and regs writes.

Failure behavior

When a command is not allowed in the current mode, it usually sets CMD_INVALID_ARG and returns the current value or no value depending on the command. Use err after a failed write to confirm the error state, then errclr after correcting the command.

Practical recommendation

For normal scripts:

  • Do not change usrmode unless you need to.
  • Use the default mode 2 during controlled laboratory setup.
  • Use normal or restricted mode for deployed systems where accidental advanced writes should be avoided.
  • Never depend on user modes as the only safety layer.
[email protected]