SFP Doctor is an open source hardware & software project for reading and writing the EEPROM inside SFP & SFP+ modules.
SFP modules contain an EEPROM which contains information about the module. This information includes the OUI (Organizationally Unique Identifier) which identifies the vendor of the module.
Some NIC's and switches are locked to using a particular vendors own SFP modules, this hardware and software project provides a tool for reading and modifying this information (providing the vendor has not disabled write access to the EEPROM).
The hardware design is intended to be as simple and cheap as possible, therefore it makes use of the Cypress CYC8CKIT-059 prototyping board as the USB interface to the EEPROM on the module, this board is readily and cheaply available.
- /hardware - KiCad schematic and PCB layout source files.
- /firmware - The firmware for the CY8C5888LTI-LP097 microcontroller on the Cypress CYC8CKIT-059 prototyping board.
- /software - The desktop software to control the hardware.
- /drivers - Platform dependent drivers for the hardware interface.
Development takes place in the develop branch, master is currently a placeholder and not up to date.
- Cypress PSoC Creator for firmware development.
- KiCad for hardware design.
- Node.js for desktop software.
- Yarn for desktop software.
- ELECTRON for desktop software development.
After installing the prequestite packages, use the following commands.
yarn run build
yarn run start
The platform binary can be created with the following commands.
yarn run build
yarn run dist
(Please note that currently the software is not functional)
Open the firmware project in PSOC Creator and select build to create the firmware image.
- Design: Complete.
- Manufacture: Complete.
- 07 Nov 2019 - Board Assembled, ready for test.
- 10 Nov 2019 - Board tested and working.
(please NOTE: in this picture the CY8CKIT-059 module is installed the wrong way around, picture to be updated soon.)
(Render of Rev. 1.3 board)
- Development: Started.
- Development: Started.
This project is using a USB VID & PID kindly allocated by pid.codes. Their repository can be found here. They support open source development by providing VID/PID pairs for free.
This project is open source and the entire project is released under the GPLv3 license.
Distributed as-is; no warranty is given.