FRAMEWORK_TOOL(1)

NAME
framework_tool - control and query Framework Computer systems

SYNOPSIS
framework_tool [-v -...] command [argument]

DESCRIPTION
framework_tool is a command-line utility for interacting with Framework Computer laptops and desktops. It communicates with the Embedded Controller (EC) to query firmware versions, battery and USB-C status, thermal data, privacy and intrusion switches, and expansion card details. It can also adjust system settings and flash EC firmware.

Most operations require root privileges.

OPTIONS

  Firmware Information

--versions
    List current firmware versions (BIOS, EC, PD controllers, retimer, touchpad, touchscreen)

--version
    Show tool version information. Add -vv for more details

--features
    Show features supported by the firmware

--esrt
    Display the UEFI ESRT table

--meinfo [dmidecode-dump]
    Show Intel ME information from SMBIOS. Optionally provide a path to a dmidecode binary dump file

--boardid
    Print all board IDs

--pd-bin file
    Parse version from a PD firmware binary file

--ec-bin file
    Parse version from an EC firmware binary file

--capsule file
    Parse UEFI capsule information from a binary file

--h2o-capsule file
    Parse H2O BIOS capsule information from a binary file

--dump file
    Dump extracted UX capsule bitmap image to a file

  System Status

--power
    Show current power status of battery and AC. Add -vv for more details.

--thermal
    Print thermal information (temperatures and fan speed)

--sensors
    Print sensor information (ALS, G-Sensor)

--pdports
    Show USB-C PD port state

--pdports-chromebook
    Show PD port info (generic Chromium EC)

--pd-info
    Show details about the PD controllers

--dp-hdmi-info
    Show details about connected DisplayPort or HDMI expansion cards

--audio-card-info
    Show details about connected audio expansion cards. Requires root

--privacy
    Show privacy switch statuses (camera and microphone)

--intrusion
    Show status of the intrusion switch

--inputdeck
    Show status of the input modules (Framework 16 only)

--expansion-bay
    Show status of the expansion bay (Framework 16 only)

--get-gpio [name]
    Get GPIO value by name, or all GPIOs if no name is given

--stylus-battery
    Check stylus battery level (USI 2.0 stylus only)

--uptimeinfo
    Show EC uptime information

--s0ix-counter
    Show S0ix counter

--console recent|follow
    Read EC console output

  Settings

--kblight [percent]
    Get or set keyboard backlight percentage

--charge-limit [percent]
    Get or set the maximum battery charge limit

--charge-current-limit milliwatts [port]
    Set maximum charge current limit

--charge-rate-limit rate [port]
    Set maximum charge rate limit

--fp-led-level [level]
    Get or set fingerprint LED brightness level

--fp-brightness [percent]
    Get or set fingerprint LED brightness percentage

--tablet-mode auto|on|off
    Set tablet mode override

--touchscreen-enable true|false
    Enable or disable the touchscreen

--inputdeck-mode auto|on|off
    Set input deck power mode (Framework 12, 13, 16)

--fansetduty [fan percent]
    Set fan duty cycle (0-100%)

--fansetrpm [fan rpm]
    Set fan speed in RPM

--autofanctrl [fan]
    Turn on automatic fan speed control

--ec-hib-delay [seconds]
    Get or set EC hibernate delay (S5 to G3 transition)

--remap-key matrix from to
    Remap a key by changing its scancode

--rgbkbd start color ...
    Set per-key RGB colours starting at start

  Firmware Flashing

--flash-ec file
    Flash EC (RO and RW) with new firmware. May render hardware unbootable. Requires --force

--flash-ro-ec file
    Flash EC RO region with new firmware. May render hardware unbootable. Requires --force

--flash-rw-ec file
    Flash EC RW region with new firmware

--dump-ec-flash file
    Dump EC flash contents to a file

--flash-full-ec file
    Flash full EC flash (RO, RW, and all regions) with new firmware. May render hardware unbootable. Requires --force

--dp-hdmi-update file
    Update the firmware of a connected DisplayPort or HDMI expansion card

  Advanced Options

--driver type
    Select the EC driver to use. By default port I/O is used

--pd-addrs addr1 addr2 addr3
    Specify I2C addresses of the PD chips. Must be used together with --pd-ports

--pd-ports port1 port2 port3
    Specify I2C ports of the PD chips. Must be used together with --pd-addrs

--host-command cmd version [data ...]
    Send a raw EC host command

--pd-reset controller
    Reset a specific PD controller (for debugging only).

--pd-disable controller
    Disable all ports on a specific PD controller (for debugging only)

--pd-enable controller
    Enable all ports on a specific PD controller (for debugging only)

--reboot-ec mode
    Control EC RO/RW jump

--device type
    Hardware device type to compare against --compare-version

--compare-version version
    Version string to compare with the on-device version.

--hash file
    Hash a file of arbitrary data using the EC hash algorithm

--test
    Run self-test to check if EC communication is working

--test-retimer
    Run self-test to check if retimer communication is working

--dry-run
    Simulate execution of a command without applying changes

--force
    Allow execution of unsafe commands

  General Options

-v  Increase verbosity. Repeat for more output (e.g., -vv)

-h, --help
    Print help information

EXIT STATUS

EXAMPLES
List all firmware versions:
    # framework_tool --versions

Show battery and AC status:
    # framework_tool --power

Get keyboard backlight level:
    # framework_tool --kblight

Set keyboard backlight to 50%:
    # framework_tool --kblight 50

Set battery charge limit to 80%:
    # framework_tool --charge-limit 80

Parse version from EC firmware file:
    $ framework_tool --ec-bin ec.bin

Flash EC RW firmware:
    # framework_tool --flash-rw-ec ec_rw.bin

SEE ALSO
dmidecode(8)

AUTHORS
framework_tool was written by Framework Computer Inc <hello@frame.work>

This manual page was written by Nadzeya Hutsko <nadzya.info@gmail.com>