{"id":3032,"date":"2026-06-18T10:24:38","date_gmt":"2026-06-18T10:24:38","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=3032"},"modified":"2026-07-30T09:15:19","modified_gmt":"2026-07-30T09:15:19","slug":"x1-eco-schedule","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/troubleshooting\/x1-eco-schedule\/","title":{"rendered":"Scuba X1 Eco Schedule Not Working &mdash; Firmware Error Fix"},"content":{"rendered":"\n<div class=\"aiper-tc-guide\">\n<style>\n    .aiper-tc-guide { --p:#f97316; --a:#ea6c0a; }\n\n    .aiper-tc-guide {\n        max-width: 780px;\n        margin: 0 auto;\n        font-family: 'Inter','Segoe UI',system-ui,-apple-system,sans-serif;\n        color: #2c3e50;\n        line-height: 1.6;\n    }\n    .aiper-tc-guide * { box-sizing: border-box; margin: 0; padding: 0; }\n\n    .aiper-tc-guide .container {\n        display: flex; flex-direction: column; gap: 28px;\n        padding: 40px 20px 60px; background: #f3f6f9; border-radius: 24px;\n    }\n\n    \/* \u2500\u2500 Hero card \u2500\u2500 *\/\n    .aiper-tc-guide .hero-card {\n        background: #fff; border-radius: 24px; padding: 36px 38px 32px;\n        box-shadow: 0 12px 32px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.05);\n        border: 1px solid #edf2f7; position: relative; overflow: hidden;\n    }\n    .aiper-tc-guide .hero-card::before {\n        content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;\n        background: linear-gradient(90deg, var(--p) 0%, var(--a) 60%, color-mix(in srgb, var(--a) 80%, white) 100%);\n        border-radius: 24px 24px 0 0;\n    }\n    .aiper-tc-guide .eyebrow {\n        display: inline-block; font-size: .75rem; font-weight: 600;\n        letter-spacing: .06em; text-transform: uppercase;\n        color: var(--a); background: color-mix(in srgb, var(--p) 8%, white);\n        padding: 5px 12px; border-radius: 20px; margin-bottom: 16px;\n    }\n    .aiper-tc-guide .hero-card .hero-title {\n        font-size: 1.75rem; font-weight: 700; color: #1a2e3c;\n        letter-spacing: -.02em; line-height: 1.25; margin-bottom: 6px;\n        margin-top: 0;\n    }\n    .aiper-tc-guide .hero-card .subtitle {\n        font-size: .95rem; color: #5a6c7d; font-weight: 500;\n    }\n\n    \/* \u2500\u2500 Answer card \u2500\u2500 *\/\n    .aiper-tc-guide .answer-card {\n        background: #f9fcfe; border-radius: 14px; padding: 28px 32px;\n        border: 1px solid color-mix(in srgb, var(--p) 30%, white);\n        box-shadow: 0 1px 3px rgba(0,0,0,.04);\n    }\n    .aiper-tc-guide .label-badge {\n        display: inline-flex; align-items: center; gap: 6px;\n        font-size: .7rem; font-weight: 700; letter-spacing: .07em;\n        text-transform: uppercase; color: #fff; background: var(--p);\n        padding: 6px 14px; border-radius: 20px; margin-bottom: 18px;\n    }\n    .aiper-tc-guide .label-badge .dot {\n        width: 7px; height: 7px; border-radius: 50%;\n        background: color-mix(in srgb, var(--a) 60%, white);\n        animation: atc-pulse 2s ease-in-out infinite;\n    }\n    @keyframes atc-pulse { 0%,100%{opacity:1;} 50%{opacity:.35;} }\n    .aiper-tc-guide .answer-card p {\n        font-size: 1.04rem; color: #1e3b4a; line-height: 1.7; font-weight: 450;\n    }\n\n    \/* \u2500\u2500 Section cards \u2500\u2500 *\/\n    .aiper-tc-guide .section-card {\n        background: #fff; border-radius: 14px; padding: 30px 34px;\n        box-shadow: 0 4px 16px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04);\n        border: 1px solid #edf2f7; transition: box-shadow .2s;\n    }\n    .aiper-tc-guide .section-card:hover {\n        box-shadow: 0 12px 32px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.05);\n    }\n    .aiper-tc-guide .section-card h2 {\n        font-size: 1.22rem; font-weight: 700; color: #1a2e3c;\n        letter-spacing: -.015em; margin-bottom: 16px;\n    }\n    .aiper-tc-guide .section-card p {\n        font-size: .94rem; color: #3d4f5c; line-height: 1.7;\n    }\n    .aiper-tc-guide .section-card a {\n        color: var(--a); text-decoration: none; font-weight: 500;\n    }\n    .aiper-tc-guide .section-card a:hover { text-decoration: underline; }\n    .aiper-tc-guide .section-card strong { color: #1e3b4a; }\n\n    \/* \u2500\u2500 Section icons (CSS-only, no inline styles) \u2500\u2500 *\/\n    .aiper-tc-guide .section-icon {\n        display: inline-flex; align-items: center; justify-content: center;\n        width: 44px; height: 44px; border-radius: 12px; margin-bottom: 14px;\n        flex-shrink: 0; position: relative;\n    }\n    .aiper-tc-guide .icon-info { background: color-mix(in srgb, var(--p) 12%, white); }\n    .aiper-tc-guide .icon-info::after {\n        content: ''; display: block; width: 18px; height: 18px;\n        border: 2px solid var(--p); border-radius: 50%;\n    }\n    .aiper-tc-guide .icon-info::before {\n        content: ''; position: absolute; width: 5px; height: 5px;\n        background: var(--p); border-radius: 50%; z-index: 1;\n    }\n    .aiper-tc-guide .icon-steps { background: #fef6ed; }\n    .aiper-tc-guide .icon-steps::after {\n        content: ''; display: block; width: 8px; height: 16px;\n        border-left: 2.5px solid #e67e3a; border-bottom: 2.5px solid #e67e3a;\n        transform: rotate(-45deg); margin-top: -2px;\n    }\n    .aiper-tc-guide .icon-warn { background: #fdecea; }\n    .aiper-tc-guide .icon-warn::after {\n        content: '!'; font-weight: 700; font-size: 1.4rem; color: #c94a4a; line-height: 1;\n    }\n    .aiper-tc-guide .icon-fix { background: #f0fdf4; }\n    .aiper-tc-guide .icon-fix::after {\n        content: '\u2713'; font-weight: 700; font-size: 1.1rem; color: #2d8f6e; line-height: 1;\n    }\n\n    \/* \u2500\u2500 Inline highlight & part-number \u2500\u2500 *\/\n    .aiper-tc-guide .hl {\n        font-weight: 700; color: var(--p);\n        background: color-mix(in srgb, var(--p) 8%, white);\n        padding: 2px 8px; border-radius: 4px; white-space: nowrap;\n    }\n\n    @media (max-width: 600px) {\n        .aiper-tc-guide .hero-card,\n        .aiper-tc-guide .section-card,\n        .aiper-tc-guide .answer-card { padding: 22px 18px; }\n        .aiper-tc-guide .hero-card .hero-title { font-size: 1.4rem; }\n        .aiper-tc-guide .container { padding: 24px 14px 40px; gap: 20px; }\n    }\n\n    \/* Back-nav *\/\n    .aiper-tc-guide .tc-back-nav {\n        padding: 14px 0 4px;\n        border-top: 1px solid #edf2f7;\n        margin-top: 4px;\n    }\n    .aiper-tc-guide .tc-back-nav a {\n        font-size: .85rem; font-weight: 600; color: var(--a);\n        text-decoration: none;\n    }\n    .aiper-tc-guide .tc-back-nav a:hover { text-decoration: underline; }\n<\/style>\n<div class=\"container\">\n    <div class=\"hero-card\">\n        <span class=\"eyebrow\">Aiper Scuba X1<\/span>\n        <p class=\"subtitle\">The most common cause is a false firmware update notification \u2014 the app shows &#8220;firmware update neede<\/p>\n    <\/div>\n    <div class=\"answer-card\">\n        <span class=\"label-badge\"><span class=\"dot\"><\/span> Direct answer<\/span>\n        <p>The most common cause is a <strong>false firmware update notification<\/strong> \u2014 the app shows &#8220;firmware update needed&#8221; but the robot is already on the latest version. Fix: restart both the robot and the app, move the robot within 2 meters of the router, and re-open the Schedule tab.<\/p>\n    <\/div>\n        <div class=\"section-card\">\n            <div class=\"section-icon icon-info\"><\/div>\n            <h2>False &ldquo;Firmware Update Needed&rdquo; Error<\/h2>\n            <p>This is a known app bug where the schedule page shows a firmware update prompt even when the robot is already on the current firmware. Steps to clear it: (1) Force-quit the Aiper app. (2) Power off the X1 and turn it back on. (3) Reconnect the app \u2014 wait for the robot to appear as online. (4) Navigate to the Schedule tab. The error should be gone. If the error persists, check Settings &rarr; Firmware in the app to confirm the installed version matches the latest available.<\/p>\n        <\/div>\n        <div class=\"section-card\">\n            <div class=\"section-icon icon-steps\"><\/div>\n            <h2>Setting an Eco Schedule<\/h2>\n            <p>In the Aiper app, select your X1, then tap Schedule. Choose the days and start time for automatic cleaning. The robot must be charged, connected to Wi-Fi, and not in charging\/standby mode when the scheduled time arrives. If the robot is on the charger when the schedule triggers, it will wait until removed and re-powered.<\/p>\n        <\/div>\n        <div class=\"section-card\">\n            <div class=\"section-icon icon-warn\"><\/div>\n            <h2>Schedule Doesn&rsquo;t Start at the Set Time<\/h2>\n            <p>Common causes: (1) Robot still charging at schedule time. (2) App lost the schedule due to a firmware update \u2014 re-enter the schedule after any update. (3) Wi-Fi was unavailable when the schedule tried to trigger \u2014 the X1 needs to receive the start command via Wi-Fi before entering the pool. Ensure the router is within range and the robot&rsquo;s LED shows steady green before the scheduled start time.<\/p>\n        <\/div>\n        <div class=\"section-card\">\n            <div class=\"section-icon icon-fix\"><\/div>\n            <h2>When to Contact Support<\/h2>\n            <p>If the firmware update genuinely fails to install after three attempts with the robot placed close to the router, contact Aiper support. Provide your robot serial number, current firmware version (shown in the app), and the error message displayed. A stuck firmware can usually be resolved remotely via the app.<\/p>\n        <\/div>\n\n    <div class=\"tc-back-nav\">\n        <a href=\"https:\/\/aiper.com\/blogs\/troubleshooting\/\">&larr; All troubleshooting guides<\/a>\n    <\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aiper Scuba X1 The most common cause is a false firmware update notification \u2014 the app shows &#8220;firmware update neede Direct answer The most common cause is a false firmware update notification \u2014 the app shows &#8220;firmware update needed&#8221; but the robot is already on the latest version. Fix: restart both the robot and the&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":2931,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-3032","page","type-page","status-publish","hentry"],"lang":"en","translations":{"en":3032,"de":3703,"fr":3704,"es":3705},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/3032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=3032"}],"version-history":[{"count":6,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/3032\/revisions"}],"predecessor-version":[{"id":7984,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/3032\/revisions\/7984"}],"up":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2931"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=3032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}