--- id: device title: Device Configuration slug: /settings/config/device sidebar_label: Device --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; The device config options are: Role, Serial Output, and Debug Log. Device config uses an admin message sending a `Config.Device` protobuf. ## Device Config Values ### Role Sets the role of node. Acceptable values: | Value | Description | | :-------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | `CLIENT` | Client (default) - App connected client. | | `CLIENT_MUTE` | Client Mute - Same as a client except packets will not hop over this node, does not contribute to routing packets for mesh. | | `ROUTER` | Router - Mesh packets will prefer to be routed over this node. This node will not be used by client apps. The WiFi/BLE radios and the OLED screen will be put to sleep. | | `ROUTER_CLIENT` | Router Client - Mesh packets will prefer to be routed over this node. The Router Client can be used as both a Router and an app connected Client. | | `REPEATER`[^1] | Repeater - Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate.[^1] | | `TRACKER`[^1] | Tracker - Position Mesh packets will be prioritized higher and sent more frequently by default.[^1] | [^1]: These roles are new as of the 2.0.15 alpha release. They are still a work in progress and as such features and functionality may evolve or change as work on them continues. ### Serial Console Acceptable values: `true` or `false` Disabling this will disable the SerialConsole by not initializing the StreamAPI. ### Debug Log Acceptable values: `true` or `false` By default we turn off logging as soon as an API client connects. Set this to true to leave the debug log outputting even when API is active. ### GPIO for user button This is the GPIO pin number that will be used for the user button, if your device does not come with a predefined user button. ### GPIO for PWM Buzzer This is the GPIO pin number that will be used for the PWM buzzer, if your device does not come with a predefined buzzer. ## Device Config Client Availability :::info Device Config is available for Android. 1. Open the Meshtastic App 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Device Config** ::: :::info All device config options other than NTP Server are available on iOS, iPadOS and macOS at Settings > Radio Configuration > Device. ::: :::info All device config options are available in the python CLI. Example commands are below: ::: | Setting | Acceptable Values | Default | | ------------------------ | -------------------------------------------------- | -------- | | device.debug_log_enabled | `true`, `false` | `false` | | device.role | `CLIENT`, `CLIENT_MUTE`, `ROUTER`, `ROUTER_CLIENT` | `CLIENT` | | device.serial_enabled | `true`, `false` | `true` | | device.button_gpio | `0` - `34` | `0` | | device.buzzer_gpio | `0` - `34` | `0` | :::tip Because the device will reboot after each command is sent via CLI, it is recommended when setting multiple values in a config section that commands be chained together as one. ```shell title="Example:" meshtastic --set device.role CLIENT --set device.debug_log_enabled true ``` ::: ```shell title="Set the role to client" meshtastic --set device.role CLIENT ``` ```shell title="Disable serial console" meshtastic --set device.serial_enabled false ``` ```shell title="Enable debug logging" meshtastic --set device.debug_log_enabled true ``` :::info All device config options are available in the Web UI. :::