# SFPTotal — Full website and documentation content Source: https://sfptotal.io. English. Snapshot date: 2026-10-27. This file contains the full article text of 21 main website pages and 40 published documentation entries. Navigation, forms and other interface controls are omitted. Images are represented by their descriptions and source URLs. Prices and release information reflect this snapshot. Concise index: [llms.txt](https://sfptotal.io/llms.txt). ## Main website pages - [SFPTotal overview](https://sfptotal.io/en/) - [Compare programming boards](https://sfptotal.io/en/products) - [SFPTotal Mini](https://sfptotal.io/en/products/sfptotal-mini) - [SFPTotal Plus New](https://sfptotal.io/en/products/sfptotal-plus-new) - [SFPTotal Plus X](https://sfptotal.io/en/products/sfptotal-plus-x) - [SFPTotal Whistle](https://sfptotal.io/en/products/sfptotal-whistle) - [SFPTotal OSFP Board](https://sfptotal.io/en/products/sfptotal-osfp-board) - [SFPTotal E>olution](https://sfptotal.io/en/products/sfptotal-evolution) - [SFPTotal Plus (archived)](https://sfptotal.io/en/products/sfptotal-plus) - [SFPTotal Wizard and drivers](https://sfptotal.io/en/software) - [SFPTotal Wizard version history](https://sfptotal.io/en/software-versions) - [Device activation](https://sfptotal.io/en/device-activation) - [How to order](https://sfptotal.io/en/buy) - [Payment methods](https://sfptotal.io/en/payment-methods) - [Shipping and delivery](https://sfptotal.io/en/delivery-options) - [Warranty policy](https://sfptotal.io/en/warranty) - [Contact SFPTotal](https://sfptotal.io/en/contacts) - [Consent to personal data processing](https://sfptotal.io/en/info/personal-data-policy) - [User agreement](https://sfptotal.io/en/info/terms-and-conditions) - [Privacy policy](https://sfptotal.io/en/info/confidential-policy) - [Cookie notice](https://sfptotal.io/en/info/cookie-policy) ## Documentation - [SFPTotal Documentation](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [System requirements](https://sfptotal.io/en/wiki/System_requirements) - [Connecting to a PC](https://sfptotal.io/en/wiki/Connecting_to_a_PC) - [SFPTotal Wizard](https://sfptotal.io/en/wiki/SFPTotal_Wizard) - [User interface](https://sfptotal.io/en/wiki/User_interface) - [Basic settings](https://sfptotal.io/en/wiki/Basic_settings) - [Device information](https://sfptotal.io/en/wiki/Device_information) - [Reading transceiver memory](https://sfptotal.io/en/wiki/Reading_transceiver_memory) - [Exporting and importing code](https://sfptotal.io/en/wiki/Exporting_and_importing_code) - [Writing transceiver memory](https://sfptotal.io/en/wiki/Writing_transceiver_memory) - [Writing with a password](https://sfptotal.io/en/wiki/Writing_with_a_password) - [Checksum verification](https://sfptotal.io/en/wiki/Checksum_verification) - [Working with code fragments](https://sfptotal.io/en/wiki/Working_with_code_fragments) - [Comparing codes](https://sfptotal.io/en/wiki/Comparing_codes) - [Backing up transceiver memory](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) - [DDM diagnostics](https://sfptotal.io/en/wiki/DDM_diagnostics) - [Finding a transceiver password](https://sfptotal.io/en/wiki/Finding_a_transceiver_password) - [Tunable DWDM channel settings](https://sfptotal.io/en/wiki/Tunable_DWDM_channel_settings) - [Hardware password search](https://sfptotal.io/en/wiki/Hardware_password_search) - [Writing with scripts](https://sfptotal.io/en/wiki/Writing_with_scripts) - [Automatic writing on connection](https://sfptotal.io/en/wiki/Automatic_writing) - [Batch code generation](https://sfptotal.io/en/wiki/Batch_code_generation) - [Batch writing](https://sfptotal.io/en/wiki/Batch_writing) - [External handler button](https://sfptotal.io/en/wiki/External_handler_button) - [Calling an external code handler](https://sfptotal.io/en/wiki/Calling_an_external_code_handler) - [SFPTotal Whistle](https://sfptotal.io/en/wiki/SFPTotal_Whistle) - [SFPTotal Mini](https://sfptotal.io/en/wiki/SFPTotal_Mini) - [SFPTotal Plus New](https://sfptotal.io/en/wiki/SFPTotal_Plus_New) - [SFPTotal Plus X](https://sfptotal.io/en/wiki/SFPTotal_Plus_X) - [SFPTotal OSFP Board](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board) - [SFPTotal Evolution](https://sfptotal.io/en/wiki/SFPTotal_Evolution) - [Transceiver memory structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) - [Firmware database](https://sfptotal.io/en/wiki/Firmware_database) - [Device control protocol](https://sfptotal.io/en/wiki/Device_control_protocol) - [Error codes and meanings](https://sfptotal.io/en/wiki/Error_codes) - [Resetting the data bus](https://sfptotal.io/en/wiki/Resetting_the_data_bus) - [Running in a virtual machine](https://sfptotal.io/en/wiki/Running_in_a_virtual_machine) - [Transceiver write protection types and programming methods](https://sfptotal.io/en/wiki/Transceiver_write_protection) - [Reprogramming write protected SFP RJ45 transceivers](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45) - [Optical transceiver standards and specifications](https://sfptotal.io/en/wiki/Transceiver_standards_and_specifications) ## SFPTotal overview Source: [https://sfptotal.io/en/](https://sfptotal.io/en/) ![SFPTotal Wizard: SFP EEPROM code table](https://sfptotal.io/images/products/gallery-previews/home-wizard-1024-cd26ffd68183) ### Universal software and hardware solution for coding fiber optical transceivers The software SFPTotal supports flexible and convenient UI for work with transceiver code. The coding boards make able to succesfully recode transceivers most popular form factors produced by different world factories. A distinctive feature is the lack of binding to the modules of a particular manufacturer, as well as support for write-protected transceivers. [Get more details](https://sfptotal.io/en/#information) ### Project SFPTotal E>olution The project researches the compatibility and use of 100G, 200G, 400G, 800G, 1.6T and 3.2T high-speed DSFP, QSFP, QSFP-DD and OSFP optical transceivers with network switching equipment in fibre-optic communications, data storage and artificial intelligence systems, and develops solutions for testing and programming optical transceivers. The key product is the SFPTotal E series programmer, supporting the most popular transceiver form factors. [Get more details](https://sfptotal.io/en/products/sfptotal-evolution) ![SFPTotal E>olution](https://sfptotal.io/images/products/gallery-previews/evolution-01-640-3a13fa66bc06) ### Programmer SFPTotal Plus X QSFP-DD Universal coding board of SFPTotal Plus X seria is designed to support wide range of transceiver form factor type on the one device. SFPTotal Plus X is able to reprogram most popular transceiver types: QSFP-DD, QSFP28, XFP, SFP28, SFP+ and SFP. It's a perfect tool for network equipment suppliers, ISP and system intergatores enginners, who work with optical transceivers are maden and supplied from variouse manufacturers in the world. [Get more details](https://sfptotal.io/en/products/sfptotal-plus-x) ![SFPTotal Plus X](https://sfptotal.io/images/products/gallery-previews/plus-x-01-640-90bf4b66b042) ### Programmer for high-speed 400G/800G transceivers The SFPTotal OSFP Board programmer reads and writes the memory of 400G and 800G OSFP transceivers. It supports OSFP-IHS and OSFP-RHS modules, as well as AOC and DAC cables. A tool for network equipment suppliers, system integrators and engineers working with high-speed networks and artificial intelligence systems. It connects to a PC through USB and uses SFPTotal Wizard to read, edit and write firmware. [Get more details](https://sfptotal.io/en/products/sfptotal-osfp-board) ![SFPTotal OSFP Board](https://sfptotal.io/images/products/gallery-previews/osfp-board-01-640-2ffb31cb7c9c) ### High coding speed SFPTotal Mini and Plus coding boards based on proprietary command protocol which serves fast and stable access to transceiver memory over I2C databus. ### Friendly software UI The software provides a convenient interface that allows you to read, decode, edit and write changes to the memory of transceivers. ### 400 well-known passwords SFPTotal Team regularly research products from various manufacturers and provide customers support about passwords for coding write-protected transceivers. ### Library of codes Our database SFPTotal Labs contains more than 25,000 vendor codes that would help you find and fix the compatibility problem with network switching equipment. ### Community of users Customers can get access to online platforms for user communication, joint discussion, search and solution of popular problems of using optical transceivers. ### Technical support Technical support is glad to advise on the issues of equipment use and solving the most popular problems with transceivers with help of SFPTotal coding boards. ### Test it free before purchase! Basic features of the software could be tested before purchase. You can download the software to check it free and make a purchase decision. [I'd like to test it now!](https://sfptotal.io/en/software) ![SFPTotal Wizard](https://sfptotal.io/images/products/gallery-previews/home-trial-640-f31a400c5997) ### General information SFPTotal coding boards are designed for coding fiber optic transceivers. Different hardware revisions support popular form factors including GBIC, SFP, SFP+, SFP28, XFP, QSFP, QSFP28 and QSFP-DD, as well as RJ45 modules, DAC and AOC cables. SFPTotal boards support coding for transceivers with DDM function and write-protected transceivers also. The coding boards made without a case to provide access for contact pads and control elements which are required for coding some AOC/DAC and optical transceivers based on hardware protection scheme. Programmers make able to improve compatibility options with brand equipment such as 3com, Alcatel, Cisco, Extreme, Juniper, Lucent, Moxa, HP, Meriton, Ericsson / Marconi, Mellanox, Nortel, Net Insight, Nokia, Redback, Siemens, Transmode, Qlogic, Westermo, Allied Telesis, Cyan, DCN, Dlink, Enterasys, Foundry, Hitachi, Apresia, Huawei, Linksys, Netgear, Mikrotik, Orion, Ruijie, Tejas Network, Transitfion, ZTE, Zyxel and etc. #### Quick start SFPTotal coding board connects to PC with USB cable included to the kit. Connected device detects by operation system at first connection of the board. To get started follow next steps: 1. Install [SFPTotal driver](https://sfptotal.io/en/software) for coding board 2. Download and run [SFPTotal Wizard](https://sfptotal.io/en/software) software The programming board work based on a proprietary protocol SFPTotal and operating wih an official software SFPTotal Wizard which provides an interface for access to main features and opportunities of the device. The device does not need special settings. SFPTotal Wizard software detects a coding board automatically when the device connected to PC. Sometimes PC working under OS Windows control is needed a system reboot for stable work of virtual serial port driver. More information about SFPTotal devices can be get on [SFPTotal Wiki](https://sfptotal.io/en/wiki/SFPTotal_Documentation). #### Compatibility issues SFPTotal programmers are designed in accordance with MSA SFF specifications, support the GBIC, SFP, SFP +, XFP and QSFP transceivers, and are also able to successfully reprogram the modules of most manufacturers. The coding boards support all address spaces of transceivers (for example: A0H, A2H). That means all available memory pages of the transceiver could be read and write with special permissions. The hardware is maden with the conditions for compatibility and security of memory chips and control chip, as well as stable power supply of the transceiver circuit. For default, the coding board does write into transceivers memory with 8 bytes block size and clocking speed rate 10 kHz. This ensures the most compatible with optical transceivers which manufactured with various hardware design. The operation settings (data bus speed rate, block size and intervals value) can be changed if necessary. Therefore, you will not have any problem in reprogramming conventional transceivers. Also, SFPTotal Wizard software makes able to proceed single-byte read and write operations for transceivers with specific requirments to data exchange. #### Coding write-protected transceivers Most write-protected transcievers can be recoded using 4-bytes password unlocks transceiver's memory for commit new changes. SFPTotal software has a special interface to set up the params and execution a write operation with a password entry. Also, the software supports a scripts which make able to implement difficult algorithm or save command for programming write-protected transceivers with especial programming logic is different than MSA standard. The software is able to do a password search for transceivers with unknown password value. Our technical support provides a scripts and passwords for programming transceivers of respective manufacturers. The programming ability may have limitationsg for some transceiver manufacturers or a hardware design. It could be associated with replacing the chip in a new batch or setting a password that has not been found and tested by SFPTotal Team yet. You can use prepared scripts or, create your own coding solution, using SFPTotal command protocol, for coding locked modules if you know an original algorithm (or a password). #### Where get codes? Most compatibility issues linked with using optical transceivers and network switching equipment are associated with mistakes in the code declaration that presents the transceiver parameters, with wrong checksums and in use an incompatible vendor code. You need to upload a correct vendor code into transceiver to resolve compatibility issues. As part of technical support, we provide our customers with access to the vendor codes database, as well as advise on ensuring the compatibility of transceivers with switching equipment. Please, contact to [Tech support](https://sfptotal.io/en/contacts) to get more information. ## Compare programming boards Source: [https://sfptotal.io/en/products](https://sfptotal.io/en/products) ### Transceiver programming boards Compare interfaces and choose a programming board. Prices and online availability use the International catalogue in USD. [Compare boards](https://sfptotal.io/en/products#sf-comparison) [![SFPTotal Mini](https://sfptotal.io/images/storefront/mini/1.jpg)](https://sfptotal.io/en/products/sfptotal-mini) ### [SFPTotal Mini](https://sfptotal.io/en/products/sfptotal-mini) A compact board for programming SFP, SFP+ and SFP28 transceivers, with SFPTotal Wizard support. SFP / SFP+ / SFP28 SKU: SFPT-M USD 350.00 Contact Sales to confirm shipping options and the final order details. [![SFPTotal Plus](https://sfptotal.io/images/storefront/plus/1.png)](https://sfptotal.io/en/products/sfptotal-plus) ### [SFPTotal Plus](https://sfptotal.io/en/products/sfptotal-plus) An earlier universal programming board for GBIC, SFP, XFP and QSFP transceivers. See the current revision before ordering. GBIC / SFP / XFP / QSFP28 SKU: SFPT-P Outdated hardware revision [Go to new revision](https://sfptotal.io/en/products/sfptotal-plus-new) [![SFPTotal Plus New](https://sfptotal.io/images/storefront/plus-new/1.jpg)](https://sfptotal.io/en/products/sfptotal-plus-new) ### [SFPTotal Plus New](https://sfptotal.io/en/products/sfptotal-plus-new) A universal programming board for SFP, XFP and QSFP transceivers, including 25G SFP28 and 100G QSFP28. SFP28 / XFP / QSFP28 SKU: SFPT-P USD 980.00 Contact Sales to confirm shipping options and the final order details. [![SFPTotal Plus X](https://sfptotal.io/images/storefront/plus-x/1.jpg)](https://sfptotal.io/en/products/sfptotal-plus-x) ### [SFPTotal Plus X](https://sfptotal.io/en/products/sfptotal-plus-x) A universal programming board for 400G QSFP112 and 200G/400G/800G QSFP-DD transceivers, with support for QSFP28, SFP28, XFP and compatible AOC/DAC cables. Works with SFPTotal Wizard. SFP28 / XFP / QSFP28 / QSFP112 / QSFP-DD SKU: SFPT-X USD 1,490.00 Contact Sales to confirm shipping options and the final order details. [![SFPTotal Whistle](https://sfptotal.io/images/storefront/whistle/1.jpg)](https://sfptotal.io/en/products/sfptotal-whistle) ### [SFPTotal Whistle](https://sfptotal.io/en/products/sfptotal-whistle) A small programming board for SFP and SFP+ transceivers, including Digital Diagnostic Monitoring support. SFP / SFP+ SKU: SFPT-W USD 120.00 Contact Sales to confirm shipping options and the final order details. [![SFPTotal OSFP Board](https://sfptotal.io/images/storefront/osfp-board/1.jpg)](https://sfptotal.io/en/products/sfptotal-osfp-board) ### [SFPTotal OSFP Board](https://sfptotal.io/en/products/sfptotal-osfp-board) A programming board for 400G and 800G OSFP transceivers, including OSFP-IHS, OSFP-RHS and compatible AOC/DAC cables used in AI networks. OSFP-IHS / OSFP-RHS SKU: SFPT-O USD 1,280.00 Contact Sales to confirm shipping options and the final order details. [![SFPTotal E>olution](https://sfptotal.io/images/storefront/evolution/1.jpg)](https://sfptotal.io/en/products/sfptotal-evolution) ### [SFPTotal E>olution](https://sfptotal.io/en/products/sfptotal-evolution) A universal programming board for 400G QSFP112, 200G/400G/800G QSFP-DD and 400G/800G OSFP transceivers, with support for DSFP, SFP and compatible AOC/DAC cables. SFP / DSFP / QSFP112 / QSFP-DD / OSFP SKU: SFPT-E USD 1,980.00 Contact Sales to confirm shipping options and the final order details. ### Compare boards | Board | SKU | Interfaces | PC connection | | --- | --- | --- | --- | | [SFPTotal Mini](https://sfptotal.io/en/products/sfptotal-mini) | SFPT-M | SFP / SFP+ / SFP28 | USB type C | | [SFPTotal Plus](https://sfptotal.io/en/products/sfptotal-plus) | SFPT-P | GBIC / SFP / XFP / QSFP28 | Micro USB | | [SFPTotal Plus New](https://sfptotal.io/en/products/sfptotal-plus-new) | SFPT-P | SFP28 / XFP / QSFP28 | USB type C | | [SFPTotal Plus X](https://sfptotal.io/en/products/sfptotal-plus-x) | SFPT-X | SFP28 / XFP / QSFP28 / QSFP112 / QSFP-DD | USB type C | | [SFPTotal Whistle](https://sfptotal.io/en/products/sfptotal-whistle) | SFPT-W | SFP / SFP+ | USB 2.0 | | [SFPTotal OSFP Board](https://sfptotal.io/en/products/sfptotal-osfp-board) | SFPT-O | OSFP-IHS / OSFP-RHS | USB type C | | [SFPTotal E>olution](https://sfptotal.io/en/products/sfptotal-evolution) | SFPT-E | SFP / DSFP / QSFP112 / QSFP-DD / OSFP | USB type C | [SFPTotal Wizard software](https://sfptotal.io/en/software) · [Contact Sales](https://sfptotal.io/en/contacts) ## SFPTotal Mini Source: [https://sfptotal.io/en/products/sfptotal-mini](https://sfptotal.io/en/products/sfptotal-mini) ### Programmer SFPTotal Mini SKU: SFPT-M USD 350.00 Contact Sales to confirm shipping options and the final order details. Specialized coding board for SFP, SFP+ and SFP28 fiber optical transceivers including AOC and DAC. The coding board contains 20-pin SFP port (SFF-8431), USB port and power jack to connect external power supply for high power consumption level transceivers: long distance DWDM, PON SFP OLT. SFPTotal Mini based on proprietary SFPTotal protocol which makes able to proceed flexible coding for variouse transceivers in SFP form factor. The device is full-compatible with official software SFPTotal Wizard. The kit includes a coding board Mini series and micro USB cable for PC connection. Model Mini rev. 1.3 or above Compatibility SFP, SFP+, SFP28 PC connection USB 2.0 Kit includes Programmer board Mini series, micro USB cable Sizes, mm 50 x 66 x 13 Warranty 36 months - SFP RJ45 - 1G SFP - 2/4/8/16G FC - 32G FC - 10G SFP+ - 25G SFP28 - SFP OLT PON - AOC - DAC In stock [![SFPTotal Mini](https://sfptotal.io/images/products/gallery-previews/mini-01-640-4815d3c761e2)](https://sfptotal.io/images/products/gallery/mini/sfptotal-mini-1.6-01.jpg) [![SFPTotal Mini](https://sfptotal.io/images/products/gallery-previews/mini-02-160-ce7dc9412ad2)](https://sfptotal.io/images/products/gallery/mini/sfptotal-mini-1.6-02.jpg) [![SFPTotal Mini](https://sfptotal.io/images/products/gallery-previews/mini-03-160-02252ab4ca90)](https://sfptotal.io/images/products/gallery/mini/sfptotal-mini-1.6-03.jpg) [![SFPTotal Mini](https://sfptotal.io/images/products/gallery-previews/mini-04-160-e1a6207f3031)](https://sfptotal.io/images/products/gallery/mini/sfptotal-mini-1.6-04.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) - [Enclosure model for 3D printing](https://sfptotal.io/download/SFPT-M16__3D.zip) ### Overview The **SFPTotal Mini** is a compact coding board designed to support 1G SFP, 10G SFP+ and 25G SFP28 transceivers, including copper RJ45 SFP, PON OLT SFP, DAC and AOC. The coding board is manufactured in accordance to specifications MSA SFF-8074, SFF-8431, SFF-8472 and contains 20-pin SFP port (SFF-8431), micro USB port and and power jack to connect external power supply 5V DC for optical transceivers with high power level consumption: more than 1.5 W. The hardware design provides for the presence pinouts for power supply control and access to main I/O lines of the transceiver ports, that could be required for coding hardware protected transceivers. **SFPTotal Mini** device has an embedded software based on proprietary SFPTotal protocol and full-compatible with an official software SFPTotal Wizard, that make possible to proceed flexible coding for write-protected transceivers from diffrent manufacturers. It contains everything needed to support SFP form factor transceivers. Simply connect it to a computer with a USB cable to get started. ### Main Features Compared with similar coding devices, SFPTotal Mini has the following advantages: - Supports transceivers with speed rate up to 25G on the one coding board - Provides required power supply to connect powerful optical transceviers 1.5 W and more - Transceivers support doesn't limited on just one manufacturer - Provides access to all address spaces of transceiver memory - Makes possible to recode write-protected MSA transceivers - Supports coding with a script for non-MSA transceivers - Supports hardware password search for password locked transceiver - Has official software with friendly and convinient GUI - Real-time access to Digital Diagnosting Monitoring interface - Gives access to knowlege database and SFPTotal technical support. ### Application SFPTotal Mini programmer is used for the following tasks: - Coding fiber optical and copper transceivers, DAC, AOC - Improving transceivers compatibility with brand network switching equipment - Coding write-protected transceivers variouse manufacturers - Access to PHY controller registers and manual configuration - DWDM SFP+ tunable transceiver channel control - Reading DDM interface and check factory presets - Code rebranding for OEM transceivers - Test platform for pre-sales preparation of transceivers ### Quick start The coding board connects to PC using USB type C cable included to the kit. The operation system detects the device and intalls required Virtual Serial Port driver when device connected firstly. Follow simple steps to start: 1. Install [SFPTotal Mini driver](https://sfptotal.io/en/software#driver) 2. Download and run application [SFPTotal Wizard](https://sfptotal.io/en/software) The SFPTotal coding board manages through official software SFPTotal Wizard which provides user interface to operate the coding board for write and read code and get access to the main features. No preliminary configuration is required to start working with the program. SFPTotal Wizard automatically detects an original coding board connected to the PC. *After installing the driver on some versions of Windows OS, a mandatory system reboot is required for the virtual serial port driver to work correctly.* Please, follow our documentation: [SFPTotal Wiki](https://sfptotal.io/en/wiki/SFPTotal_Documentation). ### Activation key SFPTotal Mini is supplied with limited functionality which makes able to test the device before use, but the write function is limited. The activation is required to make sure the device will be run by end customer, but not a dealer or an agent. That policy makes SFPTotal able to provide the best warranty conditions and service, helps to be sure the device has not been used before sale and it will work stable for a long time. Also, when the device has been activated, we count warranty date from the moment of activation key issue, not the purchase date. The activation key is an unique value for every coding board and associated with its serial number. The key must be applied for the coding board to remove the functionality restrictions. The activation key includes into the SFPTotal coding board kit: it issues after purchase the device and becomes available in customer account on the website. If you bought SFPTotal coding board through dealer and didn't get an activation key, you can sign up on the website and get an activation key for your device free. You don't need to repeat an activation procedure for the coding board when connect to another PC or reinstall operation system. The activation makes once and it is permanent for the device. ### Coding optical transceivers ###### Coding unlocked transceivers The most optical transceivers with unlocked memory contain EEPROM chip such as 24C02 which stores informtaion about transceiver form factor, wavelength, transmission technology, speedrate, encoding type, vendor name, serial number and etc. That solution presented in a lot of cheap gigabit transceivers and DAC which don't support DDM function. The memory of those transceivers can be rewritten normally without any restriction from the transceiver. In such transceivers, as a rule, only the A0H page is available for reading, but reading the A2H page returns an error. You need just import a vendor code into the software or edit a generic code from the module, then press Write button to write to such modules. The coding board returns WRITE OK response when the write successfuly done. You can use the transceiver with updated vendor code after that! ###### Coding write-protected transceivers In accordance with the MSA SFF-8472 specification, DDM capable transceivers can be write protected and require entry a 4 byte password to unlock the memory before write any change. Such modules operate under the control of a special microcontroller, which emulates an EEPROM chip and provides write functionality in I2C slave mode. Also, it can work as a buffer for EEPROM and control Write Protect pin of the memory chip. An attempt to write to such a transceiver without a password or with an incorrect password returns an error - WRITE FAIL. The software SFPTotal Wizard supports the function to change a write settings and makes able to set a password value to unlock the memory before saving new changes. In addition, the software allows to create complex programming algorithms in the form of scripts. It makes possible to code transceivers that require factory coding method what is incompatible with specification MSA. ## SFPTotal Plus New Source: [https://sfptotal.io/en/products/sfptotal-plus-new](https://sfptotal.io/en/products/sfptotal-plus-new) ### Programmer SFPTotal Plus NEW SKU: SFPT-P USD 980.00 Contact Sales to confirm shipping options and the final order details. Universal coding board for programming fiber optical transceivers SFP, SFP+, XFP, QSFP form factors, including SFP28 and QSFP28. SFPTotal Plus New based on proprietary SFPTotal protocol which makes able to proceed flexible coding for variouse transceivers in SFP, XFP and QSFP form factor. The device is full-compatible with official software SFPTotal Wizard. The kit includes a coding board Plus series and USB type C cable for PC connection. Model Plus New rev. 1.2 or above Compatibility SFP, SFP+, SFP28, XFP, QSFP+, QSFP28 PC Connection USB 2.0 Kit includes Coding board Plus series, USB type C cable Sizes, mm 107 x 101.6 x 15 Warranty 36 months - 100BASE SFP - 1G/10G SFP RJ45 - 1G SFP - 2/4/8/16G Fiber Channel - 32G FC - XFP - 10G SFP+ - 25G SFP28 - CWDM/DWDM - SONET/SDH - 40G QSFP+ - 50G BiDi QSFP28 - 100G QSFP28 - AOC - DAC In stock [![SFPTotal Plus New](https://sfptotal.io/images/products/gallery-previews/plus-new-01-640-122378500095)](https://sfptotal.io/images/products/gallery/plus-new/001.jpg) [![SFPTotal Plus New](https://sfptotal.io/images/products/gallery-previews/plus-new-02-160-8b96e1315d63)](https://sfptotal.io/images/products/gallery/plus-new/002.jpg) [![SFPTotal Plus New](https://sfptotal.io/images/products/gallery-previews/plus-new-03-160-ced24badf0c7)](https://sfptotal.io/images/products/gallery/plus-new/003.jpg) [![SFPTotal Plus New](https://sfptotal.io/images/products/gallery-previews/plus-new-04-160-bb787f089781)](https://sfptotal.io/images/products/gallery/plus-new/004.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) - [Enclosure model for 3D printing](https://sfptotal.io/download/SFPT-P__3D.zip) ### Overview The coding board **SFPTotal Plus** NEW is evoluted hardware design of previouse revision programmer SFPTotal Plus. It supports XFP, SFP, SFP+, QSFP+ and QSFP28 transceivers, including SFP RJ45, PON OLT SFP, SFP28 and AOC/DAC cables. The coding board contains 20-pin SFP port (SFF-8431), 30-pin XFP port (INF-8077i), 38-pin QSFP port (SFF-8636), USB type C port and power jack to connect external power supply 5V DC for optical transceivers with high power level consumption: more than 1.5 W. **SFPTotal Plus** NEW device has an embedded software based on proprietary SFPTotal protocol and full-compatible with an official software SFPTotal Wizard, that make possible to proceed flexible coding for write-protected transceivers from diffrent manufacturers. The hardware design provides for the presence pinouts for power supply control and access to main I/O lines of the transceiver ports, that could be required for coding hardware protected transceivers. It contains everything needed to support multiple form factors transceivers. Simply connect it to a computer with a USB cable to get started. *Unlike the SFPTotal Plus programmer, the new revision does not contain a port for connecting GBIC form factor transceivers. GBIC port has been removed as outdated.* ### Main Features Compared with similar coding devices, SFPTotal Plus New has the following advantages: - Supports several form factors on the one coding board - Provides required power supply to connect powerful optical transceviers 1.5 W and more - Transceivers support doesn't limited on just one manufacturer - Provides access to all address spaces of transceiver memory - Makes possible to recode write-protected MSA transceivers - Supports coding with a script for non-MSA transceivers - Supports hardware password search for password locked transceiver - Has official software with friendly and convinient GUI - Real-time access to Digital Diagnosting Monitoring interface - Gives access to knowlege database and SFPTotal technical support. ### Application SFPTotal Plus New programmer is used for the following tasks: - Coding fiber optical and copper transceivers, DAC, AOC - Improving transceivers compatibility with brand network switching equipment - Coding write-protected transceivers variouse manufacturers - Access to PHY controller registers and manual configuration - DWDM SFP+ tunable transceiver channel control - Reading DDM interface and check factory presets - Code rebranding for OEM transceivers - Test platform for pre-sales preparation of transceivers ### Quick start The coding board connects to PC using USB type C cable included to the kit. The operation system detects the device and intalls required Virtual Serial Port driver when device connected firstly. Follow simple steps to start: 1. Install [SFPTotal Plus New driver](https://sfptotal.io/en/software#driver) 2. Download and run application [SFPTotal Wizard](https://sfptotal.io/en/software) The SFPTotal coding board is controlled through SFPTotal Wizard, which provides an interface for reading and writing code and accessing the main features. No preliminary configuration is required: SFPTotal Wizard automatically detects an original coding board connected to the PC. *After installing the driver on some versions of Windows OS, a mandatory system reboot is required for the virtual serial port driver to work correctly.* Please, follow official documentation: [SFPTotal Wiki](https://sfptotal.io/en/wiki/SFPTotal_Documentation). ### Activation key SFPTotal Plus New is supplied with limited functionality which makes able to test the device before use, but the write function is limited. The activation is required to make sure the device will be run by end customer, but not a dealer or an agent. That policy makes SFPTotal able to provide the best warranty conditions and service, helps to be sure the device has not been used before sale and it will work stable for a long time. Also, when the device has been activated, we count warranty date from the moment of activation key issue, not the purchase date. The activation key is an unique value for every coding board and associated with its serial number. The key must be applied for the coding board to remove the functionality restrictions. The activation key includes into the SFPTotal coding board kit: it issues after purchase the device and becomes available in customer account on the website. If you bought SFPTotal coding board through dealer and didn't get an activation key, you can sign up on the website and get an activation key for your device free. You don't need to repeat an activation procedure for the coding board when connect to another PC or reinstall operation system. The activation makes once and it is permanent for the device. ### Coding optical transceivers ###### Coding unlocked transceivers The most optical transceivers with unlocked memory contain EEPROM chip such as 24C02 which stores informtaion about transceiver form factor, wavelength, transmission technology, speedrate, encoding type, vendor name, serial number and etc. That solution presented in a lot of cheap gigabit transceivers and DAC which don't support DDM function. The memory of those transceivers can be rewritten normally without any restriction from the transceiver. In such transceivers, as a rule, only the A0H page is available for reading, but reading the A2H page returns an error. You need just import a vendor code into the software or edit a generic code from the module, then press Write button to write to such modules. The coding board returns WRITE OK response when the write successfuly done. You can use the transceiver with updated vendor code after that! ###### Coding write-protected transceivers In accordance with the MSA SFF-8472 specification, DDM capable transceivers can be write protected and require entry a 4 byte password to unlock the memory before write any change. Such modules operate under the control of a special microcontroller, which emulates an EEPROM chip and provides write functionality in I2C slave mode. Also, it can work as a buffer for EEPROM and control Write Protect pin of the memory chip. An attempt to write to such a transceiver without a password or with an incorrect password returns an error - WRITE FAIL. The software SFPTotal Wizard supports the function to change a write settings and makes able to set a password value to unlock the memory before saving new changes. In addition, the software allows to create complex programming algorithms in the form of scripts. It makes possible to code transceivers that require factory coding method what is incompatible with specification MSA. ## SFPTotal Plus X Source: [https://sfptotal.io/en/products/sfptotal-plus-x](https://sfptotal.io/en/products/sfptotal-plus-x) ### Programmer SFPTotal Plus X QSFP-DD supported SKU: SFPT-X USD 1,490.00 Contact Sales to confirm shipping options and the final order details. Universal coding board for 200G/400G/800G QSFP-DD, 400G QSFP112, 200G QSFP56, 100G QSFP28, 40G QSFP+, 25G SFP28, 10G SFP+, 1.25G SFP and 10G XFP transceivers, including compatible AOC/DAC cables. SFPTotal Plus X has a QSFP-DD port for 200G/400G/800G double-density transceivers. The port is backward compatible with 400G QSFP112, 200G QSFP56, 100G QSFP28 and 40G QSFP+ transceivers. The coding board is full-compatible with SFPTotal Wizard software that provides CMIS copliant HEX editor. The kit includes a coding board Plus X series and cable USB type C for PC connection. Model Plus X rev. 1.6 or above Compatibility SFP, SFP+, SFP28, XFP, QSFP, QSFP28, QSFP56, QSFP112, QSFP-DD PC Connection USB type C Kit includes Coding board Plus X series, USB type C cable Sizes, mm 130 x 130 x 15 Warranty 36 months - 100BASE SFP - 1/10G SFP RJ45 - 1G SFP - 2/4/8/16/32G FC - 10G SFP+ - 25G SFP28 - CWDM/DWDM - SONET/SDH - XFP - 40G QSFP+ - 50G BiDi QSFP28 - 100G QSFP28 - 200G QSFP56 - 400G QSFP112 - 200G QSFP-DD - 400G QSFP-DD - 800G QSFP-DD - AOC - DAC In stock [![SFPTotal Plus X](https://sfptotal.io/images/products/gallery-previews/plus-x-01-640-90bf4b66b042)](https://sfptotal.io/images/products/gallery/plus-x/002.jpg) [![SFPTotal Plus X](https://sfptotal.io/images/products/gallery-previews/plus-x-02-160-13056f7da313)](https://sfptotal.io/images/products/gallery/plus-x/001.jpg) [![SFPTotal Plus X](https://sfptotal.io/images/products/gallery-previews/plus-x-03-160-e1bd386a0444)](https://sfptotal.io/images/products/gallery/plus-x/004.jpg) [![SFPTotal Plus X](https://sfptotal.io/images/products/gallery-previews/plus-x-04-160-c5c2a8f7f337)](https://sfptotal.io/images/products/gallery/plus-x/003.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) - [Enclosure model for 3D printing](https://sfptotal.io/download/SFPT-X__3D.zip) ### Overview The coding board **SFPTotal Plus X** QSFP-DD is an evolution of the SFPTotal Plus hardware design. It supports 400G QSFP112 and 200G/400G/800G QSFP-DD transceivers, as well as XFP, SFP, SFP+, SFP28, QSFP+, QSFP28 and QSFP56 modules, including SFP RJ45, PON OLT SFP and compatible AOC/DAC cables. The coding board has SFP, XFP and QSFP-DD ports, a USB type C connector for the PC connection and a jack for an external 5V DC power supply for optical transceivers with power consumption above 1.5 W. **SFPTotal Plus X** QSFP-DD device has an embedded software based on proprietary SFPTotal protocol and full-compatible with an official software SFPTotal Wizard, that make possible to proceed flexible coding for write-protected transceivers from diffrent manufacturers. The hardware design provides for the presence pinouts for power supply control and access to main I/O lines of the transceiver ports, that could be required for coding hardware protected transceivers. It contains everything needed to support multiple form factors transceivers. Simply connect it to a computer with a USB cable to get started. *Unlike the SFPTotal Plus programmer, the new revision does not contain a port for connecting GBIC form factor transceivers. GBIC port has been removed as outdated.* ### Main Features Compared with similar coding devices, SFPTotal Plus X has the following advantages: - Supports several form factors on the one coding board - Supports 100G, 200G, 400G and 800G transceivers, including 400G QSFP112 and 200G/400G/800G QSFP-DD - Provides required power supply to connect powerful optical transceviers 1.5 W and more - Transceivers support doesn't limited on just one manufacturer - Provides access to all address spaces of transceiver memory - Makes possible to recode write-protected MSA transceivers - Supports coding with a script for non-MSA transceivers - Supports hardware password search for password locked transceiver - Has official software with friendly and convinient GUI - Real-time access to Digital Diagnosting Monitoring interface - Gives access to knowlege database and SFPTotal technical support. ### Application SFPTotal Plus X programmer is designed to work in the following tasks: - Coding fiber optical and copper transceivers, DAC, AOC - Improving transceivers compatibility with brand network switching equipment - Coding write-protected transceivers variouse manufacturers - Access to PHY controller registers and manual configuration - DWDM SFP+ tunable transceiver channel control - Reading DDM interface and check factory presets - Code rebranding for OEM transceivers - Test platform for pre-sales preparation of transceivers ### Quick start The coding board connects to PC using USB type C cable included to the kit. The operation system detects the device and intalls required Virtual Serial Port driver when device connected firstly. Follow simple steps to start: 1. Install [SFPTotal Plus X driver](https://sfptotal.io/en/software#driver) 2. Download and run application [SFPTotal Wizard](https://sfptotal.io/en/software) The SFPTotal coding board manages through official software SFPTotal Wizard which provides user interface to operate the coding board for write and read code and get access to the main features. No preliminary configuration is required to start working with the program. SFPTotal Wizard automatically detects an original coding board connected to the PC. *After installing the driver on some versions of Windows OS, a mandatory system reboot is required for the virtual serial port driver to work correctly.* Please, follow our documentation: [SFPTotal Wiki](https://sfptotal.io/en/wiki/SFPTotal_Documentation). ### Activation key SFPTotal Plus X is supplied with limited functionality which makes able to test the device before use, but the write function is limited. The activation is required to make sure the device will be run by end customer, but not a dealer or an agent. That policy makes SFPTotal able to provide the best warranty conditions and service, helps to be sure the device has not been used before sale and it will work stable for a long time. Also, when the device has been activated, we count warranty date from the moment of activation key issue, not the purchase date. The activation key is an unique value for every coding board and associated with its serial number. The key must be applied for the coding board to remove the functionality restrictions. The activation key includes into the SFPTotal coding board kit: it issues after purchase the device and becomes available in customer account on the website. If you bought SFPTotal coding board through dealer and didn't get an activation key, you can sign up on the website and get an activation key for your device free. You don't need to repeat an activation procedure for the coding board when connect to another PC or reinstall operation system. The activation makes once and it is permanent for the device. ### Coding optical transceivers ###### Coding unlocked transceivers The most optical transceivers with unlocked memory contain EEPROM chip such as 24C02 which stores informtaion about transceiver form factor, wavelength, transmission technology, speedrate, encoding type, vendor name, serial number and etc. That solution presented in a lot of cheap gigabit transceivers and DAC which don't support DDM function. The memory of those transceivers can be rewritten normally without any restriction from the transceiver. In such transceivers, as a rule, only the A0H page is available for reading, but reading the A2H page returns an error. You need just import a vendor code into the software or edit a generic code from the module, then press Write button to write to such modules. The coding board returns WRITE OK response when the write successfuly done. You can use the transceiver with updated vendor code after that! ###### Coding write-protected transceivers In accordance with the MSA SFF-8472 specification, DDM capable transceivers can be write protected and require entry a 4 byte password to unlock the memory before write any change. Such modules operate under the control of a special microcontroller, which emulates an EEPROM chip and provides write functionality in I2C slave mode. Also, it can work as a buffer for EEPROM and control Write Protect pin of the memory chip.An attempt to write to such a transceiver without a password or with an incorrect password returns an error - WRITE FAIL. The software SFPTotal Wizard supports the function to change a write settings and makes able to set a password value to unlock the memory before saving new changes.In addition, the software allows to create complex programming algorithms in the form of scripts. It makes possible to code transceivers that require factory coding method what is incompatible with specification MSA. ## SFPTotal Whistle Source: [https://sfptotal.io/en/products/sfptotal-whistle](https://sfptotal.io/en/products/sfptotal-whistle) ### Programmer SFPTotal Whistle SKU: SFPT-W USD 120.00 Contact Sales to confirm shipping options and the final order details. Tiny and inexpensive programmer for coding SFP and SFP+ transceivers with power consumtion up to 1.5 W. The devices connects directly to USB port of PC. The device is full-compatible with official software SFPTotal Wizard. The kit includes a programmer board Whistle series only. The activation key is alreay uploaded to the coding board memory. Model Whistle rev. 1.1 or above Compatibility SFP, SFP+ PC Connection USB 2.0 Kit includes Coding board Whistle series Size, mm 64 x 22 x 13 Warranty 36 months - SFP RJ45 - 1G SFP - 2/4/8/16G FC - 10G SFP+ - AOC - DAC In stock [![SFPTotal Whistle](https://sfptotal.io/images/products/gallery-previews/whistle-01-640-afd4c95c70a1)](https://sfptotal.io/images/products/gallery/whistle/sfptotal-whistle-01.jpg) [![SFPTotal Whistle](https://sfptotal.io/images/products/gallery-previews/whistle-02-160-3ce3655e4bd2)](https://sfptotal.io/images/products/gallery/whistle/sfptotal-whistle-02.jpg) [![SFPTotal Whistle](https://sfptotal.io/images/products/gallery-previews/whistle-03-160-ea9eaf2b91a7)](https://sfptotal.io/images/products/gallery/whistle/sfptotal-whistle-03.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) ### Overview The **SFPTotal Whistle** is a tiny coding board designed to support 1G SFP and 10G SFP+ transceivers including copper RJ45 SFP, DAC and AOC. The coding board is manufactured in accordance to specifications MSA SFF-8074, SFF-8431, SFF-8472 and contains 20-pin SFP port (SFF-8431) covered metal cage and flat USB connector. The coding board support optical transceivers with power consumption up to 1.5 W. The device does not provide for the connection of an external power supply. The suppored power level is limited by the maximum current for USB 2.0 port. The hardware design **DOESN'T provide** for the presence pinouts for power supply control and access to main I/O lines of the transceiver ports, that could be required for coding hardware protected transceivers. **SFPTotal Whistle** based on USB interface converter chip: it doesn't contain embedded software and manages with an official software SFPTotal Wizard. The device operates on the I2C databus with low clocking frequency that makes negative effect on coding speed rate in compare with SFPTotal Mini or Plus series. It contains everything needed to support EEPROM based SFP transceivers. Simply connect it directly to a computer USB port to get started. ### Main Features Compared with similar coding devices, SFPTotal Whistle has the following advantages: - Supports transceivers with speed rate up to 10G on the one coding board - Provides required power supply to connect optical transceviers up to 1.5 W - Transceivers support doesn't limited on just one manufacturer - Provides access to all address spaces of transceiver memory - Makes possible to recode write-protected MSA transceivers (with restrictions) - Supports coding with a script for non-MSA transceivers - Has official software with friendly and convinient GUI - Real-time access to Digital Diagnosting Monitoring interface - Gives access to knowlege database and SFPTotal technical support. ### Application SFPTotal Whistle programmer is used for the following tasks: - Coding fiber optical and copper transceivers, DAC, AOC - Improving transceivers compatibility with brand network switching equipment - Coding write-protected transceivers variouse manufacturers - Access to PHY controller registers and manual configuration - Reading DDM interface and check factory presets - Code rebranding for OEM transceivers ### Quick start The coding board connects to PC directly to USB port. The operation system detects the device and intalls required Virtual Serial Port driver when device connected firstly. Follow simple steps to start: 1. Install [SFPTotal Whistle driver](https://sfptotal.io/en/software#driver) 2. Download and run application [SFPTotal Wizard](https://sfptotal.io/en/software) The SFPTotal coding board manages through official software SFPTotal Wizard which provides user interface to operate the coding board for write and read code and get access to the main features. No preliminary configuration is required to start working with the program. SFPTotal Wizard automatically detects an original coding board connected to the PC. *After installing the driver on some versions of Windows OS, a mandatory system reboot is required for the virtual serial port driver to work correctly.* Please, follow our documentation: [SFPTotal Wiki](https://sfptotal.io/en/wiki/SFPTotal_Documentation). ### Activation key SFPTotal Whistle is supplied with pre-loaded activation key and ready for work when connected ### Coding optical transceivers ###### Coding unlocked transceivers The most optical transceivers with unlocked memory contain EEPROM chip such as 24C02 which stores informtaion about transceiver form factor, wavelength, transmission technology, speedrate, encoding type, vendor name, serial number and etc. That solution presented in a lot of cheap gigabit transceivers and DAC which don't support DDM function. The memory of those transceivers can be rewritten normally without any restriction from the transceiver. In such transceivers, as a rule, only the A0H page is available for reading, but reading the A2H page returns an error. You need just import a vendor code into the software or edit a generic code from the module, then press &lt;Write&gt; button to write to such modules. The coding board returns &lt;WRITE OK &gt; response when the write successfuly done. You can use the transceiver with updated vendor code after that! ###### Coding write-protected transceivers In accordance with the MSA SFF-8472 specification, DDM capable transceivers can be write protected and require entry a 4 byte password to unlock the memory before write any change. Such modules operate under the control of a special microcontroller, which emulates an EEPROM chip and provides write functionality in I2C slave mode. Also, it can work as a buffer for EEPROM and control Write Protect pin of the memory chip. An attempt to write to such a transceiver without a password or with an incorrect password returns an error - <WRITE FAIL>. The software SFPTotal Wizard supports the function to change a write settings and makes able to set a password value to unlock the memory before saving new changes. In addition, the software allows to create complex programming algorithms in the form of scripts. It makes possible to code transceivers that require factory coding method what is incompatible with specification MSA. ## SFPTotal OSFP Board Source: [https://sfptotal.io/en/products/sfptotal-osfp-board](https://sfptotal.io/en/products/sfptotal-osfp-board) ### Programmer SFPTotal OSFP Board SKU: SFPT-O USD 1,280.00 including Free International shipping [Add to shopping cart](https://sfptotal.io/en/customer/shopping-cart) A device for programming the memory of 400G and 800G OSFP transceivers for artificial intelligence (AI) networks. The OSFP Board programmer has an OSFP port for connecting OSFP-IHS and OSFP-RHS transceivers, including AOC and DAC cables. Fully compatible with SFPTotal Wizard software. The kit includes an OSFP Board programmer, a USB type C cable for connection to a PC and a user guide. Model OSFP Board rev. 1.0 or above Compatibility OSFP-RHS, OSFP-IHS PC connection USB type C Kit includes OSFP Board programmer USB type C cable User guide Dimensions, mm 107 x 85 x 17 Warranty 36 months - 400G OSFP - 800G OSFP - OSFP-IHS - OSFP-RHS - AOC - DAC In stock [![SFPTotal OSFP Board](https://sfptotal.io/images/products/gallery-previews/osfp-board-01-640-2ffb31cb7c9c)](https://sfptotal.io/images/products/gallery/osfp-board/sfptotal-osfp-board-04.jpg) [![SFPTotal OSFP Board](https://sfptotal.io/images/products/gallery-previews/osfp-board-02-160-6f37d41fa6b0)](https://sfptotal.io/images/products/gallery/osfp-board/sfptotal-osfp-board-01.jpg) [![SFPTotal OSFP Board](https://sfptotal.io/images/products/gallery-previews/osfp-board-03-160-10559c8e79e8)](https://sfptotal.io/images/products/gallery/osfp-board/sfptotal-osfp-board-02.jpg) [![SFPTotal OSFP Board](https://sfptotal.io/images/products/gallery-previews/osfp-board-04-160-7376f641f238)](https://sfptotal.io/images/products/gallery/osfp-board/sfptotal-osfp-board-03.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) ### Overview The SFPTotal OSFP Board programmer can reprogram OSFP-RHS and OSFP-IHS transceivers, AOC and DAC cables. Its hardware platform is based on SFPTotal Mini with an OSFP port modification for connecting OSFP transceivers. Additional power management circuits and input/output port controls provide OSFP support. The SFPTotal command protocol provides access to additional transceiver address spaces with different memory structures and layouts. SFPTotal OSFP Board connects to a computer through USB, which supplies power and controls the device. An external power supply connector is provided for high-power transceivers. ### Main features Compared with alternative products, the SFPTotal OSFP Board programmer offers the following advantages: - Hardware support for OSFP-RHS and OSFP-IHS transceivers - Support for different transceiver form factors on one device - No restriction to modules from a single manufacturer - Access to all transceiver address spaces - Programming modules with non-standard programming logic - Hardware password search - User-friendly software interface - Free technical support from the SFPTotal team ### Application The programmer can be used for the following tasks: - Reprogramming optical and copper transceivers - Programming active optical and twinaxial cables - Ensuring compatibility with network equipment from different manufacturers - Reprogramming the memory of write-protected transceivers - Changing PHY controller settings - Rebranding OEM transceivers ### Quick start Connect the programmer to your computer using the supplied USB cable. The operating system detects a new device on the first connection. Before using the programmer: 1. Install the device driver. 2. Download [SFPTotal Wizard](https://sfptotal.io/en/software). The device uses the standard virtual serial port driver included with Windows 10 and later. SFPTotal Wizard provides an interface for editing, reading and writing firmware in transceiver memory. No initial configuration is required: SFPTotal Wizard automatically detects a programmer connected to the PC. Some Windows versions require a restart after driver installation for the virtual serial port driver to work correctly. [Read the full documentation](https://sfptotal.io/en/wiki/SFPTotal_Documentation). ### Activation key The manufacturer supplies the device in an unactivated mode with limited functionality. You can test device operation, but writing to transceiver memory remains blocked until activation. To enable full functionality, activate the device by writing an activation key to its memory. Owners of original devices can register on the website and issue an activation key in the My devices section of their account. When ordering through the website, the device serial number and activation key become available in the account automatically. ### Warranty and service The device is covered by the manufacturer's standard warranty policy. The programmer warranty is 36 months from the date of first sale. Free technical support and free repairs are provided during this period, subject to compliance with the operating conditions. [Read the full warranty and service policy](https://sfptotal.io/en/warranty). ## SFPTotal E>olution Source: [https://sfptotal.io/en/products/sfptotal-evolution](https://sfptotal.io/en/products/sfptotal-evolution) ### Programmer SFPTotal E series SKU: SFPT-E USD 1,980.00 including Free International shipping [Add to shopping cart](https://sfptotal.io/en/customer/shopping-cart) A device for programming the memory of SFP, DSFP, QSFP, QSFP-DD and OSFP transceivers, including 1.25G SFP, 10G SFP+, 25G SFP28, 40G QSFP+, 100G QSFP28, 200G QSFP56, 400G QSFP112, 200G/400G/800G QSFP-DD, 50G DSFP, 100G DSFP, 400G OSFP, 800G OSFP, DAC, AOC and SFP RJ45. The QSFP-DD port supports 200G/400G/800G QSFP-DD transceivers and is backward compatible with 400G QSFP112, 200G QSFP56, 100G QSFP28 and 40G QSFP+ modules. The DSFP/SFP port supports DSFP, SFP28, SFP+ and SFP modules, while the OSFP port supports 400G/800G transceivers used in storage and artificial intelligence (AI) systems. The programmer uses a proprietary command protocol and is fully compatible with the official SFPTotal Wizard software. The kit includes an E series programmer board, a USB type C cable for connection to a computer and a user guide. Model SFPT-E rev. 1.2 or above Compatibility OSFP, QSFP-DD, QSFP112, QSFP, DSFP, SFP PC connection USB type C cable Kit includes E series programmer USB type C cable User guide Dimensions, mm 107 x 107 x 15 Warranty 36 months - 100BASE SFP - SFP RJ45 - 1.25G SFP - 2/4/8/16/32G FC - 10G SFP+ - 25G SFP28 - SFP OLT PON - CWDM/DWDM - SONET/SDH - 50G DSFP - 100G DSFP - 40G QSFP+ - 50G BiDi QSFP28 - 100G QSFP28 - 200G QSFP56 - 400G QSFP112 - 200G QSFP-DD - 400G QSFP-DD - 800G QSFP-DD - 400G OSFP - 800G OSFP - OSFP-IHS - OSFP-RHS - AOC - DAC In stock [![SFPTotal E>olution](https://sfptotal.io/images/products/gallery-previews/evolution-01-640-3a13fa66bc06)](https://sfptotal.io/images/products/gallery/evolution/sfptotal-evolution-02.jpg) [![SFPTotal E>olution](https://sfptotal.io/images/products/gallery-previews/evolution-02-160-d3db7cc5d488)](https://sfptotal.io/images/products/gallery/evolution/sfptotal-evolution-01.jpg) [![SFPTotal E>olution](https://sfptotal.io/images/products/gallery-previews/evolution-03-160-53347570fc04)](https://sfptotal.io/images/products/gallery/evolution/sfptotal-evolution-04.jpg) [![SFPTotal E>olution](https://sfptotal.io/images/products/gallery-previews/evolution-04-160-ee388ca90a9e)](https://sfptotal.io/images/products/gallery/evolution/sfptotal-evolution-03.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) - [Enclosure model for 3D printing](https://sfptotal.io/download/SFPT-E__3D.zip) ### Overview The SFPTotal E>olution team researches compatibility and use of high-speed optical transceivers with network switching equipment in fibre-optic communications, data storage and artificial intelligence systems, and develops new solutions for testing and coding optical transceivers. The SFPTotal E series programmer supports memory programming of 400G QSFP112, 200G/400G/800G QSFP-DD and 400G/800G OSFP transceivers, including OSFP-IHS and OSFP-RHS. It also supports DSFP, SFP, SFP+, SFP28, QSFP+, QSFP28, QSFP56, SFP RJ45 and compatible AOC/DAC cables. The device supports password-based programming of write-protected transceivers in accordance with MSA SFF-8472, SFF-8636, CMIS 4.0 and CMIS 5.0. Script-based writing also supports modules with complex proprietary manufacturer algorithms and hardware write protection. The device has DSFP, QSFP-DD and OSFP ports with metal cages, a USB connector for a PC, LED indicators, jumpers controlling power and signal states, a jack connector for an external 5V 2A DC power supply and a connector for a laboratory power supply. The programmer connects to a computer through a USB type C cable, which provides basic power and device control. Its hardware platform uses an ATMEGA32U4 microcontroller running the embedded SFPTOTAL programmer firmware. An external power adapter is recommended when working with Power Class 4 or higher transceivers and when disabling low-power mode. ### Main features Compared with alternative products, the SFPTotal E series programmer offers the following advantages: - Hardware support for OSFP, QSFP-DD, QSFP112 and DSFP/SFP transceivers - Support for different form factors and speeds from 1.25G to 800G on one device - No restriction to modules from a single manufacturer - Access to all transceiver address spaces - Programming modules with non-standard protection and programming logic using SFPTotal command protocol scripts - Hardware password search - User-friendly software interface - Free technical support from the SFPTotal team ### Application The programmer can be used for the following tasks: - Reprogramming optical and copper transceivers - Programming active optical and twinaxial cables - Ensuring compatibility with network equipment from different manufacturers - Reprogramming the memory of write-protected transceivers - Changing PHY controller settings - Rebranding OEM transceivers ### Quick start Connect the programmer to your computer using the supplied USB cable. The operating system detects a new device on the first connection. Before using the programmer: 1. Install the device driver. 2. Download [SFPTotal Wizard](https://sfptotal.io/en/software). The device uses the standard virtual serial port driver included with Windows 10 and later. SFPTotal Wizard provides an interface for editing, reading and writing firmware in transceiver memory. No initial configuration is required: SFPTotal Wizard automatically detects a programmer connected to the PC. Some Windows versions require a restart after driver installation for the virtual serial port driver to work correctly. [Read the full documentation](https://sfptotal.io/en/wiki/SFPTotal_Documentation). ### Activation key The manufacturer supplies the device in an unactivated mode with limited functionality. You can test device operation, but writing to transceiver memory remains blocked until activation. To enable full functionality, activate the device by writing an activation key to its memory. Owners of original devices can register on the website and issue an activation key in the My devices section of their account. When ordering through the website, the device serial number and activation key become available in the account automatically. ### Warranty and service The device is covered by the manufacturer's standard warranty policy. The programmer warranty is 36 months from the date of first sale. Free technical support and free repairs are provided during this period, subject to compliance with the operating conditions. [Read the full warranty and service policy](https://sfptotal.io/en/warranty). ## SFPTotal Plus (archived) Source: [https://sfptotal.io/en/products/sfptotal-plus](https://sfptotal.io/en/products/sfptotal-plus) ### Programmer SFPTotal Plus SKU: SFPT-P Outdated hardware revision [Go to new revision](https://sfptotal.io/en/products/sfptotal-plus-new) Universal programmer for coding fiber optic transceivers GBIC, SFP, SFP+, XFP, QSFP form factors, including SFP28 and QSFP28. The device is full-compatible with official software SFPTotal Wizard. The kit includes a programmer board Plus series and micro USB cable for PC connection. - 100BASE SFP - 1/10G SFP RJ45 - 1G SFP - 2/4/8/16G FC - 10G SFP+ - 25G SFP28 - CWDM/DWDM - SONET/SDH - GBIC - XFP - 40G QSFP+ - 50G BiDi QSFP28 - 100G QSFP28 - AOC - DAC Model Plus rev. 1.2 or above Compatibility SFP, SFP+, XFP, QSFP, QSFP28, GBIC PC connection USB 2.0 Kit includes Programmer board Plus HW 1.2 series, micro USB cable Size, mm 152 x 109 x 15 Warranty 12 months [![SFPTotal Plus](https://sfptotal.io/images/products/gallery-previews/plus-01-640-0eb180e3eb97)](https://sfptotal.io/images/products/gallery/plus/sfptotal-plus.png) [![SFPTotal Plus](https://sfptotal.io/images/products/gallery-previews/plus-02-160-d5b01204679c)](https://sfptotal.io/images/products/gallery/plus/sfptotal-plus-2.jpg) [![SFPTotal Plus](https://sfptotal.io/images/products/gallery-previews/plus-03-160-89cfc2241d72)](https://sfptotal.io/images/products/gallery/plus/sfptotal-plus-1.jpg) [![SFPTotal Plus](https://sfptotal.io/images/products/gallery-previews/plus-04-160-4c9901e5373c)](https://sfptotal.io/images/products/gallery/plus/sfptotal-plus-3.jpg) - [User guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation) - [Software SFPTotal Wizard](https://sfptotal.io/en/software) ## SFPTotal Wizard and drivers Source: [https://sfptotal.io/en/software](https://sfptotal.io/en/software) ### SFPTotal Wizard Official software Download SFPTotal Wizard to read, edit and write the memory of optical transceivers using SFPTotal programmers. Below you will find instructions for installing the software, connecting your device and installing its driver. The software is available free of charge. You can use SFPTotal Wizard to edit transceiver firmware files even without a connected SFPTotal programmer. [Download SFPTotal Wizard for Windows](https://sfptotal.io/download/1.0.5.7/SFPTotal%20Wizard.exe) Compatible with Windows 7 and later. [Version history and changelog](https://sfptotal.io/en/software-versions) [![Editing SFP EEPROM data in the SFPTotal Wizard CODE TABLE tab](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-01.png)](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-01.png) [![Configuring the SFP write password in SFPTotal Wizard Password settings](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-04.png)](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-04.png) [![SFP transceiver parameters in the SFPTotal Wizard CODE DETAILS tab](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-02.png)](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-02.png) [![SFP digital diagnostic monitoring values and Warning and Alarm thresholds in SFPTotal Wizard](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-03.png)](https://sfptotal.io/images/products/sfptotal-wizard/sfptotal-wizard-03.png) ### Key software features SFPTotal Wizard provides the following features: - Read and write transceiver memory - Automatically verify checksums - Import firmware from a file and export it to a file - Access the entire transceiver memory address space - Decode transceiver parameters according to MSA specifications - Configure transceiver parameters using configuration bits - Program write-protected transceivers - Search for passwords for protected transceivers - Search for passwords using a dictionary - Compare firmware byte by byte - Generate and write firmware in batches - Automate programming with scripts - Write firmware with automatic serial number increments - Set the channel of DWDM SFP+ tunable transceivers - Read diagnostic information in real time ### Device driver installation SFPTotal programmers use a virtual serial port driver included in Windows 10 and later. Windows normally installs the driver automatically when you first connect the device to your computer. Connect the programmer to your computer and wait for the driver installation to finish. Once installed, the device should appear under Ports (COM & LPT) in Windows Device Manager, with an assigned COM port number. If the driver is missing or your system has special policies for installing new devices, follow the manual driver installation instructions below. #### Manually installing the SFPTotal device driver Download and install the appropriate driver for your programmer. Windows 8 and later require digitally signed drivers. The supplied driver packages include a self-signed driver certificate. Download the driver and follow the installation instructions below. - [Driver for SFPTotal OSFP Board / E>olution](https://sfptotal.io/download/Drivers/SFPTotal%20Driver.zip) - [Driver for SFPTotal Mini / Plus New / Plus X](https://sfptotal.io/download/Drivers/SFPTotal%20Driver.zip) - [Driver for SFPTotal Whistle](https://sfptotal.io/download/Drivers/CDM212364_Setup.zip) - [Driver for SFPTotal PG Series](https://sfptotal.io/download/Drivers/Drivers_SFPTotal_WinXP_Seven.zip) Legacy device There are two installation options: temporarily disable driver signature enforcement at system startup, or add the SFPTotal certificate to the Windows certificate store before installing the driver. The downloaded archive contains the certificate, the drivers signed with it, and a utility for adding the certificate to the local certificate store. 1. Extract the driver archive to a new folder. 2. Open Command Prompt (cmd.exe) as an administrator and change to the folder containing the extracted driver files. For example: ``` cd "C:\SFPTotal-Driver" ``` 3. Run the following commands to add the SFPTotal certificate to the local machine's Trusted Root Certification Authorities and Trusted Publishers stores: ``` .\cer\certmgr.exe -add .\cer\SFPTotalTeam.cer -s -r localMachine ROOT .\cer\certmgr.exe -add .\cer\SFPTotalTeam.cer -s -r localMachine TRUSTEDPUBLISHER ``` 4. Run the following command to add the driver to Windows: ``` pnputil -i -a "SFPTotal Device.inf" ``` On some versions of Windows, you must restart the computer before the virtual serial port driver works correctly. After adding the driver, connect the programmer to your computer with a USB cable. Windows should install the device automatically. ![SFPTotal programmer and its COM port in Windows Device Manager](https://sfptotal.io/images/instructions/sfptotal_device_manager.png) #### Installing the SFPTotal Whistle driver Before connecting SFPTotal Whistle for the first time, install the FTDI Virtual COM Port drivers. Installation package: [CDM212364\_Setup.zip](https://sfptotal.io/download/Drivers/CDM212364_Setup.zip) Connect the device directly to a USB 2.0 Type-A port without adapters or extension cables. The LED on the underside of the board lights up when the device is connected correctly. If the FTDI drivers are installed correctly, Windows should automatically detect the device and install its driver when you connect it. After installation, the device appears in Windows Device Manager as USB Serial Port, together with its COM port number, for example COM244. Use this port number when configuring the connection in SFPTotal Wizard. ### User guide Before using the programmer and software, read the operating manual supplied with your device. Visit the knowledge base to learn more about the features and capabilities of SFPTotal Wizard and your SFPTotal programmer. [SFPTotal documentation](https://sfptotal.io/en/wiki/SFPTotal_Documentation) ## SFPTotal Wizard version history Source: [https://sfptotal.io/en/software-versions](https://sfptotal.io/en/software-versions) ### SFPTotal Wizard version 1.0.6.6 3 February 2026 SHA-256: d21d22ca765f0b9455e1758dccaab6db7ddb66a52308d7836104bfb62a0b908f [Download SFPTotal Wizard 1.0.6.6 for Windows 11](https://sfptotal.io/download/1.0.6.6/SFPTotal%20Wizard.exe) #### Changelog - Important security updates - Updated the protocol version used to connect to the SFPTotal Labs server ### SFPTotal Wizard version 1.0.6.4 4 November 2025 SHA-256: ddf97d61c38e9fbeee6035101a8ba324c161810812ba677bdf774c9bca1920a5 [Download SFPTotal Wizard 1.0.6.4 for Windows 11](https://sfptotal.io/download/1.0.6.4/SFPTotal%20Wizard.exe) #### Changelog - Improved scripting functionality - Fixed an issue that caused the main window to freeze - Fixed QSFP DDM reading - Applied hotfixes ### SFPTotal Wizard version 1.0.6.3 8 October 2025 SHA-256: 06302ef661fc27449b54d80e4d7d89658c0ca9024ed3d26efa32ba0012114ddd [Download SFPTotal Wizard 1.0.6.3 for Windows 11](https://sfptotal.io/download/1.0.6.3/SFPTotal%20Wizard.exe) #### Changelog - Added support for SFP-DD transceivers - Added support for the new SFPTotal Whistle revision - Improved scripting functionality - Added a serial number increment function - Added support for reading a custom page - Fixed a timer issue - Applied hotfixes ### SFPTotal Wizard version 1.0.6.1 11 December 2024 SHA-256: 8c4100ea8d7d69e93853f2c84a127dffa49b448964f51cd03a881ac83ed9e5f0 [Download SFPTotal Wizard 1.0.6.1 for Windows 10](https://sfptotal.io/download/1.0.6.1/SFPTotal%20Wizard.exe) #### Changelog - Added DDM reading for QSFP-DD and OSFP transceivers - Applied hotfixes ### SFPTotal Wizard version 1.0.5.9 20 November 2024 SHA-256: 316b36c11f08c982404727eb372d433a84e81be89eef1d28fb7c9a3945b9481a [Download SFPTotal Wizard 1.0.5.9 for Windows 10](https://sfptotal.io/download/1.0.5.9/SFPTotal%20Wizard.exe) #### Changelog - Added CC\_DMI checksum validation - Added pasting code from the clipboard into the code comparator - Added a function to check which additional pages a transceiver supports - Added support for OSFP CMIS 5.0 transceivers - Fixed a Vendor OUI issue - Fixed the display of the transmitter wavelength - Fixed the offset parameter in the calculator - Fixed DDM reading through SFPTotal Whistle ### SFPTotal Wizard version 1.0.5.7 17 October 2022 SHA-256: 985b8a2b3779fff77aa91da68e555802e922644e6e3571c0ed9ef45a27440db4 [Download SFPTotal Wizard 1.0.5.7 for Windows 10](https://sfptotal.io/download/1.0.5.7/SFPTotal%20Wizard.exe) #### Changelog - Applied hotfixes for issues when updating from version 1.0.5.5 - Improved the backup function - Added the Ctrl+B shortcut to save a transceiver memory backup - Added the Tools - Open backups folder menu command - Improved the code selection controls in the editor - Fixed minor issues with code selection - Fixed the display of the current option states in General settings ### SFPTotal Wizard version 1.0.5.4 31 August 2022 SHA-256: e39857270a8549a715c5dbace4bf6ef48cdccf51d402d130b7814e58f507c4f5 [Download SFPTotal Wizard 1.0.5.4 for Windows 10](https://sfptotal.io/download/1.0.5.4/SFPTotal%20Wizard.exe) #### Changelog - Added selection, copying, pasting and clearing of code fragments in the HEX editor - Added shortcuts for selecting, copying, pasting and clearing selected code - Fixed reading the threshold table through SFPTotal Whistle - Fixed a checksum calculator issue - Added a command to set a value in the HEX editor - Added loading of DDM snapshots for viewing without a connected transceiver - Added shortcuts for switching the module type (Ctrl+1, Ctrl+2... Ctrl+5) - Fixed minor issues ### SFPTotal Wizard version 1.0.5.3 13 December 2021 SHA-256: c204774674aed183903d539749e59c9227108a6d706a36e1a5c402d5d81faf72 [Download SFPTotal Wizard 1.0.5.3 for Windows 7](https://sfptotal.io/download/1.0.5.3/SFPTotal%20Wizard.exe) #### Changelog - Added reading of the channel setting for SFP+ DWDM tunable transceivers - Added buffer variables in scripts - Added an interface for displaying STATUS registers - Added single-byte read and write operations - Added a script command to change the backup directory - Fixed minor issues ### SFPTotal Wizard version 1.0.5.1 10 September 2021 SHA-256: f3899322e67c250a6fef2a2ceaae401698410a2f75ab8b894ad8a2cb2ad46d6f [Download SFPTotal Wizard 1.0.5.1 for Windows 7](https://sfptotal.io/download/1.0.5.1/SFPTotal%20Wizard.exe) #### Changelog - Added DDM reading for SFP, XFP and QSFP transceivers - Corrected and extended the value calculation formulas - Added saving of used passwords within the current session - Restored batch code loading with script support - Added support for the QSFP-DD CMIS 5.0 code format - Added linking of an SFPTotal Labs account in the application settings - Added code change tracking in the editor - Added keyboard shortcuts for the main operations - Fixed minor issues ### SFPTotal Wizard version 1.0.4.9 29 May 2019 SHA-256: f0ded3e52416cfcefd62bf44e324d128eaf40420563e0fbc8c9ecba65bf32304 [Download SFPTotal Wizard 1.0.4.9 for Windows 7](https://sfptotal.io/download/1.0.4.9/SFPTotal%20Wizard.exe) #### Changelog - Added transceiver memory backup before reading or writing changes - Fixed setting read/write parameters through Tools - General settings for newer board revisions - Automatically updates password entry parameters when the module type changes - SFPTotal Wizard can be set as the default application for opening .bin files - Fixed an error handling popup issue at application startup - Added a changelog window when updating to a new version ### SFPTotal Wizard version 1.0.3.5 24 August 2017 SHA-256: ac2db59b0473b56fde3ac0fa3104794cd1d793847f0a57a22b0849f9588a90ce [Download SFPTotal Wizard 1.0.3.5 for Windows XP](https://sfptotal.io/download/1.0.3.5/SFPTotal%20Wizard.exe) #### Features Stable software release with Windows XP support. This version is recommended for computers with older hardware and software where the operating system cannot be upgraded. Older software versions are no longer available for download because their operating systems are obsolete and officially unsupported. If you need a specific software build, please contact [Technical support](https://sfptotal.io/en/contacts). ### Drivers for SFPTotal devices [Driver for SFPTotal OSFP Board / E>olution](https://sfptotal.io/download/Drivers/SFPTotal%20Driver.zip) [Driver for SFPTotal Mini/Plus New/Plus X](https://sfptotal.io/download/Drivers/SFPTotal%20Driver.zip) [Driver for SFPTotal Whistle](https://sfptotal.io/download/Drivers/CDM212364_Setup.zip) #### Legacy devices - [Driver for SFPTotal PG Series](https://sfptotal.io/download/Drivers/Drivers_SFPTotal_WinXP_Seven.zip) ## Device activation Source: [https://sfptotal.io/en/device-activation](https://sfptotal.io/en/device-activation) ### Activating an SFPTotal programmer To control unauthorized use and support the warranty policy, SFPTOTAL programmers are supplied in an unactivated mode with limited functionality. In this mode you can test device operation, but writing to transceiver memory remains blocked until the device is activated. To enable full functionality, issue an activation key and enter it into the device. ### Where can I find the activation key? The activation key is unique to each programmer and becomes available in the My devices section of your website account after completing the purchase. If you purchased the device through another channel, register on the website and add the programmer serial number to your account in My devices to obtain the corresponding key. [My devices](https://sfptotal.io/en/customer/devices) ### How do I enter the activation key? In the official software, run the Write to transceiver memory operation, even if no transceiver is connected to the port. On the first write attempt, the device returns an error and prompts for an activation key. QERR:DEMO Enter the activation key in the prompt. After successful activation, the device reports its updated status and device information in the operation history. Activation is now complete. ACTIVE Example operation history confirming activation: ``` SFPTotal Plus (c) 2020 HW: 1.2 SW: 1.3.3 SN: SFPT-P121904301 ACTIVE ``` Device activation is performed once. The key is stored permanently in device memory and does not bind the programmer to a particular computer. You do not need to repeat activation when using the programmer with another PC. ### Where can I find the key for SFPTotal Whistle? SFPTotal Whistle programmers are supplied with a key already stored in device memory. An Internet connection is required to complete activation in SFPTotal Wizard. SFPTotal Whistle activation must be confirmed on each computer when it is used for the first time. ## How to order Source: [https://sfptotal.io/en/buy](https://sfptotal.io/en/buy) ### How to buy? ### From choosing a device to placing an order 1. #### Choose a product Add the required items to your shopping cart. 2. #### Check your cart Check the products and quantities before checkout. 3. #### Enter your details Register and provide your contact and delivery details. 4. #### Place your order Review the order details and submit the order. For wholesale purchases, contact the Sales Department to confirm stock and supply terms. ### Single order To place retail orders and purchase goods in quantities not exceeding 10 pieces of each heading, please use the interface of our online shop. Select the desired item on the product page and add it to the shopping cart. Open the shopping cart to check the list of products and checkout. To place an order, you will need to register and specify your details necessary for the subsequent processing of the order and the delivery of the paid goods. ### Regular customers Please, contact the sales department before placing orders for a wholesale purchase to clarify the availability of the required quantity of goods in stock, as well as discuss the terms of delivery and conclude a contract for the supply of goods. ### Commercial partnership We pay special attention to companies that not only resell solutions, but are also regular users of SFPTotal products and take an active part in improving the functions and capabilities of the software. Companies that have repeatedly purchase our products for own commercial use may be provided with special purchase conditions. Please, contact Sales department for details. ![Illustration](https://sfptotal.io/images/info/order-v4.png) ## Payment methods Source: [https://sfptotal.io/en/payment-methods](https://sfptotal.io/en/payment-methods) ### Payment Methods ### Choose a payment method for your order 1. #### Online order Choose your preferred payment method when placing an order. 2. #### Credit / debit card We accept credit and debit bank cards 3. #### PayPal PayPal is one of the most common online payment methods. This is a safe and easy way to pay. 4. #### Wire Transfer To pay by wire transfer, please contact the Sales Department for an invoice, bank details and payment instructions. 5. #### Cryptocurrency Some SFPTotal solutions suppliers can accept payment in Bitcoin, Ethereum, USDT and USDC. See the payment conditions below. ### Pay with Credit / Debit Card We accept credit and debit bank cards. - Visa (including Electron) - Mastercard and Maestro - MIR - JCB The user needs to know the card number, its expiration date, and its CVC or CVV. We do not add any credit card fees. However, the issuing bank may charge a transaction fee. You can contact your bank directly if you require further information on this. **Note:** Orders with a credit card can only be completed by the cardholder. For security reasons, credit / debit card payments can only be made using online orders. We have strict pre-authorization conditions to protect against card misuse and protect the privacy of customer data. ### Pay with Paypal **PayPal is one of the most common online payment methods. This is a safe and easy way to pay.** Select PayPal as your payment method when placing an order. You will then be redirected to PayPal via a secure online connection, where you can complete the payment. You can make payments by credit card, debit card, or from your PayPal account balance. Under certain circumstances, your payment may need to be reviewed or further processed. The process may take 3-5 business days, and your order will remain on hold during this period. You can check the status of the order in a few days. If you have any questions, please contact us. ### Pay by Wire Transfer To pay by wire transfer, please contact the Sales Department for an invoice, bank details and payment instructions. Please confirm the payment currency and any applicable bank fees with the Sales Department before sending your payment. ### Pay with cryptocurrency Some SFPTotal solutions suppliers can accept payment in Bitcoin, Ethereum, USDT and USDC. The terms of payment for an order with cryptocurrency may include additional costs in the form of a conversion fee. Please check the conditions with the Sales Department. ![Illustration](https://sfptotal.io/images/info/payment-v4.png) ## Shipping and delivery Source: [https://sfptotal.io/en/delivery-options](https://sfptotal.io/en/delivery-options) ### Shipping and delivery ### Delivery of your order 1. #### Courier services The orders send with DHL, FedEx, UPS, EMS courier services. 2. #### Shipping fee The shipping fee is included to the goods price. 3. #### Import duties Please, note: Import duties may be charged in accordance with the customs regulations and laws of destination country. Please, contact Customer service if you have any question about delivery options. The orders send with DHL, FedEx, UPS, EMS courier services. The shipping fee is included to the goods price. **Please, note: Import duties may be charged in accordance with the customs regulations and laws of destination country.** Please, contact Customer service if you have any question about delivery options. ![Illustration](https://sfptotal.io/images/info/delivery-v4.png) ## Warranty policy Source: [https://sfptotal.io/en/warranty](https://sfptotal.io/en/warranty) ### Warranty policy ### The standard warranty for the device is 36 months from the date of first sale. 1. #### Documentation Read the documentation and warranty conditions before using the device. 2. #### Technical support Free technical support is included during the warranty period, subject to the operating conditions. 3. #### Purchase documents Keep the warranty card and proof of purchase for warranty repairs. 4. #### Repair Warranty repairs cover defects in materials or workmanship under the conditions below. Full warranty conditions and exclusions are listed below. To avoid unnecessary inconvenience, we recommend that you carefully read the documentation and the warranty section before using the device. 1. The standard warranty for the device is 36 months from the date of first sale. During the specified period, free technical support and free repair of the product are guaranteed, subject to the Buyer's compliance with the operating conditions. 2. The device and software presented on the official website https://sfptotal.io are supplied as is, under the terms of the License Agreement. The Manufacturer reserves the right to make any changes to the device or software without notifying the Buyer. If the device is obsolete or no longer in production, it will not be replaced with a new device. 3. This warranty entitles the Purchaser to repair the device free of charge in the event of defects in materials or workmanship. 4. A device is accepted for warranty repair if it is necessary to have correctly executed documents: a warranty card indicating the serial number and model of the device, the date of sale, the stamp of the trade organization and the Buyer's signature, as well as documents certifying the purchase (cash receipt, invoice). 5. This warranty does not cover: - periodic maintenance, repair or replacement of components and accessories; - use of non-original adapters or other accessories; - any mechanical damage, including wear of the printed circuit board; - defects resulting from any transportation of the device; - defects resulting from improper or careless use, as well as in the event of force majeure (including, but not limited to) accidents, natural disasters, fires, accidents, insects, foreign liquids, chemicals or other substances, radiation, flooding , vibration, improper ventilation, exposure to high or low temperatures, fluctuations, voltages, electrostatic discharges, including improper grounding, and other types of external influences and influences. 6. The Manufacturer (or the Seller) is not responsible for any damage or loss associated with the use of the device or other devices connected to it, including economic and non-material losses, loss of profits, loss of income, loss of data, equipment downtime and lost user time, as well as direct, indirect, incidental or consequential losses and damages. ![Illustration](https://sfptotal.io/images/info/warranty-v4.png) ## Contact SFPTotal Source: [https://sfptotal.io/en/contacts](https://sfptotal.io/en/contacts) ### Contact Us ### Sales and common questions - [support@sfptotal.io](mailto:support@sfptotal.io) #### Technical support - [tech@sfptotal.io](mailto:tech@sfptotal.io) #### Want to call? - [+86 (195) 0183-4050](tel:+8619501834050) ### About SFPTOTAL™ SFPTotal Team has begun an activity in 2012 year and specialized on researches compatibility issues between fiber optical transceivers and network switching equipment popular models and brands. SFPTotal products presented variouse coding board designed to program optical transceivers different form factors. The team developes and support software solutions for coding tools and the database of vendor codes, tests transceivers and collect passwords for coding write-protected modules maden different manufacturers. Please, contact Sales Department to get more information about the products, purchase and shipping options. If you would like to get more specific information about the technical capabilities of our programmers or you need to solve a specific compatibility problems, please, contact our Technical Support with details about your issue, partnumbers and configuration of used network equipment. **Working hours** Monday - Friday, 10am — 6pm Timezone: UTC+8 ### SFPTotal in numbers 25K+ codes in database 450+ passwords found 2500+ customers worldwide 82 countries covered ## Consent to personal data processing Source: [https://sfptotal.io/en/info/personal-data-policy](https://sfptotal.io/en/info/personal-data-policy) ### Consent to the processing of personal data --- By providing his personal data, the Buyer agrees to the processing, storage and use of his personal data on the basis of Federal Law No. 152 "On Personal Data" dated July 27, 2006 for the following purposes: - User registration on the site - Implementation of customer support - Receipt by the User of information about marketing events - Fulfillment by the Seller of obligations to the Buyer - Conducting audits and other internal studies in order to improve the quality of services provided. Personal data means any personal information that allows you to identify the Buyer, such as: - Full Name - Contact phone number - Email address - Shipping address Buyers' personal data is stored exclusively on electronic media and processed using automated systems, except when non-automated processing of personal data is necessary in connection with the fulfillment of legal requirements. The seller undertakes not to transfer the received personal data to third parties, except for the following cases: - At the request of the authorized state authorities of the Russian Federation only on the grounds and in the manner established by the legislation of the Russian Federation. - Strategic partners who work with the Seller to provide products and services, or those who help the Seller sell products and services to consumers. We provide third parties with the minimum amount of personal data necessary only to provide the required service or complete the required transaction. The Seller reserves the right to make changes unilaterally to these rules, provided that the changes do not contradict the current legislation of the Russian Federation. Changes to the terms of these rules come into force after they are published on the Site. ## User agreement Source: [https://sfptotal.io/en/info/terms-and-conditions](https://sfptotal.io/en/info/terms-and-conditions) ### User Agreement --- This Agreement defines the conditions for the Users to use the materials and services of the site https://sfptotal.io (hereinafter referred to as the "Site"). ### 1\. General conditions 1.1. The use of materials and services of the Site is governed by the norms of the current legislation of the Russian Federation. 1.2. This Agreement is a public offer. By accessing the materials of the Site, the User is considered to have acceded to this Agreement. 1.3. The Site Administration has the right to unilaterally change the terms of this Agreement at any time. Such changes come into force after 3 (Three) days from the date of posting the new version of the Agreement on the website. If the User does not agree with the changes made, he is obliged to refuse access to the Site, stop using the materials and services of the Site. ### 2\. Obligations of the User 2.1. The User agrees not to take actions that may be considered as violating Russian law or international law, including in the field of intellectual property, copyright and / or related rights, as well as any actions that lead or may lead to a violation of the normal operation of the Site and services Site. 2.2. The use of the materials of the Site without the consent of the copyright holders is not allowed (Article 1270 of the Civil Code of the Russian Federation). For the legitimate use of the materials of the Site, it is necessary to conclude license agreements (obtain licenses) from the Copyright Holders. 2.3. When citing materials from the Site, including copyrighted works, a link to the Site is obligatory (subparagraph 1 of paragraph 1 of Article 1274 of the Civil Code of the Russian Federation). 2.4. Comments and other entries of the User on the Site should not conflict with the requirements of the legislation of the Russian Federation and generally accepted norms of morality and ethics. 2.5. The user is warned that the Site Administration is not responsible for visiting and using external resources, links to which may be contained on the site. 2.6. The User agrees that the Site Administration is not responsible and has no direct or indirect obligations to the User in connection with any possible or arising losses or damages associated with any content of the Site, copyright registration and information about such registration, goods or services, available on or received through external sites or resources or other contacts of the User that he entered using the information posted on the Site or links to external resources. 2.7. The User accepts the provision that all materials and services of the Site or any part of them may be accompanied by advertising. The User agrees that the Site Administration does not bear any responsibility and does not have any obligations in connection with such advertising. ### 3\. Other terms 3.1. All possible disputes arising from this Agreement or related to it shall be resolved in accordance with the current legislation of the Russian Federation. 3.2. Nothing in the Agreement can be understood as the establishment between the User and the Website Administration of agency relations, partnership relations, relations on joint activities, personal employment relations, or any other relations not expressly provided for in the Agreement. 3.3. Recognition by the court of any provision of the Agreement as invalid or unenforceable does not entail the invalidity of other provisions of the Agreement. 3.4. Inaction on the part of the Site Administration in case of violation by any of the Users of the provisions of the Agreement does not deprive the Site Administration of the right to take later appropriate actions to protect their interests and protect copyrights to the materials of the Site protected in accordance with the law. The User confirms that he is familiar with all the clauses of this Agreement and unconditionally accepts them. ## Privacy policy Source: [https://sfptotal.io/en/info/confidential-policy](https://sfptotal.io/en/info/confidential-policy) ### Privacy Policy --- ### 1\. DEFINITION OF TERMS The current personal data privacy policy (hereinafter referred to as the Privacy Policy) works with the following concepts: 1. **Administration** (hereinafter referred to as the **Site Administration**). This is the name of specialists representing the interests of the organization, whose duties include managing the site, that is, organizing and (or) processing the personal data received on it. To perform these duties, they must clearly understand why the information is being processed, what information should be processed, what actions (operations) should be performed with the information received. 2. **Personal data** means information that is directly or indirectly related to an identified or identifiable natural person (also referred to as the subject of personal data). 3. **Processing of personal data** \- any operation (action) or a combination of those that the Administration performs with personal data. They can be collected, recorded, systematized, accumulated, stored, refined (if necessary, updated or changed), retrieved, used, transferred (distributed, provided, made available to them), depersonalized, blocked, deleted, and even destroyed. These operations (actions) can be performed both automatically and manually. 4. **Confidentiality of personal data** is a mandatory requirement for the Operator or other official working with the User’s data to keep the information received in secret without revealing it to outsiders, if the User who provided personal data has not expressed his consent, and there is no legal basis for disclosure. 5. **User of the website of the online store** (hereinafter referred to as the User) - a person who has visited the website of the online store, as well as using its programs and products. 6. **Cookies** \- a short piece of data sent by a web browser or web client to a web server in an HTTP request, whenever the User tries to open the page of the Online Store. The fragment is stored on the User's computer. 7. **IP-address** \- a unique network address of a node in a computer network built using the TCP / IP protocol. ### 2\. GENERAL PROVISIONS 1. Browsing the website of the online store, as well as using its programs and products, implies automatic acceptance of the Privacy Policy adopted there, which implies that the User provides personal data for processing. 2. If the User does not accept the existing Privacy Policy, the User must leave the Online Store. 3. The current Privacy Policy applies only to the website of the online store. If, using the links posted on the website of the latter, the User enters the resources of third parties, the Online Store is not responsible for his actions. 4. Verification of the accuracy of personal data that the User who has accepted the Privacy Policy has decided to provide is not the responsibility of the Site Administration. ### 3\. SUBJECT OF THE PRIVACY POLICY 1. According to the current Privacy Policy, the Administration of the online store is obliged not to disclose personal data provided by Users registering on the site or placing an order for the purchase of goods, and also to ensure absolute confidentiality of this data. 2. To provide personal data, the User fills out electronic forms located on the website of the online store. The User's personal data to be processed are: - his surname, name, patronymic; - his contact number; - his email address (e-mail); - the address to which the goods purchased by him should be delivered; - address of residence of the User. 3. The protection of data automatically transmitted when viewing ad units and visiting pages with statistical system scripts (pixels) installed on them is carried out by the online store. Here is a list of these data: IP address; information from cookies; information about the browser (or other program through which advertising becomes available); time of visiting the site; the address of the page on which the ad block is located; referrer (address of the previous page). 4. Disabling cookies may result in the inability to access parts of the online store site that require authorization. The online store collects statistics about the IP addresses of all visitors. This information is needed to identify and solve technical problems and control how legal financial payments will be. 5. Any other personal information not specified above (about when and what purchases were made, what browser was used, what operating system was installed, etc.) is securely stored and not distributed. The existing Privacy Policy provides for an exception for the cases described in paragraphs. 5.2 and 5.3. ### 4\. PURPOSE OF COLLECTING USER'S PERSONAL INFORMATION 1. 1\. The collection of personal data of the User by the Administration of the online store is carried out in order to: 1. Identify the User who has completed the registration procedure on the website of the online store in order to place an order and (or) purchase goods from this store remotely. 2. Provide the User with access to the personalized resources of this site. 3. Establish feedback with the User, which means, in particular, sending requests and notifications regarding the use of the Online Store website, processing user requests and applications, and providing other services. 4. Determine the location of the User in order to ensure the security of payments and prevent fraud. 5. Confirm that the data provided by the User is complete and correct. 6. Create an account for making Purchases, if the User has expressed his desire to do so. 7. Notify the User about the status of his order in the online store. 8. Process and receive payments, validate tax or tax credits, dispute a payment, determine whether it is appropriate to provide a particular User with a line of credit. 9. Provide the User with the fastest possible solution to problems encountered when using the Online Store, through effective customer and technical support. 10. Timely inform the User about the updated products, acquaint him with unique offers, new prices, news about the activities of the Online Store or its partners and other information, if the User expresses his consent to this. 11. Advertise the goods of the online store, if the User expresses his consent. Provide the User with access to the websites or services of the Online Store, thereby helping him to receive products, updates and services. ### 5\. METHODS AND TERMS OF PROCESSING PERSONAL INFORMATION 1. The term for processing the User's personal data is not limited in any way. The processing procedure can be carried out in any way prescribed by law. In particular, with the help of personal data information systems that can be maintained automatically or without automation tools. 2. The personal data of the User processed by the Site Administration may be transferred to third parties, including courier services, postal organizations, and telecommunication operators. This is done in order to fulfill the User's order, left by him on the website of the online store, and deliver the goods to the address. The User's consent to such a transfer is provided for by the site's policy rules. 3. Also, personal data processed by the Site Administration may be transferred to authorized state authorities of the Russian Federation, if this is carried out legally and in the manner prescribed by Russian law. 4. If personal data is lost or disclosed, the User is notified of this by the Site Administration. 5. All actions of the Site Administration are aimed at preventing third parties from accessing the User's personal data (with the exception of clauses 5.2, 5.3). This information should not be available to the latter, even by accident, so that they do not destroy it, change or block it, copy or distribute it, or commit other illegal actions. To protect user data, the Administration has a set of organizational and technical measures. 6. If personal data is lost or disclosed, the Site Administration, together with the User, is ready to take all possible measures in order to prevent losses and other negative consequences caused by this situation. ### 6\. OBLIGATIONS OF THE PARTIES 1. **The obligations of the User include**: 1. Providing information about yourself that meets the requirements of the online store. 2. Updating and supplementing the information provided by him in case of any change. 2. **The duties of the Site Administration include**: 1. The use of the information received solely for the purposes indicated in clause 4 of the existing Privacy Policy. 2. Ensuring the confidentiality of information received from the User. They must not be disclosed unless the User gives written permission. Also, the Administration does not have the right to sell, exchange, publish or disclose in other ways the personal data transferred by the User, excluding clauses. 5.2 and 5.3 of the existing Privacy Policy. 3. Taking precautions so that the User's personal data remains strictly confidential, just as such information remains confidential in modern business. 4. Blocking of personal user data from the moment from which the User or his legal representative makes a corresponding request. The right to make a request for blocking is also granted to the body authorized to protect the rights of the User who provided the Site Administration with their data for the period of verification, in case of detection of inaccuracy of the reported personal data or illegal actions. ### 7\. RESPONSIBILITIES OF THE PARTIES 1. In the event that the Site Administration fails to fulfill its own obligations and, as a result, the User's losses incurred due to the misuse of the information provided by him, the responsibility lies with it. This, in particular, is confirmed by Russian legislation. The currently existing Privacy Policy makes an exception for the cases reflected in p.p. 5.2, 5.3 and 7.2. 2. But there are a number of cases when the Site Administration is not responsible if user data is lost or disclosed. This happens when they: - Became public property before they were lost or disclosed. - Were provided by third parties before they were received by the Site Administration. - Disclosed with the consent of the User. ### 8\. DISPUTES RESOLUTION 1. If the User is dissatisfied with the actions of the Administration of the Online Store and intends to defend his rights in court, before filing a lawsuit, he must file a claim without fail (offer in writing to resolve the conflict voluntarily). 2. The Administration that received the claim is obliged, within 30 calendar days from the date of its receipt, to notify the User in writing about its consideration and the measures taken. 3. If both parties have not been able to agree, the dispute is referred to the judicial authority, where it must be considered in accordance with the current Russian legislation. 4. Regulation of relations between the User and the Site Administration in the Privacy Policy is carried out in accordance with the current Russian legislation. ### 9\. ADDITIONAL TERMS 1. The site administration has the right to change the currently existing Privacy Policy without asking the consent of the User. 2. The entry into force of the new Privacy Policy begins after information about it is posted on the website of the Online Store, unless the changed Policy implies a different placement option. 3. All suggestions, wishes, requirements or questions regarding this Privacy Policy should be reported to the feedback section located at: (link). Or by sending an email to: **support@sfptotal.ru**. 4. You can read about the existing Privacy Policy by going to the page at **https://sfptotal.io/info/confidential-policy** ## Cookie notice Source: [https://sfptotal.io/en/info/cookie-policy](https://sfptotal.io/en/info/cookie-policy) ### Cookie Notice --- We use cookies tecnology, web beacons and other similar technologies to distinguish you from other users of our site. This allows us to provide you with a comfortable browsing experience on our site and also gives you the opportunity to improve it. ### What are cookies? Cookies are small pieces of data that are stored in the browser of a computer, mobile phone or other device after visiting websites. Cookies are widely used to keep websites running and collect statistics. ### How do we use cookies? The information we collect through cookies helps us analyze how our website is used so that we can make it as user-friendly and functional as possible. Personal data is stored in cookies if you have consented to their use. This provides a secure entrance to your personal account, which is technically necessary. ### What types of cookies do we use? #### Technical cookies The use of these functional cookies cannot be disabled when visiting our site, as they ensure the correct functioning of the website. This includes cookies that collect information about whether other cookies are allowed or not on our site. #### Session cookies and preferences cookies These cookies allow you to access secure areas of our site, add items to your shopping cart or use the electronic payment system. These cookies expire at the end of the visit session. We may also use cookies that last longer and are set to remember your preferences and choices while you visit our site. The life cycle of such cookies does not exceed one year. #### Analytical cookies We use web analytics tools for the purpose of general analysis of the use of the site and to obtain initial data to improve our offerings. The information thus obtained may be transmitted in anonymous form to the web analytics service server, stored and processed there. We may use analytics tools and related cookies from the following service providers: - Google Analytics: Google Privacy Policy - Yandex.Metrica: Yandex Privacy Policy ### Web beacons Web beacons are small graphic images (also called "pixel tags" or "clear GIFs") that can be placed on our websites and embedded in our services, applications, messages and tools. Web beacons may be used for a variety of purposes, including evaluating the performance of our websites, monitoring the number of visitors and their behavior on our websites, determining the percentage of emails actually read in relation to the total emails sent, monitoring the effectiveness of our advertising, and counting actually viewed pages, articles and links. ### Similar technologies for information storage Similar technologies for information storage - technologies that allow certain information to be written to the cache memory of a web browser or device memory using local shared objects or locally stored data, such as Flash and HTML 5 cookies and other elements of application software for the internet. These technologies can be used in all web browsers in use. In some cases, managing the use of locally stored data using a web browser is not fully possible and requires special tools. We may use these storage technologies to protect your account information or to detect unusual browsing behavior to prevent unauthorized access to your account or to evaluate the performance of our websites, services, applications or tools. ### How can I allow or block the use of cookies? Most browsers automatically accept cookies. You can delete stored cookies on your device at any time. How to do this in more detail, you can find in the instructions for using your browser or device manufacturer. You can also disable all cookies or only certain ones in your browser settings. However, every browser is different, so for more information about your cookie settings, see the Help section of your browser. Please note that by disabling cookies, you will not be able to use some of the features, services, tools and applications of our website. ## SFPTotal Documentation Source: [https://sfptotal.io/en/wiki/SFPTotal_Documentation](https://sfptotal.io/en/wiki/SFPTotal_Documentation) Overview of the SFPTotal project, coding boards and main documentation resources. ### About the project The SFPTOTAL project team studies the compatibility of optical transceivers with network switching equipment. The project develops software and hardware for working with fiber optic transceivers, passive direct attach cables (DAC) and active optical cables (AOC) in popular form factors: GBIC, SFP, SFP+, SFP28, SFP-DD, DSFP, XFP, QSFP+, QSFP28, QSFP56, QSFP112, QSFP-DD and OSFP. The coding boards address the main programming and compatibility problems encountered by Internet service providers, data centers, network equipment suppliers and system integrators when working with optical transceivers and network switching equipment from different manufacturers. --- ### Coding board models - [SFPTotal E>olution](https://sfptotal.io/en/wiki/SFPTotal_Evolution) - [SFPTotal OSFP Board](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board) - [SFPTotal Plus X](https://sfptotal.io/en/wiki/SFPTotal_Plus_X) - [SFPTotal Plus New](https://sfptotal.io/en/wiki/SFPTotal_Plus_New) - [SFPTotal Mini](https://sfptotal.io/en/wiki/SFPTotal_Mini) - [SFPTotal Whistle](https://sfptotal.io/en/wiki/SFPTotal_Whistle) --- ### Software Original SFPTotal devices are fully compatible with the official <SFPTotal Wizard> software, which provides a convenient, comprehensive interface for working with transceiver memory. The software is distributed free of charge and can be downloaded from the website's <Download—SFPTotal Wizard> menu. Read the user guide to learn about the main functions and features before using the coding board. --- ### User guide - [System requirements](https://sfptotal.io/en/wiki/System_requirements) - [Connecting to a PC](https://sfptotal.io/en/wiki/Connecting_to_a_PC) - Software [SFPTotal Wizard](https://sfptotal.io/en/software) - [User interface](https://sfptotal.io/en/wiki/User_interface) - [Basic settings](https://sfptotal.io/en/wiki/Basic_settings) - [Device information](https://sfptotal.io/en/wiki/Device_information) - [Transceiver memory structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) - [Reading transceiver memory](https://sfptotal.io/en/wiki/Reading_transceiver_memory) - [Writing transceiver memory](https://sfptotal.io/en/wiki/Writing_transceiver_memory) - [Writing with a password](https://sfptotal.io/en/wiki/Writing_with_a_password) - [Writing with scripts](https://sfptotal.io/en/wiki/Writing_with_scripts) - [Automatic writing on connection](https://sfptotal.io/en/wiki/Automatic_writing) - [Exporting and importing code](https://sfptotal.io/en/wiki/Exporting_and_importing_code) - [Checksum verification](https://sfptotal.io/en/wiki/Checksum_verification) - [Working with code fragments](https://sfptotal.io/en/wiki/Working_with_code_fragments) - [Comparing codes](https://sfptotal.io/en/wiki/Comparing_codes) - [Backing up transceiver memory](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) - [DDM diagnostics](https://sfptotal.io/en/wiki/DDM_diagnostics) - [Finding a transceiver password](https://sfptotal.io/en/wiki/Finding_a_transceiver_password) - [Error codes and meanings](https://sfptotal.io/en/wiki/Error_codes) - [Resetting the data bus](https://sfptotal.io/en/wiki/Resetting_the_data_bus) - [Firmware database](https://sfptotal.io/en/wiki/Firmware_database) - [Batch code generation](https://sfptotal.io/en/wiki/Batch_code_generation) - [Batch writing](https://sfptotal.io/en/wiki/Batch_writing) - [External handler button](https://sfptotal.io/en/wiki/External_handler_button) - [Device activation](https://sfptotal.io/en/device-activation) --- #### Resources - [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol) - [Compatibility problems and solutions](https://www.youtube.com/watch?v=hgIEBmlrHo4) - [Types of transceivers by write protection method and how to program them](https://sfptotal.io/en/wiki/Transceiver_write_protection) - [How to reprogram write protected SFP RJ45 transceivers](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45) - [Running in a virtual machine](https://sfptotal.io/en/wiki/Running_in_a_virtual_machine) - [Setting the channel of an SFP+ DWDM tunable transceiver](https://sfptotal.io/en/wiki/Tunable_DWDM_channel_settings) - [List of optical transceiver standards](https://sfptotal.io/en/wiki/Transceiver_standards_and_specifications) - [Starting a hardware password search](https://sfptotal.io/en/wiki/Hardware_password_search) Articles in progress: - Creating scripts for modules with complex write protection - Programming automation tips - Restoring DDM thresholds --- #### Main differences between coding boards | Column 1 | Column 2 | Column 3 | Column 4 | Column 5 | | --- | --- | --- | --- | --- | | **Coding board feature comparison** | Whistle | Mini | Plus New | Plus X | | SFP 1G/10G support | | | | | | SFP28 25G support | | | | | | XFP 10G support | | | | | | QSFP+ 40G support | | | | | | QSFP28 100G support | | | | | | QSFP56 200G support | | | | | | QSFP-DD 200G/400G support | | | | | | SFPTotal command protocol support \[1\] | | | | | | External power supply connection | | | | | | Programming write protected modules | with limitations | | | | 1. The proprietary SFPTotal command protocol is implemented by the hardware controller. Its instruction set allows flexible control of coding board operation on the data bus, access to all transceiver address spaces, and complex algorithms for configuring and programming write protected transceivers. ## System requirements Source: [https://sfptotal.io/en/wiki/System_requirements](https://sfptotal.io/en/wiki/System_requirements) Computer and operating system requirements for SFPTotal Wizard. A PC with a USB 2.0 Type A port is required to connect and use the coding board. The coding board is controlled through a virtual serial port and can operate on any operating system using specialized software for connecting to virtual serial ports. On Windows, you can use SFPTotal coding boards with the official software [SFPTotal Wizard](https://sfptotal.io/en/software). To run [SFPTotal Wizard](https://sfptotal.io/en/software) you need Windows 7 / 8.1 / 10 or later with Microsoft .NET Framework 4.5 or later installed. You can download Microsoft .NET Framework directly from the official website: [http://www.microsoft.com/ru-ru/download/details.aspx?id=17851](http://www.microsoft.com/ru-ru/download/details.aspx?id=17851) ## Connecting to a PC Source: [https://sfptotal.io/en/wiki/Connecting_to_a_PC](https://sfptotal.io/en/wiki/Connecting_to_a_PC) Connecting the coding board to a computer and installing the virtual COM port driver. Connect the coding board to your computer using the supplied USB cable. The operating system will detect a new device the first time it is connected. For example: **USB Serial Device (COM16)** ![Connecting an SFP coding board to a computer: the USB device COM port in Windows Device Manager](https://sfptotal.io/images/documentation/i151/p35/356a192b-3208b91593-f2964a06ec48.jpg) ![USB device properties in Windows showing the SFPTotal Plus name](https://sfptotal.io/images/documentation/i151/p35/356a192b-8a8604d7cb-1bf50e0eaef9.jpg) Windows 10 and later normally include a standard virtual serial port driver that should be installed automatically for the device. If the operating system does not include a driver for the coding board, or specific driver installation policies apply to connected devices, download and install the appropriate driver for your device model manually. Drivers for SFPTotal devices are available [on the download page](https://sfptotal.io/en/software#driver). ### Note --- 1. You can also connect directly to the coding board using a serial terminal application, such as HyperTerminal or PuTTY. 2. Use SFPTotal protocol commands to control the device. 3. You can create your own application for working with transceiver memory using the SFPTotal protocol. ## SFPTotal Wizard Source: [https://sfptotal.io/en/wiki/SFPTotal_Wizard](https://sfptotal.io/en/wiki/SFPTotal_Wizard) Purpose of SFPTotal Wizard, its main features and how to obtain the software. **SFPTotal Wizard** is the official software for SFPTOTAL® coding boards. All SFPTotal coding boards are fully compatible with SFPTotal Wizard. The application supports the proprietary device control command protocol and provides a convenient, comprehensive interface for working with optical transceiver memory. The software is distributed free of charge. You can use SFPTotal Wizard to edit firmware files even without connecting an original device. ### Main features - Reading and writing transceiver memory - Automatic checksum verification - Importing firmware from files and exporting it to files - Support for the entire transceiver address space - Detailed transceiver parameters according to MSA specifications - Changing transceiver parameters through config bits - Programming write protected transceivers - Finding passwords for protected transceivers - Dictionary based password search - Byte by byte firmware comparison - Batch firmware generation and writing - Automating writes with scripts - Writing firmware with an incrementing serial number - Setting the channel of DWDM SFP+ tunable transceivers - Reading diagnostic information in real time ## User interface Source: [https://sfptotal.io/en/wiki/User_interface](https://sfptotal.io/en/wiki/User_interface) Panels, menus, code editor and operation log in the SFPTotal Wizard interface. The application interface is divided into several sections. The control panel includes shortcut buttons, menus for selecting the transceiver type and table address, specialized tabs and an operation log. ### Menu The main menu provides access to the application's main functions and settings. ![Reading and writing SFP firmware through the Control menu in SFPTotal Wizard](https://sfptotal.io/images/documentation/i252/p36/356a192b-fcb789310b-f3aa55870ecb.jpg) --- ### Control buttons ![SFPTotal Wizard toolbar for working with transceiver memory](https://sfptotal.io/images/documentation/i252/p36/356a192b-e1362efe8e-414c7834a886.jpg) 1. Clear the editor in the CODE TABLE tab 2. Load firmware from a file into the editor (CODE TABLE tab) 3. Save the current firmware from the editor to a file 4. Verify the firmware checksum 5. Read code from transceiver memory 6. Write code to transceiver memory 7. DDM reading mode 8. [External handler button](https://sfptotal.io/en/wiki/External_handler_button) 9. Shortcut to SFPTotal Labs 10. Main application settings --- ### Selecting the module type and address space ![Selecting SFP and memory page A0h (00–7F) in SFPTotal Wizard](https://sfptotal.io/images/documentation/i252/p36/356a192b-8f9e526d72-e010c73f785a.jpg) The drop-down menus select the module type and the transceiver address space that the coding board accesses when reading code into the editor or writing code from it. --- ### Editor area ![SFP EEPROM memory in SFPTotal Wizard: the byte table in the CODE TABLE tab](https://sfptotal.io/images/documentation/i252/p36/356a192b-86f1926954-5e0095b535e6.jpg) The 128-byte editor area displays a segment of transceiver memory in hexadecimal (HEX) format and as ASCII characters. The editor area supports code editing. In the table on the left, enter the hexadecimal code of a character to change a value. Values use uppercase A–F and the digits 0–9. In the table on the right, enter characters to change values. Characters are encoded according to the ASCII standard. Cell changes are committed when you press Enter or move the focus (cursor) to another cell. --- ### Detailed firmware parameters ![SFP transceiver parameters in the CODE DETAILS tab: decoding memory data in SFPTotal Wizard](https://sfptotal.io/images/documentation/i252/p36/356a192b-fd972fea82-a0566981866f.jpg) The CODE DETAILS tab provides a byte by byte view of the transceiver's main memory page and decodes its parameters according to the MSA specification. --- ### Operation log Contains the application's operation history. The history is written to the log.txt file. --- ### Status bar Shows the progress of the current operation, the connected device type, the connection status of the SFPTotal server, and a link to the standard for the selected transceiver type. --- The purpose of each interface element is described in the corresponding sections of this guide. ## Basic settings Source: [https://sfptotal.io/en/wiki/Basic_settings](https://sfptotal.io/en/wiki/Basic_settings) Main coding board settings, data transfer settings and application working directories. Open the main application settings from the menu **Tools - General settings**. ![SFP coding board settings in SFPTotal Wizard: bus frequency, delay and write block size](https://sfptotal.io/images/documentation/i203/p37/356a192b-6b19f84db9-0df625263e2c.jpg) The main settings window contains several tabs. ### Programming board The Programming board tab contains the coding board settings. This section is available only for devices that support the SFPTotal command protocol. **Speed rate (Hz)** Sets the data bus clock frequency and directly affects the transfer speed. **Pause b/t operations (ms)** The delay between data blocks during bus operations. The recommended range is 50 to 250 ms. **Sequential write, bytes** The data block size in bytes for sequential writes. Values from 1 to 128 are supported. **Check transceiver connection** Check that a transceiver is physically connected to the port before reading or writing. When enabled, the coding board checks whether a transceiver is connected to its port before reading or writing code. An error code is returned if the port is empty. For example: QERR:SFP\_EMPTY. **Low power mode (TX\_DIS)** Low power mode. This setting controls the transceiver's TX\_DIS line. When enabled, the coding board switches the transceiver to Low power mode, reducing laser output power. A jumper on the coding board may provide the same function. **Set add. table value before read/write** Automatically select the additional page number when accessing the T00h, T01h, T02h and T03h page address spaces. When enabled, the coding board automatically writes the additional page number to be addressed in the module's dynamic memory space when reading or writing the corresponding memory area at offset 80h. Enable this setting when working with optical transceivers. Disable this setting when working with DAC modules that do not support DDM. --- ### Folders **Codes path for default** The default directory for storing code files. **Script path for default** The default directory for storing script files. **API Button URL** The URL of an external resource for processing code. Clicking the API button sends a request to the specified remote server URL. The server response is returned to the editor. --- ### SFPTotal Labs This tab contains the user's SFPTotal Labs account details. ## Device information Source: [https://sfptotal.io/en/wiki/Device_information](https://sfptotal.io/en/wiki/Device_information) Viewing information about the connected coding board in the application. The application automatically reads information about the connected device during the first read operation and displays it in the operation log. You can request device information manually from the menu **Help - Get device version**. The application displays the device information in the operation log. ``` 2024-02-09 11:29:48 > Device version: SFPTotal Plus New (c) 2023 HW: 1.3 SW: 1.3.7 SN: SFPT-P1323122212 DEMO ``` The device information includes: - Device type and firmware year - Hardware version - Firmware version - Serial number - Activation status --- When controlling the device through a direct COM port connection, you can request device information by running the command **VERSION** ## Reading transceiver memory Source: [https://sfptotal.io/en/wiki/Reading_transceiver_memory](https://sfptotal.io/en/wiki/Reading_transceiver_memory) Selecting the transceiver type and memory area, reading code and checking the result. To read data from transceiver memory: 1. Connect the coding board to your computer and start SFPTotal Wizard; 2. Insert the transceiver into the coding board port; 3. Select the appropriate transceiver type from the drop-down menu **Module Type**; 4. Select the memory area to read from the menu **Address table**; 5. Click the transceiver memory read button — **Read code from module**; 6. The application displays the coding board response in the operation log and copies the data from transceiver memory into **Code Table**. If the read succeeds, the application displays READ OK. If a read error occurs, the coding board returns the corresponding [error code](https://sfptotal.io/en/wiki/Error_codes). ![Reading SFP module firmware in SFPTotal Wizard: the memory table and operation log](https://sfptotal.io/images/documentation/i175/p40/356a192b-3f6aa1f1d5-a17901b75737.jpg) ## Exporting and importing code Source: [https://sfptotal.io/en/wiki/Exporting_and_importing_code](https://sfptotal.io/en/wiki/Exporting_and_importing_code) Saving code that has been read to a file and loading files into the application editor. The application works with 128-byte transceiver code segments stored as binary files or encoded in Intel HEX format. ### Import #### Binary files Use **File - Open** or drag a file into the application window to load code into the editor. --- #### HEX string The application can import a HEX string containing uppercase A–F and the digits 0–9. The string must not exceed 256 characters, which is the hexadecimal representation of 128 bytes. **File - Import - HEX String** ![Importing transceiver firmware code in hexadecimal format: the Import HEX as string window](https://sfptotal.io/images/documentation/i251/p45/356a192b-0b8be3e968-fbd7c415e9bf.jpg) Paste the HEX code into the import window. Use the available tools to format the code: remove extra spaces, convert letters to uppercase and remove line breaks. Click **Import code** to transfer the data to the editor. ### Export To save the code from the editor to a file, use the menu: **File - Save as...** The application supports exporting code to additional file formats through the menu **File - Export**. ## Writing transceiver memory Source: [https://sfptotal.io/en/wiki/Writing_transceiver_memory](https://sfptotal.io/en/wiki/Writing_transceiver_memory) Writing prepared code to transceiver memory and verifying the write result. ### How do I write changes to transceiver memory? To write changes: 1. Connect the coding board to your computer and start SFPTotal Wizard; 2. Insert the transceiver into the coding board port; 3. Select the appropriate transceiver type from the drop-down menu **Module Type**; 4. Select the memory area to read from the menu **Address table**; 5. Make sure the editor contains the correct code; 6. Click the button for writing changes to transceiver memory — **Write code to module**; The application returns the result when the write operation is complete. ![Writing SFP module firmware in SFPTotal Wizard: the memory table and operation log](https://sfptotal.io/images/documentation/i118/p41/356a192b-8dc4641732-8876fc4e067d.jpg) --- ### How does writing work? During a standard write, the coding board generates a sequence of signals on the IIC data bus to transfer data in blocks of 8 bytes. The signal characteristics and timing are selected to successfully program most transceivers available on the market. After sending the sequence that writes changes to transceiver memory, the coding board automatically reads back the memory area that was written. It then returns the read data to the application for comparison. If the code segment that was written matches the segment returned by the verification read, the write is considered successful. The application returns the read-back data and the confirmation — WRITE OK. Otherwise, the application returns WRITE FAIL — the write was unsuccessful. If an unhandled interruption occurs on the data bus, the application returns an [error code](https://sfptotal.io/en/wiki/Error_codes) QERR. --- ### Why does the application return an error? The main reason for a write error is that the changes are not saved in transceiver memory. This is usually caused by write protection in the transceiver. Programming write protected transceivers according to the MSA standard requires a password. See [Writing with a password](https://sfptotal.io/en/wiki/Writing_with_a_password) and [Types of transceivers by write protection method and how to program them](https://sfptotal.io/en/wiki/Transceiver_write_protection). A write error is also returned if only part of the data was saved during writing, or if the module's internal mechanisms changed the page data after writing and before the coding board performed the verification read. In this case, adjust the [coding board settings](https://sfptotal.io/en/wiki/Basic_settings) to find suitable data bus clock frequency, data block size and inter-block delay settings for writing changes. --- ### Note Before writing changes to transceiver memory, back up the entire available address space to protect against possible errors. We also recommend enabling logging to record code segments read from transceiver memory in the operation history. If the memory is accidentally overwritten, this record can help restore the original data and reconstruct the sequence of changes. Use the [backup function](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) to save the original transceiver firmware automatically. ## Writing with a password Source: [https://sfptotal.io/en/wiki/Writing_with_a_password](https://sfptotal.io/en/wiki/Writing_with_a_password) Password entry and programming settings for write protected transceivers. SFPTotal Wizard supports writing changes to password protected transceiver memory (MSA SFF-8472, SFF-8636). The supported password length is 4 bytes. Enter the password in hexadecimal (HEX) format using uppercase A–F and the digits 0–9. For example: AABBCCDD. By default, the software writes changes without a password. To set the password used to unlock transceiver memory before writing, and configure where it is entered, use the menu: **Control - Set a password** ![Transceiver memory write password settings: table address, offset and Password (Hex) in SFPTotal Wizard](https://sfptotal.io/images/documentation/i146/p42/356a192b-265a2cbf0e-38385275eb6a.jpg) In the settings window, select **Entering the password before...** to enable password entry before writing changes to transceiver memory. Clear this checkbox to disable password entry. Specify the password entry parameters: - Page address — **Table address** - Password offset within the page — **Password address** - Password value in HEX — **Password (Hex)** Click **Save** to save the settings, or **Cancel** to cancel the changes. Configure the password before writing changes to transceiver memory. After applying the settings, the coding board enters the password before writing changes to transceiver memory. Use the write button on the main toolbar to write changes with password entry enabled. --- ### Password list A list of known passwords for programming write protected transceivers is available in the Firmware Database. --- ### Password entry locations for different transceiver types The table shows the standard password entry parameters for different transceiver types according to their specifications. | Module type | Page address | Offset | | --- | --- | --- | | SFP / SFP+ | A2 | 7B | | SFP28 | A2 | 7B | | XFP | A0 | 7B | | QSFP+ | A0 | 7B | | QSFP28 | A0 | 7B | | QSFP-DD | A0 | 7A | --- ### Device settings that affect the write result The application may return WRITE FAIL even when the correct password is entered while writing changes to transceiver memory. This occurs when the transceiver is sensitive to the write settings: block size, inter-block delay and data bus clock frequency. Find suitable settings for device operation on the data bus to program transceiver memory successfully. Open the device settings from the menu **Tools - General settings** to set suitable parameters. - Set the write clock frequency between 10,000 and 100,000 Hz - Set the write block size to 1, 4, 8 or 128 bytes - Set the inter-block delay between 50 and 250 ms --- ### Note 1. To use password entry, an SFP transceiver must support the A2h table address space. You can check this by reading page A2h: the coding board should complete the operation successfully, and page A2h \[00–7F\] must not be empty. 2. The page address and password entry offset may differ from the standard if the manufacturer uses a proprietary memory protection mechanism. Check these details with the manufacturer. 3. If the transceiver does not retain changes after a power cycle even though writing returned WRITE OK, use a script to send the transceiver-specific command that saves data to nonvolatile memory. ## Checksum verification Source: [https://sfptotal.io/en/wiki/Checksum_verification](https://sfptotal.io/en/wiki/Checksum_verification) Verifying the code checksum before programming a transceiver. The code on the transceiver's main page contains the checksums **CC\_BASE** and **CC\_EXT** which ensure the integrity of the firmware data: configuration registers, vendor name, transceiver part number, serial number and manufacturing date. In the CODE DETAILS and CODE TABLE tabs, the checksums are located at - 0x3F and 0x5F for SFP modules; - 0xBF and 0xDF for XFP and QSFP modules; - 0xDE for QSFP-DD modules. By default, the application automatically recalculates checksums after code is changed in the editor. To disable automatic checksum verification, clear the checkbox in the menu **Edit - Autoset checksum**. To verify checksums, use the menu **Edit - Verify Checksum**. The application compares the values and displays a message with the verification results. Checksum fields in the editor are highlighted in green if the checksum is correct and in red if it is incorrect. ![Verifying an SFP firmware checksum in SFPTotal Wizard: the Checksums are correct message](https://sfptotal.io/images/documentation/i254/p46/356a192b-9ba81b3616-087bb77aaa82.jpg) To update the checksum, use the button on the main toolbar or the menu **Edit - Set checksum**. ## Working with code fragments Source: [https://sfptotal.io/en/wiki/Working_with_code_fragments](https://sfptotal.io/en/wiki/Working_with_code_fragments) Selecting, copying, pasting and clearing code fragments in the HEX editor. The application supports operations on code fragments in the HEX editor. - Selecting a fragment - Copying code - Pasting code - Clearing code To use these functions, right-click the HEX editor on the left side of the application window to open its context menu. ![Selecting all firmware or a code fragment in the SFPTotal Wizard HEX editor context menu](https://sfptotal.io/images/documentation/i130/p47/356a192b-89c36f6940-9281fcf7aab3.jpg) The selected area is highlighted in black. ![Selected transceiver memory bytes in the SFPTotal Wizard HEX editor](https://sfptotal.io/images/documentation/i130/p47/356a192b-75bacd7569-ff7478d08051.jpg) Right-click the selected fragment to open the context menu again. ![Copying transceiver firmware code with the Copy code command in SFPTotal Wizard](https://sfptotal.io/images/documentation/i130/p47/356a192b-586cab0c21-6a1e2ded28b1.jpg) Use the available operations to copy, paste or clear the selected fragment. - **Copy code** copies the selected area's HEX code to the clipboard. - **Paste code** imports HEX code from the clipboard into the selected area. If the clipboard contains more data than the selected area can hold, only the data that fits the selection is pasted. - **Erase selected** fills the selected area with zeros. --- ### Note 1. Use the keyboard shortcuts CTRL+A and CTRL+V to select the entire editor area and paste code. 2. Use the keyboard shortcuts CTRL+A and CTRL+C to select the entire editor area and copy code to the clipboard. 3. Use code fragment copying and pasting to transfer a portion of code that contains both text and binary data, for example into the vendor-specific area of transceiver firmware. ## Comparing codes Source: [https://sfptotal.io/en/wiki/Comparing_codes](https://sfptotal.io/en/wiki/Comparing_codes) Comparing transceiver firmware byte by byte and highlighting differences. The CODE COMPARATOR tab in the main window provides tools for comparing firmware byte by byte. This tool helps you quickly find differences between files and analyze the changes required. The comparator tab is divided into two panes, each displaying a 128-byte code table. Both panes have an identical set of control buttons. - Load code from a file (binary data only) - Clear the current editor area - Import code from CODE TABLE into the current comparator pane - Export code from the comparator pane to CODE TABLE - Compare code and highlight differences in the current tab - Clear difference highlighting ![Comparing transceiver firmware in CODE COMPARATOR: differing bytes are highlighted](https://sfptotal.io/images/documentation/i100/p48/356a192b-b7d3324742-47120441c120.jpg) ## Backing up transceiver memory Source: [https://sfptotal.io/en/wiki/Backing_up_transceiver_memory](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) Creating manual and automatic backups of transceiver memory. ### Creating a backup Go to the menu **Control - Back up transceiver memory** or use the keyboard shortcut **CTRL+B** to create a backup. ### Automatic backups The software can automatically back up the transceiver's main memory pages before every read or write operation. To enable this feature, select the checkbox in the menu **Control - Back up transceiver automatically**. ### Backup directory Backups of transceiver memory code segments are saved in the ./backup/ directory alongside the application executable. Backups are available in the following formats: - A combined JSON file - Individual binary files for each page. You can open the backup directory quickly from the menu: **Tools - Open backups folder** Individual transceiver memory page backups can be imported into the editor through File - Open or by dragging the file into the application window. ### Note Backup support is limited on SFPTotal Whistle coding boards. ## DDM diagnostics Source: [https://sfptotal.io/en/wiki/DDM_diagnostics](https://sfptotal.io/en/wiki/DDM_diagnostics) Monitoring transceiver diagnostic parameters through DDM. The software can read the transceiver's Digital Diagnostic Monitoring (DDM) data in real time. To read DDM data, select the connected module type and go to the menu: **Tools - Digital diagnostic monitoring** The diagnostic reading control panel contains the following elements: --- **Control panel buttons** ![DDM diagnostic controls in SFPTotal Wizard: clear, save, read and parameter chart](https://sfptotal.io/images/documentation/i225/p50/356a192b-3a4335d095-b663eeacc9d1.jpg) - Clear data - Save a DDM report - Start reading DDM - Load a DDM data file - Load thresholds --- **Real-time data table** Contains decoded threshold table registers and the current DDM parameter values. When processing DDM values, the application compares the current parameters with the configured thresholds and records excursions in the Alarms & Warnings area. Color coding for current parameter values: - Green — normal operating range - Yellow — the parameter has entered the warning range (Warning) - Red — the parameter has entered the alarm range (Alarm) ![DDM table showing transceiver temperature, voltage, laser bias current and optical power](https://sfptotal.io/images/documentation/i225/p50/356a192b-da0c013a77-9ae887f9e8bb.jpg) --- **Change history** ``` Timestamp Module Temperature Module Voltage TX Bias Current Power TX Power RX Optional Laser Temp/WavelengthOptional TEC current --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 17:06:13 25,95 °C 3,25 V 5242 uA -2,73 dBm -29,59 dBm 0 °C 0 mA 17:06:09 25,02 °C 3,25 V 5242 uA -2,72 dBm -28,86 dBm 0 °C 0 mA 17:06:05 24,16 °C 3,25 V 5242 uA -2,72 dBm -30,97 dBm 0 °C 0 mA 17:06:00 22,62 °C 3,25 V 5242 uA -2,72 dBm -29,59 dBm 0 °C 0 mA 17:05:56 21,64 °C 3,25 V 0 uA -40,001 dBm -40,001 dBm 0 °C 0 mA 17:05:52 20 °C 3,25 V 0 uA -40,001 dBm -40,001 dBm 0 °C 0 mA 17:05:47 18,33 °C 3,25 V 0 uA -40,001 dBm -40,001 dBm 0 °C 0 mA ``` --- **Checksum** The status line contains the CC\_DMI checksum, which indicates the integrity of the factory-set threshold table. The checksum is located on page A2h at offset 5Fh. ## Finding a transceiver password Source: [https://sfptotal.io/en/wiki/Finding_a_transceiver_password](https://sfptotal.io/en/wiki/Finding_a_transceiver_password) Finding a password for writing to protected transceiver memory areas. Please read this article carefully before using the password search function The software supports password searches for programming write protected transceivers and recovering forgotten passwords. This feature can be particularly useful when you need to check a series of passwords within a narrow range quickly. The software also supports dictionary based password searches, which can significantly speed up the search. ### How do I start a password search? Read the instructions carefully and follow the steps exactly. 1. Read the transceiver's main memory page 2. Change the code in the editor 3. Go to the menu **Control - Search password** 4. In the Search password window, configure the password entry location 5. Specify the password search range OR select **Dictionary attack** for a dictionary based search. 6. Specify the dictionary file path if Dictionary attack mode is selected 7. Click Start to begin the search. ![Dictionary based transceiver password search in the SFPTotal Wizard Search password window](https://sfptotal.io/images/documentation/i183/p51/356a192b-8a8786b1cb-4eee40104a92.jpg) The communication protocol between the coding board and the transceiver has no operation that confirms a completed write. This means the coding board receives no confirmation from the transceiver that writing succeeded. To verify the result on each password attempt, the coding board reads back the transceiver memory and compares it with the data in the application editor. If the data matches byte for byte, the write is considered successful. The operation log displays `WRITE OK` and the search stops. If it does not match, the application returns `WRITE FAIL` and the search continues. After a successful write to the module is confirmed, the search stops automatically and displays the password found: ``` 2024-02-10 11:25:46 > Enter password 2024-02-10 11:25:46 > w1A2007B03AABBCCDD 2024-02-10 11:25:47 > Write Table A0 add. 00, 128 byte(s) from 00 2024-02-10 11:25:47 > W1A000007F0304070000000120400C15012A0000000F07000046494E4953415220434F5250323334200000906546544C46383532345032424E56202020412020200352009C0032000050423931595A57202020202020202020303730323237202068D8010B0000000000000000000000000000000000000000000000000000000000000000 2024-02-10 11:25:49 > 0304070000000120400C15012A0000000F07000046494E4953415220434F5250323334200000906546544C46383532345032424E56202020412020200352009C0032000050423931595A57202020202020202020303730323237202068D8010B0000000000000000000000000000000000000000000000000000000000000000 2024-02-10 11:25:49 > WRITE OK 2024-02-10 11:27:26 > Found password: AABBCCDD ``` --- **Please note** If you start the password search without first changing the transceiver's original code in the editor, the coding board returns `WRITE OK` on the very first write attempt because it considers the write successful. This happens because the data in the editor already matches the data in transceiver memory. The application then displays a **false** password found message. The reported password will not allow you to write subsequent changes. This occurs when the required sequence of steps is not followed before starting the password search. After reading the module and before starting the search, you **must change the firmware code** by at least one byte so that the data in the editor differs from the data in transceiver memory. Otherwise, the password search returns a false positive for any password value. ### Video guide --- ### Note 1. Total possible password combinations: 2564 = 4 294 967 296 ## Tunable DWDM channel settings Source: [https://sfptotal.io/en/wiki/Tunable_DWDM_channel_settings](https://sfptotal.io/en/wiki/Tunable_DWDM_channel_settings) Setting the channel of an SFP DWDM tunable transceiver. The application supports setting the channel number and wavelength of SFP+ DWDM tunable transceivers according to *MSA SFF-8690: Tunable SFP+ Memory Map for ITU Frequencies* . Open the configuration interface from the menu **Tools - SFP+ Tuning Management Interface** ![SFP DWDM tunable settings in SFPTotal Wizard: channel, frequency and wavelength](https://sfptotal.io/images/documentation/i161/p63/356a192b-949ba8a95c-4534fceaa40e.jpg) Click **Read SFP+ tunable registers** to read the supported channel information from the transceiver registers. The current transceiver settings are shown on the tab labeled **SFP+ Tunable Control Registers**. Supported channels are listed on the tab labeled **Supported Channels**. To change the channel number, open **Supported Channel** and select the required channel by **ITU Channel** or **Wavelength**. Click **Set new Channel** to set the new channel. The transceiver needs time to retune. Refer to the transceiver manufacturer's documentation for laser tuning time and readiness information. --- ### Video guide ## Hardware password search Source: [https://sfptotal.io/en/wiki/Hardware_password_search](https://sfptotal.io/en/wiki/Hardware_password_search) Hardware password searching with the coding board and configuring the search range. Coding boards controlled through the SFPTotal command protocol support hardware password searches, allowing a wide range of password values to be checked at high speed. For details about the purpose and syntax of the control commands, see [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol#c1ebcbe35d57993ebbf941515f59f999cbd1d3b0). During a hardware password search, the coding board does not spend time exchanging data with the application. It enters the password, writes a check word and verifies the write result on its own. --- ### Search speed You can change the search speed by configuring the coding board's inter-block delay and data bus clock frequency before starting. Set the data bus clock frequency to 100,000 Hz. ``` I2CRATE=12 ``` Set the inter-block delay to 16 ms ``` I2CPAUSE=10 ``` --- ### Speed limitations For a successful search, the operation speed and inter-block delay must give the transceiver enough time to save changes while allowing it to continue communicating and processing data bus events. An excessively high write speed may interrupt the transceiver's internal procedure for saving changes. As a result, the correct password can be skipped because its effect cannot be verified. Choose coding board settings that allow the search to continue without being interrupted by data bus error codes. The module's speed limits depend on its hardware, the quality of its control firmware and the physical erase speed of the target EEPROM/Flash memory. --- ### Check word write location Use the commands `BFCWADR` and `BFCWOFT` to change the default check word write location. --- Check word settings for SFP ``` BFCWADR=A0 BFCWOFT=00 ``` --- Check word settings for QSFP ``` BFCWADR=A0 BFCWOFT=80 ``` --- Settings for writing to page A2h of an SFP transceiver ``` BFCWADR=A2 BFCWOFT=80 ``` --- ### Value ranges To speed up the search, first check ranges within particular groups of characters represented in the ASCII character table. Letter range from **A** to **Z** ``` BFSET A2 7B 41414141 5A5A5A5A 41414141 ``` --- Letter range from **a** to **z** ``` BFSET A2 7B 61616161 7A7A7A7A 61616161 ``` --- Digit range from **0** to **9** ``` BFSET A2 7B 30303030 39393939 30303030 ``` --- Symbols, digits and letters ``` BFSET A2 7B 20202020 7A7A7A7A 20202020 ``` --- Full range ``` BFSET A2 7B 00000000 FFFFFFFF 00000000 ``` --- ### Starting the search Starting an SFP+ password search with the standard password entry location ``` BFCWADR=A0 BFCWOFT=00 BFSET A2 7B 20202020 7A7A7A7A 20202020 ``` --- Starting an SFP+ password search with a NONSTANDARD password entry location ``` BFCWADR=A0 BFCWOFT=00 BFSET A2 FC 20202020 7A7A7A7A 20202020 ``` --- Starting a password search for an XFP transceiver Before starting a hardware password search for XFP or QSFP modules, set the appropriate **MODSEL/MODDESEL** jumper on the device board. ``` BFCWADR=A0 BFCWOFT=94 BFSET A0 7B 20202020 7A7A7A7A 20202020 ``` --- ### Search example Hardware search log for an SFP+ transceiver when connected to the coding board through PuTTY ``` # Set the clock frequency and delay I2CRATE=12 I2CPAUSE=05 # Check word entry location BFCWADR=A0 BFCWOFT=00 # Enable command echo CLI=1 # Search the specified range, entering the password at A2 offset FC BFSET A2 FC 84720000 8472FFFF 84720000 Device=A2 Offset=FC From 84 72 00 00 To 84 72 FF FF Start 84 72 00 00 FOUND: 84 72 84 00 STOP Device=A2 Offset=FC From 84 72 00 00 To 84 72 FF FF Current 84 72 84 00 ``` Search result: **84728400** --- ### Note Before running the search, prepare the configuration and hardware search commands in a text editor to avoid possible mistakes. --- ### Video guide ## Writing with scripts Source: [https://sfptotal.io/en/wiki/Writing_with_scripts](https://sfptotal.io/en/wiki/Writing_with_scripts) Creating and using scripts for nonstandard operations and write automation. Scripts are a special application mechanism for sending and processing instructions sequentially. They can configure coding board settings, read and write transceiver memory, and perform other operations. Use scripts when a transceiver requires a programming procedure that differs from the MSA standard and needs a sequence of special instructions to save memory changes successfully. Scripts can also automate repeated programming of different transceiver memory areas with minimal operator involvement. --- ### How do I use a script? 1. Open the menu **Control - Write using a script - Select a script file** to specify the script file path; 2. Make sure the editor contains the correct code if the script uses editor data during execution; 3. Click the transceiver memory write button to run the script. When running a script, the application ignores the currently selected memory area settings. The read and write areas must be specified in the script commands. Please note that the software does not verify whether writing succeeded after a script finishes. --- ### How do I clear the selected script? Go to the menu **Control - Write using a script - Reset script** to clear the selected script and return to standard writing. --- ### How do I create a script? Script command syntax is based on the SFPTotal command protocol. Example: ``` // Write password AABBCCDD to page A2 at offset 7B w2A2007B03AABBCCDD // Write the code from the editor to page A0 at offset 00 w2A000007F{00;7F} // Write value 80 to page A2 at offset 7F w2A2007F0080 // Write value 01 to page A2 at offset FF w2A200FF0001 PAUSE // Read code from page A0 at offset 00 R2A000007F ``` Create a text file and enter one instruction per line. Save the script file to use this programming procedure in the application. --- #### Additional script commands The following additional commands are processed by the application. **PAUSE** Pause script execution. The default pause is 100 ms. An optional parameter sets the pause duration in milliseconds. ``` PAUSE Delay 100ms PAUSE=2000 Delay 2000ms ``` --- **SETCHECKSUM** Recalculate the checksum. --- **SETVAL** Set the editor cell at offset XX to value YY. Specify parameter values in uppercase HEX format. The offset parameter accepts values from 00 to 7F. ``` SETVAL 7F 03 ``` --- **{00;7F}** The substitution macro `{XX;YY}` is used inside other commands to insert a code segment from the editor. During script execution, the macro is automatically replaced with the current editor data starting at byte XX and spanning YY bytes. Note that a YY parameter value of `00` in HEX means that 1 byte is substituted, while a value of `7F` in HEX means that 128 bytes are substituted. Set YY to the segment length in bytes minus one, expressed in hexadecimal. Example: writing a 128-byte segment to page A2h at offset 80h. ``` w2A200807F{00;7F} ``` Example: writing a 96-byte DDM threshold segment to page A2h at offset 00h, followed by a read. ``` W2A200005F{00;5F} ``` Example: assigning a variable the 16-byte code segment at offset 0x44 that contains the serial number. ``` $VAR2={44;0F} ``` --- **$VAR1** Buffer variable $VAR1. Use buffer variables to store code segments from the editor and insert their contents during script execution. The application supports 10 buffer variables, $VAR0–$VAR9. ``` $VAR1={00;43} $VAR2={44;0F} $VAR3={54;2B} $VAR4=002AFE $VAR5=4F ``` --- **$YYYY** Insert the current year into the command. --- **$MM** Insert the current month into the command. --- **$DD** Insert the current day into the command. --- **BACKUPTOFILE** Start a backup for the module type selected in the application settings. The application reads the available pages sequentially and saves the data to a file. This command is equivalent to invoking the function from the application menu. --- **BACKUPDIR** Set the backup directory. Additional parameters can be used to create a directory with a particular name. Example: creating a backup directory with the date in its name. ``` $VAR5=SOMETEXT BACKUPDIR=\$YYYY-$MM-$DD_$VAR5\ BACKUPTOFILE ``` --- **IMPORTFILE** Import HEX code from a binary file into the editor. ``` IMPORTFILE=\catalog\filename.bin ``` --- **IMPORTHEX** Import HEX code into the editor. Example: importing a 128-byte code segment into the editor. ``` IMPORTHEX=030407100000000000000006670000000802001E4F454D2020202020202020202020202000000B4053465031302D535220202020202020204120202003520091001A000058473936535230313020202020202020303830393236202068F0031200001111A8DD05AA642FAA6F5A64DAF3285A9D000000000000000000F05E482F ``` Import code into the editor by concatenating buffer variables. ``` $VAR1={00;43} $VAR2={44;0F} $VAR3={54;2B} IMPORTHEX=$VAR1$VAR2$VAR3 ``` --- **INCREMENT** Increment the value of a variable containing a hexadecimal representation of code so that the number at the end of its text representation increases by one. For example, the variable's text representation `SN129YY00201` is converted to `SN129YY00202`. If zeros precede the numeric portion, the application tries to preserve the original string length when the incremented number needs an additional digit, shifting the value to the left. Thus, the value `SN129YY00999` is converted to `SN129YY01000`. ``` $VAR1={00;43} // Assign the code area containing the serial number to a variable $VAR2={44;0F} $VAR3={54;2B} INCREMENT $VAR2 IMPORTHEX=$VAR1$VAR2$VAR3 ``` --- **ERASEVENDORCODE** Fill the vendor-specific area in the editor with zeros. --- **COUNTER** Script iteration counter. Place this command at the start of a script file that runs in a loop. The current iteration count is available through the $COUNTER variable. ``` // Invoke the iteration counter COUNTER // Assign the current counter value to a variable $VAR0=$COUNTER // Display the counter value ECHO $COUNTER ``` --- **IF A ... B THEN ...** Compare values. Use this construct to compare A and B and execute the command following THEN if the specified condition is true. ``` // Assign numeric values to variables $VAR1=10 $VAR2=20 // Display a message box if the condition is true. IF $VAR1 < $VAR2 THEN MSGBOX HELLO WORLD! ``` --- **LOOP** Repeat the script. Place this command at the end of the script file to tell the application to run the procedure again. The UNLOOP command cancels LOOP. Use a condition to exit the loop and avoid endless repetition. Example with a condition. ``` COUNTER ... R1A000007F ... // Repeat the script until 10 iterations have completed IF $COUNTER < 10 THEN LOOP ``` If a script enters an infinite loop, stop it using the global interrupt command in <Tools - Interrupt processes>. --- **STRTOHEX** Convert the text following the operator to a HEX string. ``` $VAR9=STRTOHEX QSFP28-SR4 MSGBOX $VAR9 ``` --- **HEXTOSTR** Convert the HEX string following the operator to text. ``` $VAR9=HEXTOSTR 5153465032382D535234202020202020 MSGBOX $VAR9 ``` --- **PADRIGHTHEX** Pad the hexadecimal value in $VAR1 on the right with the character whose code is YY until the length of its text representation reaches XX. Command format: `PADRIGHTHEX XX YY $VAR1` - `XX` a decimal number specifying the length of the HEX string's text representation; - `YY` the HEX code of the character used to pad the string to the required length; - `$VAR1` the variable containing the HEX string to convert. ``` // Convert text to a HEX string and store it in a variable $VAR9=STRTOHEX QSFP28-SR4 // Pad the variable on the right with spaces (HEX code 0x20) to 16 bytes $VAR8=PADRIGHTHEX 16 20 $VAR9 ECHO $VAR8 ``` This command is useful when assigning text to a variable and converting it to a HEX string of a specific length. --- **PADLEFTHEX** Works like PADRIGHTHEX. Pad the hexadecimal value in $VAR1 on the left with the character whose code is YY until the length of its text representation reaches XX. --- **SAVECODEDIR** Set the path for saving a code file automatically without a dialog box. Example: setting the code output path to a directory named after the serial number in the code: ``` $VAR4=HEXTOSTR {44;0F} SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4 ``` --- **SAVEFILE** Save the code to a file at the path set by SAVECODEDIR. The application generates the file name automatically according to the selected module type and page. ``` $VAR4=HEXTOSTR {44;0F} SAVECODEDIR=C:\Users\DemoUser\Desktop\Codes\$VAR4 SAVEFILE ``` --- **SIGNATURE** Run the generator with preset parameters. This feature requires an extended generator license in the application, which is not included in the standard package. --- #### External API handler **APIURL** Set the URL used to call the external API handler. ``` APIURL=http://localhost/example/api.php ``` **APICALL** Call the external API handler. This is equivalent to clicking the API button in the main application window. POST request format for calls to APIURL ``` POST Fields: code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00 ``` - `code` code: a 256-character string (HEX, uppercase); - `module_type` module type (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP); - `table` table address (HEX, uppercase; for example: A0, A2); - `offset` table offset (HEX, uppercase; for example: 00, 80). The server must return a JSON string: ``` {"status":1,"script":"R1A000007F\r\nW1A000007F{00;7F}\r\n","message":"","code":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","module_type":"1","table":"A0","offset":"00"} ``` The server response must contain the following parameters: - `status` processing status: 1 — import and execute the script; 0 — display a message without importing code; - `script` script text to execute after importing code; leave empty if no script is specified; - `message` returned message, displayed when status=0; - `code` returned code: a 256-character string (HEX, uppercase); - `module_type` module type (0 — GBIC, 1 — SFP, 2 — SFP-DD, 3 — XFP, 4 — QSFP, 5 — QSFP-DD, 6 — OSFP); - `table` table address (HEX, uppercase; for example: A0, A2); - `offset` table offset (HEX, uppercase; for example: 00, 80). --- #### Arithmetic operations The script processor supports addition, subtraction, multiplication and division through the **MATH**. Command format: `MATH Value1 %Operator Value2` Supported arithmetic operators: - `+` — addition; - `-` — subtraction; - `*` — multiplication; - `/` — division; ``` COUNTER $VAR0=MATH 10 - $COUNTER ECHO $VAR0 // Repeat the script while the condition is true IF $VAR0 > 0 THEN LOOP ``` --- #### User file Commands for working with a user file. **USERFILEPATH** Set the user file path. ``` USERFILEPATH=C:\Users\User\Desktop\user-file.txt ``` **GETUSERFILESTRING** Read the specified line from the user file. ``` GETUSERFILESTRING 10 ``` **SAVETOUSERFILE** Save data to the user file. Example: ``` // Store the serial number in a variable $VAR2={44;0F} // Save the variable value to the user file SAVETOUSERFILE HEXTOSTR $VAR2 // Add a line feed and carriage return SAVETOUSERFILE HEXTOSTR 0D0A ``` **$STRCOUNTUSERFILE** This value contains the number of lines in the user file. ``` // Find the inserted line's position by subtracting the script iteration count from the file's line count $VAR0=MATH $STRCOUNTUSERFILE - $COUNTER ECHO $VAR0 // Read the most recently inserted line from the file GETUSERFILESTRING $VAR0 ``` ## Automatic writing on connection Source: [https://sfptotal.io/en/wiki/Automatic_writing](https://sfptotal.io/en/wiki/Automatic_writing) Enabling automatic writing when a transceiver is connected to the coding board. The software supports automatically writing to a transceiver when it is connected to the coding board port. To enable this feature, select the following checkboxes: **Control - Check status for connected device** **Control - Auto write to plugged-in transceiver** Establish a connection to the coding board: **Connection - Connect** ![Automatic SFP programming settings: connection checking and writing options in the Control menu](https://sfptotal.io/images/documentation/i152/p44/356a192b-2a1a3ff372-5e2bf18e2670.jpg) Once this mode is enabled, the software monitors the inputs that indicate whether a transceiver is connected to the coding board ports. When a connection is detected, the write operation starts automatically using the configured password settings or script. ``` 2024-02-09 16:57:10 > [SFP] : Transceiver has been plugged-in the port 2024-02-09 16:57:11 > Write Table A0 add. 00, 128 byte(s) from 00 2024-02-09 16:57:11 > W1A000007F0D00230100000000000000058D00000000000A004F454D202020202020202020202020200F0002C94D43323230373331562D30313020202041314268000046BD0001049854573231313530313138342020202020313530353235202068F0037C2020202020202020202020202020202020202020202020202020202020202020 2024-02-09 16:57:13 > 0D00230100000000000000058D00000000000A004F454D202020202020202020202020200F0002C94D43323230373331562D30313020202041314268000046BD0001049854573231313530313138342020202020313530353235202068F0037C2020202020202020202020202020202020202020202020202020202020202020 2024-02-09 16:57:13 > WRITE OK ``` To write again, remove the transceiver from the coding board port, wait for the port status to update, then reconnect it. ![Automatic SFP firmware writing in SFPTotal Wizard: the code table and operation log](https://sfptotal.io/images/documentation/i152/p44/356a192b-dbc7c9adf9-1f7948688204.jpg) To disable automatic writing, clear the checkboxes selected earlier. ### Note Combining automatic writing with script based writing enables batch programming of transceivers and significantly reduces the time spent on manual operations. ## Batch code generation Source: [https://sfptotal.io/en/wiki/Batch_code_generation](https://sfptotal.io/en/wiki/Batch_code_generation) Creating a set of code files from a template with varying serial numbers. The software can generate firmware files in batches from a template, incrementing the serial number and saving each result to a file. To generate firmware with increasing serial numbers, enter placeholder characters in the template's Serial number field: **%%%%**. During firmware generation, the `%%%%` characters are replaced with the corresponding numeric value. 1. Load the firmware template into the editor. 2. Enter placeholder characters in the Serial Number field as shown in the image. ![SFP firmware source code in the CODE TABLE tab before batch generation in SFPTotal Wizard](https://sfptotal.io/images/documentation/i84/p56/356a192b-38232c178a-a6dd573710bc.jpg) 3. Open **GENERATOR** to access the batch firmware generation settings. 4. Set the directory where the application should save the firmware files. 5. Set **Start position** to specify the starting value for serial number generation. 6. Set **Count** to specify the number of firmware files to generate. 7. Select **Update checksums** to have the application automatically recalculate **CC\_BASE** and **CC\_EXT** checksums when generating firmware. ![SFP firmware generation in SFPTotal Wizard: output directory, serial numbers and the Run generator button](https://sfptotal.io/images/documentation/i84/p56/356a192b-dd42bb2140-a6dd573710bc.jpg) 8. Click **Run Generator** to start the process. ![SFP firmware generation results: serial numbers and saved files in SFPTotal Wizard](https://sfptotal.io/images/documentation/i84/p56/356a192b-c88d781f15-a6dd573710bc.jpg) The application generates the firmware using the specified settings and saves the files in the selected directory. Generation progress is shown in the table on the right side of the window. The firmware files will be available in the specified output directory. ![SFP firmware files created by the SFPTotal Wizard batch generator in Windows Explorer](https://sfptotal.io/images/documentation/i84/p56/356a192b-772e7ebe98-023d28be8221.jpg) Use these files for subsequent operations. ## Batch writing Source: [https://sfptotal.io/en/wiki/Batch_writing](https://sfptotal.io/en/wiki/Batch_writing) Programming transceivers sequentially from a prepared list of files. The software supports writing firmware to transceiver memory in batches. This allows automated writing of a list of files with unique serial numbers created using batch generation. Batch programming works with a prepared list of firmware files. Connect transceivers and write the files to them one after another. Batch programming can use password entry settings or scripts. To start a batch write, follow these steps: 1. Clear the editor area **File - New** 2. Open the batch loader tab **BATCH LOADER** - Specify the script file path if the transceivers require script based programming. - Configure password entry if the transceivers are password protected. - Click **Add files** to load the firmware file list into the batch loader queue. ![Batch transceiver firmware writing: the file queue in the SFPTotal Wizard BATCH LOADER tab](https://sfptotal.io/images/documentation/i145/p57/356a192b-26af260cd2-b5534685bebe.jpg) 3. Insert the transceiver into the coding board port. 4. Click **RUN BATCH LOADER** to start the batch write. Wait for the first write operation to finish. The operation status is shown in the batch file list. When writing is complete, the corresponding file's status changes to **Done** — completed. ![Batch firmware writing in SFPTotal Wizard: a prompt to connect the next transceiver](https://sfptotal.io/images/documentation/i145/p57/356a192b-0b48314d33-c3b0895208d0.jpg) The application displays a prompt to continue the process. ![The Next transceiver window: connecting the next transceiver to continue writing firmware](https://sfptotal.io/images/documentation/i145/p57/356a192b-43a387f67a-f15ba88d715a.jpg) Remove the transceiver from the coding board port and connect the next one. Click **OK** in the prompt for connecting the next transceiver, or **Cancel** to stop the process. On the next iteration, the application loads the next firmware file from the list and performs the write procedure. It then displays the prompt again and waits for the next transceiver to be connected. ### Note By default, batch programming writes the files from the firmware list only to the selected transceiver memory area. To program multiple memory areas, use scripts. ## External handler button Source: [https://sfptotal.io/en/wiki/External_handler_button](https://sfptotal.io/en/wiki/External_handler_button) Calling an external HTTP handler from Wizard and receiving a programming script. The software supports an external code handler for various code modification and validation workflows, importing firmware into the editor and automatically executing commands when code is imported. Communication uses HTTP: the application sends a POST request to the server address specified in **Tools - General settings - Folders - API Button URL**. Example POST request: `code=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&module_type=1&table=A0&offset=00` `code` contains a 256-character code segment from the application editor; `module_type` the selected module type (0 — GBIC, 1 — SFP, 2 — SFP+, 3 — XFP, 4 — QSFP); `table` the table address (for example: A0, A2); `offset` the offset (for example: 00, 80). Example server response: `{"status":1,"script":"R1A000007F\r\nW1A000007F{00;7F}\r\n","message":"","code":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","module_type":"1","table":"A0","offset":"00"}` The server response must contain a JSON string with the following parameters: `status` processing status: 1 — the application imports code from the server response and executes the commands passed in scripts; 0 — it displays the external handler result from the message field. `script` a list of commands according to the SFPTotal protocol `message` a text message, displayed by the application when status=0 `code` code returned by the server; the required length is 256 characters, representing 128 bytes `module_type` the selected module type (0 — GBIC, 1 — SFP, 2 — SFP+, 3 — XFP, 4 — QSFP) `table` the table address (for example: A0, A2) `offset` the code segment offset (for example: 00, 80) If `status=1` the application imports the code from the server response into the editor and executes the commands passed in `script`. If `status=0` the application displays the text passed in `message`. Use this mode to validate code with a custom script hosted on an HTTP server and receive a text message with the results. ## Calling an external code handler Source: [https://sfptotal.io/en/wiki/Calling_an_external_code_handler](https://sfptotal.io/en/wiki/Calling_an_external_code_handler) Placeholder article about the external API handler; no content is available. See the related article. This documentation page has no article content yet. ## SFPTotal Whistle Source: [https://sfptotal.io/en/wiki/SFPTotal_Whistle](https://sfptotal.io/en/wiki/SFPTotal_Whistle) Purpose, connection, activation and features of the SFPTotal Whistle coding board. **Contents** 1. [General information](https://sfptotal.io/en/wiki/SFPTotal_Whistle) 2. [Applications](https://sfptotal.io/en/wiki/SFPTotal_Whistle#1f14ddbb7157864a96a15933e63cc36c5f4eeb2d) 3. [Main advantages](https://sfptotal.io/en/wiki/SFPTotal_Whistle#c3e739897ba710e17c363bf78735529bdf0144ec) 4. [Quick start](https://sfptotal.io/en/wiki/SFPTotal_Whistle#4e82e087889f8534521698ba06311cd9be56b4c6) - [Installing the device driver](https://sfptotal.io/en/wiki/SFPTotal_Whistle#58d7cfe5c8194b301d63e9fcc4919c5f786c8128) - [Activation key](https://sfptotal.io/en/wiki/SFPTotal_Whistle#09a90205073c75c1411e7d5a97e417263b8548c7) - [Software](https://sfptotal.io/en/wiki/SFPTotal_Whistle#31fc1eaf71ad7f69afc20dfed736612540de0f02) - [Connection settings](https://sfptotal.io/en/wiki/SFPTotal_Whistle#76bc18b1782b1491ce8d98e487dd9d1bfcab6003) 5. [Transceiver operations](https://sfptotal.io/en/wiki/SFPTotal_Whistle#c735df8689e34636147068c79e678703500708c5) 6. [Troubleshooting common problems](https://sfptotal.io/en/wiki/SFPTotal_Whistle#618e0dcae9705b5514b13fe9f897ff1135d39f12) 7. [Features and limitations](https://sfptotal.io/en/wiki/SFPTotal_Whistle#ad57058c122323bd3895292e93434b90f59e3281) The **SFPTotal Whistle** coding board is a miniature device for programming the EEPROM of SFP and SFP+ transceivers with a power consumption of up to 1.5 W. The coding board is fully compatible with transceivers designed according to MSA SFF-8074. The coding board supports programming password protected transceivers according to MSA SFF-8472. The device has an SFP port for transceivers, a USB 2.0 connector for connection to a PC, and a power LED. ![Two SFPTotal Whistle USB coding boards with different transceivers installed](https://sfptotal.io/images/documentation/site/products/gallery/whistle/sfptotal-whistle-01.jpg) --- ### Applications The coding board is used for the following tasks: - Reading and writing transceiver memory; - Programming write protected transceivers; - Writing changes to transceiver memory to ensure compatibility with switches from different manufacturers; - Accessing DDMI (DOM) diagnostic information. --- ### Main advantages - Official software for Windows; - Compatibility with transceivers from different manufacturers; - Quick changes to transceiver compatibility parameters; - Small size and low weight; - No external power adapter required; - No cable required for connection to a PC. --- ### Quick start #### Installing the device driver For correct operation, install the FTDI Virtual COM Port drivers before connecting the device for the first time: [http://www.ftdichip.com/Drivers/VCP.htm](http://www.ftdichip.com/Drivers/VCP.htm) Original SFPTotal Whistle devices require no additional configuration. Connect the device directly to a USB 2.0 Type A port without adapters or extension cables. An LED on the underside of the board lights up when the device is connected correctly. If the FTDI drivers have already been installed, connecting the device to a Windows computer should automatically detect the new device and install its drivers. In Device Manager, the device appears as USB Serial Port with its assigned serial port number (for example: COM244). You will need this port number to configure the device connection in SFPTotal Wizard. ![SFPTotal Whistle: USB Serial Port and its COM port number in Windows Device Manager](https://sfptotal.io/images/documentation/i102/p58/356a192b-902b0463c3-5fe637ccb870.JPG) --- #### Activation key To work with SFPTotal Wizard, the device must contain a unique digital activation key (Device key). This key authenticates the device and enables the software's main functions for reading and writing transceiver memory. All original devices are supplied with an activation key preloaded in memory. The key is checked automatically the first time the device is used with the official SFPTotal Wizard software. The computer must be connected to the Internet for verification. --- #### Software SFPTotal Whistle is compatible with the official [SFPTotal Wizard](https://sfptotal.io/en/software) software, version 1.0.4.0 or later. Read the user guide before starting. The coding board can also work with IC-Prog [\[1\]](http://ic-prog.com/) but that software does not support access to page A2h or password based writing. --- #### Connection settings 1. Download and start SFPTotal Wizard; 2. Open the drop-down menu **Connection – Connection settings**; 3. Clear **Automatically search for connection** to unlock the device connection settings; 4. Click **Refresh**; 5. Select the **Serial port number** value that matches the COM port assigned to the device; 6. Select the **Programming board type** to match SFPTotal Whistle; 7. Click **Save connection settings** to save the settings; ![SFPTotal Whistle connection settings: COM port and board type in the Connection Settings window](https://sfptotal.io/images/documentation/i102/p58/356a192b-cbcb9b8628-44fa82b182c7.jpg) --- #### Transceiver operations Information about the application's main functions is available in the User Guide section. --- ### Troubleshooting common problems The following common problems may occur while using the device. **The LED does not light up when the device is plugged in** Check the device orientation. When inserting the device into a horizontal USB port, the metal SFP cage on the board must face upward. **The application returns nothing when reading transceiver memory** Check the connection settings in Connection – Connection settings. **No COM port number is assigned** On Windows computers where other connected devices have already used all 256 reserved COM port numbers, the system cannot automatically assign a new port number because of the FTDI driver behavior. Assign a port number manually. In Device Manager, under Ports (COM & LPT), select the appropriate USB Serial Port device, open Properties - Port Settings - Advanced, and assign a COM port number. **Error: "Can't find FTDI library FTD2XX.DLL"** The FTDI device class library file is missing. Copy FTD2XX.dll into the SFPTotal Wizard application directory. After installing the driver, this file can be found in C:\\Windows\\System32. **Error: "Slave device has not confirmed the transfer of DeviceAddress: 0xA0"** This error occurs when the coding board receives no acknowledgment from the slave device (transceiver) while addressing table A0h. Possible causes include: - No transceiver is connected to the coding board port; - The transceiver is faulty and does not respond; - The data bus is locked; - There is a contact problem between the transceiver and the coding board. **Error: "Slave device has not confirm the transfer of offset: 0x00"** This error occurs when the coding board receives no acknowledgment from the slave device (transceiver) while writing the offset byte. The transceiver is not ready to perform the operation and continue communication on the data bus. **WRITE FAIL write error** This error indicates that writing to the specified transceiver memory area was unsuccessful. The coding board performed the write, but the verification read could not confirm that the changes were saved in transceiver memory. This usually happens when writing to a protected memory area. Use password entry in Control – Set a password to program password protected transceivers. --- ### Features and limitations Unlike SFPTotal Mini, the Whistle series uses an FTDI FT232 interface converter and software controlled data bus communication: the application controls the bus line states, rather than a hardware controller. Software control of the data bus does not allow the communication mode and speed to be adjusted to support the wide variety of transceiver write mechanisms implemented by module manufacturers. This limits write support for some protected transceivers that are sensitive to clock speed and timing, or whose programming logic differs from the MSA standard. Software controlled data bus operation cannot provide both a high clock frequency and strict timing when generating the signal sequences needed to read and write transceiver memory. This can be critical when programming transceivers that have a management controller and emulate slave device operation in software. ## SFPTotal Mini Source: [https://sfptotal.io/en/wiki/SFPTotal_Mini](https://sfptotal.io/en/wiki/SFPTotal_Mini) Quick start, connection and features of the SFPTotal Mini coding board. **Contents** 1. [General information](https://sfptotal.io/en/wiki/SFPTotal_Mini) 2. [Applications](https://sfptotal.io/en/wiki/SFPTotal_Mini#1f14ddbb7157864a96a15933e63cc36c5f4eeb2d) 3. [Main advantages](https://sfptotal.io/en/wiki/SFPTotal_Mini#c3e739897ba710e17c363bf78735529bdf0144ec) 4. [Quick start](https://sfptotal.io/en/wiki/SFPTotal_Mini#4e82e087889f8534521698ba06311cd9be56b4c6) - [Installing the device driver](https://sfptotal.io/en/wiki/SFPTotal_Mini#58d7cfe5c8194b301d63e9fcc4919c5f786c8128) - [Software](https://sfptotal.io/en/wiki/SFPTotal_Mini#31fc1eaf71ad7f69afc20dfed736612540de0f02) - [Connection settings](https://sfptotal.io/en/wiki/SFPTotal_Mini#76bc18b1782b1491ce8d98e487dd9d1bfcab6003) - [Device activation](https://sfptotal.io/en/wiki/SFPTotal_Mini#d60c43dba8d1cb989665461b41663c11cac7d28f) - [Connecting a transceiver](https://sfptotal.io/en/wiki/SFPTotal_Mini#00972fe7f66b04665adf9c48d0743f9a693a171b) 5. [Controls](https://sfptotal.io/en/wiki/SFPTotal_Mini#e9f686423be28b2a114f10d89816203c52e5a03a) 6. [Control commands](https://sfptotal.io/en/wiki/SFPTotal_Mini#22418440dde4c54c0f099e9d5cb94b846cbde6f7) 7. [Note](https://sfptotal.io/en/wiki/SFPTotal_Mini#7d74563e457666cab3955de69bc3a49870523040) The **SFPTotal Mini** coding board programs the memory of SFP28, SFP+ and SFP transceivers, including SFP RJ45, AOC and DAC. It supports programming password protected transceivers according to MSA SFF-8472, as well as script based writing and programming modules with hardware write protection circuits. The coding board is fully compatible with transceivers designed according to MSA SFF-8074. The device has an SFP port for transceivers, a USB Type C connector for connection to a PC, LED indicators, power control jumpers, and a connector for an external 5V DC power supply. ![SFPTotal Mini SFP coding board with a transceiver port and USB connector](https://sfptotal.io/images/documentation/i90/p59/356a192b-573370abb7-0594e633dce7.png) ![Underside of SFPTotal Mini showing the model and board revision markings](https://sfptotal.io/images/documentation/i90/p59/356a192b-3bec720c96-0594e633dce7.png) --- ### Applications The coding board is used for the following tasks: - Programming SFP RJ45, 1G SFP, 10G SFP+ and 25G SFP28 optical transceivers; - Programming AOC and DAC cables; - Ensuring module compatibility with network equipment from different manufacturers; - Programming write protected transceiver memory; - Reading transceiver diagnostic information in real time; - Setting the channel of DWDM SFP+ tunable transceivers; - Changing PHY controller settings; - Rebranding OEM transceivers. --- ### Main advantages - Compact size; - Full support for the SFP form factor on a single device; - No restriction to a particular transceiver manufacturer; - Flexible control of write speed and settings; - Support for programming transceivers with a password; - Access to nonstandard transceiver memory addresses; - Programming transceivers with hardware write protection; - External power supply support for high power transceivers; - Hardware password search support; - Technical support from the manufacturer. --- ### Quick start #### Installing the device driver For correct operation, install the device driver before connecting the device for the first time. It is available on the **download page**. Windows 10 / 11 include drivers for SFPTotal Mini by default. Simply connect the device to the computer and wait for automatic installation to complete. If the operating system does not include a driver or special driver installation policies apply to new devices, follow the **driver installation instructions**. Some versions of Windows require a system restart after driver installation for the virtual serial port device to work correctly. --- #### Software Use the official **SFPTotal Wizard** software to work with the device. It provides a convenient interface for editing, reading and writing transceiver memory. No preliminary device configuration or calibration is required to start using the application. For complete software instructions, see the **User Guide**. --- #### Connection settings Connect the coding board to the computer's USB port using the supplied USB Type C cable. The operating system detects a new device when it is connected for the first time. By default, no connection configuration is required. The application automatically detects the coding board connected to the PC. If the application was previously configured for a direct device connection, open the menu **Connection - Connection Settings**. ![Connection Settings: automatic detection of an SFPTotal Mini/Plus coding board](https://sfptotal.io/images/documentation/i90/p59/356a192b-02d26c9bb6-fa650823060b.jpg) Reset **Serial port number**, select **Programming board type** for your device and select **Automatically search device for connection** to connect to the coding board automatically. Save the connection settings by clicking **Save connection settings**. --- #### Device activation The **SFPTotal Mini** is supplied with limited functionality and requires activation before use. See the section [Device activation](https://sfptotal.io/en/device-activation). --- #### Connecting a transceiver Connect the transceiver to the SFP port inside the metal cage. When inserting it, the label on the module casing must face upward. Insert the transceiver into the port and push it in gently until it clicks. The latch on the transceiver casing must engage with the port cage. When the transceiver is correctly installed, the STAT LED stops flashing and stays on. The coding board is ready for use. To remove the transceiver, swing out its bail to release the latch, then hold the sides of the module with two fingers and pull it out of the port. Do not pull on the bail, as it may break. --- ### Controls The coding board has the following status indicators and controls: **LED indicators** - The **POWER/MCU** indicator lights up when the device is connected to a computer. - The **STATUS/STAT** indicator flashes when power is on and the device is waiting for a transceiver in the SFP port. It stays on when a transceiver is connected. - The **ERROR/ERR** indicator stays on when the device detects a data bus fault or lockup. - The **TX\_ENA** indicator lights up when the transmitter power pins are connected to the power supply. - The **RX\_ENA** indicator lights up when the receiver pins are connected to the power supply. - The **PRSNT** indicator lights up when a transceiver is connected to the coding board port. **Jumpers** - Opening **TX PWR/TX\_VCC** disconnects transmitter power. - Opening **RX PWR/RX\_VCC** disconnects receiver power. - Opening **TX\_EN** enables Low power mode: the laser is off or operates at minimum power. Closing the contact disables low power mode. - Closing **RS0** and **RS1** pulls the corresponding transceiver pins to ground. --- ### Control commands The **SFPTotal Mini** operates using a proprietary command protocol supported by SFPTotal Wizard. [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol) provide access to the device's full capabilities for complex programming procedures or specific transceiver control registers. --- ### Note 1. Component labels on the PCB may differ depending on the hardware revision. See the accompanying documentation for details. 2. Embedded firmware updates are available only through SFPTotal service. Contact Support to check whether an update is available. 3. An external 5V DC 1A power adapter is recommended for high power transceivers. Connector polarity is marked on the device PCB. 4. Hardware revision 1.6 includes additional electrostatic discharge protection to improve reliability. ## SFPTotal Plus New Source: [https://sfptotal.io/en/wiki/SFPTotal_Plus_New](https://sfptotal.io/en/wiki/SFPTotal_Plus_New) Quick start, connection and features of the SFPTotal Plus New coding board. **Contents** 1. [General information](https://sfptotal.io/en/wiki/SFPTotal_Plus_New) 2. [Applications](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#1f14ddbb7157864a96a15933e63cc36c5f4eeb2d) 3. [Main advantages](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#c3e739897ba710e17c363bf78735529bdf0144ec) 4. [Quick start](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#4e82e087889f8534521698ba06311cd9be56b4c6) - [Installing the device driver](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#58d7cfe5c8194b301d63e9fcc4919c5f786c8128) - [Software](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#31fc1eaf71ad7f69afc20dfed736612540de0f02) - [Connection settings](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#76bc18b1782b1491ce8d98e487dd9d1bfcab6003) - [Device activation](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#d60c43dba8d1cb989665461b41663c11cac7d28f) - [Connecting a transceiver](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#00972fe7f66b04665adf9c48d0743f9a693a171b) 5. [Controls](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#e9f686423be28b2a114f10d89816203c52e5a03a) 6. [Control commands](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#22418440dde4c54c0f099e9d5cb94b846cbde6f7) 7. [Note](https://sfptotal.io/en/wiki/SFPTotal_Plus_New#7d74563e457666cab3955de69bc3a49870523040) The **SFPTotal Plus New** coding board programs the memory of QSFP28, SFP28, XFP, SFP+ and SFP transceivers, including SFP RJ45, AOC and DAC. It supports programming password protected transceivers according to MSA SFF-8472 and SFF-8636, as well as script based writing and programming modules with hardware write protection circuits. The device has SFP, XFP and QSFP ports for transceivers, a USB Type C connector for connection to a PC, LED indicators, power control jumpers, and a connector for an external 5V DC power supply. ![SFPTotal Plus New coding board with SFP, XFP and QSFP ports: connector layout](https://sfptotal.io/images/documentation/i230/p60/356a192b-55e756c155-755c1a60eac6.png) ![Underside of the SFPTotal Plus New board](https://sfptotal.io/images/documentation/i230/p60/356a192b-bdf21cc1eb-755c1a60eac6.png) --- ### Applications The coding board is used for the following tasks: - Programming optical transceivers; - Programming AOC and DAC cables; - Ensuring module compatibility with network equipment from different manufacturers; - Programming write protected transceiver memory; - Reading transceiver diagnostic information in real time; - Setting the channel of DWDM SFP+ tunable transceivers; - Changing PHY controller settings; - Rebranding OEM transceivers. --- ### Main advantages - Compact size; - Full support for several form factors on a single device; - Support for optical transceivers with data rates from 1.25G to 100G; - No restriction to a particular transceiver manufacturer; - Flexible control of write speed and settings; - Support for programming transceivers with a password; - Access to nonstandard transceiver memory addresses; - Programming transceivers with hardware write protection; - External power supply support for high power transceivers; - Hardware password search support; - Technical support from the manufacturer. --- ### Quick start #### Installing the device driver For correct operation, install the device driver before connecting the device for the first time. It is available on the **download page**. Windows 10 / 11 include drivers for SFPTotal Plus New by default. Simply connect the device to the computer and wait for automatic installation to complete. If the operating system does not include a driver or special driver installation policies apply to new devices, follow the **driver installation instructions**. Some versions of Windows require a system restart after driver installation for the virtual serial port device to work correctly. --- #### Software Use the official **SFPTotal Wizard** software to work with the device. It provides a convenient interface for editing, reading and writing transceiver memory. No preliminary device configuration or calibration is required to start using the application. For complete software instructions, see the **User Guide**. --- #### Connection settings Connect the coding board to the computer's USB port using the supplied USB Type C cable. The operating system detects a new device when it is connected for the first time. By default, no connection configuration is required. The application automatically detects the coding board connected to the PC. If the application was previously configured for a direct device connection, open the menu **Connection - Connection Settings**. ![Connection Settings: automatic detection of an SFPTotal Mini/Plus coding board](https://sfptotal.io/images/documentation/i90/p59/356a192b-02d26c9bb6-fa650823060b.jpg) Reset **Serial port number**, select **Programming board type** for your device and select **Automatically search device for connection** to connect to the coding board automatically. Save the connection settings by clicking **Save connection settings**. --- #### Device activation The **SFPTotal Plus New** is supplied with limited functionality and requires activation before use. See the section [Device activation](https://sfptotal.io/en/device-activation). --- #### Connecting a transceiver Connect the transceiver through the SFP, XFP or QSFP port. When inserting it, the label on the module casing must face upward. Insert the transceiver into the port and push it in gently until it clicks. The latch on the transceiver casing must engage with the port cage. When the transceiver is correctly installed, the STAT LED stops flashing and stays on. The coding board is ready for use. To remove the transceiver, swing out its bail to release the latch, then hold the sides of the module with two fingers and pull it out of the port. Do not pull on the bail, as it may break. --- ### Controls The coding board has the following status indicators and controls: **Power control** - The **SW1** slide switch controls power to the transceiver ports. - The **PWR** jumper duplicates the power switch function. Measuring equipment can be connected in series with the power supply at this point. **LED indicators** - The **MCU** indicator lights up when the device is connected to a computer. - The **STAT** indicator flashes when power is on and the device is waiting for a transceiver in the SFP port. It stays on when a transceiver is connected. - The **ERR** indicator stays on when the device detects a data bus fault or lockup. - The **SFP** indicator lights up when a transceiver is connected to the SFP port. - The **XFP** indicator lights up when a transceiver is connected to the XFP port. - The **QSFP** indicator lights up when a transceiver is connected to the QSFP port. **Jumpers** The transceiver ports have a group of jumpers for controlling the power rails and transceiver inputs. **SFP** - Opening **PWR\_TX** disconnects transmitter power. - Opening **PWR\_RX** disconnects receiver power. - Closing **RS0** and **RS1** pulls the corresponding transceiver pins to ground. **XFP** - Opening **PWR\_5V0** disconnects transmitter power on the 5V rail. - Opening **PWR\_3V3** disconnects transmitter power on the 3.3 V rail. - The **P\_DOWN/RST** resets the module by switching off power. Open by default. - The **MOD\_DESEL** selects the transceiver for data bus access. Open by default and controlled by software. **QSFP** - Opening **VCC\_RX** disconnects QSFP receiver power. - Opening **VCC\_TX** disconnects QSFP transmitter power. - The **VCC1** disconnects QSFP transceiver controller power. - The **MODSEL** selects the transceiver for data bus access. Open by default and controlled by software. - The **RESETL** resets the module. Open by default. **Low power mode** - The **TX\_EN** disables transceiver low power mode. Open by default. **Data bus** The **SDA**, **SCL** and **GND** pins provide access to the I2C data bus. The data bus logic levels correspond to 5V. --- ### Control commands The **SFPTotal Plus New** operates using a proprietary command protocol supported by SFPTotal Wizard. [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol) provide access to the device's full capabilities for complex programming procedures or specific transceiver control registers. --- ### Note 1. Component labels on the PCB may differ depending on the hardware revision. See the accompanying documentation for details. 2. Embedded firmware updates are available only through SFPTotal service. Contact Support to check whether an update is available. 3. An external 5V DC 2A power adapter is recommended for high power transceivers. Connector polarity is marked on the device PCB. 4. Hardware revision 1.3 includes additional electrostatic discharge protection to improve reliability. ## SFPTotal Plus X Source: [https://sfptotal.io/en/wiki/SFPTotal_Plus_X](https://sfptotal.io/en/wiki/SFPTotal_Plus_X) Quick start, connection and features of the SFPTotal Plus X coding board. **Contents** 1. [General information](https://sfptotal.io/en/wiki/SFPTotal_Plus_X) 2. [Applications](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#1f14ddbb7157864a96a15933e63cc36c5f4eeb2d) 3. [Main advantages](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#c3e739897ba710e17c363bf78735529bdf0144ec) 4. [Quick start](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#4e82e087889f8534521698ba06311cd9be56b4c6) - [Installing the device driver](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#58d7cfe5c8194b301d63e9fcc4919c5f786c8128) - [Software](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#31fc1eaf71ad7f69afc20dfed736612540de0f02) - [Connection settings](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#76bc18b1782b1491ce8d98e487dd9d1bfcab6003) - [Device activation](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#d60c43dba8d1cb989665461b41663c11cac7d28f) - [Connecting a transceiver](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#00972fe7f66b04665adf9c48d0743f9a693a171b) 5. [Controls](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#e9f686423be28b2a114f10d89816203c52e5a03a) 6. [Control commands](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#22418440dde4c54c0f099e9d5cb94b846cbde6f7) 7. [Note](https://sfptotal.io/en/wiki/SFPTotal_Plus_X#7d74563e457666cab3955de69bc3a49870523040) The **SFPTotal Plus X** coding board programs the memory of QSFP-DD, QSFP56, QSFP28, SFP28, XFP, SFP+ and SFP transceivers, including SFP RJ45, AOC and DAC. It supports programming password protected transceivers according to MSA SFF-8472, SFF-8636 and CMIS 5.0, as well as script based writing and programming modules with hardware write protection circuits. The device has SFP, XFP and QSFP-DD ports for transceivers, a USB Type C connector for connection to a PC, LED indicators, power control jumpers, and a connector for an external 5V DC power supply. ![SFPTotal Plus X coding board: SFP, XFP and QSFP-DD port layout](https://sfptotal.io/images/documentation/i108/p61/356a192b-80eec02f1a-75ff1dc00f77.png) ![Underside of the SFPTotal Plus X board](https://sfptotal.io/images/documentation/i108/p61/356a192b-53eff62d3b-fb47744ce05d.png) --- ### Applications SFPTotal Plus X is used for the following tasks: - Programming optical transceivers; - Programming AOC and DAC cables; - Ensuring module compatibility with network equipment from different manufacturers; - Programming write protected transceiver memory; - Reading transceiver diagnostic information in real time; - Setting the channel of DWDM SFP+ tunable transceivers; - Changing PHY controller settings; - Rebranding OEM transceivers. --- ### Main advantages - Compact size; - Full support for several form factors on a single device; - Support for optical transceivers with data rates from 1.25G to 400G; - No restriction to a particular transceiver manufacturer; - Flexible control of write speed and settings; - Support for programming transceivers with a password; - Access to nonstandard transceiver memory addresses; - Programming transceivers with hardware write protection; - External power supply support for high power transceivers; - Hardware password search support; - Technical support from the manufacturer. --- ### Quick start #### Installing the device driver For correct operation, install the device driver before connecting the device for the first time. It is available on the [download page](https://sfptotal.io/en/software#driver). Windows 10 / 11 include drivers for SFPTotal Plus X by default. Simply connect the device to the computer and wait for automatic installation to complete. If the operating system does not include a driver or special driver installation policies apply to new devices, follow the [driver installation instructions](https://sfptotal.io/en/software#driver). Some versions of Windows require a system restart after driver installation for the virtual serial port device to work correctly. --- #### Software Use the official [SFPTotal Wizard](https://sfptotal.io/en/software) software to work with the device. It provides a convenient interface for editing, reading and writing transceiver memory. No preliminary device configuration or calibration is required to start using the application. For complete software instructions, see the [User Guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation#e9aa6ea1ce86697d7e125ea8149a1768a40ce9fb). --- #### Connection settings Connect the coding board to the computer's USB port using the supplied USB Type C cable. The operating system detects a new device when it is connected for the first time. By default, no connection configuration is required. The application automatically detects the coding board connected to the PC. If the application was previously configured for a direct device connection, open the menu **Connection - Connection Settings**. ![Connection Settings: automatic detection of an SFPTotal Mini/Plus coding board](https://sfptotal.io/images/documentation/i90/p59/356a192b-02d26c9bb6-fa650823060b.jpg) Reset **Serial port number**, select **Programming board type** for your device and select **Automatically search device for connection** to connect to the coding board automatically. Save the connection settings by clicking **Save connection settings**. --- #### Device activation The **SFPTotal Plus X** is supplied with limited functionality and requires activation before use. See the section [Device activation](https://sfptotal.io/en/device-activation). --- #### Connecting a transceiver Connect the transceiver to the SFP port inside the metal cage. When inserting it, the label on the module casing must face upward. Insert the transceiver into the port and push it in gently until it clicks. The latch on the transceiver casing must engage with the port cage. When the transceiver is correctly installed, the STAT LED stops flashing and stays on. The coding board is ready for use. To remove the transceiver, swing out its bail to release the latch, then hold the sides of the module with two fingers and pull it out of the port. Do not pull on the bail, as it may break. --- ### Controls The coding board has the following status indicators and controls: **Power control** - The **SW1** slide switch controls power to the transceiver ports. - The **PWR** jumper duplicates the power switch function. Measuring equipment can be connected in series with the power supply at this point. **LED indicators** - The **MCU** indicator lights up when the device is connected to a computer. - The **STAT** indicator flashes when power is on and the device is waiting for a transceiver. It stays on when a transceiver is connected to a port. - The **ERR** indicator stays on when the device detects a data bus fault or lockup. - The **SFP** indicator lights up when a transceiver is connected to the SFP port. - The **XFP** indicator lights up when a transceiver is connected to the XFP port. - The **QSFP** indicator lights up when a transceiver is connected to the QSFP port. **Jumpers** The transceiver ports have a group of jumpers for controlling the power rails and transceiver inputs. The functions of the main jumpers are marked on the front or back of the PCB. **SFP** - Opening **PWR\_TX** disconnects transmitter power. - Opening **PWR\_RX** disconnects receiver power. - Closing **RS0** and **RS1** pulls the corresponding transceiver pins to ground to control the Rate Select lines. **XFP** - Opening **PWR\_5V0** disconnects transmitter power on the 5V rail. - Opening **PWR\_3V3** disconnects transmitter power on the 3.3 V rail. - The **P\_DOWN/RST** resets the module by switching off power. Open by default. - The **MOD\_DESEL** selects the transceiver for data bus access. Open by default and controlled by software. **QSFP** - Opening **VCC\_RX** disconnects QSFP receiver power. - Opening **VCC\_TX** disconnects QSFP transmitter power. - The **VCC1** disconnects QSFP transceiver controller power. - The **VCC2** disconnects QSFP-DD transceiver controller power. - Opening **VCC\_RX1** disconnects QSFP-DD receiver power. - Opening **VCC\_TX1** disconnects QSFP-DD transmitter power. - The **MODSEL** selects the transceiver for data bus access. Open by default and controlled by software. - The **RESETL** resets the module. Open by default. **Low power mode** - The **TX\_EN** disables transceiver low power mode. Open by default. **Data bus** The **SDA**, **SCL** and **GND** pins provide access to the I2C data bus. The data bus logic levels correspond to 5V. --- ### Control commands The **SFPTotal Plus X** operates using a proprietary command protocol supported by SFPTotal Wizard. [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol) provide access to the device's full capabilities for complex programming procedures or specific transceiver control registers. --- ### Note 1. Component labels on the PCB may differ depending on the hardware revision. See the accompanying documentation for details. 2. Embedded firmware updates are available only through SFPTotal service. Contact Support to check whether an update is available. 3. An external 5V DC 2A power adapter is recommended for high power transceivers. Connector polarity is marked on the device PCB. 4. Hardware revision 1.9 includes additional electrostatic discharge protection to improve reliability. ## SFPTotal OSFP Board Source: [https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board) Purpose, connection and features of the SFPTotal OSFP Board coding board. **Contents** 1. [General information](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board) 2. [Applications](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#1f14ddbb7157864a96a15933e63cc36c5f4eeb2d) 3. [Main advantages](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#c3e739897ba710e17c363bf78735529bdf0144ec) 4. [Quick start](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#4e82e087889f8534521698ba06311cd9be56b4c6) - [Installing the device driver](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#58d7cfe5c8194b301d63e9fcc4919c5f786c8128) - [Software](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#31fc1eaf71ad7f69afc20dfed736612540de0f02) - [Connection settings](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#76bc18b1782b1491ce8d98e487dd9d1bfcab6003) - [Device activation](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#d60c43dba8d1cb989665461b41663c11cac7d28f) - [Connecting a transceiver](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#00972fe7f66b04665adf9c48d0743f9a693a171b) 5. [Controls](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#e9f686423be28b2a114f10d89816203c52e5a03a) 6. [Control commands](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#22418440dde4c54c0f099e9d5cb94b846cbde6f7) 7. [Note](https://sfptotal.io/en/wiki/SFPTotal_OSFP_Board#7d74563e457666cab3955de69bc3a49870523040) The **SFPTotal OSFP Board** coding board programs the memory of 400G and 800G OSFP transceivers, AOC and DAC. It supports programming password protected transceivers according to CMIS 5.0, as well as script based writing and programming modules with hardware write protection circuits. The device has an OSFP port for transceivers, a USB Type C connector for connection to a PC, LED indicators, power control jumpers, and a connector for an external 5V DC power supply. ![SFPTotal OSFP Board: OSFP port, buttons and power connectors](https://sfptotal.io/images/documentation/i180/p68/356a192b-b2a4dd28a9-9bf55b6d46cc.png) ![Underside of SFPTotal OSFP Board showing labels and pin functions](https://sfptotal.io/images/documentation/i180/p68/356a192b-594b4848a1-9bf55b6d46cc.png) --- ### Applications SFPTotal OSFP Board is used for the following tasks: - Programming optical transceivers; - Programming AOC and DAC cables; - Ensuring module compatibility with network equipment from different manufacturers; - Programming write protected transceiver memory; - Reading transceiver diagnostic information in real time; - Rebranding OEM transceivers. --- ### Main advantages - Compact size; - Support for optical transceivers with data rates of 400G and 800G; - No restriction to a particular transceiver manufacturer; - Flexible control of write speed and settings; - Support for programming transceivers with a password; - Access to nonstandard transceiver memory addresses; - Programming transceivers with hardware write protection; - External power supply support for high power transceivers; - Hardware password search support; - Technical support from the manufacturer. --- ### Quick start #### Installing the device driver For correct operation, install the device driver before connecting the device for the first time. It is available on the [download page](https://sfptotal.io/en/software#driver). Windows 10 / 11 include drivers for SFPTotal OSFP Board by default. Simply connect the device to the computer and wait for automatic installation to complete. If the operating system does not include a driver or special driver installation policies apply to new devices, follow the [driver installation instructions](https://sfptotal.io/en/software#driver). Some versions of Windows require a system restart after driver installation for the virtual serial port device to work correctly. --- #### Software Use the official [SFPTotal Wizard](https://sfptotal.io/en/software) software to work with the device. It provides a convenient interface for editing, reading and writing transceiver memory. No preliminary device configuration or calibration is required to start using the application. For complete software instructions, see the [User Guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation#e9aa6ea1ce86697d7e125ea8149a1768a40ce9fb). --- #### Connection settings Connect the coding board to the computer's USB port using the supplied USB Type C cable. The operating system detects a new device when it is connected for the first time. By default, no connection configuration is required. The application automatically detects the coding board connected to the PC. If the application was previously configured for a direct device connection, open the menu **Connection - Connection Settings**. ![Connection Settings: automatic detection of an SFPTotal Mini/Plus coding board](https://sfptotal.io/images/documentation/i90/p59/356a192b-02d26c9bb6-fa650823060b.jpg) Reset **Serial port number**, select **Programming board type** for your device and select **Automatically search device for connection** to connect to the coding board automatically. Save the connection settings by clicking **Save connection settings**. --- #### Device activation The **SFPTotal OSFP Board** is supplied with limited functionality and requires activation before use. See the section [Device activation](https://sfptotal.io/en/device-activation). --- #### Connecting a transceiver Connect the transceiver to the OSFP port inside the metal cage. When inserting it, the label on the module casing and the exposed edge of the module PCB must face downward. Insert the transceiver into the port cage and push it in gently until it clicks. The latch on the transceiver casing must engage with the port cage. When the transceiver is correctly installed, the green STAT LED stops flashing and stays on. The coding board is ready for use. To remove the transceiver, pull its bail to release the latch, then hold the sides of the module with two fingers and pull it out of the port. Do not pull the module out by its bail, as it may break. **The LED keeps flashing and the module cannot be read** - Check that SW1, which controls port power, is set to ON or that software power control is enabled. - Make sure the device's power supply requirements are met. Attention! OSFP transceivers draw current according to the power class specified by the manufacturer. A computer USB port cannot provide sufficient power, so an external power supply is required when connecting high power optical transceivers. **Connecting OSFP-RHS transceivers** The metal OSFP port cage is designed for standard OSFP modules. It cannot accept OSFP-RHS modules because of the internal stops on the cage walls. To connect OSFP-RHS modules to the coding board, remove the metal port cage by pressing the edge that protrudes beyond the device PCB. Install the cage for OSFP-RHS transceivers. Connecting transceivers without a port cage is not recommended. --- ### Controls The coding board has the following status indicators and controls: #### Power control - The dual PWR jumper switches the 5V DC supply to the power controller input. Measuring equipment can be connected in series with the circuit here. - The SW1 slide switch controls power to the transceiver ports. Set it to ON to power the OSFP port. #### LED indicators - The MCU indicator lights up when the device is connected to a computer. - The STAT indicator flashes when power is on and the device is waiting for a transceiver. It stays on when a transceiver is connected to a port. - The ERR indicator stays on when the device detects a data bus fault or lockup. - The PWR indicator shows that power is present at the power controller input. - The PRESENT indicator lights up when a transceiver is connected to the OSFP port. - The INT indicator shows that the Interrupt operation flag is set. #### Jumpers The OSFP port circuitry includes a group of jumpers for controlling individual power rails and transceiver low-speed signals. The functions of the main jumpers are marked on the front or back of the PCB. - Opening VCC1 disconnects power to the first channel. - Opening VCC2 disconnects power to the second channel. - Opening VCC3 disconnects power to the third channel. - Opening VCC4 disconnects power to the fourth channel. - The INT/RSTn jumper connects the corresponding OSFP port line so that the coding board can read M\_INT (Interrupt Operation) and control the transceiver reset through M\_RSTn. Closed by default. - The LPW/PSNT jumper connects the corresponding OSFP port line so that the coding board can read H\_PRSn and control low power mode through M\_LPWn. Closed by default. - Installing the LOWPWR jumper pulls H\_LPWn up to the supply voltage and switches the transceiver to high power mode. Open by default. - The RESET jumper resets the module. Open by default. For more information about the INT/RSTn and LPW/PSNT lines, see section 14.5, Low-speed Signals, in the official OSFP Specification: [https://osfpmsa.org/assets/pdf/OSFP\_Module\_Specification\_Rev5\_1.pdf](https://osfpmsa.org/assets/pdf/OSFP_Module_Specification_Rev5_1.pdf) #### I2C data bus The SDA, SCL and GND pins provide access to the I2C data bus. The data bus logic levels correspond to 5V. #### Connecting a bench power supply The coding board has contacts for connecting a bench power supply with a 3.3V DC output directly to the OSFP\_VCC port power rail. A bench power supply is recommended to maintain a stable voltage when working with transceivers consuming more than 10 W. When connecting a bench power supply directly, disable the coding board's power controller by setting the SW1 slide switch to OFF. WARNING! When connecting a bench power supply directly, do not exceed the 3.465 V DC limit specified by the standard for Host VCC. --- ### Control commands The **SFPTotal OSFP Board** operates using a proprietary command protocol supported by SFPTotal Wizard. [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol) provide access to the device's full capabilities for complex programming procedures or specific transceiver control registers. --- ### Note 1. Component labels on the PCB may differ depending on the hardware revision. See the accompanying documentation for details. 2. Embedded firmware updates are available only through SFPTotal service. Contact Support to check whether an update is available. 3. An external 5V DC 2A power adapter is recommended for high power transceivers. Connector polarity is marked on the device PCB. 4. The coding board supports connection to a bench power supply. ## SFPTotal Evolution Source: [https://sfptotal.io/en/wiki/SFPTotal_Evolution](https://sfptotal.io/en/wiki/SFPTotal_Evolution) Purpose, connection and features of the SFPTotal Evolution coding board. **Contents** 1. [General information](https://sfptotal.io/en/wiki/SFPTotal_Evolution) 2. [Applications](https://sfptotal.io/en/wiki/SFPTotal_Evolution#1f14ddbb7157864a96a15933e63cc36c5f4eeb2d) 3. [Main advantages](https://sfptotal.io/en/wiki/SFPTotal_Evolution#c3e739897ba710e17c363bf78735529bdf0144ec) 4. [Quick start](https://sfptotal.io/en/wiki/SFPTotal_Evolution#4e82e087889f8534521698ba06311cd9be56b4c6) - [Installing the device driver](https://sfptotal.io/en/wiki/SFPTotal_Evolution#58d7cfe5c8194b301d63e9fcc4919c5f786c8128) - [Software](https://sfptotal.io/en/wiki/SFPTotal_Evolution#31fc1eaf71ad7f69afc20dfed736612540de0f02) - [Connection settings](https://sfptotal.io/en/wiki/SFPTotal_Evolution#76bc18b1782b1491ce8d98e487dd9d1bfcab6003) - [Device activation](https://sfptotal.io/en/wiki/SFPTotal_Evolution#d60c43dba8d1cb989665461b41663c11cac7d28f) - [Connecting a transceiver](https://sfptotal.io/en/wiki/SFPTotal_Evolution#00972fe7f66b04665adf9c48d0743f9a693a171b) 5. [Controls](https://sfptotal.io/en/wiki/SFPTotal_Evolution#e9f686423be28b2a114f10d89816203c52e5a03a) 6. [Control commands](https://sfptotal.io/en/wiki/SFPTotal_Evolution#22418440dde4c54c0f099e9d5cb94b846cbde6f7) 7. [Note](https://sfptotal.io/en/wiki/SFPTotal_Evolution#7d74563e457666cab3955de69bc3a49870523040) The **SFPTotal E>olution** project conducts technical research into the compatibility and use of high-speed optical transceivers with network switching equipment in fiber optic communication, data storage and artificial intelligence systems. It also develops products for testing and programming optical transceiver memory. **The SFPTotal E series coding board** is a specialized device for programming the memory of 1.25G SFP, 10G SFP+, 25G SFP28, 40G QSFP+, 100G QSFP28, 200G QSFP56, 200G QSFP-DD, 400G QSFP-DD, 50G DSFP, 100G DSFP, 400G OSFP and 800G OSFP optical transceivers, including DAC, AOC, SFP RJ45 and OLT PON transceivers. The device supports programming password protected transceivers according to CMIS 5.0, MSA SFF-8472 and SFF-8636, as well as script based writing and programming modules with hardware write protection circuits. The device has OSFP, QSFP-DD and DSFP ports, with backward compatibility for SFP/SFP28 and QSFP+/QSFP28, a USB Type C connector for connection to a PC, LED indicators, power control jumpers, and a connector for an external 5V 2A DC power supply. ![3D model of the SFPTotal Evolution coding board with OSFP, QSFP-DD and DSFP/SFP ports](https://sfptotal.io/images/documentation/i167/p69/356a192b-30bddbbd71-db66cded2f06.png) --- ### Applications SFPTotal coding boards are used for the following tasks: - Programming optical transceivers; - Programming AOC and DAC cables; - Ensuring module compatibility with network equipment from different manufacturers; - Programming write protected transceiver memory; - Reading transceiver diagnostic information in real time; - Rebranding OEM transceivers. --- ### Main advantages - Compact size; - Support for optical transceivers with data rates of 400G and 800G; - No restriction to a particular transceiver manufacturer; - Flexible control of write speed and settings; - Support for programming transceivers with a password; - Access to nonstandard transceiver memory addresses; - Programming transceivers with hardware write protection; - External power supply support for high power transceivers; - Hardware password search support; - Technical support from the manufacturer. --- ### Quick start #### Installing the device driver For correct operation, install the device driver before connecting the device for the first time. It is available on the [download page](https://sfptotal.io/en/software#driver). Windows 10 / 11 include drivers for SFPTotal Evolution by default. Simply connect the device to the computer and wait for automatic installation to complete. If the operating system does not include a driver or special driver installation policies apply to new devices, follow the [driver installation instructions](https://sfptotal.io/en/software#driver). Some versions of Windows require a system restart after driver installation for the virtual serial port device to work correctly. --- #### Software Use the official [SFPTotal Wizard](https://sfptotal.io/en/software) software to work with the device. It provides a convenient interface for editing, reading and writing transceiver memory. No preliminary device configuration or calibration is required to start using the application. For complete software instructions, see the [User Guide](https://sfptotal.io/en/wiki/SFPTotal_Documentation#e9aa6ea1ce86697d7e125ea8149a1768a40ce9fb). --- #### Connection settings Connect the coding board to the computer's USB port using the supplied USB Type C cable. The operating system detects a new device when it is connected for the first time. By default, no connection configuration is required. The application automatically detects the coding board connected to the PC. If the application was previously configured for a direct device connection, open the menu **Connection - Connection Settings**. ![Connection Settings: automatic detection of an SFPTotal Mini/Plus coding board](https://sfptotal.io/images/documentation/i90/p59/356a192b-02d26c9bb6-fa650823060b.jpg) Reset **Serial port number**, select **Programming board type** for your device and select **Automatically search device for connection** to connect to the coding board automatically. Save the connection settings by clicking **Save connection settings**. --- #### Device activation The coding board is supplied with limited functionality and requires activation before use. See the section [Device activation](https://sfptotal.io/en/device-activation). --- #### Connecting a transceiver The coding board has OSFP, QSFP-DD and DSFP ports for transceivers. The DSFP port accepts DSFP and SFP transceivers. The QSFP-DD port is backward compatible and accepts QSFP-DD, QSFP28 and QSFP+ transceivers. Insert the transceiver into the port cage and push it in gently until it clicks. The latch on the transceiver casing must engage with the port cage. When the transceiver is correctly installed, the green STAT LED stops flashing and stays on. The coding board is ready for use. To remove the transceiver, pull its bail to release the latch, then hold the sides of the module with two fingers and pull it out of the port. Do not pull the module out by its bail, as it may break. **The LED keeps flashing and the module cannot be read** - Check that SW1, which controls port power, is set to ON or that software power control is enabled. - Make sure the device's power supply requirements are met. Attention! OSFP transceivers draw current according to the power class specified by the manufacturer. A computer USB port cannot provide sufficient power, so an external power supply is required when connecting high power optical transceivers. **Connecting OSFP-RHS transceivers** The metal OSFP port cage is designed for standard OSFP-IHS modules. It cannot accept OSFP-RHS modules (slim modules without a heatsink) because of the internal stops on the cage walls. To connect OSFP-RHS modules to the coding board, remove the OSFP-IHS metal port cage by pressing the edge that protrudes beyond the device PCB. Install the cage for OSFP-RHS transceivers. Connecting transceivers without a port cage is not recommended, as this can damage the port connector and solder joints. --- ### Controls The coding board has the following status indicators and controls: #### Power control - The dual PWR jumper switches the 5V DC supply to the power controller input. Measuring equipment can be connected in series with the circuit here. - The SW1 slide switch controls power to the transceiver ports. Set it to ON to power the OSFP port. #### LED indicators - The MCU indicator lights up when the device is connected to a computer. - The STAT indicator flashes when power is on and the device is waiting for a transceiver. It stays on when a transceiver is connected to a port. - The ERR indicator stays on when the device detects a data bus fault or lockup. - The PWR indicator shows that power is present at the power controller input. - The PRESENT indicator lights up when a transceiver is connected to the OSFP port. - The INT indicator shows that the Interrupt operation flag is set. #### Jumpers The OSFP, QSFP-DD and DSFP port circuitry includes a group of jumpers for controlling individual power rails and transceiver low-speed signals. The functions of the main jumpers are marked on the front or back of the PCB. **OSFP** - Opening VCC1 disconnects power to the first channel. - Opening VCC2 disconnects power to the second channel. - Opening VCC3 disconnects power to the third channel. - Opening VCC4 disconnects power to the fourth channel. - The INT/RSTn jumper connects the corresponding OSFP port line so that the coding board can read M\_INT (Interrupt Operation) and control the transceiver reset through M\_RSTn. Closed by default. - The LPW/PSNT jumper connects the corresponding OSFP port line so that the coding board can read H\_PRSn and control low power mode through M\_LPWn. Closed by default. - Installing the LOWPWR jumper pulls H\_LPWn up to the supply voltage and switches the transceiver to high power mode. Open by default. - The RESET jumper resets the module. Open by default. For more information about the INT/RSTn and LPW/PSNT lines, see section 14.5, Low-speed Signals, in the official OSFP Specification: [https://osfpmsa.org/assets/pdf/OSFP\_Module\_Specification\_Rev5\_1.pdf](https://osfpmsa.org/assets/pdf/OSFP_Module_Specification_Rev5_1.pdf) **QSFP-DD/QSFP** - Opening **VCC\_RX** disconnects QSFP receiver power. - Opening **VCC\_TX** disconnects QSFP transmitter power. - The **VCC1** disconnects QSFP transceiver controller power. - The **VCC2** disconnects QSFP-DD transceiver controller power. - Opening **VCC\_RX1** disconnects QSFP-DD receiver power. - Opening **VCC\_TX1** disconnects QSFP-DD transmitter power. - The **MODSEL** selects the transceiver for data bus access. Open by default and controlled by software. - The **RESETL** resets the module. Open by default. **DSFP/SFP** - Opening **PWR\_TX** disconnects transmitter power. - Opening **PWR\_RX** disconnects receiver power. - Closing **RS0** and **RS1** pulls the corresponding transceiver pins to ground to control the Rate Select lines. - Closing **RX\_LOS** connects RX\_LOS to the management controller circuitry for SFP module reading mode - Closing **TX\_FAULT** connects TX\_FAULT to the management controller circuitry for SFP module reading mode - The **INT/RSTn** connects the corresponding DSFP port line so that the coding board can read M\_INT (Interrupt Operation) and control the transceiver reset through M\_RSTn. Open by default. - The **LPW/PSNT** connects the corresponding OSFP port line so that the coding board can read H\_PRSn and control low power mode through M\_LPWn. Open by default. **Low power mode** - The **TX\_EN** disables low power mode for QSFP, QSFP-DD and SFP transceivers. Open by default. #### I2C data bus The SDA, SCL and GND pins provide access to the I2C data bus. The data bus logic levels correspond to 5V. #### Connecting a bench power supply The coding board has contacts for connecting a bench power supply with a 3.3V DC output directly to the OSFP\_VCC port power rail. A bench power supply is recommended to maintain a stable voltage when working with transceivers consuming more than 10 W. When connecting a bench power supply directly, disable the coding board's power controller by setting the SW1 slide switch to OFF. WARNING! When connecting a bench power supply directly, do not exceed the 3.465 V DC limit specified by the standard for Host VCC. --- ### Control commands The coding board operates using a proprietary command protocol supported by SFPTotal Wizard. [SFPTotal protocol commands](https://sfptotal.io/en/wiki/Device_control_protocol) provide access to the device's full capabilities for complex programming procedures or specific transceiver control registers. --- ### Note 1. Component labels on the PCB may differ depending on the hardware revision. See the accompanying documentation for details. 2. Embedded firmware updates are available only through SFPTotal service. Contact Support to check whether an update is available. 3. An external 5V DC 2A power adapter is recommended for high power transceivers. Connector polarity is marked on the device PCB. 4. The coding board supports connection to a bench power supply. ## Transceiver memory structure Source: [https://sfptotal.io/en/wiki/Transceiver_memory_structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) Transceiver EEPROM: Serial ID, A0h/A2h, manufacturer and Part Number fields, and the differences between SFP, QSFP and CMIS. Reading, backups and write verification in Wizard. **A transceiver's EEPROM stores persistent data that equipment uses to identify the module.** The management interface also provides access to diagnostics, status and settings. The entire memory image is often informally called "SFP firmware," but persistent identification data, live registers and the controller's internal software are different things. Writing identification fields does not change the module's physical design. The following sections explain Serial ID, A0h/A2h and the differences between SFP, XFP, QSFP and CMIS modules. Addresses and mandatory functions depend on the specific memory map and its revision. In SFPTotal Wizard, select the appropriate **Module Type** and **Address table** rather than relying only on a similarly named field. ### EEPROM, Serial ID and live registers | Data | Purpose | Considerations when making changes | | --- | --- | --- | | Identification / Serial ID | Manufacturer, part number, serial number, advertised interfaces and other information. | Equipment uses these fields for identification. They do not, by themselves, prove the module's hardware capabilities. | | Diagnostics and status | DDM measurements, flags and function status. | Values can change during operation; not all registers are writable. | | Persistent and service settings | Calibration, manufacturer data and user areas where provided. | The applicable specification, access permissions and the procedure for the particular product are required. | EEPROM may be a separate chip or be exposed through the module controller. A buffer read over I²C does not automatically reveal the internal memory architecture. Access and persistence procedures must be verified separately from a successful read. ### SFP transceivers SFP family memory maps based on SFF-8472 use the address spaces **A0h** and **A2h**. These are conventional 8-bit address notations that include the direction bit; in 7-bit notation, the corresponding addresses are **0x50** and **0x51**. Do not confuse them with a byte offset or an additional page number. ![SFP memory diagram from the original documentation: A0h, A2h and switchable upper pages](https://sfptotal.io/images/documentation/i202/p39/356a192b-3eedfdfe13-c05f9d6acabb.jpg) *The diagram illustrates the memory organization. Check the applicable SFF-8472 revision for the exact field definitions.* #### A0h and identification fields In SFF-8472 12.5a, the base and extended identification fields occupy bytes **0–95**. Bytes 96–127 are allocated to Vendor Specific EEPROM. Bytes 128–255 are marked Reserved in this revision; they must not be described as a universal standard storage area for "compatibility code." A manufacturer's implementation may differ and requires separate documentation. Examples of SFP A0h fields according to SFF-8472 | Field | Bytes, decimal | Interpretation | | --- | --- | --- | | Vendor name | 20–35 | Manufacturer name, 16 ASCII bytes. | | Vendor OUI | 37–39 | A three-byte identifier, not a textual brand name. | | Vendor PN | 40–55 | Part Number, 16 ASCII bytes. | | Vendor Rev | 56–59 | Part revision, four ASCII bytes. | | Vendor SN | 68–83 | Serial number, 16 ASCII bytes. | | CC\_BASE / CC\_EXT | 63 / 95 | Checksum fields for the corresponding identification ranges. | For example, Vendor PN starts at offset 40, or 0x28. The field is 16 bytes long, so its last byte is 55 (0x37). These addresses belong to the SFP memory map and must not be applied to a similarly named QSFP or CMIS field. #### A2h and additional pages A2h includes diagnostic, calibration and control areas. Additional upper pages are available when paging is supported; they are selected in the upper window at bytes 128–255. Do not assume that every SFP, copper module or DAC provides A2h, all diagnostic measurements or all additional pages. There is no single mandatory password address for all SFP modules: SFF-8472 leaves vendor-specific functions to the manufacturer. Wizard documentation describes configurable password entry parameters, but their values must be checked against the module's implementation. See more [about SFP write protection](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45). ### XFP transceivers XFP uses its own management map defined in INF-8077i. The lower window and switchable upper tables must not be treated as the two SFP areas A0h/A2h. Wizard may label additional tables T00h, T01h and so on; this does not mean that offsets from SFF-8472 apply to them. ![XFP memory diagram: lower window, page selection, and upper Serial ID and EEPROM tables](https://sfptotal.io/images/documentation/i202/p39/356a192b-6d83c08a6c-a2af3cccc601.jpg) ### QSFP transceivers For the QSFP family, first determine which management interface is used. SFF-8636 defines a lower window at bytes 0–127 and an upper window at bytes 128–255 with page selection. Upper Page 00h contains identification data; the content of other pages and the available functions depend on the product. ![QSFP memory diagram with the lower window and upper pages 00h, 01h, 02h and 03h](https://sfptotal.io/images/documentation/i202/p39/356a192b-5d6050186f-dbe17dea280a.jpg) Page 02h in this map is user memory, rather than a mandatory image for a particular brand on every product. Some modern modules use CMIS. The applicable memory map matters more than a similar physical appearance or nominal data rate. ### QSFP-DD transceivers CMIS defines a common management model for several form factors. It distinguishes lower memory from an upper window; paged modules use page selection and, where provided, bank selection. The module advertises its supported pages and functions, which must be checked against the CMIS revision and the manufacturer's documentation. Flat memory and paged memory do not require the same operations. ![CMIS diagram from the original article: lower memory, Bank and Page selection, common pages and banked pages](https://sfptotal.io/images/documentation/i202/p39/356a192b-ca7d97967c-b566a2004824.jpg) *The illustration shows the addressing principle. Check the implemented CMIS revision for the page list and mandatory functions; the diagram does not describe the capabilities of every module.* ### OSFP transceivers OSFP also uses CMIS, but this does not mean that all implemented pages and functions match those of every QSFP-DD module. Check the specific module's advertised capabilities, interface revision and coding board support. Physical form factor and electrical interface compatibility are separate from the common management model. ### Reading, saving and modifying data in Wizard 1. Identify the form factor, part number and revision. Select Module Type and Address table, then perform a [Read code from module](https://sfptotal.io/en/wiki/Reading_transceiver_memory). 2. Create [a backup](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) of the accessible areas. Record any pages that could not be read: an incomplete set must not be considered a complete product image. 3. When choosing code, follow the [Firmware Database recommendations](https://sfptotal.io/en/wiki/Firmware_database). Check the memory map, hardware implementation and target equipment. 4. Determine the [write protection](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45), prepare only the changes required and verify the [checksums](https://sfptotal.io/en/wiki/Checksum_verification). 5. After [writing](https://sfptotal.io/en/wiki/Writing_transceiver_memory) read the same areas again. Compare the persistent data, taking into account that diagnostic registers change during operation. 6. Check identification and the actual connection in the target equipment. A successful memory write does not replace a link test. Changing Vendor name, Part Number or compatibility code does not turn MM optics into SM optics or add an unsupported physical data rate. Overwriting calibration and service registers requires a separate, justified procedure. ### Specifications and related resources - [SFF-8472 12.5a](https://members.snia.org/document/dl/25916), Table 4-2, sections 4.3, 7 and 10.2 — SFP, identification fields and vendor-specific access. - [SFF-8636 2.12](https://members.snia.org/document/dl/26418) — the management map for four-lane modules; [INF-8077i 4.5](https://members.snia.org/document/dl/26514) — XFP. - [OIF CMIS catalog](https://www.oiforum.com/technical-work/implementation-agreements-ias/) — published revisions; applicability must be checked for the product. - [MSA, SFF and CMIS reference](https://sfptotal.io/en/wiki/Transceiver_standards_and_specifications) and [reading DDM in Wizard](https://sfptotal.io/en/wiki/DDM_diagnostics). ## Firmware database Source: [https://sfptotal.io/en/wiki/Firmware_database](https://sfptotal.io/en/wiki/Firmware_database) SFPTotal SFP and other transceiver Firmware Database: account access requirements, device linking, code selection, backups and write verification. **The SFPTotal Firmware Database provides data and resources for programming transceivers.** Use it when preparing compatible code for a particular module and network device. This article explains access requirements and how to select suitable data. When programming SFP modules, "firmware" often refers to the contents of accessible memory areas. This image is not necessarily the controller's internal executable software. First identify the data needed for your task; see the [EEPROM and Serial ID guide](https://sfptotal.io/en/wiki/Transceiver_memory_structure). ### Firmware Database access requirements Website access requires an account with a verified email address, a completed profile and at least one linked original SFPTotal device. Simply possessing an unlinked coding board does not link it to your account. 1. Sign in to your account and complete email verification and your profile if the website asks you to do so. 2. Open [My devices](https://sfptotal.io/en/customer/devices) and check that your coding board is listed. If it is missing, submit a request to add it using its serial number. 3. You can find the serial number in SFPTotal Wizard through **Help → Get device version**. Do not confuse it with the transceiver serial number in Serial ID. 4. After linking is complete, open [Firmware Database in your account](https://sfptotal.io/en/customer/codesdb). Access to SFPTotal Labs also depends on the linked account status and service authentication. Linking a device and [activating the coding board](https://sfptotal.io/en/device-activation) are separate procedures. The conditions for enabling board operations must not be confused with database sign-in requirements. Check code availability and its terms of use in the service. ### Choosing code for SFP and other transceivers What to check before writing | Parameter | Why it matters | | --- | --- | | Form factor and management interface | SFP, SFF-8636 and CMIS memory maps have different fields and access procedures. | | Part number and hardware revision | The same commercial name does not guarantee the same memory, controller or write procedure. | | Physical parameters | The data rate, optical configuration or RJ45 interface must match the actual product and link. | | Target equipment | The switch model, port and software version determine transceiver identification and support requirements. | | Area to modify | Identify which fields may be changed and which settings, calibrations and unique data must be preserved. | Matching a brand or file length is only part of the check. Do not replace a targeted change with a complete image from different hardware. If the resource description does not confirm applicability to your module, clarify this before writing. Changing identification data does not change the physical data rate, wavelength, fiber type or hardware capabilities. If the link failure has a physical cause, different code will not resolve it. ### Working with the selected data 1. [Read the original module](https://sfptotal.io/en/wiki/Reading_transceiver_memory) and record its identification data. 2. Make [a backup](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) of the accessible pages. Keep it separate from the prepared code. 3. Choose data using the parameters above and determine the [write protection type](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45). 4. Prepare the required changes, verify the applicable [checksums](https://sfptotal.io/en/wiki/Checksum_verification) and perform the [write](https://sfptotal.io/en/wiki/Writing_transceiver_memory) according to the instructions. 5. Read the modified areas again and compare the result. If the procedure requires committing data or a normal restart, follow the procedure for that model and check that the persistent data is retained. 6. Check identification and actual operation in the target equipment. ### If the database does not open or suitable code is unavailable - **No device is linked:** check My devices and the request status. Registering another account does not replace device linking. - **The website asks you to verify your email or complete your profile:** complete the requested procedure in your account. - **An error occurs when opening SFPTotal Labs:** read the message in your account. If a Labs account already exists, you may need to sign in with the password previously set. Contact Support if account creation fails. - **Data applicability has not been confirmed:** prepare the transceiver part number and revision, equipment model, software version and Wizard operation response. Send files and serial numbers only through the designated support channel. If Support requests more information, include the exact error message and specify the stage at which it occurred: website sign-in, device linking, opening Labs or selecting data. ## Device control protocol Source: [https://sfptotal.io/en/wiki/Device_control_protocol](https://sfptotal.io/en/wiki/Device_control_protocol) SFPTotal protocol syntax for reading, writing, configuration and hardware password search commands. **Contents** 1. [Reading transceiver memory](https://sfptotal.io/en/wiki/Device_control_protocol#22b21de7b135c683816f5f3f83c9f3ab6545d23f) 2. [Writing transceiver memory](https://sfptotal.io/en/wiki/Device_control_protocol#e9c066d5576fa37a89d0db713444893590e41800) 3. [Configuration commands](https://sfptotal.io/en/wiki/Device_control_protocol#28b6034969a1957bfca6d6fd004f23dd36dd9f9a) 4. [Power control](https://sfptotal.io/en/wiki/Device_control_protocol#36df51e93003e36ad0f68a593be69061f409d480) 5. [Hardware password search](https://sfptotal.io/en/wiki/Device_control_protocol#c1ebcbe35d57993ebbf941515f59f999cbd1d3b0) SFPTotal device control protocol commands are supported by Mini, Plus, Plus New and Plus X series coding boards. This command list applies to devices with embedded firmware SW 1.3.5 or later. ### Reading transceiver memory The read command accesses devices on the data bus using 8-bit address and offset parameters and reads data from pages of up to 256 bytes. `R1A000807F` The read command consists of the following parameters: `R` \+ `1` \+ `A0` \+ `00` \+ `80` \+ `7F` **Command code** A read command starts with the command code character **R** (short for ***Read***). The case of the command code determines the output format of the read result. - **R** uppercase — return data as a HEX string; - **r** lowercase — return data as a HEX table. **Port number** The numeric identifier of the port on the coding board. 0. GBIC 1. SFP 2. SFP+ 3. XFP 4. QSFP If `CMODPRST=01` is enabled, the coding board checks that a transceiver is connected to the specified port before reading. Disable this setting to ignore port numbers. **Page address** The slave device page address on the data bus, written in uppercase HEX format. For example: `A0` or `A2`. See [Transceiver memory structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) for more information about supported transceiver memory page addresses. **Additional page number** The additional page number in HEX format for transceivers with a dynamic address space. Example values: `00`, `01`, `02`, `03`. If `AWRADTBL=01` is enabled, the coding board writes the additional page number to **Page Select byte** when accessing the upper memory of XFP and QSFP modules. This selects which additional table the transceiver exposes in A0h at offset 80h: `T00` or `T01` or `T02` or `T03`. To ignore the additional page number parameter, set `AWRADTBL=00`. **Offset** The offset at which data is read or written. For example: - `00` lower memory area, starting at byte 0 - `80` upper memory area, starting at byte 128 - `5F` read starting at byte 95 **Read/write byte count** The number of bytes to read from or write to transceiver memory. Specify the parameter in uppercase HEX format. Because of the register representation, the read byte count must be reduced by one. - `00` read/write 1 byte - `7F` read/write 128 bytes - `03` read/write 4 bytes **Entering and executing a command** To execute the command, terminate it with a carriage return character `\x0D`. Formatted output of the read area: ``` r1A000007F ## 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 : 03 04 07 00 00 00 01 20 40 0C 15 01 2A 00 00 00 01 : 0F 07 00 00 46 49 4E 49 53 41 52 20 43 4F 52 50 02 : 32 33 34 20 00 00 90 65 46 54 4C 46 38 35 32 34 03 : 50 32 42 4E 56 20 20 20 41 20 20 20 03 52 00 9C 04 : 00 32 00 00 50 42 39 31 59 5A 57 20 20 20 20 20 05 : 20 20 20 20 30 37 30 32 32 37 20 20 68 D8 01 0B 06 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ``` Standard read command execution. ``` R1A000007F 0304070000000120400C15012A0000000F07000046494E4953415220434F5250323334200000906546544C46383532345032424E56202020412020200352009C0032000050423931595A57202020202020202020303730323237202068D8010B0000000000000000000000000000000000000000000000000000000000000000 ``` Reading 128 bytes from page T03h of a QSFP28 transceiver in address space A0h at offset 80h. ``` R4A003807F 11CC07800000000000000003FF00020000000040484953494C49434F4E20202020202020000000004F4D333535394358313030202020202030316658051446E60607FFDE30333448545831304D3930303333383832313039333032300C1067A60000000000000000000000000000000000000000000000000000000000000000 ``` The command result ends with line feed and carriage return characters. --- ### Writing transceiver memory The write command accesses devices on the data bus using 8-bit address and offset parameters and writes data to a page of up to 256 bytes. `W4A002800F11223344556677889900AABBCCDDEEFF` The write command consists of the following parameters: `W` \+ `4` \+ `A0` \+ `02` \+ `80` \+ `0F` \+ `11223344556677889900AABBCCDDEEFF` **Command code** A write command starts with the command code character **W** (short for ***Write***). The case of the command code determines whether a result is returned after writing. - **W** uppercase — perform a verification read after writing and return the result; - **w** lowercase — write only, without a verification read. To confirm writing, compare the data sent in the write command with the data returned by the coding board after the command finishes. **Port number** The numeric identifier of the port on the coding board. 0. GBIC 1. SFP 2. SFP+ 3. XFP 4. QSFP If `CMODPRST=01` is enabled, the coding board checks that a transceiver is connected to the specified port before writing. Disable this setting to ignore port numbers. **Page address** The slave device page address on the data bus, written in uppercase HEX format. For example: `A0` or `A2`. See [Transceiver memory structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) for more information about supported transceiver memory page addresses. **Additional page number** The additional page number in HEX format for transceivers with a dynamic address space. Example values: `00`, `01`, `02`, `03`. If `AWRADTBL=01` is enabled, the coding board writes the additional page number to **Page Select byte** when accessing the upper memory of XFP and QSFP modules. This selects which additional table the transceiver exposes in A0h at offset 80h: `T00` or `T01` or `T02` or `T03`. To ignore the additional page number parameter, set `AWRADTBL=00`. **Offset** The offset at which data is read or written. For example: - `00` lower memory area, starting at byte 0 - `80` upper memory area, starting at byte 128 - `5F` read starting at byte 95 **Write/read byte count** The number of bytes to write to transceiver memory. Specify the parameter in uppercase HEX format. Because of the register representation, the write byte count must be reduced by one. - `00` read/write 1 byte - `7F` read/write 128 bytes - `03` read/write 4 bytes **Data** Append the write data at the end of the command as an uppercase HEX string without spaces or line breaks. `11223344556677889900AABBCCDDEEFF` The length of the write data must match the write byte count specified in the command parameters. **Entering and executing a command** To execute the command, terminate it with a carriage return character `\x0D`. --- ### Configuration commands **CLI** Enable or disable character echo in the terminal window while typing. Disabled by default. The setting returns to its default after a power cycle. Query the current state ``` ? CLI CLI=0 ``` Enable ``` CLI=1 ``` Disable ``` CLI=0 ``` --- **VERSION** Request device version information. ``` SFPTotal Plus New (c) 2023 HW: 1.3 SW: 1.3.7 SN: SFPT-P1323122800 ACTIVE ``` **CMODPRST** Check that a transceiver is connected to the port before reading or writing. Query the current setting: ``` ? CMODPRST CMODPRST=01 ``` Enable transceiver connection detection: ``` CMODPRST=01 ``` Disable transceiver connection detection: ``` CMODPRST=00 ``` When this setting is enabled, the coding board returns an error if more than one transceiver is connected to its ports: ``` QERR: MTDOC ``` If no transceiver is connected to the port during a read or write operation, the coding board returns the corresponding error code: ``` QERR: SFP_EMPTY ``` **AWRADTBL** Enable automatic writing of the additional page number to the **Page Select byte** register when accessing the T00h, T01h, T02h and T03h page address spaces. Query the current setting: ``` ? AWRADTBL AWRADTBL=01 ``` Enable additional page number writing: ``` AWRADTBL=01 ``` Disable additional page number writing: ``` AWRADTBL=00 ``` --- **STATUS** Coding board port input and output states. ``` STATUS GBIC : 1; 0; 0; 1; SFP : 1; 1; 1; 1; XFP : 1; 1; 1; 1; 1; QSFP : 1; 1; 1; 1; ``` Parameter value positions correspond to the following map: ``` GBIC : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS; SFP : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS; XFP : MOD_ABS; RX_LOS; INTERRUPT; MOD_SEL; P_DOWN/RESET; QSFP : MOD_ABS; INTL; MOD_SEL; RESETL; ``` --- **TX\_DIS** Control the TX\_DIS line, which enables low power mode. Enabled by default. Turn the laser on and disable Low power mode ``` TX_DIS=0 ``` Turn the laser off and enable Low power mode ``` TX_DIS=1 ``` The coding board may have a jumper for hardware control of Low power mode. A closed jumper takes precedence. --- **I2CRATE** Set the coding board's data bus clock frequency in ***master***. The parameter is represented by a hexadecimal register. ``` I2CRATE=12 # Clock frequency 100 kHz I2CRATE=40 # Clock frequency 30 kHz I2CRATE=C6 # Clock frequency 10 kHz ``` To query the current speed setting, use `? I2CRATE` ``` ? I2CRATE I2CRATE=C6 ``` Accepts values from `01h` to `FFh`. The clock frequency is calculated using the formula: `16 000 000 / (2 * I2CRATE * I2CPRESC + 16) = Speed Rate Hz` --- **I2CPRESC** The prescaler for the coding board's data bus clock frequency in ***master***. The parameter is represented by a hexadecimal register. Default value: `04h` ``` I2CPRESC=04 ``` To query the current speed setting, use `? I2CPRESC` ``` ? I2CPRESC I2CPRESC=04 ``` Accepts the values `00h`, `04h`, `10h`, `40h`. **I2CPAUSE** Delay before outputting bus read results, in milliseconds. Default value: `64h` or `100ms` ``` ? I2CPAUSE I2CPAUSE=64 I2CPAUSE=32 I2CPAUSE=32 ``` **I2CDELAY** Set the delay before issuing ReSTART, in 0.1 ms increments. Default value: `0Ah` ``` ? I2CPAUSE I2CPAUSE=0A I2CPAUSE=64 I2CPAUSE=64 ``` **I2CRESET** Reset the data bus in software. Restart the interface and generate 9 clock pulses on the data bus SCL line to recover slave devices that may be locked up. Reset the data bus: ``` I2CRESET ``` Enable the trigger. The data bus is reset automatically when a transceiver is connected to a port. ``` I2CRESET=01 ``` Disable the trigger. ``` I2CRESET=00 ``` **I2CSTATE** Return the data bus line states. ``` I2CSTATE SCL=01 SDA=02 ``` **USBDELAY** Delay before sending a data byte from the device to the computer through the virtual serial port. ``` ? USBDELAY USBDELAY=0A USBDELAY=10 USBDELAY=10 ``` --- ### Power control Supported only on coding boards with software power control. **PWRRST** Power cycle the transceiver ports. ``` PWRRST ``` I2CPAUSE affects the bus reset interval in 10 ms increments. **PWRCTRL** Control port power. Turn power off. ``` PWRCTRL=0 ``` Turn power on. ``` PWRCTRL=1 ``` A power state change should be accompanied by the corresponding LED indication. --- ### Hardware password search The coding board supports hardware password searches in the range from `00000000` to `FFFFFFFF` The search runs in a loop, incrementing the password by one. On every iteration, the coding board enters the password and writes the check word `SFPTOTAL` which is 8 bytes long. It then reads back the check word. The search succeeds when the coding board can read the check word from transceiver memory. **BFCWADR** The page address where the check word is written. **BFCWOFT** The offset for writing the check word. **BFSET** Start a hardware password search. The command has the following parameters: - Password entry page - Password entry offset - Start of the value range - End of the range - Starting position The command starts a search, entering passwords on page `A2h` at offset `7Bh` in the range from `41414141h` to `5A5A5A5Ah` starting at `45454545h`. ``` BFSET A2 7B 41414141 5A5A5A5A 45454545 Device=A2 Offset=7B From 41 41 41 41 To 5A 5A 5A 5A Start 45 45 45 45 45 45 45 46 ``` **BFSTOP** Stop the password search. ``` BFSTOP STOP Device=A2 Offset=7B From 41 41 41 41 To 5A 5A 5A 5A Current 45 45 47 5A ``` **BFSTART** Resume the password search from where it stopped. **BFPASS** The `? BFPASS` command returns the current value. ``` ? BFPASS 45 45 47 5A ``` ## Error codes and meanings Source: [https://sfptotal.io/en/wiki/Error_codes](https://sfptotal.io/en/wiki/Error_codes) SFPTotal error reference: QERR:SCL/SDA, I2C_BUSY, R20, W20, W30, W48, DEMO and WRITE FAIL. Code meanings, checks and next diagnostic steps. This reference describes SFPTotal Wizard messages encountered when working with a coding board and transceiver memory: `WRITE FAIL` and the codes `QERR`. A code identifies the stage or condition of a failure, but usually does not establish a single cause. Save the complete device response and record the board model and HW/SW, Wizard version, operation, address and page. The table covers documented SFPTotal messages. Codes and recovery methods may differ between boards and embedded firmware versions. The error "Could not create SSL/TLS secure channel" when updating Wizard or accessing Labs concerns the application's network connection. Use the [Wizard SSL/TLS instructions](https://sfptotal.io/en/note/Issue-The-request-was-aborted-Could-not-create-SSL-TLS-secure-channel_28). ### Jump to an error code [WRITE FAIL](https://sfptotal.io/en/wiki/Error_codes#e9d04dac9cf068b523c5f82029098786f4eda8c2) · [QERR:DEMO](https://sfptotal.io/en/wiki/Error_codes#796b66b23428f7329919b312635b31b1ee403567) · [QERR:MTDOC](https://sfptotal.io/en/wiki/Error_codes#195d839d3187e8516b57dcaad62efd20522ab4da) · [QERR:SFP\_EMPTY](https://sfptotal.io/en/wiki/Error_codes#af6e1c067f6c93b3b3b0d1666c35fdad0927b716) · [QERR:SCL](https://sfptotal.io/en/wiki/Error_codes#265d26c4b6c11d46b4cb8bc558bbc03d9c514829) · [QERR:SDA](https://sfptotal.io/en/wiki/Error_codes#a462f08636692a90095e3ac1ed6c313d504f256c) · [QERR:I2C\_BUSY](https://sfptotal.io/en/wiki/Error_codes#3ec311eccf3ae24fbc5f7f39bd1731c0ad6ab37d) · [QERR:R20](https://sfptotal.io/en/wiki/Error_codes#e2e96d6cfdd48e6fd85f42b7bfdb9d02ca3aea97) · [QERR:W20](https://sfptotal.io/en/wiki/Error_codes#acbb83fcd1fe83e177ead96647800aecc2055514) · [QERR:W30](https://sfptotal.io/en/wiki/Error_codes#e9431bc7c72067d68e04db7003f94310adbf43b3) · [QERR:W48](https://sfptotal.io/en/wiki/Error_codes#be876b076ebb5f69862304edc95b663d9ad7682b) · [QERR:x00](https://sfptotal.io/en/wiki/Error_codes#7bc2956bc7e0ce52d3c232e3865e6bcc2a514a40). ### Code — meaning — checks — next step SFPTotal errors: diagnose the cause rather than relying on a code alone | Code | Meaning | What to check | Next step | | --- | --- | --- | --- | | `WRITE FAIL` | Writing was not confirmed as successful; data persistence has not been verified. | Read back and compare with the expected data. Check the selected area, write access, power and the specific module's requirements. | Save the original backup. Distinguish a communication problem from write protection; use the [write protection guide](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45). Do not repeatedly write the entire dump before identifying the cause. | | `QERR:DEMO` | The board is operating with limited functionality and requires activation. | Device status, model and serial number, and whether a key is available for this board. | Perform [normal activation](https://sfptotal.io/en/device-activation) and check for ACTIVE status. Board activation is different from entering a transceiver password or configuring Labs access. | | `QERR:MTDOC` | Connection detection found more than one transceiver. | Check all ports and connected cable ends; leave only one module connected for diagnosis. Check the presence detection contacts. | After operations finish, remove the extra connection and repeat the read. If the code persists with one module, send the configuration to Support rather than disabling detection to bypass the cause. | | `QERR:SFP_EMPTY` | The board does not detect a connection to the corresponding port. | Check the correct port, full insertion, module compatibility, power and detection contacts. The code name does not replace checking the specific board and port. | Reconnect a compatible module according to its instructions and repeat the read. If a known-good module is also not detected, contact Support to check the board. | | `QERR:SCL` | The SCL clock line is held low, blocking communication. | Power, contacts, a single connected module, and completion of the current transaction. The code alone does not identify the faulty component. | Follow the [bus recovery procedure](https://sfptotal.io/en/wiki/Resetting_the_data_bus). Software generated clock pulses may be insufficient for SCL; follow the board guide's full power cycle procedure where applicable. | | `QERR:SDA` | The SDA data line is held low, blocking communication. | The same connection and power conditions; whether the problem recurs after a particular module is connected. | On a supported board, use `I2CRESET` according to the [bus reset instructions](https://sfptotal.io/en/wiki/Resetting_the_data_bus) then test reading. This command does not remove write protection. | | `QERR:I2C_BUSY` | A bus busy message described in the communication recovery instructions. | Check whether an operation, script or automatic start is still running, and check connections and power. | Wait for the current operation to finish and stop subsequent automatic starts. If the error persists, use the [recovery instructions](https://sfptotal.io/en/wiki/Resetting_the_data_bus) taking the board's command support into account. | | `QERR:R20` | The device did not acknowledge the address request in a read command. | Module presence and power, address/page availability, the selected memory map and device readiness. | Start with an accessible identification area, then check the module's advertised capabilities. An error at A2h alone does not prove that DDM is absent. | | `QERR:W20` | The corresponding lack of address request acknowledgment for a write command. | First check that the module can be read, then check the address, area, power and write readiness. | Restore confirmed reading. After checking the documentation and backup, make only the necessary permitted changes. This code does not prove that a particular password is required. | | `QERR:W30` | After the address with the write bit was acknowledged, transmission of a data byte was not acknowledged. | The previous block's save time, sequential write size, delay between operations and protection of the selected area. | Save the current settings. If they do not match the module's requirements, adjust them through [Tools → General settings](https://sfptotal.io/en/wiki/Basic_settings) according to the documentation. If the error persists, investigate write protection; do not apply the same delay to every module. | | `QERR:W48` | No acknowledgment was received for the address with the read bit. | The complete operation sequence, device readiness and power, address, and availability of the area being read. | Test reading an accessible area separately. If the error recurs, send the complete response and operation parameters to Support. Do not select a write protection removal method based only on this code. | | `QERR:x00` | This reference uses the code for an unknown bus error. | The complete actual response, including all characters and numbers, the board model and software version. | Save the response without replacing it with the placeholder `x00` and send it to Support with the steps to reproduce the problem. This entry does not decode an arbitrary unknown error code. | ### Why QERR:R20 when reading A2h does not determine whether DDM is present An address may not be acknowledged because the address space is not implemented, but also because of poor contact, missing power, device readiness or an incorrectly selected area. First check stable identification reads, the diagnostic information in the specific SFP memory map and the module documentation. Interpret A0h/A2h according to the tool's addressing convention; use the appropriate memory map for other form factors. Only after these checks can diagnostic availability be determined. R20 alone establishes neither the absence of DDM nor the hardware write protection scheme. See [transceiver memory structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) and [reading DDM diagnostics](https://sfptotal.io/en/wiki/DDM_diagnostics). ### Where to start when diagnosing writing 1. Record the exact operation, address/page and complete response. Back up the accessible original memory. 2. Check communication with the board, a single compatible transceiver, the correct port and power. First establish repeatable reading. 3. If acknowledgment is lost during writing, check area availability, block size requirements and save time. Change one parameter at a time and record its original value. 4. Consider a password, WP or a special save command only when that mechanism is confirmed for the specific product. After an authorized write, read the data again and compare the result. For SFPTOTAL commands and their applicability, use the [protocol guide](https://sfptotal.io/en/wiki/Device_control_protocol). Having Wizard does not automatically imply command support; for example, the common SFPTOTAL protocol does not apply to Whistle. Bus connection errors are covered in the [QERR:SCL/SDA article](https://sfptotal.io/en/wiki/Resetting_the_data_bus). ### What to send to Support about an unknown code Through the [official contact channels](https://sfptotal.io/en/contacts) send the board model, HW/SW from Help → Get device version, Wizard version, module manufacturer/Part Number and revision, complete error string, address and page, write parameters, power connection and operation sequence. Include the result of testing with a known-good compatible module. Remove passwords, activation keys and sign-in details from the log; do not include complete production dumps in a public message. The value "error -1" without the application, operation and full message is not a separately documented QERR. First establish the context and send it to Support. ## Resetting the data bus Source: [https://sfptotal.io/en/wiki/Resetting_the_data_bus](https://sfptotal.io/en/wiki/Resetting_the_data_bus) Resetting the I2C bus to restore communication with the transceiver. Use the menu **Control - Reset I2C databus** to initiate a reset sequence on the data bus. The coding board generates 9 clock pulses on SCL to reset the data bus in software, following the recommendations in Implementing an I2C® Reset Application Note (AN-686). ## Running in a virtual machine Source: [https://sfptotal.io/en/wiki/Running_in_a_virtual_machine](https://sfptotal.io/en/wiki/Running_in_a_virtual_machine) Causes of problems when running the application in a virtual machine and possible solutions. When running SFPTotal Wizard inside a VirtualBox or Parallels virtual machine, you may experience repeated device disconnections or be unable to read or write transceiver memory. This problem mainly occurs when the host operating system is OS X (macOS) or Linux and the guest operating system is Windows. ### What causes this? When a read command is executed, the application expects a 256-character response from the device through the virtual serial port. With virtualization, the guest operating system may lose part of the data sent by the device. This is caused by problems with OHCI/EHCI USB controller emulation and the behavior of the standard virtual serial port driver. ### Solution To resolve the problem, select **USB Controller (xHCI)** in the virtual machine settings and connect the coding board through that controller. If you cannot change the controller type, run the command: ``` USBDELAY=80 ``` This command forces slower data transfer from the coding board to the computer, reducing the likelihood of data loss when the coding board interface is passed through to the guest operating system in the virtual machine. ## Transceiver write protection types and programming methods Source: [https://sfptotal.io/en/wiki/Transceiver_write_protection](https://sfptotal.io/en/wiki/Transceiver_write_protection) Hardware write protection, passwords, save commands and combined protection in transceivers. ![Illustration](https://sfptotal.io/images/documentation/i10/p9/356a192b-ddc2997e4f-f934a0b33b79.jpg) This article explains the different types of transceiver write protection in plain language and describes how to identify a module's protection method quickly and reprogram it successfully with an SFPTotal Mini or SFPTotal Plus coding board. ### Unprotected transceivers An unprotected SFP transceiver usually has an EEPROM chip on its circuit board. This chip stores the module's identification data and can be rewritten without restrictions or locks imposed by the module. Typically, only page A0h can be read, while reading page A2h returns an error. To program such a module, load the required firmware into the application and click <Write>. If writing succeeds, the application should return WRITE OK. The main difficulty when programming these modules is choosing the correct write speed. EEPROM is relatively slow memory, so a data bus clock frequency of 1 kHz is preferable. This is ten times slower than the default SFPTotal coding board speed. You can easily change the speed in the application settings. The rest of the procedure is straightforward. ### Hardware EEPROM write protection Copper SFP RJ45 transceivers and DAC cables contain no optical components, so they have no laser driver and do not need DDM to monitor optical receiver and transmitter power. These modules are also often write protected. As with unprotected transceivers, their design is relatively simple, and a standard EEPROM chip stores the module's characteristics. Manufacturers use various methods to block unwanted EEPROM changes and prevent unauthorized or accidental overwriting of module code. These protections serve a practical purpose: our customers have encountered accidental erasure or alteration of working module code caused by equipment faults. Transceivers with hardware EEPROM protection use the memory chip's dedicated WP (Write Protect) pin. ![EEPROM write protection: WP pin, SDA and SCL lines, A0–A2 address pins and power supply](https://sfptotal.io/images/documentation/i10/p9/356a192b-e04436c107-f62c81c65d93.png) When the WP pin is at a logic level equal to the supply voltage, writing is disabled and the memory is locked. To keep a module write protected during normal operation, this line is connected through a resistor to an SFP port power supply pin or to an output that defaults to a high logic level. As a result, the module's memory is read only when inserted into a switch port. To make the module reprogrammable, a higher value resistor than the supply pull-up resistor is added to pull the WP line to ground. If the supply path is interrupted or the corresponding SFP line is forcibly connected to ground (never do this!), the memory chip's WP pin goes low and writing becomes possible. Factories use specialized programmers that apply the required logic level to the pin controlling EEPROM write access. SFPTotal coding boards provide dedicated controls for creating the conditions needed to reprogram modules with hardware write protection. ### Password protected transceivers Under the SFF-8472 MSA specification, transceivers with DDM support may implement password based write protection. The standard reserves seven bytes of page A2h for this purpose, although passwords are usually only four bytes long. To program most write protected 1G and 10G transceivers successfully, enter the password before writing changes to module memory. Modules use different hardware designs. A dedicated chip may control write access to a separate EEPROM chip or contain the memory itself. Attempting to write to such a module without a password, or with an incorrect password, returns WRITE FAIL. In transceivers with a separate EEPROM chip, the protection circuit resembles the hardware lock described above. The difference is that a controller drives the memory chip's WP pin. It changes the control output after the correct password is written to the area starting at offset 7Bh on page A2h. Other transceiver designs use controllers with integrated memory. Because they process data bus signals in software, these modules can be sensitive to write speed and the intervals between data blocks. Knowing the correct password is sufficient to program these modules. If the password cannot be obtained, it may be found by trying all possible values or the most likely candidates, for example with a dictionary search. ### What is a save command? Some transceivers can be programmed successfully after entering a password but do not retain the changes after power is removed. When power is restored, the original code remains in memory. During programming, these modules hold changes in temporary memory. They require special instructions, called a save command, to transfer the firmware from temporary memory to nonvolatile memory. No common standard defines how to program these modules. Each manufacturer specifies its own sequence of instructions. Ideally, the manufacturer supplies the programming algorithm; otherwise, a suitable algorithm must be identified from known solutions. Flexible scripts based on the SFPTotal command protocol are available for writing to these modules. ### Combined protection Some transceivers combine hardware locking, password entry and a save command. For example, a module may refuse writes unless it is in low power mode, even when the correct password is used. This approach has a practical reason: why reprogram a module while its optical transmitter is running at full power? Combined protection is most often found in modules compliant with recent SFF-8472 revisions that support up to 256 pages in the upper memory area of page A2h, starting at offset 80h. To program these transceivers, you must know the required sequence of operations on the available input and output pins and the manufacturer's programming algorithm in advance. ### Summary Unprotected transceivers can be programmed successfully by writing at an appropriate data bus clock frequency. For transceivers with hardware protection, identify the line that controls the memory chip's write lock and put it into the required state before writing changes. To program a password protected module, you need its password. Request it from your supplier or manufacturer, or look for it in official datasheets. If it is unavailable, use the password search function in the SFPTotal coding board software. Modules that lose changes after power is removed require password entry and a save command to commit the changes to transceiver memory. This programming procedure can be implemented using scripts. For modules with combined protection, you must know the programming procedure in advance. Companies purchasing modules in large quantities can obtain the necessary instructions from the manufacturer. Our support team can help with questions about programming protected transceivers. ## Reprogramming write protected SFP RJ45 transceivers Source: [https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45](https://sfptotal.io/en/wiki/Reprogramming_write_protected_SFP_RJ45) Identify SFP RJ45 protection, check hardware revisions, back up memory and verify programming. **Before reprogramming a write protected SFP RJ45 transceiver, identify the protection method used by that particular module.** A hardware WP input, a password and a special save command require different procedures. A matching brand or enclosure does not establish that the circuit is the same: the transceiver part number and hardware revision, and the coding board model and revision, all matter. This guide covers memory operations on copper SFP modules. Recoding is appropriate when a compatibility requirement or a data change has been established; a compatible module does not need to be reprogrammed simply because it is installed in a new switch. Code cannot add an unsupported speed or change the physical capabilities of the module's interface. ![Copper SFP RJ45 transceivers in switch ports with an Ethernet cable connected](https://sfptotal.io/images/documentation/i177/p10/356a192b-9cfb7de295-9ab586a891a3.jpg) *An RJ45 connector identifies the connection medium, not the memory protection method.* ### Checks before changing EEPROM - Record the module part number and revision, the switch model and its software version. Save the original Serial ID and the complete Wizard operation response. - Check the coding board model, hardware revision and activation status. Read support does not imply that every write operation is available. - Confirm that the required memory area can be read reliably. Compare repeated reads: changing DDM bytes may be normal, but inconsistent permanent identification data requires diagnosis. - Make a [backup](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) of the accessible areas before making any changes. Do not replace the original data with the first firmware image you find. A0h/A2h, Serial ID and the differences between memory maps are explained in the [EEPROM memory guide](https://sfptotal.io/en/wiki/Transceiver_memory_structure). An A2h read error or the absence of DDM **does not prove** either that there is no microcontroller or that hardware write protection is present. The cause may be an unsupported area, an incorrect module type, or a power or connection problem. Start by interpreting the [coding board response](https://sfptotal.io/en/wiki/Error_codes). ### Types of SFP write protection Choosing a diagnostic approach | Mechanism | Possible symptoms | Requirements | | --- | --- | --- | | Hardware WP | Identification can be read, but writes are blocked or are not retained. | A verified circuit for the specific product and control of the required line by a supported coding board. | | Password or other controller mediated access | Some areas are accessible only after a sequence specified by the manufacturer. | The correct access parameters and value for this implementation; Wizard settings do not determine the password on their own. | | Special save command | Data can be read back after writing, but the original contents return after a restart. | A documented procedure for committing data, sometimes implemented as a script. | | Combined protection | A password or a line state change alone is insufficient. | The complete sequence for the relevant revision, including the required module state. | None of these symptoms proves a protection mechanism on its own. WRITE FAIL can also result from connection problems, an unsupported area or a readback mismatch. For a general classification, see the article [on transceiver protection types](https://sfptotal.io/en/wiki/Transceiver_write_protection). ### How hardware WP protection works Some copper SFP modules use a separate EEPROM, such as a chip from the 24C02 family. The chip's Write Protect input controls write access. On a Microchip 24LC02B, connecting WP to VCC prevents array writes, while connecting it to VSS removes this hardware lock. This is a property of that specific chip; a similar designation on another model does not guarantee the same conditions or protected memory range. The transceiver manufacturer may connect WP to a power circuit or a connector control line. Early SFPTotal experiments encountered designs using power lines, TX\_DISABLE or TX\_FAULT. However, a brand name alone cannot establish which line is connected to WP. A new part number or revision requires its own circuit verification. ### Coding board jumpers and hardware revisions Applicability of board component labels | Board / source | Verified labels | Limits of the example | | --- | --- | --- | | SFPTotal Mini, current manual | TX PWR/TX\_VCC, RX PWR/RX\_VCC, TX\_EN. | Check the function against the markings on your specific board. These controls change line states; they do not automatically identify the protection method. | | Plus New / Plus X, current manuals | PWR\_TX, PWR\_RX and other controls described in the model documentation. | Labels may change between hardware revisions. Do not copy contact positions from an older Mini or Plus. | | P3 and Q3 in the original article | Labels from historical examples; the original article did not record the exact revision numbers. | These examples are not verified instructions for every Plus, Mini or newer coding board. | ![SFPTotal Mini board from the original guide: enlarged view of the RX PWR, TX PWR and TX EN jumpers](https://sfptotal.io/images/documentation/i177/p10/356a192b-f55c4447bf-6be37ffd6184.jpg) *Historical Mini illustration. First compare the markings and layout with your hardware revision.* If the WP pin of a specific SFP is confirmed to be connected to a controllable line, use the controls specified in the coding board manual and the module manufacturer's sequence. Change one verified parameter at a time and record the read and write results. Restore the board's normal configuration when finished. ![Board layout excerpt from the original article, showing Q3 and a red line connecting contacts](https://sfptotal.io/images/documentation/i177/p10/356a192b-a4f4d33642-6be37ffd6184.jpg) *The original Q3 diagram is retained to identify the historical example. Its exact hardware revision is unspecified; it does not establish a universal instruction to bridge Q3 on other boards.* Current descriptions: [Mini](https://sfptotal.io/en/wiki/SFPTotal_Mini), [Plus New](https://sfptotal.io/en/wiki/SFPTotal_Plus_New) and [Plus X](https://sfptotal.io/en/wiki/SFPTotal_Plus_X). If the layout differs or the circuit is unknown, send support the module part number, board markings and a board photograph. There is no need to guess the function of contacts to establish applicability. ### When a password or script is required In Wizard, the **Control → Set a password** command configures preliminary password entry. Table address, Password address and Password (Hex) must match the module documentation. For details, see the [password writing guide](https://sfptotal.io/en/wiki/Writing_with_a_password). Working passwords and restricted code sets are not published here. A2h:7Bh must not be treated as a universal SFP password field defined by SFF-8472: the specification leaves the relevant vendor-specific functions to the manufacturer. SFF-8636 defines a separate optional password mechanism; its parameters must not be applied to SFP modules either. If a module requires a special save command or access sequence, use an [appropriate script](https://sfptotal.io/en/wiki/Writing_with_scripts) only for a verified model and revision. A random script for a similar enclosure does not replace the manufacturer's algorithm. ### Workflow: read, back up, modify and verify 1. [Read](https://sfptotal.io/en/wiki/Reading_transceiver_memory) the required area with the correct Module Type and Address table. Record the original identification data. 2. Create a backup and confirm that it has been saved. When selecting data, follow the [firmware database access conditions and recommendations](https://sfptotal.io/en/wiki/Firmware_database); a matching brand name is insufficient. 3. Identify the protection method and confirm that the procedure applies to your revision. Prepare only the necessary changes and an appropriate write algorithm. 4. Check the applicable [checksums](https://sfptotal.io/en/wiki/Checksum_verification) and perform the [write operation](https://sfptotal.io/en/wiki/Writing_transceiver_memory). Save the complete Wizard response. 5. Read the same areas again and compare them with the expected result. After a normal restart, read the permanent data again if the procedure for that module requires it. Current diagnostic values must not be compared as though they were an immutable memory image. 6. Check identification and the actual link in the target network equipment. WRITE OK and a correct checksum confirm their respective stages, but do not establish complete compatibility or link integrity. ### Sources and applicability - [Microchip 24AA02/24LC02B, DS21709H](https://ww1.microchip.com/downloads/en/DeviceDoc/21709H.pdf), Write Protection section: an example of WP input operation. - [SFF-8472 12.5a](https://members.snia.org/document/dl/25916), sections 4.3 and 10.2: vendor-specific access; [SFF-8636 2.12](https://members.snia.org/document/dl/26418), section 6.2.10: a separate optional password mechanism. - [MSA, SFF and CMIS reference](https://sfptotal.io/en/wiki/Transceiver_standards_and_specifications) : selecting a specification for a form factor. This article clarifies previously published experiments. References to MikroTik and D-Link samples tested at the time do not establish applicability to every current part number from those brands. The source data is insufficient for a universal procedure table by revision; specific revisions are not invented. ## Optical transceiver standards and specifications Source: [https://sfptotal.io/en/wiki/Transceiver_standards_and_specifications](https://sfptotal.io/en/wiki/Transceiver_standards_and_specifications) A reference to MSA, SFF and CMIS documents for transceiver hardware, management and memory maps. **MSA, SFF and CMIS describe different aspects of an optical transceiver.** Some documents define the enclosure and connector, others the electrical signals, and others the memory map and module control procedures. To select a specification for programming an SFP, QSFP or OSFP module, first identify the task and the management interface used by that particular transceiver. This reference helps you find the primary document, understand its purpose and check its revision. The revision numbers below were checked against the publishers' sources on **23 October 2026**. A listed document revision does not mean that every module implements it in full: check applicability against the product datasheet and declared capabilities. ### What MSA, SFF and CMIS mean - **MSA — Multi-Source Agreement.** An agreement among industry participants on compatible product interfaces. There are different MSAs, including SFP and OSFP. An MSA compliant label without a document, revision and supported feature list does not fully describe compatibility. - **SFF** is a family of specifications published through SNIA. These include documents on mechanical design, electrical interfaces and management. An SFF number therefore does not by itself identify a firmware format. - **CMIS — Common Management Interface Specification.** A common specification for communication between a host and a module: data access, capability advertisement and control. CMIS applies to several form factors and does not define a single mechanical design for them. Published revisions are available from OIF. These terms are not mutually exclusive. For example, the OSFP MSA hardware specification and CMIS cover different parts of the same product. Compliance with a management map does not guarantee compatibility with every switch: electrical and optical interface, power, cooling and system software limitations still apply. ### Three layers: mechanical design, electrical interfaces and management Identifying the document you need | Layer | Question answered | Examples | | --- | --- | --- | | Mechanical design | What are the module enclosure, connector, cage and mounting dimensions? | SFF-8432, SFF-8661 and the OSFP MSA hardware specification. | | Electrical interfaces | Which signals, power pins and control pins connect the module to the host equipment? | SFF-8418, SFF-8419, SFF-8679. | | Management and memory | How are identification, diagnostics and supported features read and controlled? | SFF-8472, SFF-8636 and CMIS; SFF-8024 helps decode field values. | The memory map is part of the management interface. Its accessible bytes may represent stored identification, live measurements, status or commands. These data are not all freely rewritable EEPROM. The relevant specification and module implementation define address assignments and write conditions. ### Memory maps, DDM and management interfaces Start with this table when reading identification and diagnostics. The form factors listed are typical applications; a module's appearance does not establish which management map it uses. Management interfaces and code tables | Document | Purpose | Form factor / scope | Verified revision | Source | | --- | --- | --- | --- | --- | | SFF-8472 | Identification, memory map, DDM and control. | SFP family modules using this interface. | 12.5a; 16.01.2026 | [SNIA PDF](https://members.snia.org/document/dl/25916) | | SFF-8636 | Memory map and management of four-lane modules and cables. | For example, QSFP+/QSFP28 modules using this map. | 2.12; 29.04.2026 | [SNIA PDF](https://members.snia.org/document/dl/26418) | | CMIS | Common management interface, module capabilities, states and data. | Several form factors, including QSFP-DD and OSFP. | 5.4; May 2026 | [OIF PDF](https://www.oiforum.com/wp-content/uploads/OIF-CMIS-05.4.pdf) | | SFF-8024 | Common code tables for interpreting fields; not a standalone memory map. | Modules whose maps reference these tables. | 4.14; 04.06.2026 | [SNIA PDF](https://members.snia.org/document/dl/26423) | **SFF-8472** is useful for interpreting SFP family identification and DDM. SFP maps use the A0h/A2h notation. These are addresses expressed in the format used by these documents, not universal page numbers for all transceivers. Tools using 7-bit I²C addressing often display the same addresses as 0x50/0x51. Check which notation your tool accepts. **SFF-8636 and CMIS** are different management interfaces. Addresses, page numbers and write procedures must not be transferred from one to the other. For multilane modules, also check page selection and, where applicable, bank selection, supported features and module state. Different management implementations can occur even within closely related QSFP families. **SFF-8024** contains common code tables, such as module and connector type identifiers. It helps interpret a field value, but does not replace the document that defines the field's address and meaning in a particular map. ### SFP, QSFP and OSFP hardware specifications These documents support hardware interface selection and design. A solution specification links requirements and references across several documents; it does not replace all detailed drawings, electrical parameters or the management map. Hardware specifications | Document | Purpose | Form factor / scope | Verified revision | Source | | --- | --- | --- | --- | --- | | SFF-8418 | High speed 10 Gb/s electrical interface. | SFP+ 10G. | 1.4; 30.07.2015 | [SNIA PDF](https://members.snia.org/document/dl/25879) | | SFF-8419 | Power supply and low speed signals. | SFP+ and solutions referencing this document. | 2.0a; 10.07.2026 | [SNIA PDF](https://members.snia.org/document/dl/25880) | | SFF-8432 | Module and cage mechanical design. | SFP+ family. | 5.2a; 30.11.2018 | [SNIA PDF](https://members.snia.org/document/dl/25892) | | SFF-8402 | Relationships between single-lane solution specifications. | SFP+ family, including SFP28. | 1.2; 21.12.2022 | [SNIA PDF](https://members.snia.org/document/dl/25869) | | SFF-8679 | Pins, electrical parameters, power and hardware requirements. | QSFP 4X family. | 1.9; 21.04.2025 | [SNIA PDF](https://members.snia.org/document/dl/25969) | | SFF-8661 | Module mechanical requirements. | QSFP+ 4X. | 2.5; 22.06.2018 | [SNIA PDF](https://members.snia.org/document/dl/25959) | | SFF-8665 | Relationships between management, electrical interface and mechanical specifications. | QSFP 4X generations. | 2.0; 24.11.2025 | [SNIA PDF](https://members.snia.org/document/dl/25963) | | OSFP MSA | Mechanical, electrical and thermal requirements; CMIS is covered separately. | OSFP and OSFP-RHS. | 5.22; 09.08.2025 | [OSFP MSA PDF](https://osfpmsa.org/assets/pdf/OSFP_Module_Specification_Rev5_22.pdf) | For QSFP-DD, obtain hardware requirements from the relevant MSA, and management requirements from the applicable CMIS revision and module documentation. The OSFP hardware document explicitly separates CMIS management from mechanical, electrical and thermal requirements. Neither a shared management interface nor a similar purpose makes OSFP and QSFP-DD mechanically interchangeable. ### Early comprehensive specifications and MSA documents These document numbers often appear in datasheets and older instructions. They are retained here to help interpret the original product requirements. Read their status and scope together with the revision number. Documents for the original generations | Document | Purpose | Form factor / scope | Verified revision | Source | | --- | --- | --- | --- | --- | | INF-8074i | Original SFP MSA specification; an informational document. | SFP. | 1.0; 12.05.2001 | [SNIA PDF](https://members.snia.org/document/dl/26184) | | SFF-8431 | Early comprehensive SFP+ electrical requirements. Archived; see the explanation below. | SFP+ 10G. | 4.1 dated 6 July 2009; Addendum dated 15 September 2013 | [SNIA PDF](https://members.snia.org/document/dl/25891) | | SFF-8436 | Comprehensive QSFP+ specification; applicability to other generations requires a separate check. | QSFP+ 4×10 Gb/s. | 4.9; 31.08.2018 | [SNIA PDF](https://members.snia.org/document/dl/25896) | | INF-8077i | XFP electrical, management and mechanical interfaces. | XFP 10G. | 4.5; 31.08.2005 | [SNIA PDF](https://members.snia.org/document/dl/26514) | **SFF-8431 is an archived document.** Its cover explicitly identifies SFF-8419 for the low speed interface and SFF-8418 for the remaining 10G electrical requirements. SFF-8431 must therefore not be presented as the sole current source for all SFP+ parameters. **SFF-8436** is a comprehensive QSFP+ 4×10 Gb/s specification. For other QSFP generations, also check SFF-8665, the electrical interface profile and the selected management map. SFF-8679 states that it replaces the base electrical portion of SFF-8436; SFF-8636 separately describes four-lane module management. The earlier collection listed CMIS 5.0. To find published revisions, now use the [OIF catalog, Management Interface Specifications section](https://www.oiforum.com/technical-work/implementation-agreements-ias/). The revision verified there is CMIS 5.4, May 2026. This does not require using 5.4 with a module designed for another revision. ### Selecting a specification for reading or changing memory 1. **Identify the product.** Record the form factor, part number and hardware revision. Check the module datasheet and the operations supported by the coding board. 2. **Identify the management interface.** Use the documentation and the identification data read from the module; a speed designation alone is insufficient. Select SFF-8472, SFF-8636, CMIS or another explicitly specified document. 3. **Record the revision.** Compare the title page number, change history and the module's declared support. The website update date may differ from the specification date. 4. **Check the required field.** Establish the address, page/bank, units, read and write permissions, access conditions and whether the feature is mandatory. For an encoded field value, consult the relevant SFF-8024 table. 5. **Save the original data.** Back up accessible areas before making changes. Check the applicable checksums and read the data back after writing. Protected and service areas must not be treated as an ordinary editable buffer. For example, interpreting SFP Serial ID and DDM requires the SFF-8472 map and code tables. Checking cage dimensions requires a hardware specification. If a module uses CMIS, selecting addresses from an SFP memory table is incorrect even when the required field has a similar name. Neither changing the standard number in a description nor writing another identifier into memory adds an unsupported physical speed, optical type or power capability to a module. Code compatibility and actual link operation must be verified separately. ### Additional documents from the original collection The links below retain the other documents from the original list. No current revision number is claimed here: check the title page and status in the [SNIA catalog](https://www.snia.org/technology-communities/sff/specifications). - [SFF-8662](https://members.snia.org/document/dl/25960) - [SFF-8682](https://members.snia.org/document/dl/25972) - [SFF-8672](https://members.snia.org/document/dl/25965) - [SFF-TA-1004](https://members.snia.org/document/dl/26635) - [SFF-8663](https://members.snia.org/document/dl/25961) - [SFF-8683](https://members.snia.org/document/dl/25973) - [INF-8628: search the SNIA catalog](https://www.snia.org/technology-communities/sff/specifications) - [SFF-8635](https://members.snia.org/document/dl/25944) - [SFF-8685](https://members.snia.org/document/dl/25975) - [INF-8438](https://members.snia.org/document/dl/25783) - [INF-8476](https://members.snia.org/document/dl/25786) - [INF-8474](https://members.snia.org/document/dl/25784) - [SFF-8071](https://members.snia.org/document/dl/26891) - [SFF-8461](https://members.snia.org/document/dl/25912) - [SFF-8084](https://members.snia.org/document/dl/25820) - [SFF-8083](https://members.snia.org/document/dl/25819) - [SFF-8081](https://members.snia.org/document/dl/25817) - [SFF-8690](https://members.snia.org/document/dl/25977) - [SFF-8433](https://members.snia.org/document/dl/25893) - [SFF-8089](https://members.snia.org/document/dl/25825) - [SFF-8079](https://members.snia.org/document/dl/26164) - [SFF-8075](https://members.snia.org/document/dl/26155) SFF-TA-1004 at the retained link is designated **Development 0.0.10 dated 23 January 2018**. It is a draft extension for managing tunable QSFP+/QSFP28 modules, not a published universal configuration standard for all modules. Likewise, a file's presence in the catalog does not mean that your product implements all of its functionality. ### Checking document revision and status - **Published** in the SNIA catalog indicates a document approved for publication; **Draft** indicates a draft for review. **Expired** means maintenance has ceased; consult the cover for the reason. - Read the number and date inside the PDF. A permanent publisher URL may start serving a newer revision, making an older label saved beside it inaccurate. - Use the OIF catalog for CMIS and the relevant group's website for MSA specifications. Do not determine currency solely from a filename in a third-party collection. - Match the revision against the module datasheet. A new document revision does not automatically update devices already manufactured. This reference does not replace the primary specifications. The tables above help locate documents by purpose; read the appropriate document revision for exact field values, timing parameters and requirements. ### Related SFPTotal guides - [Coding board form factors and capabilities](https://sfptotal.io/en/wiki/SFPTotal_Documentation) : module families supported by SFPTotal models. - [Transceiver memory structure](https://sfptotal.io/en/wiki/Transceiver_memory_structure) : how Wizard presents memory areas. - [Reading memory](https://sfptotal.io/en/wiki/Reading_transceiver_memory) and [backing up](https://sfptotal.io/en/wiki/Backing_up_transceiver_memory) : preparing data before editing. - [DDM diagnostics interface](https://sfptotal.io/en/wiki/DDM_diagnostics) : reading measurements and thresholds in Wizard. - [Checksum verification](https://sfptotal.io/en/wiki/Checksum_verification) : commands for checking supported checksum fields.