From 5782eb9b1c1f50568df621ca092e6bd36c379957 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 21:47:12 +0200 Subject: [PATCH 1/9] Add pending ONT pages from the TODO list GPON: - CIG G-95SP (Lantiq), with the AVM configuration protocol from #46; the G-97SP is the Realtek model, so its Lantiq chipset and G-95SP links move to the new page - Huawei OptiXstar S600E, Huawei HG8310M, Zyxel PMG1005-T20C XGS-PON: - Adtran SDX 631 and SDX 631q, CIG XG-99C, Genexis FiberTwist XGS2110 and XGS2110-2.5G, Nokia XS-010G-Q, Huawei OptiXstar S800E, Ubiquiti UISP Fiber XGS 10G-EPON: - CIG XE-99C Specifications come from the vendor datasheets and product pages linked on each page; fields without a source are left empty. Refs #46 Co-Authored-By: Claude Opus 5.5 --- ont-epon/CIG_XE-99C.md | 41 +++++++++ ont-xgs/ont-adtran-sdx-631.md | 48 ++++++++++ ont-xgs/ont-adtran-sdx-631q.md | 46 ++++++++++ ont-xgs/ont-cig-XG-99C.md | 62 +++++++++++++ ont-xgs/ont-genexis-ft-xgs2110-2.5g.md | 49 ++++++++++ ont-xgs/ont-genexis-ft-xgs2110.md | 49 ++++++++++ ont-xgs/ont-genexis.md | 4 + ont-xgs/ont-huawei-optixstar-s800e.md | 47 ++++++++++ ont-xgs/ont-nokia-xs-010g-q.md | 53 +++++++++++ ont-xgs/ont-ufiber-uisp-fiber-xgs.md | 36 ++++++++ ont-xgs/ont-ufiber.md | 4 + ont/ont-cig-g-95sp.md | 122 +++++++++++++++++++++++++ ont/ont-cig-g-97sp.md | 8 +- ont/ont-huawei-hg8310m.md | 48 ++++++++++ ont/ont-huawei-optixstar-s600e.md | 48 ++++++++++ ont/ont-zyxel-pmg1005-t20c.md | 44 +++++++++ 16 files changed, 705 insertions(+), 4 deletions(-) create mode 100644 ont-epon/CIG_XE-99C.md create mode 100644 ont-xgs/ont-adtran-sdx-631.md create mode 100644 ont-xgs/ont-adtran-sdx-631q.md create mode 100644 ont-xgs/ont-cig-XG-99C.md create mode 100644 ont-xgs/ont-genexis-ft-xgs2110-2.5g.md create mode 100644 ont-xgs/ont-genexis-ft-xgs2110.md create mode 100644 ont-xgs/ont-genexis.md create mode 100644 ont-xgs/ont-huawei-optixstar-s800e.md create mode 100644 ont-xgs/ont-nokia-xs-010g-q.md create mode 100644 ont-xgs/ont-ufiber-uisp-fiber-xgs.md create mode 100644 ont-xgs/ont-ufiber.md create mode 100644 ont/ont-cig-g-95sp.md create mode 100644 ont/ont-huawei-hg8310m.md create mode 100644 ont/ont-huawei-optixstar-s600e.md create mode 100644 ont/ont-zyxel-pmg1005-t20c.md diff --git a/ont-epon/CIG_XE-99C.md b/ont-epon/CIG_XE-99C.md new file mode 100644 index 00000000..985ce90d --- /dev/null +++ b/ont-epon/CIG_XE-99C.md @@ -0,0 +1,41 @@ +--- +title: CIG XE-99C +has_children: false +parent: CIG +--- + +# Hardware Specifications + +| | | +| ---------------- | ------------------------------------- | +| Vendor/Brand | CIG | +| Model | XE-99C | +| ODM | CIG | +| Chipset | | +| Flash | | +| RAM | | +| CPU | | +| System | | +| 10GBaseT | Yes (1x 10GE + 1x GE optional) | +| Optics | BOSA on board | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Form Factor | ONT | + +The XE-99C is the 10G-EPON ONT of the CIG XE-99 series (the SFP+ version is the [CIG XE-99S](/epon/CIG_XE-99S)). + +It is compliant with IEEE 802.3av, IEEE 1904.1, DPoE v2.0 and CTC V3.0 EPON standards, and it has a 2-pin power plug (+12 VDC), a power switch and a pin-hole reset button. + +## Value-added resellers + +| Company | Product Number | +| --------- | -------------- | +| Actiontec | XE-99C | + +# Miscellaneous Links + +- [Actiontec Broadband](https://actiontec.com/broadband/) +- [CIG 10G EPON ONT (DirectIndustry)](https://www.directindustry.com/prod/cambridge-industries-group/product-236815-2398564.html) diff --git a/ont-xgs/ont-adtran-sdx-631.md b/ont-xgs/ont-adtran-sdx-631.md new file mode 100644 index 00000000..fa59c7ff --- /dev/null +++ b/ont-xgs/ont-adtran-sdx-631.md @@ -0,0 +1,48 @@ +--- +title: Adtran SDX 631 +has_children: false +parent: Adtran +--- + +# Hardware Specifications + +| | | +| --------------- | -------------------------------- | +| Vendor/Brand | Adtran | +| Model | SDX 631 | +| Part Number | 1287930F1 (North America) | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 10GBaseT | Yes (1x 100M/1G/2.5G/5G/10G) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The SDX 631 is the 10GbE indoor ONT of the Adtran SDX 630 series. The 2.5GbE variant is the [SDX 631q](/xgs/ont-adtran-sdx-631q). + +## Specifications + +From the SDX 630 series datasheet: + +| | | +| ---------------------- | -------------------------------------------------------------------- | +| PON | XGS-PON (ITU-T G.9807.1), 9.9532 Gbit/s symmetric, up to 1:128 split | +| Wavelengths | 1577 nm downstream, 1270 nm upstream | +| Management | OMCI (ITU-T G.988), BBF.247, TR-471 speedtest, Y.1731 | +| Ethernet | 9k jumbo frames, 802.1ad Q-in-Q, SyncE | +| Operating temperature | 0 °C ~ +40 °C | +| Dimensions (D x W x H) | 114.5 x 133.3 x 35.5 mm | +| Mounting | Desk, wall, fiber tray, wall mount box, DIN rail | + +# Miscellaneous Links + +- [Adtran SDX 630 Series](https://www.adtran.com/en/products-and-services/sdx-630-series-for-standard-deployments) +- [SDX 630 Series datasheet](https://www.adtran.com/-/media/adtran/resources/data-sheets/pdfs/sdx-630-series.pdf) diff --git a/ont-xgs/ont-adtran-sdx-631q.md b/ont-xgs/ont-adtran-sdx-631q.md new file mode 100644 index 00000000..6ab927b2 --- /dev/null +++ b/ont-xgs/ont-adtran-sdx-631q.md @@ -0,0 +1,46 @@ +--- +title: Adtran SDX 631q +has_children: false +parent: Adtran +--- + +# Hardware Specifications + +| | | +| --------------- | -------------------------------- | +| Vendor/Brand | Adtran | +| Model | SDX 631q | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 2.5GBaseT | Yes (1x 10M/100M/1G/2.5G) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The SDX 631q is the 2.5GbE indoor ONT of the Adtran SDX 630 series. The 10GbE variant is the [SDX 631](/xgs/ont-adtran-sdx-631), the variant with one FXS port is the SDX 631qv. + +## Specifications + +From the SDX 630 series datasheet: + +| | | +| ---------------------- | -------------------------------------------------------------------- | +| PON | XGS-PON (ITU-T G.9807.1), 9.9532 Gbit/s symmetric, up to 1:128 split | +| Wavelengths | 1577 nm downstream, 1270 nm upstream | +| Management | OMCI (ITU-T G.988), BBF.247, TR-471 speedtest, Y.1731 | +| Operating temperature | 0 °C ~ +40 °C | +| Dimensions (D x W x H) | 114.5 x 133.3 x 35.5 mm | +| Mounting | Desk, wall, fiber tray, wall mount box, DIN rail | + +# Miscellaneous Links + +- [Adtran SDX 630 Series](https://www.adtran.com/en/products-and-services/sdx-630-series-for-standard-deployments) +- [SDX 630 Series datasheet](https://www.adtran.com/-/media/adtran/resources/data-sheets/pdfs/sdx-630-series.pdf) diff --git a/ont-xgs/ont-cig-XG-99C.md b/ont-xgs/ont-cig-XG-99C.md new file mode 100644 index 00000000..b1878d09 --- /dev/null +++ b/ont-xgs/ont-cig-XG-99C.md @@ -0,0 +1,62 @@ +--- +title: CIG XG-99C +has_children: false +parent: CIG +--- + +# Hardware Specifications + +| | | +| --------------- | ---------------------------------------------- | +| Vendor/Brand | CIG | +| Model | XG-99C (XG-99C1, XG-99C2) | +| ODM | CIG | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 10GBaseT | Yes (1x 10GBase-T, compatible with 5G/2.5G/1G) | +| Optics | | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The XG-99C is the XGS-PON SFU ONT of the CIG XG-99 series (the SFP+ version is the [CIG XG-99S](/xgs/ont-cig-XG-99S)). + +| Product | 10GBase-T | 10/100/1000Base-T | +| ------- | --------- | ----------------- | +| XG-99C1 | 1 | 1 | +| XG-99C2 | 1 | 0 | + +## Value-added resellers + +| Company | Product Number | +| --------- | -------------- | +| Actiontec | XG-99C | + +## Specifications + +From the Actiontec datasheet (version 2.0, Nov 2023): + +| | | +| ---------------------- | ---------------------------------------------------------------------- | +| PON | XGS-PON (ITU-T G.9807.1), Class N1, on-board optics | +| Wavelengths | US 1260 ~ 1280 nm, DS 1575 ~ 1580 nm | +| Launch power | +4 ~ +9 dBm | +| Sensitivity | -28 dBm | +| Overload | -9 dBm | +| Management | OMCI (ITU-T G.988), dual image with integrity check and rollback | +| Power supply | +12 V (external AC/DC adapter), dying gasp, power switch | +| Power consumption | < 10 W | +| Operating temperature | -5 °C ~ 45 °C | +| Dimensions (H x W x D) | 150 x 110 x 30 mm (without bracket), 215 x 110 x 40 mm (with bracket) | + +# Miscellaneous Links + +- [XG-99C Datasheet (Actiontec)](https://newserv.actiontec.com/wp-content/uploads/2024/10/AEI-XG-99C_DataSheet_V2.pdf) +- [DSLReports: AT&T Fiber XGS-PON SFP modules](https://www.dslreports.com/forum/r33665048-AT-T-Fiber-XGS-PON-SFP-Modules-for-AT-T-Fiber) diff --git a/ont-xgs/ont-genexis-ft-xgs2110-2.5g.md b/ont-xgs/ont-genexis-ft-xgs2110-2.5g.md new file mode 100644 index 00000000..d8a9b9d8 --- /dev/null +++ b/ont-xgs/ont-genexis-ft-xgs2110-2.5g.md @@ -0,0 +1,49 @@ +--- +title: Genexis FiberTwist XGS2110-2.5G +has_children: false +parent: Genexis +--- + +# Hardware Specifications + +| | | +| --------------- | ------------------------------- | +| Vendor/Brand | Genexis | +| Model | FiberTwist XGS2110-2.5G | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 2.5GBaseT | Yes (1x 100/1000/2.5G BASE-T) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The FiberTwist XGS2110-2.5G is a Layer-2 XGS-PON ONT with one 2.5GE LAN port. Like the GPON [FiberTwist G2110C-2.5G](/ont-genexis-ft-g2110c-2.5g), it is installed by twisting it on the Genexis fiber termination unit (FTU) or bracket. The 10GE variant is the [FiberTwist XGS2110](/xgs/ont-genexis-ft-xgs2110). + +## Specifications + +From the FiberTwist XGS2000-Series datasheet (rev. 3.9): + +| | | +| ---------------------- | ---------------------------------------------------------------------- | +| PON | XGS-PON (ITU-T G.9807.1 Annex B), ITU-T G.988, BBF TR-156, TR-247 | +| Optics | N1, TX +4 ~ +9 dBm, RX -9 ~ -28 dBm | +| Wavelengths | TX 1260 ~ 1280 nm, RX 1575 ~ 1580 nm | +| PON features | TrueTalk PON autosensing, up to 256 XGEM ports, 32 T-CONTs, dying gasp | +| Power supply | 12 Vdc ± 5% | +| Power consumption | 3.2 W (EU-CoC-BBE) | +| Operating temperature | 0 ~ 40 °C | +| Dimensions (H x W x D) | 110 x 110 x 46 mm | +| Weight | 158 g | + +# Miscellaneous Links + +- [Genexis FiberTwist XGS2110-2.5G](https://genexis.eu/product/fibertwist-xgs2110-2-5g/) +- [FiberTwist XGS2000-Series datasheet](https://genexis.eu/wp-content/uploads/2024/09/FiberTwist-XGS2000-Series-XGS-PON-Datasheet-v3.9-EN.pdf) diff --git a/ont-xgs/ont-genexis-ft-xgs2110.md b/ont-xgs/ont-genexis-ft-xgs2110.md new file mode 100644 index 00000000..466d261d --- /dev/null +++ b/ont-xgs/ont-genexis-ft-xgs2110.md @@ -0,0 +1,49 @@ +--- +title: Genexis FiberTwist XGS2110 +has_children: false +parent: Genexis +--- + +# Hardware Specifications + +| | | +| --------------- | ------------------------------------- | +| Vendor/Brand | Genexis | +| Model | FiberTwist XGS2110 | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 10GBaseT | Yes (1x 100/1000/2.5G/5G/10G BASE-T) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The FiberTwist XGS2110 is a Layer-2 XGS-PON ONT with one 10GE LAN port. Like the GPON [FiberTwist G2110C](/ont-genexis-ft-g2110c), it is installed by twisting it on the Genexis fiber termination unit (FTU) or bracket. The 2.5GE variant is the [FiberTwist XGS2110-2.5G](/xgs/ont-genexis-ft-xgs2110-2.5g). + +## Specifications + +From the FiberTwist XGS2000-Series datasheet (rev. 3.9): + +| | | +| ---------------------- | ---------------------------------------------------------------------- | +| PON | XGS-PON (ITU-T G.9807.1 Annex B), ITU-T G.988, BBF TR-156, TR-247 | +| Optics | N1, TX +4 ~ +9 dBm, RX -9 ~ -28 dBm | +| Wavelengths | TX 1260 ~ 1280 nm, RX 1575 ~ 1580 nm | +| PON features | TrueTalk PON autosensing, up to 256 XGEM ports, 32 T-CONTs, dying gasp | +| Power supply | 12 Vdc ± 5% | +| Power consumption | 4.9 W (EU-CoC-BBE) | +| Operating temperature | 0 ~ 40 °C | +| Dimensions (H x W x D) | 110 x 110 x 46 mm | +| Weight | 187 g | + +# Miscellaneous Links + +- [FiberTwist XGS2000-Series datasheet](https://genexis.eu/wp-content/uploads/2024/09/FiberTwist-XGS2000-Series-XGS-PON-Datasheet-v3.9-EN.pdf) +- [Genexis 2nd generation FiberTwist XGS-PON ONT portfolio](https://genexis.eu/news-item/genexis-launches-2nd-gen-fibertwist-xgs-pon-ont-portfolio/) diff --git a/ont-xgs/ont-genexis.md b/ont-xgs/ont-genexis.md new file mode 100644 index 00000000..3adab49d --- /dev/null +++ b/ont-xgs/ont-genexis.md @@ -0,0 +1,4 @@ +--- +title: Genexis +has_children: true +--- diff --git a/ont-xgs/ont-huawei-optixstar-s800e.md b/ont-xgs/ont-huawei-optixstar-s800e.md new file mode 100644 index 00000000..ad82f082 --- /dev/null +++ b/ont-xgs/ont-huawei-optixstar-s800e.md @@ -0,0 +1,47 @@ +--- +title: Huawei OptiXstar S800E +has_children: false +parent: Huawei +--- + +# Hardware Specifications + +| | | +| --------------- | --------------------------------------- | +| Vendor/Brand | Huawei | +| Model | OptiXstar S800E | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| Host interface | GE/2.5GE/5GE/10GE adaptive (per Huawei) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Form Factor | miniONT SFP+ | + +The OptiXstar S800E is an XGS-PON SFP+ ONU designed by Huawei to be plugged into the SFP+ port of cameras, access points or routers. The GPON version is the [OptiXstar S600E](/ont-huawei-optixstar-s600e). + +## Optical and electrical specifications + +From the Huawei product page: + +| | | +| ---------------------- | ----------------------------------- | +| Standard | ITU-T G.9807 XGS-PON | +| TX wavelength | 1270 nm | +| Receiver sensitivity | ≤ -28 dBm | +| Overload | ≥ -9 dBm | +| Power supply | 3.3 V | +| Power consumption | ≤ 2 W | +| Operating temperature | -40 °C ~ +85 °C | +| Dimensions | 65 mm x 13.6 mm x 12.6 mm | +| Weight | about 27 g | + +# Miscellaneous Links + +- [Huawei OptiXstar S800E](https://e.huawei.com/en/products/optical-terminal/optixstar-s800e) +- [Huawei OptiXstar S800E support](https://support.huawei.com/enterprise/en/optical-access/optixstar-s800e-pid-250646194) diff --git a/ont-xgs/ont-nokia-xs-010g-q.md b/ont-xgs/ont-nokia-xs-010g-q.md new file mode 100644 index 00000000..dc3ff8b3 --- /dev/null +++ b/ont-xgs/ont-nokia-xs-010g-q.md @@ -0,0 +1,53 @@ +--- +title: Nokia XS-010G-Q +has_children: false +parent: Nokia +--- + +# Hardware Specifications + +| | | +| --------------- | --------------------------------------- | +| Vendor/Brand | Nokia | +| Model | XS-010G-Q | +| Part Number | 3FE49533AA | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 2.5GBaseT | Yes (1x 100M/1G/2.5G BASE-T) | +| Optics | SC/APC | +| IP address | | +| Web Gui | ✅ | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The XS-010G-Q is the XGS-PON SFU ONT of Nokia with one 1/2.5GbE port. The 10GbE variant is the [Nokia XS-010X-Q](/xgs/ont-nokia-xs-010x-q). + +## Specifications + +From the Nokia datasheet: + +| | | +| --------------------- | ------------------------------------------------------------------- | +| PON | XGS-PON (ITU-T G.9807.1), 10 Gb/s symmetric, OMCI (ITU-T G.988) | +| Wavelengths | 1260 ~ 1280 nm upstream, 1575 ~ 1580 nm downstream | +| Launch power | 4 ~ 9 dBm | +| Receiving | -28 ~ -9 dBm | +| PON features | AES 128, FEC, activation with automatic discovered SN and password | +| Power supply | 12 VDC / 1 A | +| Power consumption | < 4.4 W | +| Operating temperature | -5 °C ~ 45 °C | +| Dimensions (H x W x L)| 3.0 x 13.5 x 13.5 cm | +| Weight | 0.366 kg | +| LEDs | Power, PON, Alarm, Data | + +# Miscellaneous Links + +- [Nokia ONT XS-010G-Q datasheet](https://onestore.nokia.com/asset/210271) +- [Nokia ONT XS-010G-Q Quick Reference Guide](https://www.nokia.com/asset/214937/) +- [ISPreview forum: Nokia XS-010G-Q ONT](https://www.ispreview.co.uk/talk/threads/nokia-xs-010g-q-ont.39655/) diff --git a/ont-xgs/ont-ufiber-uisp-fiber-xgs.md b/ont-xgs/ont-ufiber-uisp-fiber-xgs.md new file mode 100644 index 00000000..57c68f7e --- /dev/null +++ b/ont-xgs/ont-ufiber-uisp-fiber-xgs.md @@ -0,0 +1,36 @@ +--- +title: UISP Fiber XGS +has_children: false +parent: UFiber +--- + +# Hardware Specifications + +| | | +| --------------- | -------------------------------- | +| Vendor/Brand | Ubiquiti | +| Model | UISP Fiber XGS (UISP-FIBER-XGS) | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 10GBaseT | Yes (1x 10GbE RJ45) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The UISP Fiber XGS is the XGS-PON ONU of the Ubiquiti UISP Fiber line, with one XGS-PON port and one 10GbE RJ45 LAN port, supporting bridge and router mode. It is managed with the UISP application. + +::: warning +According to Ubiquiti, the ONU works only with the UISP Fiber XGS OLT and cannot be used with third-party OLTs. +::: + +# Miscellaneous Links + +- [Ubiquiti Store](https://store.ui.com/) diff --git a/ont-xgs/ont-ufiber.md b/ont-xgs/ont-ufiber.md new file mode 100644 index 00000000..cadf6aac --- /dev/null +++ b/ont-xgs/ont-ufiber.md @@ -0,0 +1,4 @@ +--- +title: UFiber +has_children: true +--- diff --git a/ont/ont-cig-g-95sp.md b/ont/ont-cig-g-95sp.md new file mode 100644 index 00000000..4a77b1b5 --- /dev/null +++ b/ont/ont-cig-g-95sp.md @@ -0,0 +1,122 @@ +--- +title: CIG G-95SP +has_children: false +parent: CIG +--- + +# Hardware Specifications + +| | | +| ---------------- | -------------------------------------------------------- | +| Vendor/Brand | CIG | +| Model | G-95SP | +| ODM | ✅ | +| Chipset | Lantiq PEB98035 | +| CPU | | +| CPU Clock | | +| Flash | | +| RAM | | +| System | Linux (kernel 3.10.4, AVM firmware `SFP_7.5.13`) | +| HSGMII | No (SGMII / 1000Base-X) | +| Optics | SC/APC | +| IP address | 192.168.47.1 | +| Web Gui | No | +| SSH | No | +| Telnet | No | +| Serial | | +| Form Factor | miniONT SFP | + +The G-95SP is the older CIG GPON SFP stick, based on a Lantiq board (the newer [CIG G-97SP](/ont-cig-g-97sp) uses a Realtek board). + +It is shipped by AVM, labelled "AVM GmbH (G-95SP)", together with some FRITZ!Box models with an SFP cage (e.g. FRITZ!Box 5491). + +## Value-added resellers + +| Company | Product Number | +| -------- | -------------- | +| AVM GmbH | G-95SP | + +## Optical and electrical specifications + +From the CIG platform briefing (version 2, Jan 2018): + +| | | +| ----------------- | ---------------------------------------------------------- | +| Standard | ITU-T G.984, G.984.2 Amd1 Class B+ (Class C/C+ optional) | +| Wavelengths | US 1310 nm, DS 1490 nm | +| Upstream | 1.244 Gbps burst mode, DFB transmitter | +| Downstream | 2.488 Gbps, APD receiver | +| Launch power | 0.5 ~ +5 dBm | +| Sensitivity | -27 dBm | +| Overload | -8 dBm | +| Power consumption | < 2.5 W | +| Case temperature | -40 ~ +85 °C | +| Dimensions | 82 mm x 14 mm x 12.5 mm (L x W x D) | +| Management | OMCI (ITU-T G.984.4 and G.988), dual image with rollback | + +## Module pinout + +| PIN | Name | +| --- | -------------------- | +| 1 | VEET/BOOT4 | +| 2 | TX_FAULT/ASC_TX/TOD | +| 3 | TX_DISABLE | +| 4 | SDA | +| 5 | SCL | +| 6 | MOD_ABS | +| 7 | Rate SEL/Dyinggasp | +| 8 | RX_LOS | +| 9 | VEET/1PPS | +| 10 | VEET/BOOT0 | +| 11 | VEER | +| 12 | RD- | +| 13 | RD+ | +| 14 | VEER | +| 15 | VCCR | +| 16 | VCCT | +| 17 | VEET | +| 18 | TD+ | +| 19 | TD- | +| 20 | VEET | + +# AVM configuration protocol + +The AVM version of the stick does not store the GPON serial number: when the FRITZ!Box detects the SFP it opens a TCP connection to the stick on `192.168.47.1:8888` (the FRITZ!Box uses `192.168.47.2`) and pushes the configuration with a binary protocol. + +The protocol is not documented. A capture taken from a FRITZ!Box 5491 (see the videos linked below) contains the following messages, each one starting with the `AVM` magic: + +``` +41564d00000007000400000001 +41564d000000030000 +41564d000200120000 +41564d0604000b000400000001 +41564d060600080000 +41564d00080009000a4621426f783534393100 +41564d000a0010000d30372e31325f312e332e323600 +41564d000c000c0000 +41564d000e000a000a20202020202020202020 +41564d00100013000c41564d473632373233383341 +41564d0012000d0000 +41564d001400140000 +``` + +Some of the payloads are readable strings: + +- `F!Box5491` (shortened product name of the FRITZ!Box 5491) +- `07.12_1.3.26` (probably a firmware version) +- 10 spaces (probably the PLOAM password) +- `AVMG6272383A` (the GPON serial number) + +Replaying the captured frames (e.g. with `tcpreplay`) brings the stick online with other hardware. + +::: info Note +The capture and its decoding come from [issue #46](https://github.com/hack-gpon/hack-gpon.github.io/issues/46). If you have a G-95SP and a FRITZ!Box, captures from other models or ISPs are welcome. +::: + +# Miscellaneous Links + +- [GPON ONT G-95SP Platform Briefing (archive.org)](https://web.archive.org/web/20221022023845/https://www.cigtech.com/wp-content/uploads/2018/03/G-95SP_DataSheet_V2.pdf) +- [Tech Info Depot Wiki](http://en.techinfodepot.shoutwiki.com/wiki/Cigtech_G-95SP) +- [OpenWrt Forum](https://forum.openwrt.org/t/cigtech-g-95sp-sfp-gpon/63352) +- [Video: FRITZ!Box SFP capture (tomazzaman)](https://www.youtube.com/watch?v=Hi7JMTojT-4&t=6m20s) +- [Video: FRITZ!Box SFP configuration (tomazzaman)](https://www.youtube.com/watch?v=7RZ6JtjHBfo&t=11m11s) diff --git a/ont/ont-cig-g-97sp.md b/ont/ont-cig-g-97sp.md index 39af1850..2690c20b 100644 --- a/ont/ont-cig-g-97sp.md +++ b/ont/ont-cig-g-97sp.md @@ -11,7 +11,7 @@ parent: CIG | Vendor/Brand | CIG | | Model | G-97SP | | ODM | ✅ | -| Chipset | Lantiq PEB98035 | +| Chipset | Realtek | | CPU | | | CPU Clock | | | Flash | | @@ -25,8 +25,8 @@ parent: CIG | Serial | | | Form Factor | miniONT SFP | +The G-97SP is the newer CIG GPON SFP stick, based on a Realtek board. The older Lantiq based model is the [CIG G-95SP](/ont-cig-g-95sp). + # Miscellaneous Links -- [GPON ONT G-95SP Platform Briefing](https://www.cigtech.com/wp-content/uploads/2018/03/G-95SP_DataSheet_V2.pdf) -- [Tech Info Depot Wiki](http://en.techinfodepot.shoutwiki.com/wiki/Cigtech_G-95SP) -- [OpenWrt Forum](https://forum.openwrt.org/t/cigtech-g-95sp-sfp-gpon/63352) +- [CIG G-95SP](/ont-cig-g-95sp) diff --git a/ont/ont-huawei-hg8310m.md b/ont/ont-huawei-hg8310m.md new file mode 100644 index 00000000..98c66f13 --- /dev/null +++ b/ont/ont-huawei-hg8310m.md @@ -0,0 +1,48 @@ +--- +title: Huawei HG8310M +has_children: false +parent: Huawei +--- + +# Hardware Specifications + +| | | +| --------------- | -------------------------------- | +| Vendor/Brand | Huawei | +| Model | EchoLife HG8310M | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 2.5GBaseT | No (1x GE) | +| Optics | SC/UPC | +| IP address | | +| Web Gui | ✅ | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The EchoLife HG8310M is a bridge type GPON ONT with one GE port. Some resellers sell it as an XPON (GPON/EPON) ONT, but the datasheet only lists GPON. + +## Specifications + +From the datasheet: + +| | | +| ------------------------- | ---------------------------------------------------------------------------- | +| GPON port | Class B+, receiver sensitivity -27 dBm, wavelengths US 1310 nm, DS 1490 nm | +| Authentication | SN or password (ITU-T G.984.3) | +| Management | OMCI, Web UI, dual-system software backup and rollback | +| Dimensions (H x W x D) | 115 x 94 x 27 mm (V300R015C00 and earlier), 82 x 90 x 27 mm (V300R015C10) | +| Weight | < 500 g | +| Operating temperature | 0 °C ~ +40 °C | +| Static power consumption | 3 W (V300R015C00), 2 W (V300R015C10) | +| Maximum power consumption | 3.5 W (V300R015C00), 2.5 W (V300R015C10) | +| Indicators | POWER/PON/LOS/LAN | + +# Miscellaneous Links + +- [EchoLife HG8310M Datasheet (hi-network.com)](https://www.hi-network.com/action/download?file=huawei-echolife-hg8310m-brochure-datasheet) diff --git a/ont/ont-huawei-optixstar-s600e.md b/ont/ont-huawei-optixstar-s600e.md new file mode 100644 index 00000000..ac06c09b --- /dev/null +++ b/ont/ont-huawei-optixstar-s600e.md @@ -0,0 +1,48 @@ +--- +title: Huawei OptiXstar S600E +has_children: false +parent: Huawei +--- + +# Hardware Specifications + +| | | +| ---------------- | --------------------------------------- | +| Vendor/Brand | Huawei | +| Model | OptiXstar S600E | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| HSGMII | | +| Host interface | GE/2.5GE/5GE/10GE adaptive (per Huawei) | +| Optics | SC/APC | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Form Factor | miniONT SFP | + +The OptiXstar S600E is a GPON SFP ONU designed by Huawei to be plugged into the SFP port of cameras and access points for video or wireless backhaul. + +## Optical and electrical specifications + +From the Huawei product page: + +| | | +| --------------------- | -------------------------------------------- | +| Standard | ITU-T G.984.2, Class B+ | +| Wavelengths | TX 1310 nm, RX 1490 nm | +| Rate | TX 1.244 Gbit/s, RX 2.488 Gbit/s | +| TX power | 0.5 ~ 5 dBm | +| Receiver sensitivity | ≤ -27 dBm | +| Power supply | 3.3 V | +| Operating temperature | -40 °C ~ +85 °C (shell temperature) | +| Dimensions (H x W x D)| 56.5 mm x 13.6 mm x 12.7 mm | +| Weight | about 23 g | +| Other | Type B dual-homing (50 ms switching), secure boot | + +# Miscellaneous Links + +- [Huawei OptiXstar S600E](https://e.huawei.com/en/products/optical-terminal/optixstar-s600e) diff --git a/ont/ont-zyxel-pmg1005-t20c.md b/ont/ont-zyxel-pmg1005-t20c.md new file mode 100644 index 00000000..acab34cb --- /dev/null +++ b/ont/ont-zyxel-pmg1005-t20c.md @@ -0,0 +1,44 @@ +--- +title: Zyxel PMG1005-T20C +has_children: false +parent: Zyxel +--- + +# Hardware Specifications + +| | | +| --------------- | ------------------------------------------------- | +| Vendor/Brand | Zyxel | +| Model | PMG1005-T20C | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 2.5GBaseT | No (1x GbE LAN) | +| Optics | | +| IP address | 192.168.1.1 | +| Web Gui | ✅ user `admin`, password on the device label | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The PMG1005-T20C is a GPON SFU (Single Family Unit) with one GPON uplink and one GbE LAN port, working as a simple Layer-2 bridge. It is the successor of the [PMG1005-T20B](/ont-zyxel-pmg1005-t20b). + +The web interface allows to change the admin password, see traffic statistics, upgrade the firmware and reset to factory defaults. + +## LEDs + +| LED | Color | Status | +| ----- | ----- | ------------------------------------------------------------------------- | +| POWER | Green | On: power on and system ready | +| PON | Green | On: GPON link up. Blinking: synchronizing with the OLT | +| LOS | Red | On: no optical signal. Blinking: weak optical signal | +| LAN | Green | On: Ethernet link up. Blinking: transmitting/receiving data | + +# Miscellaneous Links + +- [Zyxel PMG1005-T20B/T20C](https://www.zyxel.com/service-provider/global/en/products/fiber-oltsonts/gpon/sfus/pmg1005-series) +- [PMG1005-T20C Quick Start Guide](https://spdl.zyxel.com/PMG1005-T20C/quick_start_guide/PMG1005-T20C_Quick_start_guide_002.pdf) From dc195ea36f8170c23f7997c5f4dcc29562ca015a Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 21:52:59 +0200 Subject: [PATCH 2/9] Review aliases, link pon.wiki and add the ZTE F401 - Add the missing `alias` of the redirect pages to their target page (T&W TW2362H-CDEL, Uplink GP502R, E.C.I. EN-XGSFPP-OMAC v1, Telekom Glasfaser-Modem 2) and use `alias` instead of a resellers table for the G-95SP, XG-99C and XE-99C - Fix the FG1000B.11 redirect page, listed under CIG in the sidebar - Remove the duplicated SPS-34-24T-HP-TDFO entries from the interchangeable firmware lists and the self link of the OP151S - Link the pon.wiki pages of the SPS-34-24T-HP-TDFO and XS-010X-Q - Add the ZTE F401 EPON ONT Refs #46, #123 Co-Authored-By: Claude Opus 5.5 --- ont-epon/CIG_XE-99C.md | 7 +---- ont-epon/ZTE.md | 4 +++ ont-epon/ZTE_F401.md | 32 +++++++++++++++++++++++ ont-xgs/ont-cig-XG-99C.md | 7 +---- ont-xgs/ont-fs-XGS-ONU-25-20NI.md | 1 + ont-xgs/ont-nokia-xs-010x-q.md | 4 +++ ont/ont-cig-g-95sp.md | 7 +---- ont/ont-fs-com-gpon-onu-stick-with-mac.md | 2 +- ont/ont-hilink-hl23446.md | 1 - ont/ont-huawei-ma5671a.md | 1 - ont/ont-nokia-g-010s-p.md | 1 - ont/ont-sercomm-fg1000b-11.md | 4 +-- ont/ont-sercomm-fg1000b.md | 1 + ont/ont-vsol-v2802rh.md | 1 + ont/ont-zisa-op151s.md | 2 +- 15 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 ont-epon/ZTE.md create mode 100644 ont-epon/ZTE_F401.md diff --git a/ont-epon/CIG_XE-99C.md b/ont-epon/CIG_XE-99C.md index 985ce90d..2ff159c6 100644 --- a/ont-epon/CIG_XE-99C.md +++ b/ont-epon/CIG_XE-99C.md @@ -1,6 +1,7 @@ --- title: CIG XE-99C has_children: false +alias: Actiontec XE-99C parent: CIG --- @@ -29,12 +30,6 @@ The XE-99C is the 10G-EPON ONT of the CIG XE-99 series (the SFP+ version is the It is compliant with IEEE 802.3av, IEEE 1904.1, DPoE v2.0 and CTC V3.0 EPON standards, and it has a 2-pin power plug (+12 VDC), a power switch and a pin-hole reset button. -## Value-added resellers - -| Company | Product Number | -| --------- | -------------- | -| Actiontec | XE-99C | - # Miscellaneous Links - [Actiontec Broadband](https://actiontec.com/broadband/) diff --git a/ont-epon/ZTE.md b/ont-epon/ZTE.md new file mode 100644 index 00000000..1ec42f34 --- /dev/null +++ b/ont-epon/ZTE.md @@ -0,0 +1,4 @@ +--- +title: ZTE +has_children: true +--- diff --git a/ont-epon/ZTE_F401.md b/ont-epon/ZTE_F401.md new file mode 100644 index 00000000..75fe6d87 --- /dev/null +++ b/ont-epon/ZTE_F401.md @@ -0,0 +1,32 @@ +--- +title: ZTE F401 +has_children: false +parent: ZTE +--- + +# Hardware Specifications + +| | | +| --------------- | -------------------------------- | +| Vendor/Brand | ZTE | +| Model | ZXA10 F401 / ZXHN F401 | +| Chipset | | +| Flash | | +| RAM | | +| System | | +| 2.5GBaseT | No (1x GE) | +| Optics | | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | +| Serial | | +| Serial baud | | +| Serial encoding | | +| Form Factor | ONT | + +The ZTE F401 is a bridge type EPON ONT (1G-EPON, 1.25 Gbps symmetric, IEEE 802.3ah) with one 10/100/1000Base-T Ethernet port. + +::: warning +The F401 is also sold in G/EPON (xPON) variants: check the label and the firmware of the unit before using it on a GPON network. For the GPON ZTE ONT with one GE port see the [ZTE F601](/ont-zte-f601). +::: diff --git a/ont-xgs/ont-cig-XG-99C.md b/ont-xgs/ont-cig-XG-99C.md index b1878d09..901d33ec 100644 --- a/ont-xgs/ont-cig-XG-99C.md +++ b/ont-xgs/ont-cig-XG-99C.md @@ -1,6 +1,7 @@ --- title: CIG XG-99C has_children: false +alias: Actiontec XG-99C parent: CIG --- @@ -33,12 +34,6 @@ The XG-99C is the XGS-PON SFU ONT of the CIG XG-99 series (the SFP+ version is t | XG-99C1 | 1 | 1 | | XG-99C2 | 1 | 0 | -## Value-added resellers - -| Company | Product Number | -| --------- | -------------- | -| Actiontec | XG-99C | - ## Specifications From the Actiontec datasheet (version 2.0, Nov 2023): diff --git a/ont-xgs/ont-fs-XGS-ONU-25-20NI.md b/ont-xgs/ont-fs-XGS-ONU-25-20NI.md index 94c2bd2c..fcfa10c2 100644 --- a/ont-xgs/ont-fs-XGS-ONU-25-20NI.md +++ b/ont-xgs/ont-fs-XGS-ONU-25-20NI.md @@ -1,6 +1,7 @@ --- title: FS.com Generic Compatible XGSPON Stick ONU with MAC SFP+ (XGS-ONU-25-20NI) has_children: true +alias: E.C.I. Networks EN-XGSFPP-OMAC v1 parent: FS.com --- diff --git a/ont-xgs/ont-nokia-xs-010x-q.md b/ont-xgs/ont-nokia-xs-010x-q.md index 068bfab8..28f8743c 100644 --- a/ont-xgs/ont-nokia-xs-010x-q.md +++ b/ont-xgs/ont-nokia-xs-010x-q.md @@ -120,3 +120,7 @@ normal load eep datat ``` Now reboot the ONT and you can access telnet with `ONTUSER` and full power :) + +# Miscellaneous Links + +- [pon.wiki: Nokia XS-010X-Q](https://pon.wiki/xgs-pon/ont/nokia/xs-010x-q/) diff --git a/ont/ont-cig-g-95sp.md b/ont/ont-cig-g-95sp.md index 4a77b1b5..20062c11 100644 --- a/ont/ont-cig-g-95sp.md +++ b/ont/ont-cig-g-95sp.md @@ -1,6 +1,7 @@ --- title: CIG G-95SP has_children: false +alias: AVM GmbH G-95SP parent: CIG --- @@ -30,12 +31,6 @@ The G-95SP is the older CIG GPON SFP stick, based on a Lantiq board (the newer [ It is shipped by AVM, labelled "AVM GmbH (G-95SP)", together with some FRITZ!Box models with an SFP cage (e.g. FRITZ!Box 5491). -## Value-added resellers - -| Company | Product Number | -| -------- | -------------- | -| AVM GmbH | G-95SP | - ## Optical and electrical specifications From the CIG platform briefing (version 2, Jan 2018): diff --git a/ont/ont-fs-com-gpon-onu-stick-with-mac.md b/ont/ont-fs-com-gpon-onu-stick-with-mac.md index 243ec894..111986ac 100644 --- a/ont/ont-fs-com-gpon-onu-stick-with-mac.md +++ b/ont/ont-fs-com-gpon-onu-stick-with-mac.md @@ -51,7 +51,6 @@ The GPON-SFP-ONT-MAC-I is sold as multiple SKUs; the 133619 SKU is identical to - [Hilink HL23446](/ont-hilink-hl23446) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} -- Photonics SPS-34-24T-HP-TDFO {.text-red-200} ## Serial The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the SFP connector. @@ -566,6 +565,7 @@ For more information, see the SFF-8472 Rev 11.0 specification. - [SourcePhotonics SPS-34-24T-HP-TDFO Datasheet](https://www.sourcephotonics.com/wp-content/uploads/2017/08/DS-8085-02_SPS-34-24T-HP-TDFO.pdf) - [FS.com GPON-SFP-ONT-MAC-I SKU 133619 Datasheet](https://resource.fs.com/mall/resource/gpon-sfp-ont-mac-i-datasheet.pdf) - [FS.com GPON-ONU-34-20BI Configuration Guide](https://resource.fs.com/mall/doc/20230831180515egrzs6.pdf) +- [pon.wiki: Source Photonics SPS-34-24T-HP-TDFO](https://pon.wiki/gpon/ont/source-photonics/sps-34-24t-hp-tdfo/) --- diff --git a/ont/ont-hilink-hl23446.md b/ont/ont-hilink-hl23446.md index 652eb336..7f5604d8 100644 --- a/ont/ont-hilink-hl23446.md +++ b/ont/ont-hilink-hl23446.md @@ -38,7 +38,6 @@ parent: Hilink - [FS.com GPON ONU Stick with MAC / SourcePhotonics SPS-34-24T-HP-TDFO](/ont-fs-com-gpon-onu-stick-with-mac) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} -- Photonics SPS-34-24T-HP-TDFO {.text-red-200} ## List of partitions | dev | size | erasesize | name | diff --git a/ont/ont-huawei-ma5671a.md b/ont/ont-huawei-ma5671a.md index 7605af61..2a5d3381 100644 --- a/ont/ont-huawei-ma5671a.md +++ b/ont/ont-huawei-ma5671a.md @@ -38,7 +38,6 @@ parent: Huawei - [Hilink HL23446](/ont-hilink-hl23446) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} -- Photonics SPS-34-24T-HP-TDFO {.text-red-200} ## Serial The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the SFP connector. diff --git a/ont/ont-nokia-g-010s-p.md b/ont/ont-nokia-g-010s-p.md index 1db6e1c5..5123d8c2 100644 --- a/ont/ont-nokia-g-010s-p.md +++ b/ont/ont-nokia-g-010s-p.md @@ -44,7 +44,6 @@ G-010S-P and other models will not expose an ethernet interface unless the fiber - [Hilink HL23446](/ont-hilink-hl23446) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} -- Photonics SPS-34-24T-HP-TDFO {.text-red-200} The [Nokia G-010S-A](/ont-nokia-g-010s-a) can be flashed with the Nokia G-010S-P firmware, provided the MTD layout has been changed beforehand to match the new one. For the full procedure, see the post on [lafibre.info](https://lafibre.info/remplacer-livebox/guide-de-connexion-fibre-directement-sur-un-routeur-voire-meme-en-2gbps/msg870551/#msg870551) ## List of software versions diff --git a/ont/ont-sercomm-fg1000b-11.md b/ont/ont-sercomm-fg1000b-11.md index d3d36c68..35494c4b 100644 --- a/ont/ont-sercomm-fg1000b-11.md +++ b/ont/ont-sercomm-fg1000b-11.md @@ -1,6 +1,6 @@ --- -title: Sercomm FG1000B.11s +title: Sercomm FG1000B.11 has_children: false redirect_to: /ont-sercomm-fg1000b -parent: CIG +parent: Sercomm --- diff --git a/ont/ont-sercomm-fg1000b.md b/ont/ont-sercomm-fg1000b.md index eb2d677c..f8591e67 100644 --- a/ont/ont-sercomm-fg1000b.md +++ b/ont/ont-sercomm-fg1000b.md @@ -1,6 +1,7 @@ --- title: Sercomm FG1000B has_children: false +alias: Telekom Glasfaser-Modem 2 (FG1000B.11) parent: Sercomm --- diff --git a/ont/ont-vsol-v2802rh.md b/ont/ont-vsol-v2802rh.md index ef7c50f1..0077518f 100644 --- a/ont/ont-vsol-v2802rh.md +++ b/ont/ont-vsol-v2802rh.md @@ -1,6 +1,7 @@ --- title: V-SOL V2802RH has_children: false +alias: Uplink GP502R parent: V-SOL --- diff --git a/ont/ont-zisa-op151s.md b/ont/ont-zisa-op151s.md index f3142848..ea9557ff 100644 --- a/ont/ont-zisa-op151s.md +++ b/ont/ont-zisa-op151s.md @@ -1,6 +1,7 @@ --- title: Zisa OP151S has_children: false +alias: T&W TW2362H-CDEL parent: Zisa --- @@ -45,7 +46,6 @@ Some USB TTL adapters label TX and RX pins the other way around: try to swap the - [Halny HL-GSFP](/ont-halny-hl-gsfp) - [D-LINK DPN-100-Rev-A2](/ont-d-link-dpn-100-rev-a2) -- [Zisa OP151s](/ont-zisa-op151s) - [T&W TW2362H-CDEL](/ont-t-w-tw2362h-cdel) # Miscellaneous Links From d333f5a437d2e3c0dc7d1ef2c2209ad20d3633e5 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 21:54:44 +0200 Subject: [PATCH 3/9] Add the optics of the ZTE F401 variants Co-Authored-By: Claude Opus 5.5 --- ont-epon/ZTE_F401.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ont-epon/ZTE_F401.md b/ont-epon/ZTE_F401.md index 75fe6d87..b626667a 100644 --- a/ont-epon/ZTE_F401.md +++ b/ont-epon/ZTE_F401.md @@ -15,7 +15,7 @@ parent: ZTE | RAM | | | System | | | 2.5GBaseT | No (1x GE) | -| Optics | | +| Optics | SC/APC or SC/UPC (depends on the variant) | | IP address | | | Web Gui | | | SSH | | From eef76208250f036351c0daab55bdffa2fb5f87c3 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 21:57:52 +0200 Subject: [PATCH 4/9] Split the AVM GmbH (G-95SP) into its own page The CIG G-95SP page keeps the stock hardware (datasheet, pinout); the AVM firmware, its IP address and the configuration protocol move to the new AVM page, with the photo of the module from #46. Co-Authored-By: Claude Opus 5.5 --- ont/ont-avm-g-95sp.md | 75 ++++++++++++++++++++++++ ont/ont-avm.md | 4 ++ ont/ont-cig-g-95sp.md | 51 +++------------- public/assets/img/AVM_G-95SP/module.png | Bin 0 -> 159092 bytes 4 files changed, 86 insertions(+), 44 deletions(-) create mode 100644 ont/ont-avm-g-95sp.md create mode 100644 ont/ont-avm.md create mode 100644 public/assets/img/AVM_G-95SP/module.png diff --git a/ont/ont-avm-g-95sp.md b/ont/ont-avm-g-95sp.md new file mode 100644 index 00000000..537c46a0 --- /dev/null +++ b/ont/ont-avm-g-95sp.md @@ -0,0 +1,75 @@ +--- +title: AVM GmbH (G-95SP) +has_children: false +parent: AVM +--- + +# Hardware Specifications + +| | | +| ---------------- | ------------------------------------------------ | +| Vendor/Brand | AVM GmbH | +| Model | G-95SP | +| ODM | CIG | +| ODM Product Code | G-95SP | +| Chipset | Lantiq PEB98035 | +| CPU | | +| CPU Clock | | +| Flash | | +| RAM | | +| System | Linux (kernel 3.10.4, AVM firmware `SFP_7.5.13`) | +| HSGMII | No (SGMII / 1000Base-X) | +| Optics | SC/APC | +| IP address | 192.168.47.1 | +| Web Gui | No | +| SSH | No | +| Telnet | No | +| Serial | | +| Form Factor | miniONT SFP | + + + +The AVM GmbH (G-95SP) is the [CIG G-95SP](/ont-cig-g-95sp) with an AVM firmware, shipped together with some FRITZ!Box models with an SFP cage (e.g. FRITZ!Box 5491). For the optical and electrical specifications and the pinout see the [CIG G-95SP](/ont-cig-g-95sp) page. + +The firmware image of the stick (`SFP_7.5.13`, MIPS uImage with Linux 3.10.4 and a SquashFS root filesystem) is contained in the FRITZ!Box firmware. + +# AVM configuration protocol + +The stick does not store the GPON serial number: when the FRITZ!Box detects the SFP it opens a TCP connection to the stick on `192.168.47.1:8888` (the FRITZ!Box uses `192.168.47.2`) and pushes the configuration with a binary protocol. The stick does not listen on other ports. + +The protocol is not documented. A capture taken from a FRITZ!Box 5491 (see the videos linked below) contains the following messages, each one starting with the `AVM` magic: + +``` +41564d00000007000400000001 +41564d000000030000 +41564d000200120000 +41564d0604000b000400000001 +41564d060600080000 +41564d00080009000a4621426f783534393100 +41564d000a0010000d30372e31325f312e332e323600 +41564d000c000c0000 +41564d000e000a000a20202020202020202020 +41564d00100013000c41564d473632373233383341 +41564d0012000d0000 +41564d001400140000 +``` + +Some of the payloads are readable strings: + +- `F!Box5491` (shortened product name of the FRITZ!Box 5491) +- `07.12_1.3.26` (probably a firmware version) +- 10 spaces (probably the PLOAM password) +- `AVMG6272383A` (the GPON serial number) + +Replaying the captured frames (e.g. with `tcpreplay`) brings the stick online with other hardware. + +::: info Note +The capture and its decoding come from [issue #46](https://github.com/hack-gpon/hack-gpon.github.io/issues/46). If you have a G-95SP and a FRITZ!Box, captures from other models or ISPs are welcome. +::: + +# Miscellaneous Links + +- [CIG G-95SP](/ont-cig-g-95sp) +- [OpenWrt Forum](https://forum.openwrt.org/t/cigtech-g-95sp-sfp-gpon/63352) +- [Video: FRITZ!Box SFP capture (tomazzaman)](https://www.youtube.com/watch?v=Hi7JMTojT-4&t=6m20s) +- [Video: FRITZ!Box SFP configuration (tomazzaman)](https://www.youtube.com/watch?v=7RZ6JtjHBfo&t=11m11s) diff --git a/ont/ont-avm.md b/ont/ont-avm.md new file mode 100644 index 00000000..7d0a9776 --- /dev/null +++ b/ont/ont-avm.md @@ -0,0 +1,4 @@ +--- +title: AVM +has_children: true +--- diff --git a/ont/ont-cig-g-95sp.md b/ont/ont-cig-g-95sp.md index 20062c11..3cdc1f45 100644 --- a/ont/ont-cig-g-95sp.md +++ b/ont/ont-cig-g-95sp.md @@ -1,7 +1,6 @@ --- title: CIG G-95SP has_children: false -alias: AVM GmbH G-95SP parent: CIG --- @@ -17,19 +16,19 @@ parent: CIG | CPU Clock | | | Flash | | | RAM | | -| System | Linux (kernel 3.10.4, AVM firmware `SFP_7.5.13`) | +| System | | | HSGMII | No (SGMII / 1000Base-X) | | Optics | SC/APC | -| IP address | 192.168.47.1 | -| Web Gui | No | -| SSH | No | -| Telnet | No | +| IP address | | +| Web Gui | | +| SSH | | +| Telnet | | | Serial | | | Form Factor | miniONT SFP | The G-95SP is the older CIG GPON SFP stick, based on a Lantiq board (the newer [CIG G-97SP](/ont-cig-g-97sp) uses a Realtek board). -It is shipped by AVM, labelled "AVM GmbH (G-95SP)", together with some FRITZ!Box models with an SFP cage (e.g. FRITZ!Box 5491). +It is also sold by AVM with a custom firmware, see [AVM GmbH (G-95SP)](/ont-avm-g-95sp). ## Optical and electrical specifications @@ -74,44 +73,8 @@ From the CIG platform briefing (version 2, Jan 2018): | 19 | TD- | | 20 | VEET | -# AVM configuration protocol - -The AVM version of the stick does not store the GPON serial number: when the FRITZ!Box detects the SFP it opens a TCP connection to the stick on `192.168.47.1:8888` (the FRITZ!Box uses `192.168.47.2`) and pushes the configuration with a binary protocol. - -The protocol is not documented. A capture taken from a FRITZ!Box 5491 (see the videos linked below) contains the following messages, each one starting with the `AVM` magic: - -``` -41564d00000007000400000001 -41564d000000030000 -41564d000200120000 -41564d0604000b000400000001 -41564d060600080000 -41564d00080009000a4621426f783534393100 -41564d000a0010000d30372e31325f312e332e323600 -41564d000c000c0000 -41564d000e000a000a20202020202020202020 -41564d00100013000c41564d473632373233383341 -41564d0012000d0000 -41564d001400140000 -``` - -Some of the payloads are readable strings: - -- `F!Box5491` (shortened product name of the FRITZ!Box 5491) -- `07.12_1.3.26` (probably a firmware version) -- 10 spaces (probably the PLOAM password) -- `AVMG6272383A` (the GPON serial number) - -Replaying the captured frames (e.g. with `tcpreplay`) brings the stick online with other hardware. - -::: info Note -The capture and its decoding come from [issue #46](https://github.com/hack-gpon/hack-gpon.github.io/issues/46). If you have a G-95SP and a FRITZ!Box, captures from other models or ISPs are welcome. -::: - # Miscellaneous Links - [GPON ONT G-95SP Platform Briefing (archive.org)](https://web.archive.org/web/20221022023845/https://www.cigtech.com/wp-content/uploads/2018/03/G-95SP_DataSheet_V2.pdf) - [Tech Info Depot Wiki](http://en.techinfodepot.shoutwiki.com/wiki/Cigtech_G-95SP) -- [OpenWrt Forum](https://forum.openwrt.org/t/cigtech-g-95sp-sfp-gpon/63352) -- [Video: FRITZ!Box SFP capture (tomazzaman)](https://www.youtube.com/watch?v=Hi7JMTojT-4&t=6m20s) -- [Video: FRITZ!Box SFP configuration (tomazzaman)](https://www.youtube.com/watch?v=7RZ6JtjHBfo&t=11m11s) +- [AVM GmbH (G-95SP)](/ont-avm-g-95sp) diff --git a/public/assets/img/AVM_G-95SP/module.png b/public/assets/img/AVM_G-95SP/module.png new file mode 100644 index 0000000000000000000000000000000000000000..40b85593baff4be97a3768072e9786d369806e46 GIT binary patch literal 159092 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%0D=qhs% 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 b%eehNd|IfE!1 Date: Fri, 9 Oct 2026 21:59:08 +0200 Subject: [PATCH 5/9] Restore the SPS-34-24T-HP-TDFO entries in the interchangeable firmware lists Co-Authored-By: Claude Opus 5.5 --- ont/ont-fs-com-gpon-onu-stick-with-mac.md | 1 + ont/ont-hilink-hl23446.md | 1 + ont/ont-huawei-ma5671a.md | 1 + ont/ont-nokia-g-010s-p.md | 1 + 4 files changed, 4 insertions(+) diff --git a/ont/ont-fs-com-gpon-onu-stick-with-mac.md b/ont/ont-fs-com-gpon-onu-stick-with-mac.md index 111986ac..d4b3ee5f 100644 --- a/ont/ont-fs-com-gpon-onu-stick-with-mac.md +++ b/ont/ont-fs-com-gpon-onu-stick-with-mac.md @@ -51,6 +51,7 @@ The GPON-SFP-ONT-MAC-I is sold as multiple SKUs; the 133619 SKU is identical to - [Hilink HL23446](/ont-hilink-hl23446) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} +- Photonics SPS-34-24T-HP-TDFO {.text-red-200} ## Serial The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the SFP connector. diff --git a/ont/ont-hilink-hl23446.md b/ont/ont-hilink-hl23446.md index 7f5604d8..652eb336 100644 --- a/ont/ont-hilink-hl23446.md +++ b/ont/ont-hilink-hl23446.md @@ -38,6 +38,7 @@ parent: Hilink - [FS.com GPON ONU Stick with MAC / SourcePhotonics SPS-34-24T-HP-TDFO](/ont-fs-com-gpon-onu-stick-with-mac) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} +- Photonics SPS-34-24T-HP-TDFO {.text-red-200} ## List of partitions | dev | size | erasesize | name | diff --git a/ont/ont-huawei-ma5671a.md b/ont/ont-huawei-ma5671a.md index 2a5d3381..7605af61 100644 --- a/ont/ont-huawei-ma5671a.md +++ b/ont/ont-huawei-ma5671a.md @@ -38,6 +38,7 @@ parent: Huawei - [Hilink HL23446](/ont-hilink-hl23446) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} +- Photonics SPS-34-24T-HP-TDFO {.text-red-200} ## Serial The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the SFP connector. diff --git a/ont/ont-nokia-g-010s-p.md b/ont/ont-nokia-g-010s-p.md index 5123d8c2..1db6e1c5 100644 --- a/ont/ont-nokia-g-010s-p.md +++ b/ont/ont-nokia-g-010s-p.md @@ -44,6 +44,7 @@ G-010S-P and other models will not expose an ethernet interface unless the fiber - [Hilink HL23446](/ont-hilink-hl23446) - Dasan H650SFP {.text-red-200} - DpOptics D23446 {.text-red-200} +- Photonics SPS-34-24T-HP-TDFO {.text-red-200} The [Nokia G-010S-A](/ont-nokia-g-010s-a) can be flashed with the Nokia G-010S-P firmware, provided the MTD layout has been changed beforehand to match the new one. For the full procedure, see the post on [lafibre.info](https://lafibre.info/remplacer-livebox/guide-de-connexion-fibre-directement-sur-un-routeur-voire-meme-en-2gbps/msg870551/#msg870551) ## List of software versions From 6ec771857b923bd09867f724191f8fc1159e3144 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:04:02 +0200 Subject: [PATCH 6/9] Add the MA5671B alias and the SoC/BOSA of the S600E and S800E The MA5671B is the successor of the MA5671A and the same device as the OptiXstar S600E; the S600E and the S800E share the HiSilicon SD5182S SoC and differ only in the BOSA (UX5176 for GPON, HN517X for XGS-PON), as shown by their board configuration. Co-Authored-By: Claude Opus 5.5 --- ont-xgs/ont-huawei-optixstar-s800e.md | 14 ++++++++++++-- ont/ont-huawei-ma5671a.md | 1 + ont/ont-huawei-optixstar-s600e.md | 15 ++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/ont-xgs/ont-huawei-optixstar-s800e.md b/ont-xgs/ont-huawei-optixstar-s800e.md index ad82f082..730cf97b 100644 --- a/ont-xgs/ont-huawei-optixstar-s800e.md +++ b/ont-xgs/ont-huawei-optixstar-s800e.md @@ -1,6 +1,7 @@ --- title: Huawei OptiXstar S800E has_children: false +alias: Huawei OptiXstar S800E-M parent: Huawei --- @@ -10,7 +11,8 @@ parent: Huawei | --------------- | --------------------------------------- | | Vendor/Brand | Huawei | | Model | OptiXstar S800E | -| Chipset | | +| Chipset | HiSilicon SD5182S | +| BOSA | HN517X (XGS-PON) | | Flash | | | RAM | | | System | | @@ -23,7 +25,14 @@ parent: Huawei | Serial | | | Form Factor | miniONT SFP+ | -The OptiXstar S800E is an XGS-PON SFP+ ONU designed by Huawei to be plugged into the SFP+ port of cameras, access points or routers. The GPON version is the [OptiXstar S600E](/ont-huawei-optixstar-s600e). +The OptiXstar S800E is an XGS-PON SFP+ ONU designed by Huawei to be plugged into the SFP+ port of cameras, access points or routers. The GPON version is the [OptiXstar S600E / MA5671B](/ont-huawei-optixstar-s600e): the two sticks share the same SoC (HiSilicon SD5182S) and differ only in the BOSA. + +## Board configuration + +``` +# S800E-M S800E +board_id=2014; pcb_id=0; soc_type=SD5182S; slic_type=NONE; ext_phy_type=NONE; bob_type=HN517X; xml_path=S800E_SD5182S/; usb=N; sd=N; rf=N; battery=N; iot=N; nfc=N; lte=N; pse_type=NONE; rs485=Y; sfp_onu=Y; +``` ## Optical and electrical specifications @@ -45,3 +54,4 @@ From the Huawei product page: - [Huawei OptiXstar S800E](https://e.huawei.com/en/products/optical-terminal/optixstar-s800e) - [Huawei OptiXstar S800E support](https://support.huawei.com/enterprise/en/optical-access/optixstar-s800e-pid-250646194) +- [Huawei OptiXstar S600E / MA5671B](/ont-huawei-optixstar-s600e) diff --git a/ont/ont-huawei-ma5671a.md b/ont/ont-huawei-ma5671a.md index 7605af61..2db63198 100644 --- a/ont/ont-huawei-ma5671a.md +++ b/ont/ont-huawei-ma5671a.md @@ -406,6 +406,7 @@ For more information, see the SFF-8472 Rev 10.2 specification. # Miscellaneous Links +- [Huawei MA5671B / OptiXstar S600E (successor)](/ont-huawei-optixstar-s600e) - [Support MA5671A SFP GPON - OpenWRT forum](https://forum.openwrt.org/t/support-ma5671a-sfp-gpon/48042) - [u boot lantiq falcon - GitHub](https://github.com/minhng99/u-boot_lantiq_falcon) - [Custom Firmware - right.com.cn](https://www.right.com.cn/forum/thread-8220173-1-1.html) diff --git a/ont/ont-huawei-optixstar-s600e.md b/ont/ont-huawei-optixstar-s600e.md index ac06c09b..6fddd098 100644 --- a/ont/ont-huawei-optixstar-s600e.md +++ b/ont/ont-huawei-optixstar-s600e.md @@ -1,6 +1,7 @@ --- title: Huawei OptiXstar S600E has_children: false +alias: Huawei MA5671B parent: Huawei --- @@ -10,7 +11,8 @@ parent: Huawei | ---------------- | --------------------------------------- | | Vendor/Brand | Huawei | | Model | OptiXstar S600E | -| Chipset | | +| Chipset | HiSilicon SD5182S | +| BOSA | UX5176 (GPON) | | Flash | | | RAM | | | System | | @@ -26,6 +28,15 @@ parent: Huawei The OptiXstar S600E is a GPON SFP ONU designed by Huawei to be plugged into the SFP port of cameras and access points for video or wireless backhaul. +It is also sold as MA5671B, the successor of the [Huawei MA5671A](/ont-huawei-ma5671a). The XGS-PON version is the [OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e): the two sticks share the same SoC (HiSilicon SD5182S) and differ only in the BOSA. + +## Board configuration + +``` +# MA5671B T600 +board_id=2001; pcb_id=0; soc_type=SD5182S; slic_type=NONE; ext_phy_type=NONE; bob_type=UX5176; xml_path=S600E_SD5182S/; usb=N; sd=N; rf=N; battery=N; iot=N; nfc=N; lte=N; pse_type=NONE; rs485=Y; +``` + ## Optical and electrical specifications From the Huawei product page: @@ -46,3 +57,5 @@ From the Huawei product page: # Miscellaneous Links - [Huawei OptiXstar S600E](https://e.huawei.com/en/products/optical-terminal/optixstar-s600e) +- [Huawei OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e) +- [Huawei MA5671A](/ont-huawei-ma5671a) From 6d747d0dfb6ce5ac4ee164d06b512ffc5a855b1b Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:08:58 +0200 Subject: [PATCH 7/9] Complete the S600E and S800E specifications from the Huawei datasheets Co-Authored-By: Claude Opus 5.5 --- ont-xgs/ont-huawei-optixstar-s800e.md | 41 ++++++++++++++++++--------- ont/ont-huawei-optixstar-s600e.md | 39 +++++++++++++++---------- 2 files changed, 51 insertions(+), 29 deletions(-) diff --git a/ont-xgs/ont-huawei-optixstar-s800e.md b/ont-xgs/ont-huawei-optixstar-s800e.md index 730cf97b..71393c8d 100644 --- a/ont-xgs/ont-huawei-optixstar-s800e.md +++ b/ont-xgs/ont-huawei-optixstar-s800e.md @@ -36,22 +36,35 @@ board_id=2014; pcb_id=0; soc_type=SD5182S; slic_type=NONE; ext_phy_type=NONE; bo ## Optical and electrical specifications -From the Huawei product page: - -| | | -| ---------------------- | ----------------------------------- | -| Standard | ITU-T G.9807 XGS-PON | -| TX wavelength | 1270 nm | -| Receiver sensitivity | ≤ -28 dBm | -| Overload | ≥ -9 dBm | -| Power supply | 3.3 V | -| Power consumption | ≤ 2 W | -| Operating temperature | -40 °C ~ +85 °C | -| Dimensions | 65 mm x 13.6 mm x 12.6 mm | -| Weight | about 27 g | +From the Huawei product page and datasheet (2020-06-01): + +| | | +| ------------------------- | ------------------------------------------------------ | +| NNI | XGS-PON, SC/APC | +| UNI | GE/2.5GE/5GE/10GE interface adaptive | +| Standard | ITU-T G.9807 | +| Maximum distance | 20 km | +| TX wavelength | 1260 ~ 1280 nm (center 1270 nm) | +| RX wavelength | 1575 ~ 1580 nm (center 1577 nm) | +| Rate | TX 9.953 Gbit/s, RX 9.953 Gbit/s | +| TX power | 4 ~ 9 dBm | +| Extinction ratio | ≥ 6 dB | +| Receiver sensitivity | ≤ -28 dBm | +| Overload | ≥ -9 dBm | +| Power supply | 3.3 V | +| Maximum power consumption | 2 W | +| Operating temperature | -40 °C ~ +85 °C (shell temperature) | +| Operating humidity | 5% ~ 95% RH (non-condensing) | +| Dimensions | 65 mm x 13.6 mm x 12.6 mm | +| Weight | about 27 g (product page), about 20 g (2020 datasheet) | +| Other | Type B dual-homing (50 ms switching), secure boot | + +Supported functions: variable-length OMCI messages, rogue ONT detection and isolation, PPPoE/DHCP simulation testing, dual-system software backup and rollback, 802.1ag Ethernet OAM, optical link measurement, IGMP v2/v3 and MLD v1/v2 snooping with fast leave, 802.1p priority and SP/WRR scheduling, MAC address filtering. # Miscellaneous Links -- [Huawei OptiXstar S800E](https://e.huawei.com/en/products/optical-terminal/optixstar-s800e) +- [Huawei OptiXstar S800E](https://e.huawei.com/it/products/optical-terminal/optixstar-s800e) +- [Huawei OptiXstar S800E Datasheet (PONPlanet)](https://www.ponplanet.eu/user/related_files/huawei_optixstar_s800e_datasheet_01_en-draft.pdf) +- [PONPlanet: Huawei OptiXstar S800E](https://www.ponplanet.eu/optixstar-s800e/) - [Huawei OptiXstar S800E support](https://support.huawei.com/enterprise/en/optical-access/optixstar-s800e-pid-250646194) - [Huawei OptiXstar S600E / MA5671B](/ont-huawei-optixstar-s600e) diff --git a/ont/ont-huawei-optixstar-s600e.md b/ont/ont-huawei-optixstar-s600e.md index 6fddd098..86c8dd72 100644 --- a/ont/ont-huawei-optixstar-s600e.md +++ b/ont/ont-huawei-optixstar-s600e.md @@ -39,23 +39,32 @@ board_id=2001; pcb_id=0; soc_type=SD5182S; slic_type=NONE; ext_phy_type=NONE; bo ## Optical and electrical specifications -From the Huawei product page: - -| | | -| --------------------- | -------------------------------------------- | -| Standard | ITU-T G.984.2, Class B+ | -| Wavelengths | TX 1310 nm, RX 1490 nm | -| Rate | TX 1.244 Gbit/s, RX 2.488 Gbit/s | -| TX power | 0.5 ~ 5 dBm | -| Receiver sensitivity | ≤ -27 dBm | -| Power supply | 3.3 V | -| Operating temperature | -40 °C ~ +85 °C (shell temperature) | -| Dimensions (H x W x D)| 56.5 mm x 13.6 mm x 12.7 mm | -| Weight | about 23 g | -| Other | Type B dual-homing (50 ms switching), secure boot | +From the Huawei product page and datasheet: + +| | | +| ------------------------- | ----------------------------------------------------- | +| NNI | GPON, SC/APC | +| UNI | GE/2.5GE/5GE/10GE interface adaptive | +| Standard | ITU-T G.984.2, Class B+ | +| TX wavelength | 1290 ~ 1330 nm (center 1310 nm) | +| RX wavelength | 1480 ~ 1500 nm (center 1490 nm) | +| Rate | TX 1.244 Gbit/s, RX 2.488 Gbit/s | +| TX power | 0.5 ~ 5 dBm | +| Extinction ratio | ≥ 8.2 dB | +| Receiver sensitivity | ≤ -27 dBm | +| Overload | ≥ -8 dBm | +| Power supply | 3.3 V | +| Maximum power consumption | 1.5 W | +| Operating temperature | -40 °C ~ +85 °C (shell temperature) | +| Operating humidity | 5% ~ 95% RH (non-condensing) | +| Dimensions (H x W x D) | 56.5 mm x 13.6 mm x 12.7 mm | +| Weight | about 23 g | +| MAC addresses | up to 1K | +| Other | Type B dual-homing (50 ms switching), secure boot | # Miscellaneous Links -- [Huawei OptiXstar S600E](https://e.huawei.com/en/products/optical-terminal/optixstar-s600e) +- [Huawei OptiXstar S600E](https://e.huawei.com/it/products/optical-terminal/optixstar-s600e) +- [Huawei OptiXstar S600E Datasheet (Scribd)](https://www.scribd.com/document/956550051/Huawei-OptiXstar-S600E-Datasheet-04) - [Huawei OptiXstar S800E](/xgs/ont-huawei-optixstar-s800e) - [Huawei MA5671A](/ont-huawei-ma5671a) From 5df1a80de1466b3518cb96853e86c67aac575a82 Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:15:40 +0200 Subject: [PATCH 8/9] Update the chipset list with the new chips and the End Of Life notices - Add the chips documented on the device pages (Realtek RTL9601C, RTL9602C, RTL9607 series, RTL9615C, RTL8290; Cortina CA8271 series; ZTE ZX279127S, ZX279133; HiSilicon SD5117, SD5182S; Broadcom BCM68 series, BCM63153, BCM55030) - Realtek RTL9601C End Of Life at the end of November 2026, without replacement; Lantiq Falcon GPON chipsets End Of Life - Link the MEV Elektronik xPON ICs page and the Hacking RTL960x guides - Add the UART pins of the SFP sticks to the TTL UART Adapter page, from the GPON SFP Serial Console guide Co-Authored-By: Claude Opus 5.5 --- gpon/ont.md | 50 ++++++++++++++++++++++++++++++++------- tools/ttl-uart-adapter.md | 21 +++++++++++++++- 2 files changed, 62 insertions(+), 9 deletions(-) diff --git a/gpon/ont.md b/gpon/ont.md index a972b1f8..94644c05 100644 --- a/gpon/ont.md +++ b/gpon/ont.md @@ -7,36 +7,58 @@ nav_order: 2 # Major Chipset Manufacturers -Currently, there are only a few main GPON chipset vendors: +Currently, there are only a few main PON chipset vendors: - Realtek: - * RTL9601 series (for ONT) - - RTL9601B + * RTL9601 series (for SFU ONT and SFP ONT) + - RTL9601B + - RTL9601C (End Of Life) - RTL9601CI (HSGMII) - RTL9601D (HSGMII) * RTL9602/RTL9603 series (for routers with integrated PON) + - RTL9602C + * RTL9607 series (multi WAN SoC for HGU with integrated PON) + - RTL9607C + - RTL9607Cv2 + - RTL9607FS + - RTL9607DQ + * RTL9615C (XGS-PON) + * RTL8290 (laser driver) - Cortina Systems/Cortina Access (previously StorLink) * Cortina QWCS8032E * Cortina CA8289 -- Lantiq: - * Falcon series (GPON) + * CA8271 series (XGS-PON and 10G-EPON) + - CA8271A + - CA8271S + - CA8271NI +- Lantiq (then Intel, then MaxLinear): + * Falcon series (GPON, End Of Life) - PEB98010 - PEB98035 (HSGMII) - PEB98036 - * PRX series (XGSPON) + * PRX series (XGS-PON, MaxLinear) - PRX120 - PRX126 - PRX321 - ZTE: - * FA626TE + * FA626TE * ZX279110a1 * ZX279125 + * ZX279127S + * ZX279133 - HiSilicon (Huawei) * SD5116 -- Marvell + * SD5117 (XGS-PON) + * SD5182S (GPON and XGS-PON SFP ONT) +- Marvell * 88F6601 - Broadcom * BCM68 series + - BCM6838/BCM68380 + - BCM6848 + - BCM68360 + * BCM63153 (router with integrated PON) + * BCM55030 (10G-EPON) - MediaTek/EcoNet * MT7511 * MT/EN752 series (EN7520T HSGMII) @@ -51,6 +73,14 @@ Currently, there are only a few main GPON chipset vendors: HSGMII chipsets are relatively recent, they became more common starting in 2020, and are used in many ONTs. Realtek offers an official SDK, Luna SDK, which offers very good performance in queue management, unfortunately it is not used by all devices based on these chipsets. +The Realtek xPON ICs (RTL9601, RTL9602, RTL9603, RTL9607 and the RTL8290 laser driver) support GPON, EPON and Active Fiber mode, and are distributed in Europe by [MEV Elektronik](https://shop.mev-elektronik.com/product/xpon-ics/). + +Community guides for the RTL960x based sticks and ONTs (OMCI cloning, flash variables, 4-port emulation, firmware and key generators): [Hacking RTL960x](https://github.com/fernandothx/Hacking-RTL960x-your-ISP-Fiber). + +::: warning End Of Life +Realtek announced that the RTL9601C will be End Of Life at the end of November 2026, and it will not get a replacement. +::: + ## Lantiq Chipsets Unfortunately Lantiq no longer exists as it has been bought out and dismembered by Intel. This purchase was a huge deal as at the time Lantiq was at the forefront of the GPON and xDSL chipset market. @@ -58,6 +88,10 @@ The GPON part of Lantiq ended up in `/dev/null`, while the XGS-PON sector ended The last produced batches of these SFPs date back to 2020/2021. All OEMs are currently migrating to Realtek. +::: warning End Of Life +The Lantiq Falcon GPON chipsets (PEB98010, PEB98035, PEB98036) are End Of Life: the SFPs based on them (Huawei MA5671A, Nokia G-010S-P, FS.com GPON-ONU-34-20BI, CarlitoxxPro/Hilink, ...) are no longer produced and are now hard to find, see the [MikroTik forum](https://forum.mikrotik.com/t/usage-gpon-module-sfp-in-spain/104807?page=17). +::: + ::: danger Warning Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed. ::: diff --git a/tools/ttl-uart-adapter.md b/tools/ttl-uart-adapter.md index 0d67e191..26818540 100644 --- a/tools/ttl-uart-adapter.md +++ b/tools/ttl-uart-adapter.md @@ -12,4 +12,23 @@ TTL adapters can be easily found on Amazon, the most recommended one being: - DSD TECH USB to TTL Serial Adapter with FTDI FT232RL Chip [Amazon.com](https://www.amazon.com/dp/B07BBPX8B8) [Amazon.it](https://www.amazon.it/dp/B07BBPX8B8) -Alternatively, an [Arduino can be used to emulate a TTL adapter](https://create.arduino.cc/projecthub/PatelDarshil/ways-to-use-arduino-as-usb-to-ttl-converter-475533) \ No newline at end of file +Alternatively, an [Arduino can be used to emulate a TTL adapter](https://create.arduino.cc/projecthub/PatelDarshil/ways-to-use-arduino-as-usb-to-ttl-converter-475533) + +# Serial console of the SFP sticks + +The SFP MSA does not define a UART, so the manufacturers reuse some low speed pins of the 20-pin SFP edge connector: + +| Pins | Modules | +| -------------- | ---------------------------------------------------------------------------------------------------------- | +| 2 and 7 | Most of the sticks: Huawei MA5671A, Nokia G-010S-P, FS.com GPON-ONU-34-20BI, Realtek RTL960x based sticks, BFW WAS-110 | +| 3 and 6 | Nokia G-010S-A | +| 4/5 or 8/9 | Some other modules (SDA/SCL or RX_LOS/RS1) | + +- Power the stick with +3.3 V on pins 15/16 (VccR/VccT) and ground on a Vee pin (e.g. 10, 14 or 17). +- The SFP logic is 3.3 V: do not use a 5 V adapter. +- Almost all the sticks use 115200 8-N-1. +- Cross the wires (stick TX to adapter RX and vice versa); if there is no output after power-up, swap pins 2 and 7. + +To avoid soldering, use an SFP-to-TTL breakout (an SFP cage with all the 20 pins on headers), a soldered harness or a pogo-pin jig. The pinout of each stick is on its page. + +See [GPON SFP Serial Console](https://github.com/tomav/gpon-sfp-serial-console) for a vendor-neutral guide. \ No newline at end of file From f0802e65af515bbe06358e8cb3183b713d41878c Mon Sep 17 00:00:00 2001 From: Simone Bortolin Date: Fri, 9 Oct 2026 22:18:05 +0200 Subject: [PATCH 9/9] Mark the RTL9601CI End Of Life and the ZX279133 HSGMII Co-Authored-By: Claude Opus 5.5 --- gpon/ont.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gpon/ont.md b/gpon/ont.md index 94644c05..a05f7a00 100644 --- a/gpon/ont.md +++ b/gpon/ont.md @@ -13,7 +13,7 @@ Currently, there are only a few main PON chipset vendors: * RTL9601 series (for SFU ONT and SFP ONT) - RTL9601B - RTL9601C (End Of Life) - - RTL9601CI (HSGMII) + - RTL9601CI (HSGMII, End Of Life) - RTL9601D (HSGMII) * RTL9602/RTL9603 series (for routers with integrated PON) - RTL9602C @@ -45,7 +45,7 @@ Currently, there are only a few main PON chipset vendors: * ZX279110a1 * ZX279125 * ZX279127S - * ZX279133 + * ZX279133 (HSGMII) - HiSilicon (Huawei) * SD5116 * SD5117 (XGS-PON) @@ -78,7 +78,7 @@ The Realtek xPON ICs (RTL9601, RTL9602, RTL9603, RTL9607 and the RTL8290 laser d Community guides for the RTL960x based sticks and ONTs (OMCI cloning, flash variables, 4-port emulation, firmware and key generators): [Hacking RTL960x](https://github.com/fernandothx/Hacking-RTL960x-your-ISP-Fiber). ::: warning End Of Life -Realtek announced that the RTL9601C will be End Of Life at the end of November 2026, and it will not get a replacement. +Realtek announced that the RTL9601C and RTL9601CI will be End Of Life at the end of November 2026, and they will not get a replacement. ::: ## Lantiq Chipsets