Category: Uncategorized

  • Why Is My Roomba Making a Loud Clicking Noise? (Sensor-Logic Diagnostic Guide)

    Your Roomba does not “just get noisy.” It enters a repeatable control loop: you hear a sharp click-click-click (often rhythmic), the chassis may twitch, the robot may hesitate on turns, or it may click while docking. That sound usually equals one of two events inside the system:

    • Mechanical skip: a gear tooth slips in the Cleaning Head Module Gearbox or a wheel gear train.
    • Stall-retry logic: the motherboard detects motor stall (via current draw / speed feedback) and pulses the motor to re-attempt movement—each pulse can sound like a click.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Loud rhythmic clicking + micro-stutters during cleaning/turning OR clicking at the dock
    • 🔍 Primary Suspect: Wheel Encoders mismatch, Cleaning Head Module Gearbox tooth-skip, Bumper Micro-switches bounce, or Charging Contacts chatter
    • 🛠️ Fix Difficulty: Level 2/5 (diagnostic) → Level 4/5 (module replacement)
    • ⏱️ Est. Downtime: 15–45 minutes

    The Logic: Why Your Robot Is Confused

    Roomba navigation and cleaning run as a closed-loop system: sensors feed the CPU, the CPU drives motors, and feedback confirms motion. Clicking starts when feedback breaks.

    • Wheel Encoder failure loop: The CPU commands both drive motors forward. The Wheel Encoders report speed/rotation. If one encoder reports zero/erratic pulses, the robot thinks it drifts or hits resistance. It then hammers corrective micro-commands (tiny left/right bursts). Those bursts can sound like clicking, and the robot may spin or “shimmy.”
    • Brush motor stall-retry loop: The Cleaning Head Module motor loads up (hair, thread, debris, or worn bearings). The CPU detects stall current and issues stop/restart pulses. Each restart can create a click, especially if a gear skips.
    • Bumper micro-switch bounce: A sticky Bumper or loose bumper mount causes Bumper Micro-switches to chatter. The robot repeatedly re-plans path as if it keeps tapping obstacles. That can create a “click + jerk + click” pattern.
    • False cliff detection: Dirty Cliff Sensors or dark carpet can trigger safety behavior (back up, turn, re-check). The stop/start behavior can expose mechanical clicking that you do not notice during smooth motion.
    • Docking contact chatter: If Charging Contacts do not seat cleanly, the robot can rock or re-align in short bursts, producing clicking near the base. Digital Trends specifically calls out clicking tied to charging alignment/contact issues. :contentReference[oaicite:0]{index=0}

    Protocol 1: The “Soft” Fix (Software & Reset)

    1) Reboot the control stack (not just “power off”)

    • Hold CLEAN (or the main power button on your model) until the unit restarts.
    • Run a 2-minute test clean on hard floor. Listen for the click pattern: constant rhythm (gear) vs. bursty/pulsed (logic retry).

    2) Update firmware, then re-check motor control behavior

    • Open the iRobot Home app → check for firmware updates.
    • Firmware updates often adjust stall thresholds and recovery routines. A borderline brush motor can click less (or more) depending on the threshold.

    3) Kill Wi-Fi noise (connectivity can amplify “weird behavior”)

    • Force your phone + robot onto 2.4GHz Wi-Fi during setup if your router splits 2.4/5GHz. Many robot vacuums behave better on 2.4GHz for provisioning and stable cloud commands.
    • Disable “band steering” temporarily if your router keeps moving the device.

    4) Factory reset only after you isolate hardware vs. software

    • Use a factory reset if the robot shows repeated navigation loops after you confirm the drivetrain spins smoothly by hand.
    • Do not use a reset as the first move. A stripped gearbox keeps clicking after any reset.

    Protocol 2: Hardware Intervention

    Tools: Torx T8/T10 (varies), Phillips #1, tweezers, flashlight, microfiber cloth, cotton swabs, 70% isopropyl alcohol, a phone (slow-motion video helps).

    Step 1 — Classify the click by “where” and “when”

    • Center underside click during cleaning = Cleaning Head Module or Extractor/Brush train.
    • Left/right click during turns = Left/Right Wheel Module + Wheel Encoders.
    • Front click at obstacles = Bumper + Bumper Micro-switches.
    • Dock click only when charging = Charging Contacts chatter or base alignment. :contentReference[oaicite:1]{index=1}

    Engineer’s Note: Record 10 seconds of slow-motion video (120–240 fps) under good light. Match each click to a physical event: wheel twitch, brush jerk, bumper bounce. You cannot beat time-correlated evidence.

    Step 2 — Validate the Cleaning Head Module gearbox (the #1 “rhythmic click” source)

    • Flip the robot over. Remove the Main Brush / Dual Rubber Extractors.
    • Spin each brush by hand. Feel for a hard notch that repeats every rotation.
    • Inspect Brush End Caps and the brush pocket for a tiny pebble or a snapped plastic tab.
    • Reinstall brushes correctly. A mis-seated brush can produce a loud tap/click (Digital Trends highlights misalignment causing clicking/tapping). :contentReference[oaicite:2]{index=2}

    Engineer’s Note: If the click frequency stays constant regardless of speed, suspect a missing tooth in the Cleaning Head Module Gearbox. The motor torque spikes at that tooth, the gear slips, and you hear one click per cycle.

    Step 3 — Audit the drive wheels and Wheel Encoders (logic-loop clicking)

    • Pull each Drive Wheel Module up/down. Confirm smooth spring travel.
    • Spin each wheel slowly. Listen for a click and feel for a “step.”
    • Remove wrapped hair from the axle area. Hair can drag the wheel and create encoder dropouts.

    Engineer’s Note: A dirty or failing Wheel Encoder does not just “make noise.” It breaks the odometry stream, and the CPU reacts with repeated micro-corrections. That reaction can sound like clicking and looks like jittery motion.

    Step 4 — Stabilize the bumper signal (micro-switch chatter)

    • Press the Bumper on both sides. Demand a crisp click and full rebound.
    • Remove debris around the bumper edges. A grain of sand can keep the bumper partially depressed.
    • If your model allows, inspect bumper mounting screws for looseness (loose mounting can cause switch bounce).

    Engineer’s Note: Bumper chatter forces constant obstacle re-plans. The robot repeatedly stops and re-accelerates. That pattern amplifies any drivetrain click that hides during steady motion.

    Step 5 — Clean Cliff Sensors and the optical window (stop/start “safety loop”)

    • Wipe all Cliff Sensors with a microfiber cloth.
    • Use a cotton swab lightly dampened with isopropyl alcohol for stubborn film.
    • Test on a light hard floor first to rule out dark carpet false positives.

    Engineer’s Note: Never flood sensors with water. Alcohol + microfiber protects the IR window coating and avoids streaks that create inconsistent IR reflectance.

    Step 6 — If your robot uses a LiDAR turret or a Vision Module, isolate top-side clicking

    • If you own a LiDAR-based robot (common on Roborock / some Shark AI models), inspect the LiDAR Turret for rubbing and grit at the base.
    • If you own a camera-based Roomba (e.g., j-series), inspect the Vision Module window for smudges that can destabilize navigation decisions.
    • Confirm the Gyroscope-driven turn behavior: if turns overshoot and correct repeatedly, suspect odometry (encoders) first, then IMU drift second.

    Engineer’s Note: Do not use abrasive cloth on LiDAR/Vision lenses. Use microfiber only. Scratches create scatter that the navigation stack misreads as geometry noise.

    Step 7 — Docking click: fix charging contact chatter

    • Clean the robot’s Charging Contacts and the base contacts with a dry microfiber cloth.
    • Check the base position: flat floor, no wobble, no carpet edge under one foot.
    • Run a “return to dock” test. If it clicks only at the final inch, you have a seating issue (Digital Trends describes clicking tied to charging positioning/contacts). :contentReference[oaicite:3]{index=3}

    Engineer’s Note: Contact chatter looks like this: the robot seats, loses contact, re-drives forward in tiny bursts, repeats. That oscillation produces the click.

    💡 Undocumented Trick: Run a 30-second test with the robot lifted 1–2 cm above the floor (hands on the sides, keep fingers away from brushes). If clicking disappears in the air, you have a load-dependent issue (brush drag, wheel drag, docking seating). If clicking persists in the air, you likely have a gear tooth skip or a motor/gearbox defect. Use slow-motion video to correlate the click to the wheel/brush event.

    Error Code Decoding Table (Light + Beeps + Internal Meaning)

    Important: Roomba signaling differs by series. Older 500/600/700/800 series often use beep counts, while newer models use a light ring + app/voice message. The table below targets common beep-coded faults plus a “modern ring” row.

    Light Pattern Beep Count Internal Meaning Action
    Red light + “Error 1” behavior 1 beep Mobility interrupt (stuck / wheel hang) triggers recovery loop Inspect both side wheels; clear debris; confirm free spring travel. :contentReference[oaicite:4]{index=4}
    Red light + “Error 2” behavior 2 beeps Brush/cleaning head stall; CPU detects brush motor load spike Open brush cage; remove hair from brushes and end caps; re-seat brushes. :contentReference[oaicite:5]{index=5}
    Red light + “Error 5” behavior 5 beeps Drive wheel jam / drift correction loop (odometry mismatch) Clean wheel modules; remove hair from axles; test turns on hard floor. :contentReference[oaicite:6]{index=6}
    Red light + “Error 6” behavior 6 beeps Cliff safety trigger (dirty Cliff Sensors or dark surface false positive) Clean Cliff Sensors; test on light floor; avoid black rugs in diagnosis. :contentReference[oaicite:7]{index=7}
    Red light + bumper-related stop/turn 9 beeps Bumper fault; Bumper Micro-switches do not return cleanly Clean bumper edges; verify rebound; remove grit; inspect looseness. :contentReference[oaicite:8]{index=8}
    Light ring solid red (newer models) N/A (voice/app message) Modern models log a specific subsystem fault (cleaning head, wheel, cliff, bumper) to the app Open the app error detail; then use Protocol 2 to target the named subsystem.

    FAQ (Technical Q&A Only)

    1) The clicking stays perfectly rhythmic. What does that mean?

    Assume gear tooth skip in the Cleaning Head Module Gearbox or a wheel gear train. Rhythmic clicks map to mechanical periodicity. Software loops sound bursty and change frequency as the robot changes speed or direction.

    2) The robot clicks only when it turns right (or only left). Why?

    Blame feedback asymmetry. One Wheel Encoder likely drops pulses or reads inconsistently under lateral load during turns. The CPU tries to correct heading and issues short motor bursts. That creates click-like pulses and can produce “circle cleaning” behavior.

    3) The robot clicks at the dock but runs quiet on the floor. What subsystem should I focus on?

    Focus on Charging Contacts and base alignment. Contact chatter makes the robot re-seat in tiny bursts, which can sound like ticking/clicking during charging alignment. :contentReference[oaicite:9]{index=9}

    Reference (authority):
    Digital Trends – Roomba noisy/clicking behavior and beep-code clues

  • How to Remove Hair Tangled in Roomba Rollers (Without Breaking Them) — Sensor Logic Fix Diagnostic Guide

    Your Roomba doesn’t “just have hair on the rollers.” It enters a repeatable failure pattern: it starts, the Cleaning Head Module ramps up, you hear a sharp grinding or a strained whir, then the robot stops and throws Error 2 / “Clear the brushes”. On older units you may hear a two-tone “Uh-Oh” and beeps; on newer units the Light Ring turns solid red and the robot narrates the fault.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Brush motor loads up, rollers stall, robot halts and reports Error 2 / “Clean Brushes.”
    • 🔍 Primary Suspect: Hair packed under Rubber Brush Bearings / End Caps causing a persistent Brush Motor Overload event.
    • 🛠️ Fix Difficulty: 2 / 5
    • ⏱️ Est. Downtime: 10–20 minutes

    The Logic: Why Your Robot is Confused

    Roomba’s control loop treats the roller system as a protected actuator. The firmware watches the brush motor load (current/torque proxy through the motor driver). Hair doesn’t just wrap the roller surface; it migrates into the tight gap under the gray Brush Bearing and around the axle. That creates a constant brake.

    When the brake force crosses the stall threshold, the CPU executes a safety routine: it stops the Cleaning Head Module, reports Error 2, and prevents repeated overcurrent that can stress the motor driver. You can also see side effects: the robot slows unexpectedly or “hesitates” because it tries to keep traction from Wheel Encoders and stabilization from the Gyroscope while the brush subsystem fails. That looks like navigation weirdness, but the root cause sits in the brush overload loop.

    Sensors like Cliff Sensors, Bumper Micro-switches, and Charging Contacts do not cause Error 2 directly, but they can amplify confusion: the robot can abort early on dark carpet if the brushes overload while the Cliff Sensors already run close to their threshold. Treat this as a brush motor stall first; then you validate the rest.

    If your robot uses a camera-based Vision Module (common on many Roombas) it relies on feature tracking plus encoder/gyro fusion. If your robot uses a LiDAR Turret (rare on Roomba; common on other brands), keep the turret lens clean—but do not chase LiDAR issues for Error 2. Error 2 starts at the brush motor load signal.

    Protocol 1: The “Soft” Fix (Software & Reset)

    1) Force a clean reboot (clears the overload loop state)

    • Use the app path if available: Product Settings → Reboot.
    • Use the hardware method if the app lags: remove the robot from the dock and press-and-hold CLEAN (or POWER on some models) for ~20 seconds.

    2) Update firmware before you touch hardware

    • Open the Roomba app and trigger updates. Firmware changes can adjust stall thresholds and motor calibration.
    • Disable any “aggressive” cleaning mode temporarily (high suction / carpet boost) for your first test run after the fix.

    3) Verify Wi-Fi band (prevents partial updates and ghost errors)

    • Put the robot on a supported network: use 2.4 GHz or a mixed 2.4/5 GHz SSID if your model supports it.
    • Avoid forcing setup on 5 GHz only if the app tells you the model requires 2.4 GHz.

    4) Run a factory reset only if errors persist after a correct hardware clean

    • Factory reset deletes settings, disconnects the robot from your account, and clears preferences and integrations. Use it as the last step, not the first.

    Protocol 2: Hardware Intervention

    Step A — Confirm the fault source with a “no-brush spin-up” test

    1. Flip the robot over.
    2. Open the Cleaning Head Module door and remove both Dual Multi-Surface Rubber Brushes.
    3. Close the door with brushes removed and start a short clean.

    Engineer’s Note: This isolates the stall signal. If the robot throws Error 2 even with brushes removed, suspect a jammed brush motor gearbox or a fault inside the Cleaning Head Module, not “hair on the roller surface.” Do not pull motor wires; you only need a behavior test.

    Step B — Remove the hair that actually triggers the overload (under the bearings)

    1. Remove both brushes and identify the ends: the square peg end and the hex/other peg end (shape varies by model).
    2. Pull off the gray Brush Bearing / End Cap from each brush end.
    3. Cut hair at the axle using a seam ripper or small scissors. Then pull it out with tweezers.

    Engineer’s Note: Do not pry the bearing sideways with a knife. You crack the end cap and create misalignment. Misalignment forces the brush to wobble and triggers repeated stall events even after cleaning.

    Step C — Clean the peg roots and the bearing seat (micro-fibers cause “false clean”)

    1. Remove packed hair from the base of the square peg and hex peg.
    2. Wipe the axle and bearing interior with a dry microfiber cloth. Use 70% isopropyl alcohol on stubborn oily buildup, then let it fully evaporate.

    Engineer’s Note: Do not add oil (WD-40, silicone spray, etc.). Oil traps dust into a paste that increases drag and makes the motor current spike sooner.

    Step D — Clear the airflow channel inside the Cleaning Head Module (prevents secondary load spikes)

    1. Brush out the Vacuum Path directly behind the rollers using an old toothbrush.
    2. Remove felted lint from corners and seams.

    Engineer’s Note: A partial clog doesn’t always throw a “bin full” warning. It can raise suction load and heat, which increases overall current draw and makes brush stalls appear “random.”

    Step E — Validate navigation sensors only after the stall clears

    1. Wipe all Cliff Sensors (the small windows near the front underside) with a dry microfiber cloth.
    2. Press the bumper and confirm both Bumper Micro-switches click crisply and rebound.
    3. Inspect Wheel Encoders behavior indirectly: spin each wheel by hand and feel smooth, consistent resistance.

    Engineer’s Note: Do not use water on sensor windows. If your unit has a camera-based Vision Module or a LiDAR Turret, wipe lenses dry only. Scratches on an IR-coated window create persistent mapping drift.

    Step F — Reassemble with zero force and run a controlled test

    1. Reinstall the Brush Bearings / End Caps fully.
    2. Insert brushes into the correct sockets and close the module door until it latches flush.
    3. Test on hard floor first for 2–3 minutes. Then test on carpet.

    Engineer’s Note: If high-pile carpet triggers Error 2 again, your brush load exceeds the safe threshold. Confirm the fix on hard floor, then reduce power mode for carpet or avoid that rug type.

    💡 Undocumented Trick:
    Use a thin zip tie as a “micro-saw.” Slide it under the Brush Bearing lip (without snapping the cap), then pull it back-and-forth to cut hair wrapped around the axle. This removes the load-trigger hair without scraping the rubber fins or stressing the end cap.

    Error Code Decoding Table

    Light Pattern Beep Count Internal Meaning Action
    Solid red Light Ring + spoken/narrated fault (i/e/j/s series behavior) Voice prompt (often no classic beeps) Brush Motor Overload / rollers cannot turn Run Protocol 2 (Steps A–F). Confirm the stall clears on hard floor.
    “Error 2 / Clean brushes” message (older 500/600/700 series behavior) Two-tone “Uh-Oh” + 2 beeps on select models Brush cage / extractors stalled (hair under bearings, carpet load too high) Cut hair under end caps, clean peg roots, test on hard floor, then revisit carpet settings/rug type.

    FAQ (Technical)

    Q1) Why does Error 2 return even after I remove visible hair?

    You removed the surface wrap, not the load trigger. Hair packs under the Brush Bearings / End Caps and around the axle. The motor still sees overload current and the firmware repeats the same safety loop. Run Protocol 2, Step B and Step C with tweezers and a seam ripper.

    Q2) My Roomba acts “drunk” (hesitates, pivots, or stalls). Do sensors cause this?

    A roller stall can create second-order symptoms: the robot attempts motion corrections from Wheel Encoders and the Gyroscope while the brush subsystem fails, so it looks like a navigation bug. Clear the stall first. If the behavior continues after the rollers spin freely, then inspect Cliff Sensors and bumper clicks, and confirm wheels spin smoothly.

    Q3) Do I need to replace parts, or does cleaning always solve it?

    Cleaning solves most cases. Replace parts when you feel mechanical drag after cleaning: a bearing that still grinds, a roller that wobbles, or a Cleaning Head Module that throws Error 2 with brushes removed (Protocol 2, Step A). That behavior points to a gearbox or module-level fault, not hair.

    Official reference (Error 2 overview and brush-care steps):
    iRobot Support — Roomba Error 2


  • How to Factory Reset a Shark Robot Vacuum (Connection Fix) — Sensor & Network Logic Diagnostic Guide

    Your Shark doesn’t “just lose Wi-Fi.” It drops into a repeatable failure state: the Wi-Fi indicator stays red, the app shows Offline, and the robot either
    beeps once on the dock then goes quiet, or it starts pairing and hangs near the end like the credential handoff never commits.
    If you watch closely, you’ll often see the robot reboot mid-setup: lights flicker, the drive motors twitch for a split second, and the pairing screen times out.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Robot shows Offline / won’t pair; Wi-Fi LED stays red or never stabilizes; pairing stalls.
    • 🔍 Primary Suspect: Provisioning token mismatch + 5GHz/2.4GHz band mismatch + unstable power during handshake.
    • 🛠️ Fix Difficulty: Level 2/5
    • ⏱️ Est. Downtime: 15–30 minutes

    The Logic: Why Your Robot is Confused

    The robot runs a simple state machine:
    (1) Boot → (2) Load stored SSID/credential → (3) Associate to router → (4) DHCP → (5) Cloud token validation → (6) App control.
    Connection failures happen when the robot can’t complete step (3) or (5).

    • Band mismatch: Many Shark setups require 2.4GHz. If your phone sits on 5GHz during pairing, the app can’t complete the credential handoff reliably.
    • Provisioning token mismatch: If the robot still holds an old cloud token (old router, new password, new account), it rejects the new session and shows “Offline.”
    • Power instability: Dirty Charging Contacts, weak battery, or a loose dock alignment causes a brief brownout. The mainboard resets, and the Wi-Fi radio drops mid-handshake.
    • Safety/obstacle loop interference: If Cliff Sensors, Bumper Micro-switches, or Wheel Encoders throw an error while pairing, firmware prioritizes motor safety and may suspend connectivity tasks.

    Protocol 1: The “Soft” Fix (Software & Reset)

    Step 1 — Lock your phone to 2.4GHz and remove blockers

    • Turn off VPN and any proxy on your phone.
    • Force your phone onto the 2.4GHz SSID (split bands if your router uses one combined name).
    • Disable Wi-Fi isolation / AP isolation on the router if enabled.

    Engineer’s Note: Pairing uses a local device-to-phone hop first, then a cloud token check. VPN and client isolation break local discovery even when your internet “works.”

    Step 2 — Reboot the robot the way firmware actually notices

    • Put the robot on the dock for 2 minutes so it stabilizes voltage.
    • Power-cycle the robot using its physical control (model-dependent):
    • ION-style (side power switch): turn OFF for 10 seconds, then turn ON.
    • AI/Ultra/MATRIX-style (CLEAN button logic): press-and-hold CLEAN long enough to power off, wait 10 seconds, then press-and-hold CLEAN to power back on.

    Engineer’s Note: A quick tap doesn’t clear the Wi-Fi task queue. Force a real reboot so the Wi-Fi stack restarts from boot state.

    Step 3 — Factory reset the connection state (app-level wipe)

    1. Open the SharkClean app.
    2. Go to the robot’s Settings.
    3. Select Factory Reset (or Reset Robot / Remove Device depending on model).
    4. Confirm. Wait for the robot to restart.

    Engineer’s Note: This step clears the stored cloud token and forces a clean provisioning cycle. Expect it to erase saved maps/schedules on mapping models.

    Step 4 — Put the robot into Wi-Fi setup mode and re-provision

    1. Activate setup mode:
    2. Many Shark models: press-and-hold DOCK + CLEAN until the Wi-Fi indicator starts flashing (color varies by series).
    3. On iOS, open Wi-Fi settings and join the robot SSID (example format: Shark_RVXXX), then return to the app.
    4. In the app, pick the 2.4GHz home network and enter the password.

    Engineer’s Note: Setup mode turns the robot into an access point long enough to receive your SSID/password and write them to non-volatile memory. If power dips during this write, pairing stalls near the end.

    Protocol 2: Hardware Intervention

    Step A — Fix charging contact resistance (stops random reboots)

    • Flip the robot over and locate the Charging Contacts (metal pads).
    • Wipe robot contacts and dock contacts with a dry microfiber cloth.
    • If you see black oxidation, use a barely damp cloth, then dry fully.
    • Dock the robot and confirm it seats firmly (no “half-on” tilt).

    Engineer’s Note: High contact resistance causes a voltage drop when the Wi-Fi radio spikes current during association. That looks like a “mystery disconnect” but it’s a power integrity fault.

    Step B — Clear false “safety loop” triggers from sensors

    • Clean the Cliff Sensors (usually dark windows near the front/edges underneath) with a dry cloth.
    • Press the front bumper in and out. Feel for a crisp click from the Bumper Micro-switches. Fix sticky movement (hair/dust in the bumper seam).
    • Spin each drive wheel by hand. If one wheel feels gritty or tight, remove debris so the Wheel Encoders read motion correctly.

    Engineer’s Note: When the robot thinks it’s at a cliff or jammed, firmware throttles motors and may pause non-critical tasks. Pairing becomes flaky because the CPU keeps servicing the error handler.

    Step C — Check the LiDAR turret / Vision Module (mapping models)

    • If your model has a LiDAR Turret, gently rotate it with a fingertip (power off first). It should move smoothly without grinding.
    • Wipe the turret window and any front-facing Vision Module lens with a microfiber cloth only.

    Engineer’s Note: A stalled turret can spike CPU load and throw navigation faults right as pairing finishes. Don’t use water on optical windows; you can haze the coating and reduce IR clarity.

    Step D — Stabilize orientation sensors (Gyroscope drift symptoms)

    • Place the robot on a flat floor, power it on, and leave it still for 60 seconds.
    • Don’t pick it up during setup/pairing.

    Engineer’s Note: A noisy Gyroscope calibration window can trigger short motion corrections. That movement sometimes breaks docking alignment and interrupts charging during setup.

    💡 Undocumented Trick:
    During pairing, temporarily disable your router’s 5GHz band (or rename it) so your phone cannot “hop” back to 5GHz mid-setup.
    If you can’t change router settings, use a 2.4GHz-only phone hotspot to complete the first pairing, then move the robot to your real Wi-Fi afterward and re-run the network change inside the app.

    Error Code Decoding Table

    Light Pattern Beep Count Internal Meaning Action
    Wi-Fi LED solid (blue/white depending on series) N/A Wi-Fi associated + token valid Run a command from the app to confirm real control (Start → Dock).
    Wi-Fi LED red N/A No association (wrong password / wrong band / router reject) Do Protocol 1 Step 1 → Step 4. Confirm 2.4GHz.
    Wi-Fi LED flashing (setup mode) N/A Robot AP mode waiting for credentials Join robot SSID, then feed 2.4GHz credentials in the app.
    Error + “stuck/jam” pattern (varies by model) Varies Safety loop interrupts background tasks (motors/sensors fault) Clear bumper/wheels/brushroll faults first, then retry pairing.
    All lights off 0 Sleep mode / power off / dead battery Dock to charge; confirm charging contacts align and LEDs cycle.

    FAQ (Technical Q&A Only)

    1) Will a factory reset delete my map?

    Yes on mapping models. A reset clears the robot’s stored cloud token and local configuration. Treat it as a clean provisioning event:
    you’ll rebuild schedules and, on many models, regenerate the map on the next Explore/Mapping run.

    2) Pairing stalls at the end (80–99%). What does that mean?

    The robot already received SSID/password, but it fails the final handshake: DHCP + cloud token validation.
    Fix the three usual causes: force 2.4GHz, disable VPN, and stabilize power (clean charging contacts, keep the robot docked during setup).

    3) Can my Shark use 5GHz Wi-Fi?

    Many Shark setups require 2.4GHz during provisioning. Even if your router supports both, complete pairing on 2.4GHz first.
    If you run a single SSID for both bands, temporarily disable 5GHz or split the SSIDs to stop band-hopping during setup.

  • How to Clean Robot Vacuum Cliff Sensors (Stop It Falling Down Stairs) — Roborock Sensor Logic Fix (Diagnostic Guide)

    Your Roborock drives confidently toward a stair edge… and doesn’t brake. The front drops, the drive wheels “whirr” as they lose traction, and you hear that sharp plastic-thud when it hits the lower step. Or you get the opposite glitch: it reaches a dark rug, chirps/announces an error, backs up, spins, and repeats the same “I’m at a cliff” routine like it’s stuck in a safety loop.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Robot fails to detect stair edges (falls) OR triggers false “cliff” events on dark/shag carpet (backs up + spins).
    • 🔍 Primary Suspect: Cliff Sensors reporting wrong IR reflectance due to lens contamination, scratches, or a dead IR emitter/receiver pair.
    • 🛠️ Fix Difficulty: Level 2/5 (Level 4/5 if you replace a sensor module)
    • ⏱️ Est. Downtime: 12–35 minutes (cleaning + validation test run)

    The Logic: Why Your Robot is Confused

    Your Roborock runs a safety routine that treats a cliff event as “high severity.” The control board samples the Cliff Sensors (IR emitter + IR receiver behind the bottom-facing lens windows). When the sensor sees low IR return, the firmware interprets that as “no floor” and triggers a state change: it cuts forward motion, reverses, and commands a turn to escape.

    Two failure modes create your exact behavior:

    • False Negative (Dangerous): The robot approaches stairs and doesn’t detect the drop. Common causes: a greasy film on the lens window, micro-scratches that scatter IR, a cracked lens, or a dead IR LED on one sensor that drags the whole sensor array’s confidence down.
    • False Positive (Annoying): The robot “sees” a cliff on dark carpet or shag. Dark fibers absorb IR like a drop-off does, so the robot trips its own safety threshold and loops.

    Roborock also cross-checks navigation with Wheel Encoders and the IMU (Gyroscope + accelerometer). If an encoder sends inconsistent counts (hair drag, grit in the wheel module), the robot can misjudge motion and overreact to borderline cliff readings. A jammy Bumper Micro-switch can also interrupt route logic and make the robot look “confused,” but it rarely causes true stair falls.

    Protocol 1: The “Soft” Fix (Software & Reset)

    1) Force a full sensor-state reboot (not just “pause/resume”)

    • Dock the robot, then power it off from the unit (not only the app).
    • Wait 30 seconds. Power it back on.

    Engineer’s Note: A reboot clears the cliff-safety state machine and reloads sensor baselines. If the robot latched a cliff event mid-turn, it can keep biasing away from edges until you restart.

    2) Update firmware (or roll it clean with a factory reset if glitches persist)

    • Open the Roborock app → check firmware updates → install them.
    • If the robot keeps throwing the same cliff behavior after cleaning, run a factory reset so the system rebuilds maps and sensor assumptions from scratch.

    Engineer’s Note: A factory reset deletes maps and schedules. It also can revert firmware to the factory version on some models, so you may need to update again afterward.

    3) Fix Wi-Fi band problems before you blame “AI navigation”

    • Connect the robot to 2.4GHz Wi-Fi (many robots refuse 5GHz).
    • Disable VPN on your phone during pairing.

    Engineer’s Note: When the app can’t communicate reliably, the robot can miss firmware/config pushes. That makes a real sensor issue look like a “random logic bug.”

    Reference (official):
    Roborock Error 4 guidance (Cliff Sensors / dark or shag carpet)

    Protocol 2: Hardware Intervention

    Step 1 — Identify every Cliff Sensor window and inspect it like optics, not plastic

    • Flip the robot over on a towel.
    • Locate the bottom-facing Cliff Sensor lens windows (usually multiple small dark/clear windows near the perimeter).
    • Use a flashlight at a shallow angle. Look for haze, a rainbow smear (cleaner residue), or fine scratches that look like spiderweb lines.

    Engineer’s Note: A lens can look “clean” straight-on and still scatter IR. Use side lighting to reveal micro-film.

    Step 2 — Clean the lens windows with controlled solvent, not water

    • Use a dry microfiber cloth first.
    • Dampen a foam swab or microfiber corner with 90%+ isopropyl alcohol and wipe each lens window for 10–15 seconds.
    • Buff dry immediately until the plastic looks crystal-clear (no streaks).

    Engineer’s Note: Avoid household glass cleaner. Many formulas leave a surfactant film that looks invisible but ruins IR reflectance.

    Step 3 — Remove the “pitch bias” that fakes cliff readings (caster + wheel drag)

    • Spin each drive wheel by hand. It should feel smooth, not gritty, and it should rebound on the suspension.
    • Pull the front caster wheel out (most pop out with a firm tug) and remove wrapped hair. Listen for a dry squeak or feel a sticky notch as it turns.

    Engineer’s Note: Cliff logic hates sudden pitch changes. A dragging caster can tip the nose down right at an edge and push cliff readings over the threshold.

    Step 4 — Run the quick IR emitter check (find a dead sensor fast)

    • Turn the robot on while it sits upside-down (keep hands clear of brush motors).
    • Open your phone camera and point it at each Cliff Sensor window. Many IR emitters appear as a faint purple/white glow on phone sensors.
    • Compare left-to-right. One “dark” window while others glow strongly often signals a dead IR LED or a failed sensor PCB.

    Engineer’s Note: This test gives you a fast “signal present / signal missing” result. It does not measure receiver sensitivity, but it flags obvious emitter failures.

    Step 5 — Reseat the Cliff Sensor harness if you suspect intermittent failures

    • Power off and remove the robot from the dock.
    • Remove the bottom plate screws (use a Phillips #0).
    • Locate the Cliff Sensor connector(s) and the ribbon/harness to the mainboard. Unplug and re-plug firmly.

    Engineer’s Note: Don’t yank wires. Pull the connector body. A half-seated plug can produce “random” cliff trips that show up only on turns.

    Step 6 — Clean the navigation optics that influence approach behavior (LiDAR + Vision Module)

    • Wipe the LiDAR Turret top lens with a dry microfiber only.
    • Wipe the front Vision Module / front sensors (if your model has them).

    Engineer’s Note: Don’t use water on LiDAR optics. Scratches or residue can degrade ranging and make the robot approach edges at the wrong angle or speed.

    💡 Undocumented Trick: If your robot throws cliff errors only on dark rugs (not near real stairs), tape a small square of matte white paper over the offending Cliff Sensor window to increase IR return and stop false positives.

    Safety rule: Do this only in a flat, controlled area and keep the robot away from stairs. Restore normal sensor operation before you run it anywhere with drop-offs.

    Error Code Decoding Table

    Light Pattern Beep Count Internal Meaning Action
    Power indicator flashes red + voice prompt “Error 4” 0 (voice prompt) Cliff Sensors read “no floor” (real edge OR false low IR return) Clean lens windows, test IR emitters, avoid dark/shag carpet, reseat sensor harness
    Power indicator flashes red + voice prompt “Error 7” 0 (voice prompt) Wheel Encoders detect stall / drive wheel binds Spin wheels manually, clear debris/hair, verify wheel suspension travel
    Power indicator flashes red + voice prompt “Error 1” 0 (voice prompt) LiDAR Turret fails to spin / reports invalid scan Check turret rotation, remove hair/grit, gently free the turret, reboot
    Charging indicator anomaly + voice prompt “Error 13” 0 (voice prompt) Charging Contacts show high resistance / poor dock power detect Clean contacts with alcohol/eraser, verify dock power, reseat cables

    FAQ (Technical Q&A)

    1) My robot still falls after I cleaned the Cliff Sensors. What fails next most often?

    Suspect a dead IR emitter or receiver on one sensor, or a cracked lens window. Run the phone-camera IR check. If one window stays dark while others glow, replace that Cliff Sensor module or the sensor PCB.

    2) My robot refuses a black rug after sensor cleaning. Did I “break” the sensors?

    No. Dark fibers absorb IR return and mimic a drop-off to the Cliff Sensors. The robot triggers a safety loop because it trusts that reading more than map guesswork. Use no-go zones for problem rugs, or change the rug.

    3) Can I disable Cliff Sensors in the Roborock app?

    Roborock treats Cliff Sensors as a core safety system. Don’t disable them for a home with stairs. If you only fight false positives on dark carpet, use controlled workarounds (temporary white paper) in a stair-free area and restore normal operation afterward.

  • Roomba Side Brush Not Spinning — System Diagnostic Guide (Sensor + Logic Fix)

    Your Roomba runs a mission, drives straight, and keeps suction normal—but the Edge-Sweeping Brush / Side Brush never rotates. You may hear a short click-click from the right-front underside, or a brief electric hum that stops after 1–2 seconds like the motor “gives up.” Corners stay dirty because the brush never pushes debris into the main intake.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Side Brush shows zero rotation or “twitch + stop” during wall runs.
    • 🔍 Primary Suspect: Side Brush stall detection (overcurrent) OR side-brush command suppressed by navigation state (sensor loop).
    • 🛠️ Fix Difficulty: Level 2/5 (software) → Level 4/5 (module swap / board-level test)
    • ⏱️ Est. Downtime: 12–40 minutes

    The Logic: Why Your Robot is Confused

    Roomba treats the Side Brush Motor like a controlled output, not a “dumb accessory.” The motherboard drives the motor using PWM through a motor driver, then watches electrical load (current draw) to detect stalls. When hair or grit loads the gearbox, current spikes. The firmware flags a stall, cuts power to prevent overheating, and retries in short bursts. That behavior creates the classic “twitch + stop” with a faint click or grinding sound.

    Roomba also gates the side-brush command based on navigation state. It decides “edge-clean mode” using inputs like Bumper Micro-switches (wall contact), Wheel Encoders (odometry), and the IMU (Gyroscope) for heading correction. If a sensor lies—like a stuck bumper switch, dirty Cliff Sensors causing constant safety corrections, or encoder drift causing repeated re-plans—Roomba may spend less time in edge-follow behavior, and you see the brush “never gets the command.”

    Some models even end a mission and throw a specific alert when the side brush stalls. For example, iRobot documents Error 1001 on certain Roomba lines as a side-brush stall/not-spinning condition and recommends a reboot + side-brush care; if it persists, iRobot routes you toward service/replacement. :contentReference[oaicite:0]{index=0}

    Protocol 1: The “Soft” Fix (Software & Reset)

    • Reboot the robot (clear the stall flag): Run a full reboot, then start a short mission next to a wall and watch the brush for 30 seconds. iRobot explicitly recommends rebooting to clear certain side-brush related errors (like Error 1001 memory state). :contentReference[oaicite:1]{index=1}
    • Update firmware via iRobot Home: Open the app, check firmware version, and install updates. A firmware patch can change how aggressive the stall threshold or retry logic behaves (common after accessory revisions).
    • Disable/enable edge behaviors (model-dependent): If your model exposes edge cleaning preferences, toggle them off/on to force a config refresh.
    • Wi-Fi sanity check (2.4 GHz vs 5 GHz): Pair Roomba to 2.4 GHz if your router splits SSIDs. Many robots negotiate 2.4 more reliably than 5, and a flaky connection can delay config sync and logs (it won’t “fix” the motor, but it can block updates and diagnostics).
    • Factory reset only after reboot + update: Use it when the brush never twitches and you suspect a corrupted state machine. Expect to rebuild maps on mapping-capable models.

    Protocol 2: Hardware Intervention

    Step 1 — Run a controlled “command vs stall” test

    Start a cleaning run next to a wall. Watch the side brush closely:

    • Zero twitch, zero sound: Roomba likely never commands the motor (state gating) or the motor circuit is open (connector/driver failure).
    • Twitch + stop, click or grind: Roomba commands the motor, then trips stall protection (mechanical load or failing gearbox).

    Engineer’s Note: Treat this like a control-system problem: you first decide whether the actuator receives a command. Don’t start by replacing parts.

    Step 2 — Inspect and clean the sensor inputs that gate edge behavior

    • Cliff Sensors (down-facing IR): Wipe each lens with a dry microfiber. Dust causes false “drop detected,” which forces repeated safety turns and reduces stable wall-follow time.
    • Bumper Micro-switches: Press the bumper left/right. Feel for crisp clicks. A sticky switch can lock Roomba into collision-handling logic and disrupt edge-brush scheduling.
    • Wheel Encoders: Spin each wheel by hand. Match resistance left vs right. A wheel that binds can corrupt odometry and trigger constant re-planning loops.
    • Gyroscope / IMU effects: If Roomba “drifts” and over-corrects, it can fail to hold a straight wall run, so the edge brush appears “never used.”

    Engineer’s Note: Never use water on sensor windows. Use microfiber only. A scratched IR window changes reflectivity and creates permanent false positives.

    Step 3 — Remove the Side Brush and check for gearbox overload

    Remove the Side Brush Screw and pull off the brush. Then inspect the Brush Post and the cavity around it. Remove hair that forms a tight ring under the hub. That ring acts like a brake and triggers overcurrent stall protection.

    Engineer’s Note: If you feel “sandpaper drag” when you rotate the post by hand, you already found the stall source. Don’t keep powering the motor—heat damages the driver.

    Step 4 — Open and service the Side Brush Module (target the real failure point)

    If the post feels stiff or you hear repeated clicking, pull the Side Brush Module (bottom cover off, module screws out). Focus on the Gearbox:

    • Extract hair wrapped on the motor shaft/first gear.
    • Brush out compacted dust that packs between gear teeth.
    • Apply a tiny amount of silicone/PTFE grease to gears only (avoid the motor can).

    iRobot’s own guidance for a non-spinning side brush escalates from care/cleaning to replacing the side brush module if cleaning does not restore motion. :contentReference[oaicite:2]{index=2}

    Engineer’s Note: Skip WD-40. It thins grease, attracts grit, and recreates the stall condition fast.

    Step 5 — Check electrical continuity at the Side Brush Module connector

    Unplug/reseat the module connector. Look for bent pins or oxidation. Use a multimeter to check the motor coil:

    • Open circuit (OL): Motor coil failed → replace the Side Brush Module.
    • Near 0 Ω: Short → replace the module; stop powering it.

    Engineer’s Note: Treat a burnt smell as a hard electrical failure. A “cleaning-only” approach won’t revive a damaged coil.

    Step 6 — Power integrity check: Charging Contacts + battery sag

    Low voltage under load can cause the motor driver to brown out while the main system still runs. Clean the Charging Contacts on the robot and dock. Then run a test mission right after a full charge.

    Engineer’s Note: A side brush that fails only on thick carpet often points to voltage sag: wheel motors draw more current, and the system drops “non-essential” outputs first.

    Step 7 — Model architecture note: LiDAR Turret vs Vision Module

    Many robots use a LiDAR Turret (rotating laser head) for mapping. Most Roombas rely on a Vision Module (camera-based vSLAM) and other sensors instead. If navigation gets unstable (bad lighting, dirty camera lens, reflective floors), Roomba may not hold wall-follow lines consistently—so you misinterpret a navigation issue as a brush motor issue.

    Engineer’s Note: Clean the camera window with microfiber only. Scratches alter optics and poison vSLAM features.

    💡 Undocumented Trick: To bench-test side-brush command without chasing the robot, cover the Cliff Sensors with matte white paper (temporary “sensor mask”), then start a short clean while the robot sits inside a cardboard “test corral.” Watch for brush twitching and listen for clicks. Remove the masks immediately after the test—never run a real mission like this near stairs.

    Error Code Decoding Table (HTML Table)

    Light Pattern Beep Count Internal Meaning Action
    App/robot displays “Error 1001” (model-dependent) N/A (varies by model) Side brush stall / not spinning; mission may end early Reboot → perform side brush care → replace Side Brush Module if it persists
    Older models: error announced / indicator varies 2 beeps Main brush motor stalls; side brush may disable to reduce load Clear brush cage, remove hair; retest side brush after main brush spins normally
    Older models: error announced / indicator varies 6 beeps Cliff sensor false positive; safety loop interrupts edge behavior Clean Cliff Sensors, move to brighter surface, rerun wall test
    Older models: error announced / indicator varies 9 beeps Bumper sensing issue; wall-follow logic becomes unstable Free the bumper, clean around it; verify Bumper Micro-switches click cleanly

    Beep-count mappings above come from a consolidated legacy Roomba error-code reference and help you interpret old-series behavior; your exact indicator may differ by model. :contentReference[oaicite:3]{index=3}

    FAQ (Technical Q&A only)

    1) The side brush never twitches. Should I suspect software or hardware first?

    Assume a command suppression or open circuit. Run the wall-follow test, then bench-test with a cliff-sensor mask. If the brush still shows zero twitch and you read an open motor coil or a dead connector, replace the Side Brush Module.

    2) The brush twitches and clicks. Why does Roomba “give up” so fast?

    Roomba protects the driver and motor. A stall spikes current, so firmware cuts PWM to prevent heat. That behavior signals a mechanical overload in the gearbox or a worn gear tooth that skips under torque.

    3) Can bad navigation really look like a side-brush failure?

    Yes. Edge sweeping relies on stable wall-follow segments. Dirty Cliff Sensors, a sticky Bumper Micro-switch, encoder drift from one wheel, or poor Vision Module conditions can keep Roomba in correction loops. Fix the sensor inputs first, then judge the brush output.

    Reference (official iRobot guidance):
    iRobot: The Roomba side brush is not spinning

     

  • Why Is My Shark Robot Vacuum Spinning in Circles? (Sensor Logic Fix) — System Diagnostic Guide

    You press CLEAN, the robot drives 10–30 cm, then enters a repeat loop: rotate-in-place → creep forward → rotate again. You may hear one Drive Wheel Module whine louder than the other, or you see the CLEAN light flash red after several spins. This is not “random.” Your Shark has entered a navigation recovery state because one critical input stream (odometry, cliff IR, bumper state, or heading) looks invalid.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Robot rotates in place repeatedly (circle-spin loop), often favors one direction.
    • 🔍 Primary Suspect: Wheel Encoders reporting asymmetric counts OR Cliff Sensors generating false “drop” triggers.
    • 🛠️ Fix Difficulty: Level 2/5 (clean + validate sensors; replace module only if data stays dead).
    • ⏱️ Est. Downtime: 15–35 minutes.

    The Logic: Why Your Robot is Confused

    Your Shark runs a closed-loop navigation stack:

    • Inputs: Cliff Sensors (down-facing IR), Wheel Encoders (odometry ticks), Bumper Micro-switches, Gyroscope (yaw rate), and (model-dependent) LiDAR Turret or Vision Module.
    • Controller: A state machine that decides “drive straight,” “rotate to reacquire pose,” “escape obstacle,” or “halt for safety.”
    • Outputs: Left/right wheel motor PWM commands, suction, brushroll logic.

    The circle-spin loop happens when the controller cannot trust its pose estimate:

    • Wheel encoder mismatch: The CPU commands forward motion, but the left encoder reports low/zero ticks. The controller “believes” the robot veered, so it keeps rotating to correct a heading error that never resolves.
    • False cliff event: A dirty or reflective Cliff Sensor reports “drop detected.” The safety logic forces a back-and-turn maneuver. If the false positive persists, the robot repeats the maneuver and looks like it spins in circles.
    • Bumper stuck true: A wedged bumper holds a Bumper Micro-switch closed. The logic stays in obstacle-avoidance mode and rotates to escape an obstacle that does not exist.
    • Yaw drift: A biased Gyroscope (or a bad calibration after a hard impact) makes the robot think it rotates when it does not, so it over-corrects and spirals.

    Fix the loop by restoring clean, consistent sensor data. Do not chase “cleaning tips.” Validate each input path like an engineer.

    Protocol 1: The “Soft” Fix (Software & Reset)

    1) Force a navigation stack reboot (not a quick tap)

    • Power the robot OFF (use the physical switch if your model has one).
    • Wait 15 seconds to drain logic rails.
    • Power ON, place it on a flat floor, and wait 60 seconds before starting a run.

    Engineer’s Note: The robot recalibrates the Gyroscope during the first idle window. Starting a run immediately after power-on can lock in a bad bias if the robot sits on a slope or gets nudged.

    2) Clear the bad map / localization cache

    • Open the Shark app and delete the current map (or disable “map-based cleaning” if your model exposes it).
    • Run a fresh mapping cycle in bright, even lighting.

    Engineer’s Note: A corrupted pose graph makes the robot “reacquire” by rotating repeatedly. A clean map resets the internal reference frame.

    3) Confirm Wi-Fi band: lock to 2.4 GHz for stable cloud sync

    • Use 2.4 GHz Wi-Fi, not 5 GHz.
    • Disable band steering temporarily if your router merges SSIDs.

    Engineer’s Note: Some Shark units fail OTA updates on 5 GHz and stay on buggy firmware. Stable 2.4 GHz improves update reliability and reduces “weird loop” behaviors after partial updates.

    4) Firmware update, then a controlled restart

    • Update the Shark app.
    • Apply any firmware update offered.
    • Restart the robot again (OFF → 15 seconds → ON).

    Engineer’s Note: Do not test hardware until you confirm the robot runs the newest firmware your app offers. Debug one variable at a time.

    Reference for official support pathways and model-specific reset/update steps:
    SharkClean Support (Official)

    Protocol 2: Hardware Intervention

    Step 1: Validate Cliff Sensors (IR drop detection)

    • Flip the robot over.
    • Locate the down-facing Cliff Sensors (small dark windows near the perimeter).
    • Wipe each window with a dry microfiber cloth.
    • If you see a shiny film, wipe again using a cotton swab lightly dampened with 70% isopropyl alcohol, then dry immediately.

    Engineer’s Note: Do not use glass cleaner. It leaves a transparent residue that changes IR reflectivity and generates false drop triggers.

    Step 2: Run the “white paper” cliff test (fast truth check)

    • Place a sheet of matte white paper under the robot.
    • Start a clean cycle and watch the first 10 seconds.
    • If spinning stops on white paper but returns on dark glossy floors, you confirmed a Cliff Sensor false positive.

    Engineer’s Note: This test isolates floor reflectance as the variable. It saves you from unnecessary wheel motor replacements.

    Step 3: Inspect Wheel Encoders by sound, feel, and travel

    • Pull each wheel down (they have spring travel) and spin it by hand.
    • Match the resistance left vs right. You want the same feel and the same “soft gear” sound.
    • Remove hair from the axle gap using tweezers.

    Engineer’s Note: A wheel can spin “fine” while the Wheel Encoder reads zero because hair blocks the encoder disk or the optical slot. Your controller then believes the robot pivots and keeps correcting into a spin loop.

    Step 4: Purge encoder cavities (clean the data path, not just the tire)

    • Use short bursts of compressed air around the wheel hub opening and the Drive Wheel Module seams.
    • Rotate the wheel while you blow air to eject fine dust.

    Engineer’s Note: Keep the nozzle 15–20 cm away. Excess pressure packs dust deeper and can strip light grease off internal gears.

    Step 5: Verify Bumper Micro-switches (logic stuck in “obstacle”)

    • Press the front bumper in and release.
    • Feel for a crisp click and a clean return.
    • Remove debris from the bumper edges and corners.

    Engineer’s Note: A stuck Bumper Micro-switch holds the obstacle flag TRUE. The planner then rotates to escape forever.

    Step 6: Check the LiDAR Turret / Vision Module window (model-dependent)

    • If your Shark has a top LiDAR Turret, wipe the turret lens with microfiber only.
    • If your model uses a front Vision Module, wipe the camera window and remove fingerprints.
    • Confirm the turret spins freely without scraping noises.

    Engineer’s Note: Do not use water on the LiDAR Turret lens. Micro-scratches scatter IR returns and degrade scan matching, which triggers repeated “relocalize by rotating” behavior.

    Step 7: Inspect Charging Contacts and battery voltage symptoms

    • Wipe the robot’s Charging Contacts and the dock contacts with dry microfiber.
    • Look for black oxidation spots or pitting.
    • If the robot spins, then suddenly dies, suspect battery sag or poor charge transfer.

    Engineer’s Note: Low voltage causes brownouts during motor load spikes. The MCU can reboot mid-run and restart in a safety loop that looks like spinning and failing to commit forward motion.

    Step 8: Decide: encoder fault vs motor fault (the replacement decision)

    • After cleaning, run a 2-minute test on a bright, matte floor.
    • If the robot still spins and always favors one direction, you likely lost encoder feedback on one side or you have a failing wheel motor.
    • Replace the affected Drive Wheel Module (not the tire). Encoder sensors typically integrate into the module.

    Engineer’s Note: A dead encoder produces a stable, repeatable failure. Random failures point to debris or intermittent connector contact.

    💡 Undocumented Trick:
    Use matte white tape (or a small piece of white paper) to temporarily cover each Cliff Sensor window when the robot spins only on dark carpets. Run a 60-second test. If the spinning stops, you proved a cliff false-positive.Warning: This bypass disables drop protection. Use it only for diagnosis, not daily cleaning.

    Error Code Decoding Table

    Important: Shark error signaling varies by series (RV/AV/UR) and firmware. Use this table to interpret the internal meaning of common “spin-loop adjacent” faults, then confirm the exact code in your model manual/app.

    Light Pattern Beep Count Internal Meaning Action
    CLEAN flashes red rapidly during spins 0–1 Safety loop: repeated hazard/escape triggers (often Cliff Sensors or stuck bumper) Run Protocol 2 Step 1–5; test on matte white floor
    CLEAN flashes red in a steady repeating cadence 2–3 Mobility fault: odometry mismatch / wheel feedback anomaly (Wheel Encoders) Run Protocol 2 Step 3–4; replace Drive Wheel Module if repeatable
    All lights blink, robot stops after short spin 3–5 Localization failure: poor scan match (LiDAR Turret / Vision Module) or gyro drift Clean LiDAR/vision window; reboot on level surface; remap
    Dock/search behavior + short spins near base 0 Charge reference unstable (Charging Contacts), low battery under load Clean contacts; full charge; retry; consider battery replacement if shutdown repeats

    FAQ (Technical Q&A)

    1) Why does the robot spin more to the right than to the left?

    Your controller corrects based on differential wheel feedback. If the left Wheel Encoder reports fewer ticks, the planner “thinks” the left side lags and increases right wheel command or rotates right to compensate. This creates a stable right-spin loop. Fix the encoder data path (hair/dust) or replace the left Drive Wheel Module.

    2) The robot spins only on dark carpets. Is this a software bug?

    You triggered a sensor physics problem that the software handles as a safety event. Dark or glossy surfaces absorb or scatter the IR signal from Cliff Sensors, so the robot reads “drop.” The CPU runs an escape routine (back-and-turn) repeatedly. Clean the cliff windows, then confirm with the white paper test. Use the tape trick only to prove the diagnosis.

    3) I cleaned everything and the loop stays. What part usually fails?

    Replace the component that produces hard-zero or intermittent data: the Drive Wheel Module (encoder + motor assembly) on the side the robot favors. If your model uses a LiDAR Turret and you hear scraping or the turret stalls, replace the LiDAR module. Do not shotgun parts; validate one input stream at a time.

    “`

  • How to Clean Roomba Charging Contacts (Fix Charging Error 5) — Sensor Logic Fix Diagnostic Guide

    You dock the Roomba, it “clicks” into the Home Base / Clean Base, then the light ring turns red and you hear an error tone or a voice prompt that calls out Charging Error 5. Some units repeatedly re-dock like they’re stuck in a loop: drive up, back off, drive up again, fail again.

    // SYSTEM ERROR LOG

    • ⚠️ Symptom: Roomba docks, then throws Charging Error 5 / low-current charge fault.
    • 🔍 Primary Suspect: High resistance path at Charging Contacts + the dock’s current-sense logic flags “no/low current.”
    • 🛠️ Fix Difficulty: 2/5
    • ⏱️ Est. Downtime: 10–20 minutes

    The Logic: Why Your Robot is Confused

    Charging Error 5 does not mean “the battery is empty.” It means the charging controller expects a minimum current flow and it reads a value below its threshold, so it halts charging for safety. iRobot classifies Charging Error 4 and 5 as “electrical current not reaching the robot.” When the current stays low, firmware stops the charge session and reports the fault in the app and/or voice prompt.

    Here’s the engineering-level chain reaction:

    • Dirty or oxidized Charging Contacts raise resistance.
    • The dock delivers voltage, but the robot’s charge circuit sees low current because resistance blocks the path.
    • The robot enters a “protect + retry” routine. It may re-seat using Wheel Encoders + Gyroscope to align again, then fails again because the electrical path still looks “open.”
    • If docking alignment also looks unstable (robot nudges and backs off), dirt on the dock’s Docking Sensor (IR Window) can break the final alignment step.

    Note on sensors: Roomba models typically rely on Cliff Sensors, Bumper Micro-switches, IR docking targets, and (on some models) a camera-based Vision Module for navigation. You will see “LiDAR Turret” on other brands; if your robot has one, keep that lens dry and scratch-free. Roomba’s charging failure here stays electrical-first: contacts + current sense.

    Protocol 1: The “Soft” Fix (Software & Reset)

    1) Reboot the robot (clear the charge-state latch)

    • Take the robot off the dock.
    • Press and hold CLEAN (or POWER on some models) for ~20 seconds until you hear a reboot tone and see a white light pattern.
    • Wait until the light ring shuts off.

    Engineer’s Note: A reboot clears many “stuck state” conditions without deleting maps or schedules. Do this before you touch hardware.

    2) Check the app + Wi-Fi band during troubleshooting

    • Update the iRobot app if the robot fails to report charging status correctly.
    • During setup and diagnostics, put your phone on the correct band: many Roombas require 2.4 GHz (some support 2.4/5 GHz mixed). If the robot cannot see the network, it can also fail to push error telemetry reliably.

    Engineer’s Note: Fix the charging current first. Then fix connectivity. People reverse the order and waste an hour chasing Wi-Fi while the dock still delivers near-zero charge current.

    3) Factory reset only if the software stack looks corrupted

    • Use the app’s factory reset path only after Protocol 2 fails and the robot reports inconsistent charging states.

    Engineer’s Note: Factory reset wipes local settings and removes the robot from your account. Use reboot first.

    Protocol 2: Hardware Intervention

    Step 1) Power-cycle the dock correctly

    • Unplug the Home Base / Clean Base.
    • Wait 60 seconds.
    • Plug it back in.

    Engineer’s Note: The dock can latch a fault state. A real power removal resets its internal protection logic.

    Step 2) Clean the robot’s Charging Contacts to restore low-resistance metal-to-metal contact

    • Flip the robot upside down on a flat surface.
    • Use a lightly dampened melamine foam (Magic Eraser) or a lightly dampened cloth.
    • Scrub the two metal pads until they show a visible shine.

    Engineer’s Note: Do not use sandpaper. Abrasives remove plating, accelerate corrosion, and make the low-current fault return faster.

    Step 3) Clean the dock’s Charging Contacts (Home Base + Clean Base)

    • Use the same lightly damp melamine foam.
    • Wipe until the dock contacts also shine.

    Engineer’s Note: The system measures current through the whole path: dock contact → robot contact → charge circuit. Clean both ends or you fix nothing.

    Step 4) Clean the dock’s Docking Sensor (IR Window) to stop “re-dock loops”

    • Wipe the docking sensor window with a clean, dry microfiber or soft cotton cloth.
    • Do not use a Magic Eraser on this window.

    Engineer’s Note: The IR window has coatings. A melamine foam can micro-scratch it and degrade docking alignment signals.

    Step 5) Inspect for “hard failure” indicators (replace instead of cleaning forever)

    • Inspect the metal pads on robot and dock.
    • If the contacts look green or copper-colored, treat them as damaged.
    • If a contact pin looks stuck down (spring contact does not rebound), treat it as failed hardware.

    Engineer’s Note: Damaged plating changes resistance permanently. No cleaning routine will restore stable charge current.

    Step 6) Re-seat the battery to force a clean boot and re-check the charging handshake

    • Remove and reinstall the battery (or follow your model’s battery access procedure).
    • Dock again and watch for stable charge indication.

    Engineer’s Note: Battery re-seat forces a hardware reboot and clears some charge-controller latched faults. Also avoid aftermarket batteries; unknown charging errors can appear with non-genuine packs.

    Step 7) Confirm dock power on Clean Base models

    • If you use a Clean Base, lift the lid and confirm the base shows a red indicator light (power present).

    Engineer’s Note: No power at the base equals “low current” forever. Fix wall power/cord seating before you blame the robot.

    External reference (manufacturer procedure)

    For the official cleaning procedure and the “acceptable materials” rule, link to iRobot support:
    How to Clean the Charging Contacts (iRobot)

    💡 Undocumented Trick:
    On some docks (especially Auto-Fill / Auto-Wash variants), the charging contacts sit recessed. Press and hold the dock’s contact button to expose the contacts before cleaning. If you have a Roomba 200/2000 series, leave a small gap (~1 cm) between bumper and dock when you manually place it—pushing it too far can break the contact alignment and trigger a false “no current” reading.

    Error Code Decoding Table

    Light Pattern Beep Count Internal Meaning Action
    Light ring turns red + voice/app message: “Charging Error 4/5” N/A (voice/app varies by model) Low current fault: dock-to-robot charge current stays below threshold. Clean Charging Contacts (robot + dock). Reboot. Re-seat battery if it persists.
    Robot stops during cleaning and announces “Error 5” 5 beeps on select models Mobility fault: one or both side wheels cannot turn (wheel module binds). Clear debris from wheels. Spin wheels by hand. Replace the wheel module if binding persists.
    Robot docks but “hunts” (nudges, backs up, re-docks repeatedly) Varies Docking alignment loop: dirty Docking Sensor (IR Window) corrupts final approach alignment. Wipe the IR window with dry microfiber. Reposition dock on a flat surface with clear approach path.

    FAQ (Technical Q&A)

    1) Why does cleaning contacts fix a “logic” error?

    Charging Error 5 triggers when the system measures no/low current. Dirt adds resistance, so the current sensor never sees the expected flow. Cleaning restores a low-resistance path, so firmware exits the fault state and resumes normal charging.

    2) Can I use isopropyl alcohol or contact spray?

    Use the manufacturer-safe approach: lightly damp melamine foam or a lightly damp cloth on metal contacts only. Avoid spraying liquids into sensor openings. If you run an Auto-Wash/Auto-Fill dock, keep liquids away from sensor ports and IR windows.

    3) My robot says “Error 5” with 5 beeps. Is that the same as Charging Error 5?

    No. “Error 5” (movement) points to the side wheel module. “Charging Error 5” points to low charge current. Fix the wheel problem with wheel cleaning; fix the charging problem with contact cleaning + reboot + battery re-seat.