{"product_id":"dji-o4-relay-module","title":"DJI O4 Relay Module","description":"\u003c!--\n  SPEEDYDRONE.CA — SHOPIFY PRODUCT DESCRIPTION\n  Retail listing name: DJI O4 Relay Module\n  DJI official product name: DJI O4 Relay\n\n  Recommended Shopify product title:\n  DJI O4 Relay Module for AGRAS T100 \/ T70P \/ T25P \/ T55\n\n  Recommended SEO title:\n  DJI O4 Relay for AGRAS T100, T70P, T25P \u0026 T55 Canada | SpeedyDrone\n\n  Recommended meta description:\n  Special-order DJI O4 Relay for compatible AGRAS T100, T70P, T25P\n  and T55 systems. 6500 mAh battery, up to 5 hours, IP55, and regional\n  link ranges up to 8 km under FCC test conditions. Available in Canada\n  through SpeedyDrone.\n\n  Accuracy review: July 25, 2026\n\n  IMPORTANT ACCURACY NOTES:\n  1. DJI's official English product name is \"DJI O4 Relay.\" \"Module\" is\n     retained only in this retail listing title.\n  2. Officially documented compatible platforms are DJI AGRAS T100,\n     T70P, T25P, and T55. Compatibility with T50\/T25 is not claimed;\n     those aircraft use the previous-generation DJI Relay system.\n  3. The 8 km figure is DJI's FCC-condition effective signal-range result,\n     measured unobstructed, free of interference, at 2.5 m flight altitude.\n     DJI does not publish a separate IC\/ISED distance. Do not describe\n     8 km as a guaranteed Canadian range or an authorized flight radius.\n  4. Current T100\/T70P specifications list power consumption as 10.48 W\n     (FCC) and 8.8 W (SRRC). These more specific values are used instead\n     of the user guide's rounded 10 W figure.\n  5. DJI does not publish a complete regional in-the-box list. The guide\n     explicitly states that the extension rod is not included.\n  6. IP55 does not override DJI's instruction not to deploy the relay\n     outdoors during thunderstorms.\n\n  OFFICIAL REFERENCES:\n  https:\/\/ag.dji.com\/t100\/specs\n  https:\/\/ag.dji.com\/t70p\/specs\n  https:\/\/ag.dji.com\/t25p\n  https:\/\/ag.dji.com\/t55\/specs\n  https:\/\/dl.djicdn.com\/downloads\/t70_t100\/20250612_multi\/DJI_O4_Relay_User_Guide_v1.0_multi.pdf\n  https:\/\/laws-lois.justice.gc.ca\/eng\/regulations\/SOR-96-433\/section-901.11.html\n--\u003e\n\n\u003cstyle\u003e\n  .sd-o4-relay,\n  .sd-o4-relay * {\n    box-sizing: border-box;\n  }\n\n  .sd-o4-relay {\n    --sd-ink: #16191d;\n    --sd-muted: #606a72;\n    --sd-line: #dfe4e7;\n    --sd-soft: #f5f7f8;\n    --sd-white: #ffffff;\n    --sd-red: #d51f2d;\n    --sd-red-dark: #aa1722;\n    --sd-red-soft: #fff1f2;\n    --sd-blue: #176b91;\n    --sd-blue-dark: #0f4d69;\n    --sd-blue-soft: #edf7fb;\n    --sd-green: #176c58;\n    --sd-green-soft: #edf8f4;\n    width: 100%;\n    overflow: hidden;\n    background: var(--sd-white);\n    color: var(--sd-ink);\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 16px;\n    line-height: 1.6;\n    -webkit-font-smoothing: antialiased;\n  }\n\n  .sd-o4-relay h2,\n  .sd-o4-relay h3,\n  .sd-o4-relay p,\n  .sd-o4-relay ul,\n  .sd-o4-relay ol {\n    margin-top: 0;\n  }\n\n  .sd-o4-relay a {\n    color: inherit;\n  }\n\n  .sd-o4-relay__container {\n    width: min(1160px, calc(100% - 40px));\n    margin: 0 auto;\n  }\n\n  .sd-o4-relay__special-order {\n    margin: 0;\n    padding: 15px 20px;\n    border-bottom: 1px solid var(--sd-red-dark);\n    background: var(--sd-red);\n    color: var(--sd-white);\n    font-size: 15px;\n    font-weight: 800;\n    letter-spacing: 0.01em;\n    line-height: 1.5;\n    text-align: center;\n  }\n\n  .sd-o4-relay__hero {\n    position: relative;\n    overflow: hidden;\n    padding: clamp(70px, 9vw, 116px) 0 clamp(74px, 9vw, 118px);\n    border-bottom: 1px solid var(--sd-line);\n    background:\n      radial-gradient(circle at 87% 24%, rgba(23, 107, 145, 0.13), transparent 27%),\n      radial-gradient(circle at 70% 100%, rgba(213, 31, 45, 0.07), transparent 30%),\n      var(--sd-white);\n  }\n\n  .sd-o4-relay__hero-inner {\n    position: relative;\n    z-index: 1;\n    max-width: 1000px;\n  }\n\n  .sd-o4-relay__eyebrow,\n  .sd-o4-relay__kicker {\n    margin: 0 0 13px;\n    color: var(--sd-red);\n    font-size: 13px;\n    font-weight: 800;\n    letter-spacing: 0.15em;\n    line-height: 1.4;\n    text-transform: uppercase;\n  }\n\n  .sd-o4-relay__hero h2 {\n    max-width: 980px;\n    margin: 0;\n    color: var(--sd-ink);\n    font-size: clamp(43px, 7vw, 82px);\n    font-weight: 850;\n    letter-spacing: -0.055em;\n    line-height: 0.98;\n  }\n\n  .sd-o4-relay__hero-copy {\n    max-width: 850px;\n    margin: 26px 0 0;\n    color: var(--sd-muted);\n    font-size: clamp(18px, 2.2vw, 23px);\n    line-height: 1.55;\n  }\n\n  .sd-o4-relay__pills {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    margin: 31px 0 0;\n    padding: 0;\n    list-style: none;\n  }\n\n  .sd-o4-relay__pill {\n    display: inline-flex;\n    align-items: center;\n    min-height: 41px;\n    padding: 8px 16px;\n    border: 1px solid #d7dde1;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.95);\n    color: #343a40;\n    font-size: 14px;\n    font-weight: 750;\n  }\n\n  .sd-o4-relay__section {\n    padding: clamp(72px, 9vw, 112px) 0;\n    background: var(--sd-white);\n  }\n\n  .sd-o4-relay__section--soft {\n    border-top: 1px solid var(--sd-line);\n    border-bottom: 1px solid var(--sd-line);\n    background: var(--sd-soft);\n  }\n\n  .sd-o4-relay__section--compact {\n    padding-top: clamp(56px, 7vw, 82px);\n    padding-bottom: clamp(56px, 7vw, 82px);\n  }\n\n  .sd-o4-relay__intro {\n    max-width: 900px;\n    margin: 0 auto 48px;\n    text-align: center;\n  }\n\n  .sd-o4-relay__intro h2 {\n    margin: 0;\n    color: var(--sd-ink);\n    font-size: clamp(32px, 4.7vw, 52px);\n    font-weight: 850;\n    letter-spacing: -0.045em;\n    line-height: 1.06;\n  }\n\n  .sd-o4-relay__intro p:last-child {\n    max-width: 810px;\n    margin: 20px auto 0;\n    color: var(--sd-muted);\n    font-size: clamp(17px, 1.9vw, 20px);\n    line-height: 1.66;\n  }\n\n  .sd-o4-relay__feature-grid {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n    gap: 18px;\n  }\n\n  .sd-o4-relay__card {\n    padding: 29px;\n    border: 1px solid var(--sd-line);\n    border-radius: 22px;\n    background: var(--sd-white);\n    box-shadow: 0 13px 34px rgba(31, 39, 44, 0.05);\n  }\n\n  .sd-o4-relay__card-number {\n    display: grid;\n    width: 48px;\n    height: 48px;\n    margin-bottom: 20px;\n    place-items: center;\n    border-radius: 15px;\n    background: var(--sd-blue-soft);\n    color: var(--sd-blue-dark);\n    font-size: 17px;\n    font-weight: 850;\n  }\n\n  .sd-o4-relay__card h3 {\n    margin: 0 0 10px;\n    color: var(--sd-ink);\n    font-size: 20px;\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    line-height: 1.25;\n  }\n\n  .sd-o4-relay__card p {\n    margin: 0;\n    color: var(--sd-muted);\n    font-size: 15px;\n    line-height: 1.66;\n  }\n\n  .sd-o4-relay__compatibility {\n    display: grid;\n    grid-template-columns: 0.85fr 1.15fr;\n    gap: 26px;\n    align-items: stretch;\n  }\n\n  .sd-o4-relay__compatibility-copy,\n  .sd-o4-relay__compatibility-list {\n    padding: clamp(28px, 4vw, 44px);\n    border: 1px solid var(--sd-line);\n    border-radius: 25px;\n    background: var(--sd-white);\n  }\n\n  .sd-o4-relay__compatibility-copy h2 {\n    margin: 0 0 17px;\n    color: var(--sd-ink);\n    font-size: clamp(30px, 4vw, 46px);\n    font-weight: 850;\n    letter-spacing: -0.04em;\n    line-height: 1.08;\n  }\n\n  .sd-o4-relay__compatibility-copy p {\n    margin: 0;\n    color: var(--sd-muted);\n    font-size: 17px;\n    line-height: 1.68;\n  }\n\n  .sd-o4-relay__model-grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 12px;\n  }\n\n  .sd-o4-relay__model {\n    padding: 20px;\n    border: 1px solid #d8e6eb;\n    border-radius: 17px;\n    background: var(--sd-blue-soft);\n  }\n\n  .sd-o4-relay__model strong {\n    display: block;\n    color: var(--sd-blue-dark);\n    font-size: 18px;\n    line-height: 1.3;\n  }\n\n  .sd-o4-relay__model span {\n    display: block;\n    margin-top: 5px;\n    color: var(--sd-muted);\n    font-size: 13px;\n    line-height: 1.5;\n  }\n\n  .sd-o4-relay__compatibility-note {\n    margin: 18px 0 0;\n    padding: 15px 17px;\n    border-left: 4px solid var(--sd-red);\n    border-radius: 0 12px 12px 0;\n    background: var(--sd-red-soft);\n    color: #5c3135;\n    font-size: 14px;\n    line-height: 1.6;\n  }\n\n  .sd-o4-relay__steps {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 18px;\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    counter-reset: relay-step;\n  }\n\n  .sd-o4-relay__step {\n    position: relative;\n    min-height: 175px;\n    padding: 28px 28px 28px 82px;\n    border: 1px solid var(--sd-line);\n    border-radius: 22px;\n    background: var(--sd-white);\n    counter-increment: relay-step;\n  }\n\n  .sd-o4-relay__step::before {\n    position: absolute;\n    top: 28px;\n    left: 27px;\n    display: grid;\n    width: 39px;\n    height: 39px;\n    place-items: center;\n    border-radius: 12px;\n    background: var(--sd-green-soft);\n    color: var(--sd-green);\n    content: counter(relay-step);\n    font-size: 16px;\n    font-weight: 850;\n  }\n\n  .sd-o4-relay__step h3 {\n    margin: 0 0 8px;\n    color: var(--sd-ink);\n    font-size: 19px;\n    font-weight: 800;\n    line-height: 1.3;\n  }\n\n  .sd-o4-relay__step p {\n    margin: 0;\n    color: var(--sd-muted);\n    font-size: 15px;\n    line-height: 1.65;\n  }\n\n  .sd-o4-relay__notice {\n    margin-top: 22px;\n    padding: 22px 24px;\n    border: 1px solid #edc9cd;\n    border-radius: 18px;\n    background: var(--sd-red-soft);\n    color: #593136;\n    font-size: 15px;\n    line-height: 1.65;\n  }\n\n  .sd-o4-relay__notice strong {\n    color: #8c1822;\n  }\n\n  .sd-o4-relay__table-wrap {\n    overflow-x: auto;\n    border: 1px solid var(--sd-line);\n    border-radius: 22px;\n    background: var(--sd-white);\n    box-shadow: 0 14px 36px rgba(31, 39, 44, 0.045);\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .sd-o4-relay__table {\n    width: 100%;\n    min-width: 690px;\n    border-collapse: collapse;\n  }\n\n  .sd-o4-relay__table th,\n  .sd-o4-relay__table td {\n    padding: 17px 21px;\n    border-bottom: 1px solid var(--sd-line);\n    text-align: left;\n    vertical-align: top;\n  }\n\n  .sd-o4-relay__table th {\n    width: 31%;\n    background: #fafbfb;\n    color: #343b41;\n    font-size: 14px;\n    font-weight: 800;\n  }\n\n  .sd-o4-relay__table td {\n    color: var(--sd-muted);\n    font-size: 15px;\n    line-height: 1.62;\n  }\n\n  .sd-o4-relay__table tr:last-child th,\n  .sd-o4-relay__table tr:last-child td {\n    border-bottom: 0;\n  }\n\n  .sd-o4-relay__table small {\n    display: block;\n    margin-top: 5px;\n    color: #788188;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .sd-o4-relay__range-box {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 14px;\n    margin-top: 26px;\n  }\n\n  .sd-o4-relay__range-item {\n    padding: 23px 20px;\n    border: 1px solid #d8e6eb;\n    border-radius: 18px;\n    background: var(--sd-blue-soft);\n    text-align: center;\n  }\n\n  .sd-o4-relay__range-item strong {\n    display: block;\n    color: var(--sd-blue-dark);\n    font-size: 25px;\n    font-weight: 850;\n    line-height: 1.15;\n  }\n\n  .sd-o4-relay__range-item span {\n    display: block;\n    margin-top: 7px;\n    color: var(--sd-muted);\n    font-size: 13px;\n    font-weight: 700;\n    line-height: 1.4;\n  }\n\n  .sd-o4-relay__range-condition {\n    margin: 17px auto 0;\n    color: var(--sd-muted);\n    font-size: 13px;\n    line-height: 1.65;\n    text-align: center;\n  }\n\n  .sd-o4-relay__two-column {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 21px;\n  }\n\n  .sd-o4-relay__info-panel {\n    padding: clamp(28px, 4vw, 42px);\n    border: 1px solid var(--sd-line);\n    border-radius: 24px;\n    background: var(--sd-white);\n  }\n\n  .sd-o4-relay__info-panel h3 {\n    margin: 0 0 17px;\n    color: var(--sd-ink);\n    font-size: 25px;\n    font-weight: 850;\n    letter-spacing: -0.03em;\n    line-height: 1.2;\n  }\n\n  .sd-o4-relay__info-panel p {\n    margin: 0 0 15px;\n    color: var(--sd-muted);\n    font-size: 15px;\n    line-height: 1.68;\n  }\n\n  .sd-o4-relay__info-panel p:last-child {\n    margin-bottom: 0;\n  }\n\n  .sd-o4-relay__check-list {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n  }\n\n  .sd-o4-relay__check-list li {\n    position: relative;\n    margin-bottom: 13px;\n    padding-left: 29px;\n    color: var(--sd-muted);\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .sd-o4-relay__check-list li:last-child {\n    margin-bottom: 0;\n  }\n\n  .sd-o4-relay__check-list li::before {\n    position: absolute;\n    top: 0.14em;\n    left: 0;\n    color: var(--sd-green);\n    content: \"✓\";\n    font-size: 18px;\n    font-weight: 900;\n  }\n\n  .sd-o4-relay__faq {\n    max-width: 930px;\n    margin: 0 auto;\n  }\n\n  .sd-o4-relay__faq details {\n    margin-bottom: 12px;\n    overflow: hidden;\n    border: 1px solid var(--sd-line);\n    border-radius: 17px;\n    background: var(--sd-white);\n  }\n\n  .sd-o4-relay__faq details:last-child {\n    margin-bottom: 0;\n  }\n\n  .sd-o4-relay__faq summary {\n    position: relative;\n    padding: 20px 54px 20px 22px;\n    color: var(--sd-ink);\n    cursor: pointer;\n    font-size: 16px;\n    font-weight: 800;\n    line-height: 1.45;\n    list-style: none;\n  }\n\n  .sd-o4-relay__faq summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .sd-o4-relay__faq summary::after {\n    position: absolute;\n    top: 50%;\n    right: 22px;\n    color: var(--sd-blue);\n    content: \"+\";\n    font-size: 25px;\n    font-weight: 500;\n    line-height: 1;\n    transform: translateY(-50%);\n  }\n\n  .sd-o4-relay__faq details[open] summary::after {\n    content: \"−\";\n  }\n\n  .sd-o4-relay__faq-answer {\n    padding: 0 22px 21px;\n    color: var(--sd-muted);\n    font-size: 15px;\n    line-height: 1.68;\n  }\n\n  .sd-o4-relay__faq-answer p {\n    margin-bottom: 0;\n  }\n\n  .sd-o4-relay__cta {\n    padding: clamp(66px, 8vw, 96px) 0;\n    background: var(--sd-ink);\n    color: var(--sd-white);\n    text-align: center;\n  }\n\n  .sd-o4-relay__cta-inner {\n    max-width: 820px;\n    margin: 0 auto;\n  }\n\n  .sd-o4-relay__cta h2 {\n    margin: 0;\n    color: var(--sd-white);\n    font-size: clamp(32px, 4.7vw, 50px);\n    font-weight: 850;\n    letter-spacing: -0.04em;\n    line-height: 1.08;\n  }\n\n  .sd-o4-relay__cta p {\n    margin: 20px auto 0;\n    color: #cbd1d5;\n    font-size: 17px;\n    line-height: 1.65;\n  }\n\n  .sd-o4-relay__cta-actions {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 12px;\n    margin-top: 29px;\n  }\n\n  .sd-o4-relay__button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 48px;\n    padding: 12px 22px;\n    border: 1px solid var(--sd-red);\n    border-radius: 999px;\n    background: var(--sd-red);\n    color: var(--sd-white) !important;\n    font-size: 15px;\n    font-weight: 800;\n    line-height: 1.3;\n    text-decoration: none;\n    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;\n  }\n\n  .sd-o4-relay__button:hover {\n    border-color: var(--sd-red-dark);\n    background: var(--sd-red-dark);\n    transform: translateY(-1px);\n  }\n\n  .sd-o4-relay__button--secondary {\n    border-color: #606970;\n    background: transparent;\n  }\n\n  .sd-o4-relay__button--secondary:hover {\n    border-color: var(--sd-white);\n    background: rgba(255, 255, 255, 0.08);\n  }\n\n  .sd-o4-relay__footnote {\n    margin: 26px 0 0;\n    color: #9fa8ae !important;\n    font-size: 12px !important;\n    line-height: 1.65 !important;\n  }\n\n  @media (max-width: 980px) {\n    .sd-o4-relay__feature-grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    .sd-o4-relay__compatibility {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  @media (max-width: 760px) {\n    .sd-o4-relay__container {\n      width: min(100% - 28px, 1160px);\n    }\n\n    .sd-o4-relay__steps,\n    .sd-o4-relay__two-column {\n      grid-template-columns: 1fr;\n    }\n\n    .sd-o4-relay__table th,\n    .sd-o4-relay__table td {\n      padding: 15px 17px;\n    }\n  }\n\n  @media (max-width: 560px) {\n    .sd-o4-relay__hero {\n      padding-top: 57px;\n      padding-bottom: 63px;\n    }\n\n    .sd-o4-relay__feature-grid,\n    .sd-o4-relay__model-grid,\n    .sd-o4-relay__range-box {\n      grid-template-columns: 1fr;\n    }\n\n    .sd-o4-relay__card {\n      padding: 25px;\n    }\n\n    .sd-o4-relay__step {\n      min-height: 0;\n      padding: 72px 23px 24px;\n    }\n\n    .sd-o4-relay__step::before {\n      top: 21px;\n      left: 23px;\n    }\n\n    .sd-o4-relay__special-order {\n      padding: 13px 15px;\n      font-size: 13px;\n    }\n\n    .sd-o4-relay__cta-actions {\n      align-items: stretch;\n      flex-direction: column;\n    }\n\n    .sd-o4-relay__button {\n      width: 100%;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .sd-o4-relay__button {\n      transition: none;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"sd-o4-relay\"\u003e\n  \u003cp class=\"sd-o4-relay__special-order\"\u003eThis is a special order item, additional processing time, contact us for availability.\u003c\/p\u003e\n\n  \u003csection class=\"sd-o4-relay__hero\" aria-labelledby=\"sd-o4-relay-title\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__hero-inner\"\u003e\n        \u003cp class=\"sd-o4-relay__eyebrow\"\u003eDJI AGRAS O4 TRANSMISSION ACCESSORY · CANADA\u003c\/p\u003e\n        \u003ch2 id=\"sd-o4-relay-title\"\u003eDJI O4 Relay Module\u003c\/h2\u003e\n        \u003cp class=\"sd-o4-relay__hero-copy\"\u003e\n          DJI's O4 Relay provides an intermediate link between a compatible DJI AGRAS aircraft and its remote\n          controller, supporting smoother operations in challenging signal environments.\n        \u003c\/p\u003e\n        \u003cul class=\"sd-o4-relay__pills\" aria-label=\"Key specifications\"\u003e\n          \u003cli class=\"sd-o4-relay__pill\"\u003eUp to 8 km under FCC test conditions*\u003c\/li\u003e\n          \u003cli class=\"sd-o4-relay__pill\"\u003eUp to 5 hours\u003c\/li\u003e\n          \u003cli class=\"sd-o4-relay__pill\"\u003e6500 mAh Li-ion battery\u003c\/li\u003e\n          \u003cli class=\"sd-o4-relay__pill\"\u003eIP55\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__section\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__intro\"\u003e\n        \u003cp class=\"sd-o4-relay__kicker\"\u003eO4 Relay Link\u003c\/p\u003e\n        \u003ch2\u003eDesigned for challenging signal conditions\u003c\/h2\u003e\n        \u003cp\u003e\n          Deploy the relay above the crop canopy and link it through the DJI Agras app. The self-powered unit is\n          designed to relay communications between the aircraft and remote controller without changing the\n          aircraft's sensing, navigation, or regulatory operating limits.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sd-o4-relay__feature-grid\"\u003e\n        \u003carticle class=\"sd-o4-relay__card\"\u003e\n          \u003cdiv class=\"sd-o4-relay__card-number\" aria-hidden=\"true\"\u003eO4\u003c\/div\u003e\n          \u003ch3\u003eIntermediate relay link\u003c\/h3\u003e\n          \u003cp\u003e\n            Works between the compatible AGRAS aircraft and remote controller to support the O4 transmission link\n            in difficult signal environments.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sd-o4-relay__card\"\u003e\n          \u003cdiv class=\"sd-o4-relay__card-number\" aria-hidden=\"true\"\u003e5h\u003c\/div\u003e\n          \u003ch3\u003eIndependent battery\u003c\/h3\u003e\n          \u003cp\u003e\n            The integrated 6500 mAh Li-ion battery provides an official operating time of up to five hours.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sd-o4-relay__card\"\u003e\n          \u003cdiv class=\"sd-o4-relay__card-number\" aria-hidden=\"true\"\u003e30W\u003c\/div\u003e\n          \u003ch3\u003eApproximately 2.5-hour charge\u003c\/h3\u003e\n          \u003cp\u003e\n            DJI specifies an approximately 2.5-hour charging time with 30 W charging and recommends a USB Power\n            Delivery charger.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sd-o4-relay__card\"\u003e\n          \u003cdiv class=\"sd-o4-relay__card-number\" aria-hidden=\"true\"\u003eIP55\u003c\/div\u003e\n          \u003ch3\u003eField-oriented enclosure\u003c\/h3\u003e\n          \u003cp\u003e\n            The relay carries an IP55 ingress-protection rating. DJI still prohibits outdoor deployment during\n            thunderstorms.\n          \u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__section sd-o4-relay__section--soft\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__compatibility\"\u003e\n        \u003cdiv class=\"sd-o4-relay__compatibility-copy\"\u003e\n          \u003cp class=\"sd-o4-relay__kicker\"\u003eVerified Compatibility\u003c\/p\u003e\n          \u003ch2\u003eCurrent O4-generation AGRAS platforms\u003c\/h2\u003e\n          \u003cp\u003e\n            DJI's official product, specification, and download pages document the O4 Relay for the following\n            aircraft. Confirm the exact aircraft model, regional SKU, and current compatible firmware before\n            ordering.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"sd-o4-relay__compatibility-list\"\u003e\n          \u003cdiv class=\"sd-o4-relay__model-grid\" role=\"group\" aria-label=\"Compatible aircraft\"\u003e\n            \u003cdiv class=\"sd-o4-relay__model\"\u003e\n              \u003cstrong\u003eDJI AGRAS T100\u003c\/strong\u003e\n              \u003cspan\u003eO4 Relay specifications and user guide published by DJI\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"sd-o4-relay__model\"\u003e\n              \u003cstrong\u003eDJI AGRAS T70P\u003c\/strong\u003e\n              \u003cspan\u003eO4 Relay specifications and user guide published by DJI\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"sd-o4-relay__model\"\u003e\n              \u003cstrong\u003eDJI AGRAS T25P\u003c\/strong\u003e\n              \u003cspan\u003eO4 Relay listed by DJI as an optional transmission accessory\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"sd-o4-relay__model\"\u003e\n              \u003cstrong\u003eDJI AGRAS T55\u003c\/strong\u003e\n              \u003cspan\u003eRelay specifications and O4 Relay guide published by DJI\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"sd-o4-relay__compatibility-note\"\u003e\n            \u003cstrong\u003eGeneration matters:\u003c\/strong\u003e compatibility with AGRAS T50 or T25 is not claimed. Those aircraft\n            use DJI's previous-generation relay system, which has different specifications.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__section\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__intro\"\u003e\n        \u003cp class=\"sd-o4-relay__kicker\"\u003eDeployment Guidance\u003c\/p\u003e\n        \u003ch2\u003eSet up the relay correctly\u003c\/h2\u003e\n        \u003cp\u003e\n          These installation points come directly from DJI's O4 Relay user guide. Read the complete guide before\n          activation, linking, charging, or field deployment.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003col class=\"sd-o4-relay__steps\"\u003e\n        \u003cli class=\"sd-o4-relay__step\"\u003e\n          \u003ch3\u003eInstall it above the crop canopy\u003c\/h3\u003e\n          \u003cp\u003e\n            DJI recommends positioning the relay at least 2 m above the crops and keeping the antennas\n            unobstructed.\n          \u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"sd-o4-relay__step\"\u003e\n          \u003ch3\u003eLink through DJI Agras\u003c\/h3\u003e\n          \u003cp\u003e\n            Link the remote controller and aircraft first. During relay linking, keep both within 0.5 m of the\n            relay, then use Device Management \u0026gt; Relay in the DJI Agras app.\n          \u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"sd-o4-relay__step\"\u003e\n          \u003ch3\u003eActivate before first operation\u003c\/h3\u003e\n          \u003cp\u003e\n            After linking, follow the app prompts to activate the new relay. Confirm that all system versions are\n            mutually compatible and follow DJI's current firmware instructions.\n          \u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli class=\"sd-o4-relay__step\"\u003e\n          \u003ch3\u003eKeep the deployment weather-safe\u003c\/h3\u003e\n          \u003cp\u003e\n            Do not deploy the relay outdoors during thunderstorms. During storage, keep the product dry and ensure\n            the USB-C port plug is securely fastened.\n          \u003c\/p\u003e\n        \u003c\/li\u003e\n      \u003c\/ol\u003e\n\n      \u003cdiv class=\"sd-o4-relay__notice\"\u003e\n        \u003cstrong\u003eExtension rod not included.\u003c\/strong\u003e DJI's guide explicitly identifies the extension rod as a\n        separately sourced item. DJI's public O4 Relay guide does not provide a complete in-the-box list. Confirm\n        the current Canadian SKU contents with SpeedyDrone before ordering.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__section sd-o4-relay__section--soft\" id=\"sd-o4-relay-specifications\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__intro\"\u003e\n        \u003cp class=\"sd-o4-relay__kicker\"\u003eOfficial Technical Data\u003c\/p\u003e\n        \u003ch2\u003eDJI O4 Relay specifications\u003c\/h2\u003e\n        \u003cp\u003e\n          The figures below are transcribed from DJI's current T100\/T70P relay specifications and the DJI O4 Relay\n          User Guide.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sd-o4-relay__table-wrap\"\u003e\n        \u003ctable class=\"sd-o4-relay__table\"\u003e\n          \u003ctbody\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eOfficial product name\u003c\/th\u003e\n              \u003ctd\u003eDJI O4 Relay\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eDimensions\u003c\/th\u003e\n              \u003ctd\u003e\n                112 × 112 × 51 mm (without antenna)\u003cbr\u003e\n                120 × 112 × 101 mm (with antenna)\n              \u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eWeight\u003c\/th\u003e\n              \u003ctd\u003e630 g\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eInput\u003c\/th\u003e\n              \u003ctd\u003e2.7–24 V\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003ePower consumption\u003c\/th\u003e\n              \u003ctd\u003e\n                10.48 W (FCC)\u003cbr\u003e\n                8.8 W (SRRC)\n              \u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eBattery\u003c\/th\u003e\n              \u003ctd\u003eLi-ion, 6500 mAh\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eOperating time\u003c\/th\u003e\n              \u003ctd\u003e5 hours\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eCharging time\u003c\/th\u003e\n              \u003ctd\u003eApproximately 2.5 hours with 30 W charging\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eOperating frequencies\u003c\/th\u003e\n              \u003ctd\u003e\n                2.4000–2.4835 GHz\u003cbr\u003e\n                5.150–5.250 GHz\u003cbr\u003e\n                5.725–5.850 GHz\n                \u003csmall\u003e\n                  DJI's T100\/T70P specifications and O4 Relay guide list 5.150–5.250 GHz; current T55\n                  specifications list 5.170–5.250 GHz. DJI states that 5.8 GHz is unavailable in some countries.\n                  Available frequencies depend on aircraft and regional configuration.\n                \u003c\/small\u003e\n              \u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eEffective signal range\u003c\/th\u003e\n              \u003ctd\u003e\n                8 km (FCC)\u003cbr\u003e\n                5 km (SRRC)\u003cbr\u003e\n                4 km (MIC\/KCC\/CE)\n                \u003csmall\u003eMeasured unobstructed, free of interference, at a flight altitude of 2.5 m.\u003c\/small\u003e\n              \u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eIngress protection\u003c\/th\u003e\n              \u003ctd\u003eIP55\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eOperating temperature\u003c\/th\u003e\n              \u003ctd\u003e0°C to 45°C (32°F to 113°F)\u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eCharging temperature\u003c\/th\u003e\n              \u003ctd\u003e\n                5°C to 40°C (41°F to 104°F)\n                \u003csmall\u003eDJI identifies 22°C to 28°C (72°F to 82°F) as the ideal charging-temperature range.\u003c\/small\u003e\n              \u003c\/td\u003e\n            \u003c\/tr\u003e\n            \u003ctr\u003e\n              \u003cth scope=\"row\"\u003eLong-term storage\u003c\/th\u003e\n              \u003ctd\u003e\n                For storage longer than three months: -10°C to 30°C (14°F to 86°F).\u003cbr\u003e\n                For extended storage: maintain 30%–50% battery level.\n                \u003csmall\u003eDJI instructs users to fully charge the battery at least once every six months.\u003c\/small\u003e\n              \u003c\/td\u003e\n            \u003c\/tr\u003e\n          \u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sd-o4-relay__range-box\" role=\"group\" aria-label=\"Regional effective signal range\"\u003e\n        \u003cdiv class=\"sd-o4-relay__range-item\"\u003e\n          \u003cstrong\u003e8 km\u003c\/strong\u003e\n          \u003cspan\u003eFCC test conditions\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"sd-o4-relay__range-item\"\u003e\n          \u003cstrong\u003e5 km\u003c\/strong\u003e\n          \u003cspan\u003eSRRC test conditions\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"sd-o4-relay__range-item\"\u003e\n          \u003cstrong\u003e4 km\u003c\/strong\u003e\n          \u003cspan\u003eMIC \/ KCC \/ CE test conditions\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"sd-o4-relay__range-condition\"\u003e\n        *DJI test condition: unobstructed, free of interference, with the aircraft at 2.5 m altitude. Actual\n        performance and available frequencies depend on conditions and regional requirements. DJI does not publish\n        a separate IC\/ISED distance.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__section\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__intro\"\u003e\n        \u003cp class=\"sd-o4-relay__kicker\"\u003eOrdering \u0026amp; Operation\u003c\/p\u003e\n        \u003ch2\u003eConfirm the full system before purchase\u003c\/h2\u003e\n        \u003cp\u003e\n          O4 Relay compatibility depends on the aircraft generation, regional version, and mutually compatible\n          software. Send SpeedyDrone your aircraft model and operating region before placing a special order.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sd-o4-relay__two-column\"\u003e\n        \u003carticle class=\"sd-o4-relay__info-panel\"\u003e\n          \u003ch3\u003eBefore ordering\u003c\/h3\u003e\n          \u003cul class=\"sd-o4-relay__check-list\"\u003e\n            \u003cli\u003eConfirm the aircraft is an AGRAS T100, T70P, T25P, or T55.\u003c\/li\u003e\n            \u003cli\u003eConfirm the regional hardware SKU and frequency availability.\u003c\/li\u003e\n            \u003cli\u003eConfirm current compatible aircraft, controller, relay, and DJI Agras app versions.\u003c\/li\u003e\n            \u003cli\u003ePlan for a separate extension rod and a stable mounting location.\u003c\/li\u003e\n            \u003cli\u003eConfirm the exact regional package contents with SpeedyDrone.\u003c\/li\u003e\n          \u003c\/ul\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"sd-o4-relay__info-panel\"\u003e\n          \u003ch3\u003eOperational boundaries\u003c\/h3\u003e\n          \u003cul class=\"sd-o4-relay__check-list\"\u003e\n            \u003cli\u003eThe relay supports the transmission link; it does not add obstacle sensing or flight autonomy.\u003c\/li\u003e\n            \u003cli\u003ePublished signal range is a test result, not a guaranteed field radius.\u003c\/li\u003e\n            \u003cli\u003eAlways maintain the aircraft within the operation permitted by applicable Canadian RPAS rules.\u003c\/li\u003e\n            \u003cli\u003eDo not use the relay to justify unauthorized EVLOS or BVLOS operations.\u003c\/li\u003e\n            \u003cli\u003eFollow the aircraft, remote-controller, and relay manuals together.\u003c\/li\u003e\n          \u003c\/ul\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__section sd-o4-relay__section--soft sd-o4-relay__section--compact\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__intro\"\u003e\n        \u003cp class=\"sd-o4-relay__kicker\"\u003eFrequently Asked Questions\u003c\/p\u003e\n        \u003ch2\u003eDJI O4 Relay FAQ\u003c\/h2\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"sd-o4-relay__faq\"\u003e\n        \u003cdetails\u003e\n          \u003csummary\u003eWhat is the official name of this product?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              DJI's official English documentation calls it the \u003cstrong\u003eDJI O4 Relay\u003c\/strong\u003e. “Module” is used in\n              this retail listing title for product-search clarity.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eWhich DJI AGRAS aircraft are officially documented as compatible?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              DJI currently documents O4 Relay support for AGRAS T100, T70P, T25P, and T55. Confirm the exact\n              regional SKU and current compatible firmware before ordering.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eIs the DJI O4 Relay compatible with AGRAS T50 or T25?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              This listing does not claim T50 or T25 compatibility. Those models use DJI's earlier relay\n              generation with different specifications. Contact SpeedyDrone with your exact aircraft model rather\n              than ordering by appearance or product name alone.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eDoes the relay provide an 8 km operating radius in Canada?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              No such claim is made. DJI publishes an 8 km effective signal-range result under FCC test conditions:\n              unobstructed, free of interference, and at 2.5 m flight altitude. DJI does not publish a separate\n              IC\/ISED range. Transmission capability also does not replace the operator's obligation to comply\n              with Canadian RPAS rules.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eIs the extension rod included?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              No. DJI's user guide explicitly states that the extension rod is not included. Because DJI does not\n              publish a complete public regional box-content list, confirm the exact Canadian package contents\n              before ordering.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eHow is the DJI O4 Relay linked?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              Before first use, link the remote controller and aircraft, power on the relay, keep both within 0.5 m\n              of it, and select Device Management \u0026gt; Relay in DJI Agras. After linking, follow the app prompts to\n              activate the relay; it can also be connected to the remote controller's USB-C port for activation.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eCan the IP55 relay be deployed outdoors during a thunderstorm?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              No. Although the enclosure is rated IP55, DJI specifically instructs users not to set up the relay\n              outdoors during thunderstorms.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n\n        \u003cdetails\u003e\n          \u003csummary\u003eWhere can I read the official instructions?\u003c\/summary\u003e\n          \u003cdiv class=\"sd-o4-relay__faq-answer\"\u003e\n            \u003cp\u003e\n              Read the\n              \u003ca href=\"https:\/\/dl.djicdn.com\/downloads\/t70_t100\/20250612_multi\/DJI_O4_Relay_User_Guide_v1.0_multi.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cstrong\u003eDJI O4 Relay User Guide\u003c\/strong\u003e\u003c\/a\u003e\n              before activation, linking, charging, deployment, storage, or firmware updates.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/details\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"sd-o4-relay__cta\"\u003e\n    \u003cdiv class=\"sd-o4-relay__container\"\u003e\n      \u003cdiv class=\"sd-o4-relay__cta-inner\"\u003e\n        \u003cp class=\"sd-o4-relay__kicker\"\u003eSpeedyDrone.ca · Canada\u003c\/p\u003e\n        \u003ch2\u003eConfirm your AGRAS model before ordering\u003c\/h2\u003e\n        \u003cp\u003e\n          Send us your aircraft model, operating region, and current controller\/aircraft information. We can\n          confirm the applicable DJI O4 Relay SKU and current availability before processing the special order.\n        \u003c\/p\u003e\n        \u003cdiv class=\"sd-o4-relay__cta-actions\"\u003e\n          \u003ca class=\"sd-o4-relay__button\" href=\"\/pages\/contact\"\u003eContact SpeedyDrone\u003c\/a\u003e\n          \u003ca class=\"sd-o4-relay__button sd-o4-relay__button--secondary\" href=\"https:\/\/dl.djicdn.com\/downloads\/t70_t100\/20250612_multi\/DJI_O4_Relay_User_Guide_v1.0_multi.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRead the DJI User Guide\u003c\/a\u003e\n        \u003c\/div\u003e\n        \u003cp class=\"sd-o4-relay__footnote\"\u003e\n          DJI AGRAS, DJI O4, and related product names are trademarks of their respective owners. Specifications,\n          compatibility, frequencies, and product appearance may change. Always refer to the current regional\n          product, DJI documentation, applicable firmware requirements, and Canadian regulations.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"DJI Agras","offers":[{"title":"Default Title","offer_id":47683766321289,"sku":null,"price":1450.0,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/DJIO4RelayModule.webp?v=1785013166","url":"https:\/\/www.speedydrone.ca\/products\/dji-o4-relay-module","provider":"SpeedyDrone Canada ","version":"1.0","type":"link"}