# Jaw MP3 first, then HEAD: isolated hardware test

**Current result:** Jaw-first HEAD was tested at both **2 seconds** (twice) and **10 seconds** (once), using jaw MP3 #13. The HEAD BLE command was transmitted in each trial, but the head **did not physically move**. Independent head movement still works. The original exploratory instructions are retained for history; keep this mode OFF for normal use.

## Motivation

An AAC6 MP3 play command sent during an active head animation appeared to interrupt the head. Jaw-first arm/torso behaved differently: sending AACA 2 seconds *after* AAC6 let each motor work with jaw movement. This new test reverses the head/jaw command order in the same way.

## Isolated test configuration

Open [Skelly Studio](../studio/), then use these options:

| Setting | First test |
| --- | --- |
| Head | **ON**, 90–150 seconds (or leave default) |
| Arm | **OFF** |
| Torso | **OFF** |
| Jaw | **ON**, MP3 **#13** on the original prop (the 3-second Long Open clip) |
| Jaw frequency | 45–60 seconds |
| Jaw first → body movement | **Start HEAD after jaw MP3 begins (UNTESTED)** |
| Follow-up delay | **2 seconds** |
| Repeat when selected motor is due | **OFF** (one successful follow-up per BLE connection) |
| Protect head + arm + torso from MP3 | **ON** |
| Body motor overlap | **OFF** |
| Eyes | **OFF**, initially |

Use the known ESP32 Dev Module settings and Serial Monitor at **115200 baud**. Keep the prop secure and moving parts clear.

**Expected code behavior:** Head's standalone timer is paused until the one-shot experiment succeeds, so it cannot occupy the global body lock before the first jaw-first test. After AAC6 starts, the follow-up sends the same verified `AA CA 01` head-only command about 2 seconds later, provided the head is enabled and all cooldowns allow it. After a successful one-shot, normal independent head scheduling resumes. Subsequent jaw MP3s should still be protected from interrupting active head movements.

Watch for:

```text
Jaw-first follow-up: HEAD (EXPERIMENTAL) after 2000 ms (ONE-SHOT).
JAW-FIRST ONE-SHOT: scheduled HEAD 2000 ms after MP3 start.
JAW command sent (file #13)
JAW-FIRST: sending HEAD after MP3 start (UNTESTED).
HEAD command sent
```

These are *expected partial messages*, not a claim that the prop physically responded.

## Visual observations to record

1. Does the mouth stay open through the **2–5 second long hold** even though the head starts at approximately 2 seconds?
2. Does the head start moving and complete its usual **~25-second animation**? It will extend beyond the ~21-second MP3.
3. Does the MP3 stop unexpectedly when AACA head starts?
4. Does the animation restart, freeze or show any unexpected torso/arm movement?

If either animation is interrupted, keep MP3 body protection ON and disable jaw-first HEAD until we isolate the behavior.

## Can head, torso and arm all move together?

**Possibly, but not yet demonstrated.** Studio already has an advanced **Allow body motor overlap** switch that removes the *shared* body motor lock while preserving **per-part cooldowns** and at least **600 ms spacing between BLE writes**. With Head, Arm, and Torso ON, and **Jaw OFF**, independently due body commands could overlap physically; it is not guaranteed they will all start at once. We still do not know whether a new `AA CA` command interrupts an ongoing `AA CA` movement on this version of Skelly, or whether running several motors together strains its power/mechanics.

We should first test **head+arm**, then **head+torso**, then **arm+torso** under body overlap, and only then attempt all three, while attended. That is a *separate* test from the jaw-first HEAD test. MP3 body protection still prevents normal body starts during jaw audio, except the deliberate jaw-first motor follow-up.

## Why Bluetooth retried during the prior test

The last provided run logged two BLE connection failures and one scan miss before eventually establishing a valid connection. Commands ran after it connected. Those failures are a separate BLE acquisition issue, not evidence that the motor scheduler was wrong; continue monitoring the retry behavior if it becomes frequent.


## Physical result — October 20, 2026: two 2-second head trials unsuccessful

The user ran the isolated HEAD one-shot diagnostic **twice** with **Jaw file #13**, Head ON, Arm/Torso OFF, MP3 protection ON, delay **2 seconds**. Both sessions logged the scheduled `AAC6` playback, followed by `JAW-FIRST: sending HEAD after MP3 start` and `HEAD command sent`. **The user observed that the head did not physically move immediately after jaw playback began.** Later ordinary independent head actions were sent and reportedly worked, so the known HEAD command and motor can work when they are not following MP3 playback.

**Result: jaw-first HEAD at 2 seconds is TESTED AND DID NOT MOVE THE HEAD on this prop.** This is not a firmware write failure, as shown by the logs; it is consistent with device-level head motion suppression while MP3 playback is active, but the exact reason is unknown. The original guide above describes a proposed test and predates this result. Do not enable jaw-first HEAD in normal Haunted operation.

**Follow-up completed:** At a **10-second delay**, jaw MP3 #13 played and the firmware logged the HEAD command, but the head still **did not move**. This rules against a restriction confined only to the first two seconds of playback. The precise cause and any possible head behavior later in the MP3 are unknown. Use the proven standalone 25-second head movement with MP3 protection ON.

A separate [combined body movement sketch](body-combo-test.md) tests whether **one** bitmask command `AA CA 03` can start head+arm simultaneously without MP3 playback; this is distinct from the jaw-first experiment.

## Combined body movement test result

Using the separate [one-shot combined movement sketch](body-combo-test.md), the user sent **`AA CA 03 00 00 00 00 00 00 00 D7`**. Both **head and arm physically moved**. Torso remained stationary because mask `0x03` does not include its `0x04` bit. The composite HEAD+ARM command therefore works without any jaw MP3; this result does **not** contradict the unsuccessful HEAD-after-MP3 test.

The next isolated test is one-shot mask `0x05` for HEAD+TORSO, without MP3.
