Skip to content

ConfigurationGuide

JC Straley edited this page Dec 23, 2023 · 5 revisions

Configuring Cato

Web App

Coming Soon!

Manual Configuration

To configure cato manually (interim / dev solution)

  1. Attach Cato to Computer by USB-C Cable (Should attach as Mass Storage Device)

  2. Open file "Config.json"

Structure of config.json

{
    "top level name" : {
        "label"         : "An elegant name for the top_level_name",
        "description" : "A description of the top_level_name",
        "note" : "Notes on the usage or quirks of the setting",
        "access" : " 'r', 'w', or 'rw' -- indicates readability and writability of a setting",
        "value" : "the value for top_level_name, can be another top level structure, recursively"
    }   
}

Config Settings

Name

The Device's Name (Discoverable on Bluetooth)

Note: Mac has a 15 character limit

Operation Mode

Operation Modes:
    "gesture_mouse" : "alternate mouse movement / gesture action"
    "tv_remote"     : "gesture actions on a loop"
    "pointer"       : "mouse pointer only"
    "clicker"       : "tap to send configurable click actions" 
    "practice"      : "perform gestures, see prediction results"

Sleep

Timeout:
    Seconds of idle required before device requires tap-to-wake
Threshold:
    Motion level to be considered 'idle'

Screen Size

Height:
    Monitor Vertical Pixels
Width:
    Monitor Horizontal Pixels

Mouse

idle_thresh
	Speed (degrees/sec) below which Cato considers user motion "idle"
min_run_cycles
	Minimum Number of Cycles For Mouse Pointer Operation (at 104 Hz)
idle_duration
	Number of Cycles of Consecutive Idle State before transitioning to gesture detection
dwell_duration
    Number of consecutive cycles for mouse to observe idle behavior performing dwell action in dwell_click
dwell_repeat
    If true, extended idle will trigger multiple clicks
scale_x
    Flat multiplier for all mouse movements left / right             
scale_y
    Flat multiplier for all mouse movements up / down
            
dynamic_mouse
    input
        slow
            Rotation speed (deg/sec) where cursor acceleration hits minimum
        fast
            Rotation speed (deg/sec) where cursor acceleration hits maximum
    output
        slow
            Cursor output multiplier (minimum)
        fast
            Cursor output multiplier (maximum)

shake_size
    When detecting gestures, amount to move the mouse for indicator shake
num_shake
    Number of times to draw the indicator on screen

TV_Remote

await_actions
    True/False : Enforce termination of previous routine before accepting new gesture input

Clicker

max_click_spacing
    amount of time (seconds) to wait for another tap before dispatching tap-type action
tap_ths
    Level of impact needed to trigger a click
quiet
    amount of non-impact time (~.04 seconds per) required for impulse to register as click
shock
    maximum permissible duration of impulse to be recognized as a tap

Gesture

timeout
    maximum wait time in gesture detect window before exiting with "none"
gc_timeout
    courtesy delay time when performing gesture collection routine

Orientation

CatoOrientation

front
    axis defining forwards on device
bottom
    axis defining downwards on device
left
    axis defining (user's) left on device

Calibration

auto_threshold
    maximum allowed movement (as a scale percentage of mouse_idle) to trigger auto_calibrate
auto_samples
    number of consecutive idle samples required to trigger an auto_calibrate
    (also number of samples - same window)

Confidence Threshold

confidence_threshold
    threshold of gesture confidence probability [0, 1), for Cato to accept gesture and execute command

Bindings

This structure links gestures to output actions - there's a lot here please visit

https://github.com/aulitech/Cato/wiki/BindingList

Clone this wiki locally