Project Thumbnail

Serial Number Format Converter

In the access control industry, authentication using cards or tags remains one of the most common solutions, even though more advanced technologies like fingerprint scanning or facial recognition have become available.

These cards usually contain a UUID (Universally Unique Identifier) stored in a 4-byte memory block. In theory, this number should be unique and easy to read, but in practice, each manufacturer interprets the byte order differently. This means that the same card can produce different UUIDs depending on the reading system.

This issue becomes especially critical during migrations between access control systems: previously stored serial numbers often do not match the ones used by the new system, which in most cases forces teams to physically re-read all the cards.

In environments with hundreds or thousands of users, this process is highly impractical and costly in terms of time and resources.


Since this issue appeared from time to time with our clients, I decided to develop a tool that could automatically convert UUIDs from the format used by the old system to the format required by the new one.

The idea was to create a desktop application that, starting from an Excel file exported from the original system, could batch-convert UUIDs and generate a new file compatible with the destination system.

The goal was to deliver a simple, efficient, and user-friendly solution that could be used even by non-technical users, making the migration process much smoother.


The project was developed using Python, along with the following technologies and libraries:

  • Tkinter and TtkBootstrap: to create a clean and usable GUI for Windows environments.

  • Openpyxl: to handle reading and writing of Excel (.xlsx) files.

  • PyInstaller: to package the script as a standalone executable for easy internal distribution.

The software architecture is straightforward: the user selects the Excel file, the sheet and column containing the serial numbers, then chooses the current UUID format and the target format. The software then performs a bulk conversion, generating a new Excel file ready to be imported into the new system.

One of the main challenges was dealing with the various byte interpretation schemes (big endian, little endian, byte swap, etc.), so the tool includes several conversion functions based on the most common reading modes in the industry.

Results or impact

The tool allowed us to offer a new service to our clients, enabling them to fully automate the UUID conversion process, without the need to physically re-read each card.

This resulted in:

  • Significant time and resource savings during migrations.

  • Fewer errors when transferring data between systems.

  • Faster and more reliable integration of new platforms.

The executable was published in the downloads section of the company website, and has been used by multiple clients in various migration projects.

Lessons learned

From a technical perspective, this was a great opportunity to strengthen my skills with Tkinter and apply Openpyxl in a real-world scenario, while also improving my understanding of low-level data representation models.

Professionally, it was a solid exercise in practical problem-solving in a real business context with direct impact on the company’s operations.

Personally, it reinforced the importance of deeply understanding the user's problem before jumping into coding. That initial clarity was key to delivering a truly useful solution.

Recent Projects

About Me

about-me-user-img

Francesco Esposito

Data Scientist

Data enthusiast turning messy information into meaningful insights. I mix creativity, code, and curiosity to make data work.