{
  "_comment": "Configuration servomoteurs Skull Pi - Service Motion",
  "_version": "1.0.0",
  "_description": {
    "channels": "CH0=jaw, CH1=eye_left_h, CH2=eye_right_h, CH3=neck_pan",
    "curves": "linear | gamma:<float>",
    "units": "us=microseconds, deg=degrees"
  },

  "servos": {
    "jaw": {
      "_description": "Mâchoire - Ouverture/fermeture",
      "channel": 0,
      "min_us": 1000,
      "max_us": 2000,
      "min_deg": -20.0,
      "max_deg": 20.0,
      "center_deg": 0.0,
      "curve": "linear"
    },

    "eye_left_h": {
      "_description": "Œil gauche - Mouvement horizontal",
      "channel": 1,
      "min_us": 600,
      "max_us": 2400,
      "min_deg": -45.0,
      "max_deg": 45.0,
      "center_deg": 0.0,
      "curve": "gamma:1.4"
    },

    "eye_right_h": {
      "_description": "Œil droit - Mouvement horizontal",
      "channel": 2,
      "min_us": 600,
      "max_us": 2400,
      "min_deg": -45.0,
      "max_deg": 45.0,
      "center_deg": 0.0,
      "curve": "gamma:1.4"
    },

    "neck_pan": {
      "_description": "Cou - Rotation panoramique",
      "channel": 3,
      "min_us": 800,
      "max_us": 2200,
      "min_deg": -60.0,
      "max_deg": 60.0,
      "center_deg": 0.0,
      "curve": "linear"
    }
  },

  "_calibration_notes": {
    "jaw": "Position 0° = bouche fermée, +20° = ouverture max",
    "eyes": "Position 0° = regard droit, ±45° = extrêmes H",
    "neck": "Position 0° = face avant, -60°=gauche, +60°=droite",
    "gamma_eyes": "Courbe 1.4 pour mouvement naturel regard"
  },

  "_safety_limits": {
    "channels_authorized": [0, 1, 2, 3],
    "ticks_range": [0, 4095],
    "clamp_mandatory": true,
    "estop_gpio": 4,
    "watchdog_timeout_s": 5.0
  }
}
