
Completed
Posted
Paid on delivery
I need a fix for my code. I have existing ESP32 code reading 1k EEPROM first 5 bytes. I can read the EEPROM, store it, write it and it is functional. Printing the EEPROM values does not match known 4 digit. sample: for (int i = 0; i < BUFFER_SIZE; i++) { // Read data into buffer buffer[i] = [login to view URL](); What I need however, is to fix my code to also be able to have the read, convert it to a 4 digit decimal number on read, and then back to write the 1K EEPROM. I tried below, but it did not work. I do not understand enough to know why and fix this. I posted below so you can get an idea of my attempt. sample: // combine bytes to form single integer value ????? int result = (num1 << 24) | (num2 << 16) | (num3 << 8) | num4; This EEPROM code comes from an existing mechanical system in use, and I have been reverse engineering most of it. So, I have a 4 digit number that is known, and also what the EEPROM reads for that decimal number (reads different from known 4 digit). this can be used to verify/test EEPROM. if it would read, and then convert into the correct known number, that would be the first step. The next step, is to write it back into the EEPROM from 4 digit. I think my issues are that I do not understand the libraries I am using for the i2c operations. #include <Wire.h> #include <EEPROM.h> #include <I2C_eeprom.h> there may also be an issue that the data on the EEPROM includes either at the start, or the end, an identifier. maybe not. so it would need to make sense how the known 4 digit known number, converts before written to EEPROM. I am not a coder, so I truly need help..... Let me know if you want to take a peek at my existing mess of a code to get an idea of what you may be able to assist with.
Project ID: 40647477
62 proposals
Remote project
Active 5 days ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs

Hi there, I understand you're having issues with reading and converting data from EEPROM on ESP32. To fix your code, I'll ensure it reads the EEPROM and correctly converts the bytes into a 4-digit decimal number as needed. I'll also check for any identifiers that could affect the conversion process. I will start by reviewing your existing code to identify the specific areas that need adjustments. Let's get this working seamlessly for your mechanical system. Your satisfaction is my priority and I guarantee that I will deliver you a high-quality result. Regards, Ali
$30 CAD in 1 day
3.5
3.5
62 freelancers are bidding on average $127 CAD for this job

As an experienced embedded systems developer, I am confident that I can provide the fix you need on your ESP32 code for EEPROM operations. My profile attests to my wealth of knowledge and skills in a variety of MCUs, including but not limited to STM32, NXP, and of course, ESP32. Throughout my 8+ years in this field, I've successfully solved numerous code-related challenges similar to yours, and I believe this will be no exception. Being well-versed in C programming and Arduino, I'm accustomed to optimizing code for better results. This problem-solving nature combined with my familiarity in eeprom operations make me the ideal candidate to get your system up and running efficiently using the correct 4-digit decimal number you mentioned. Confidentiality is key in projects like these; you can trust me with your code with confidence that it'll be handled professionally. Please feel free to reach out to me so we can discuss more about your project and kick-start this journey towards solving your present predicament.
$140 CAD in 7 days
5.9
5.9

I am an Electrical Engineer with 10+ years of experience in embedded systems, Arduino/ESP32 development, I2C communication, EEPROM interfacing, and debugging existing hardware/software projects. I can help you reverse-engineer and fix your ESP32 code so the 1K I2C EEPROM data can be correctly converted between the stored byte format and the known 4-digit decimal value. I understand that this is not simply a matter of combining four bytes into an integer; the existing mechanical system may be using BCD, byte order, an identifier, checksum, offset, or another encoding scheme. I will first analyze your existing code and EEPROM read/write process, then compare the known 4-digit values against the actual EEPROM bytes to determine the correct encoding. After that, I will implement and test both directions: • EEPROM bytes → correct 4-digit number • 4-digit number → exact EEPROM byte format I have completed multiple engineering and embedded projects for clients in the USA, UK, Canada, Australia, Saudi Arabia, Oman, Morocco, and other countries. I can work directly with your existing code and provide a practical, tested solution rather than replacing everything unnecessarily. I am ready to review your current code and EEPROM data and start troubleshooting immediately.
$250 CAD in 7 days
5.6
5.6

Hi there, I have carefully reviewed your ESP32 EEPROM issue and can help you fix the read/convert/write logic cleanly without disturbing the working I²C communication. With nearly five years of experience in mechatronics, embedded systems, ESP32, C/C++, I²C devices, EEPROMs, and reverse engineering, I can inspect the raw bytes, determine the actual encoding/byte order used by the mechanical system, convert it correctly to the known 4-digit decimal value, and implement the reverse conversion for writing it back safely. Please send me your current code together with one or more examples of the known 4-digit value and the corresponding EEPROM bytes, and I can get started quickly. Best regards, Samuel tshibangu
$80 CAD in 1 day
5.8
5.8

As an experienced full-stack software engineer, I believe I have the combination of skills and deep understanding needed to address the complexities within your existing ESP32 code. My decade-long career has honed my abilities to troubleshoot, reverse engineer, and write robust and efficient code - precisely what's necessary for correcting and enhancing your EEPROM operations. Being proficient in C programming and software development, I'm well-acquainted with libraries like Wire.h, EEPROM.h, and I2C_eeprom.h, which you've employed but faced challenges with. Hence, I am confident that I can navigate through these complications swiftly and proficiently. Moreover, my extensive experience with multi-solutions developments equips me to handle even the most intricate coding tasks such as converting multiple bytes into a single integer value or ensuring correct writing of specific data into the EEPROM. In addition to resolving your current challenge effectively, I will deliver well-documented code that ensures future easy maintenance. Trust me with your project; you won't be disappointed!
$140 CAD in 2 days
5.5
5.5

Hi I can solve this EEPROM data conversion issue for you quickly. As an Embedded Systems Engineer experienced in reverse-engineering industrial hardware, I frequently deal with mapping raw I2C data to meaningful decimal values. The discrepancy you're seeing between the 5 bytes read and your 4-digit number is likely due to Byte Endianness, BCD encoding, or a hidden checksum/identifier byte. I will: 1. Analyze your existing code and the "known 4-digit vs. raw hex" samples you have. 2. Identify the exact encoding logic (whether it's Long, BCD, or custom mapping). 3. Provide a clean, optimized function to Read (Convert to Decimal) and Write (Convert back to EEPROM format). 4. Clean up the library conflicts (Wire vs I2C_eeprom) to ensure stable I2C communication. I've worked on similar logic for airport control systems where data integrity is critical. I'm ready to take a look at your "mess of a code" and fix it today.
$100 CAD in 4 days
5.3
5.3

Objective Reverse-engineer and correct the 4-digit decimal conversion logic for your 1K I2C EEPROM, enabling accurate reading, decoding, and writing. Key Scope - Data Decoding: Analyze your raw 5-byte EEPROM buffer to identify data alignment, endianness, and potential identifier bits matching your known 4-digit reference. - Bi-Directional Conversion: Implement clean logic to map raw bytes into the 4-digit integer on read, and pack it back into 5-byte format for writing. - I2C & Library Optimization: Streamline Wire.h and I2C_eeprom usage for reliable operations. Deliverables - Clean, fully commented Arduino/ESP32 C++ code with verified read/write function algorithms.
$140 CAD in 7 days
5.2
5.2

⭐⭐⭐⭐⭐ Hi, Yes, I can help untangle this. From your description, I don’t think the main problem is simply the Wire or I2C_eeprom library—the important part is determining how the original mechanical system encodes the 4-digit value inside those EEPROM bytes. Your existing known pairs are extremely valuable for reverse engineering. I can take your current ESP32 code and: • Verify exactly what bytes are being read from the 1K EEPROM • Determine byte order and whether the value is binary, BCD, ASCII, or another encoding • Check whether the first/last byte is an identifier, checksum, or other data • Convert the raw EEPROM bytes into the correct 4-digit decimal value • Create the reverse conversion so a 4-digit number can be written back in the exact original format • Keep the existing I²C EEPROM functionality intact • Add clear test output so you can compare known values against the decoded result I would not assume that: (num1 << 24) | (num2 << 16) | ... is correct until we establish the actual storage format. Please send me your current ESP32 code and, most importantly, 2–5 examples showing the known 4-digit number alongside the exact raw EEPROM bytes returned by the original system. With those examples, I can work out the encoding and modify your read/write functions accordingly. I’ll keep the final code straightforward and commented so you can understand and modify it later, even if you’re not a programmer.
$140 CAD in 7 days
4.6
4.6

As an experienced and versatile Electronics Engineer with a strong command over embedded systems and firmware development specifically using C and C++, I am confident I can provide the expertise you need to rectify the issues with your ESP32 code. With an 8-year track record of designing, testing, and deploying robust hardware solutions, I have honed my skills in circuit design, PCB layout and power electronics, all of which are crucial for successful completion of this project. Furthermore, my deep understanding of C programming allows me to diagnose code problems in an efficient manner, while my proficiency in Arduino fits perfectly with the microcontroller hardware environment. Reverse engineering is not just a skill for me, it's been a significant part of my professional life. Given the reverse-engineering nature of your project, my experience will help me adapt quickly and find solutions that align with the existing mechanical system. Additionally, I offer commendable troubleshooting abilities and interdisciplinary collaboration mindset which translates to effective communication with teams and on-time delivery. Incorporating your noted complexities such as addressing potential identifier within EEPROM data, reading 1K data and converting it to its four-digit decimal form precisely is where I excel. With every project, it has been my mission to facilitate robust growth and resolve any technical concerns that may be obstructing that growth. Let's connect so we can discuss your specific needs further and ensure a tailored solution. Combining our expertise, we will make those known 4-digit numbers match their respective EEPROM configuration perfectly. You've carried the system this far; let me assist in getting it all the way across the finish line!
$140 CAD in 5 days
4.4
4.4

Hi, Greetings! I am interested in working on your project. Could you please share the design details and technical requirements so we can discuss the project scope and key parameters in detail? I look forward to working with you. Thank you!
$140 CAD in 7 days
4.5
4.5

Hi — Bravion here from Cleveland. I see you need help fixing your ESP32 EEPROM code to correctly read a 4-digit decimal number from the EEPROM and write it back properly. I understand how tricky it can be to handle byte conversions and I2C EEPROM operations, especially when reverse engineering. Here’s how I can help: - Review your existing code and identify why the read values don’t match the expected 4-digit number. - Implement a reliable conversion method to combine EEPROM bytes into the correct decimal number and vice versa. - Ensure the write-back to EEPROM preserves data integrity and matches the expected format. - Clarify any unknown identifiers or data structure in EEPROM to avoid misinterpretation. Could you share your current code so I can analyze it? Also, do you know if the 4-digit number is stored as a binary integer or in some encoded format? Happy to get this working smoothly for you. Looking forward to your reply!
$140 CAD in 1 day
4.2
4.2

Hi, I can fix your ESP32 EEPROM read/write code so the first bytes can be read correctly, converted into the known 4-digit decimal value, and then written back to the 1K I2C EEPROM in the correct byte format. The best solution is to first review your existing code, EEPROM chip/address, byte order, known 4-digit value, and the raw bytes currently read from EEPROM. Then I’ll identify whether the issue is endianness, byte packing, BCD/ASCII encoding, identifier bytes, or incorrect I2C/library usage, and update the read/convert/write logic safely. I’m comfortable with ESP32, Arduino C/C++, Wire library, I2C EEPROMs, EEPROM byte handling, buffer parsing, bit shifting, BCD/decimal conversion, debugging serial output, and firmware cleanup. Deliverables will include: * Fixed ESP32 EEPROM code * Correct read-to-4-digit conversion * Correct 4-digit-to-EEPROM write logic * Raw byte debug output * Explanation of byte format * Test using your known value * Clean comments in code * Short change notes I’ll focus on a small, practical fix that keeps your existing working EEPROM functions intact while correctly converting between the stored byte data and the known 4-digit decimal value. Best regards Ankit
$100 CAD in 3 days
3.9
3.9

Hello, I can help with this ESP32 EEPROM issue. Based on your description, the main task is to identify how the 4-digit value is actually encoded in the first 5 bytes, then build the correct read/convert/write logic for your ESP32 code. The key point is that your current byte-combining approach likely assumes a normal 32-bit integer layout, but EEPROM data often uses a specific byte order, offset, header/footer byte, or BCD-style encoding. That is why the number you print does not match the known 4-digit value. I can review your existing code, trace the I2C/EEPROM operations, determine the correct conversion path, and then help you write back the value reliably to the 1K EEPROM. I can also help test whether the extra byte is an identifier or part of the stored value. If you send the current sketch and a few examples of: - known 4-digit value - raw EEPROM bytes read from those values - what should be written back I can map the conversion and provide the corrected code. Best regards
$250 CAD in 4 days
4.0
4.0

I will analyze and troubleshoot the conversion issues between reading 1k EEPROM and converting data to a 4-digit decimal number. By thoroughly reviewing the libraries used for i2c operations, I aim to synchronize the EEPROM data with the known 4-digit number accurately. With a focus on developing a tailored conversion mechanism that accommodates any identifiers present in the EEPROM data, I will ensure the integrity of your mechanical system. Through code optimization and data manipulation, I will provide a practical solution to enhance the functionality of your system, enabling a seamless transition in reading, converting, and writing data to the EEPROM. Let's collaborate to fortify your code for future scalability and maintainability, ensuring a successful outcome for your project.
$225 CAD in 5 days
3.8
3.8

Hi, I can help reverse-engineer the EEPROM format and modify your ESP32 code so the known 4-digit value can be correctly decoded, displayed, and written back without disturbing the existing 1K EEPROM functionality. The important point is that (num1 << 24) | ... only works if the EEPROM actually stores the number as a standard 32-bit integer. Since you already know both the real 4-digit value and the raw bytes returned by the EEPROM, we can compare those values to determine whether the format uses BCD, byte/word ordering, an offset/encoding, checksum, or an identifier byte. I can work directly with your existing Wire, EEPROM, and I2C_EEPROM code, identify the correct conversion, and add reliable read → decimal conversion → write-back functions with verification. Please send your complete existing ESP32 code, along with 3–5 examples of known 4-digit values and the exact raw EEPROM bytes returned for each. That will let me determine the encoding rather than guessing. Best regards, Md Ruhul Ajom
$65 CAD in 2 days
4.4
4.4

Hi, I am an embedded systems developer with 8 years of rich experience in software development, with a background in ESP32, Arduino, firmware debugging, and I2C communication. I am familiar with C/C++, ESP32, Arduino, Wire, EEPROM, I2C_eeprom, byte conversion, bit shifting, endianness, and firmware debugging. I can review your existing code, identify how the known 4-digit value is encoded in the first EEPROM bytes, fix the read/convert logic, and implement the reverse conversion so the correct decimal value can be written back safely. I'm an individual freelancer and can work on any time zone you want. Please contact me with the best time for you to have a quick chat. Looking forward to discussing more details. Thanks. Emile.
$250 CAD in 7 days
3.9
3.9

Hi, Yes, I can take a look at your existing code and help fix this. From your description, your I2C EEPROM read/write is already working. The main issue seems to be understanding how the original mechanical system stores the 4-digit value inside the EEPROM. It may be a byte-order issue, BCD, ASCII, a packed integer, or a format that includes an identifier/check byte. The num1 << 24 | num2 << 16 | num3 << 8 | num4 method only works if those four EEPROM bytes are actually stored as a normal 32-bit integer in that byte order. I would not assume that until we compare the raw EEPROM bytes against your known decimal value. I have experience with ESP32, Arduino C/C++, I2C devices, EEPROMs, binary data formats, and reverse-engineering embedded data structures. Please send me: - Your existing ESP32 code - The exact EEPROM part number if known - The first 5 bytes in HEX - The known 4-digit value corresponding to those bytes - Ideally one or two additional known-number / EEPROM-byte examples I can trace the existing code, determine the storage format, then add functions to: - Read the EEPROM and convert it to the correct 4-digit decimal value - Convert a 4-digit decimal value back into the original EEPROM format - Write it back without changing the rest of your working EEPROM code I would prefer to fix your existing code rather than rewrite everything unnecessarily. Best regards, ShengLin Gu.
$140 CAD in 1 day
3.5
3.5

Hello, I understand you have working ESP32 code that reads the first 5 bytes of a 1K EEPROM—you can read, store, and write it fine—but when you print the EEPROM values they don't match your known 4-digit number. What you need is to fix the code so it reads the EEPROM bytes, converts them to the correct 4-digit decimal number on read, and then converts that 4-digit number back to bytes to write to the EEPROM. You've reverse-engineered most of this from an existing mechanical system, so you have a known 4-digit number and the raw bytes the EEPROM holds for it—which is perfect for verifying the conversion. You suspect the byte-combining logic and possibly a leading/trailing identifier byte are the issues, and that you don't fully understand the I²C libraries. I do exactly this kind of ESP32 / I²C EEPROM debugging, and this is a very solvable problem—it's almost always about how the bytes map to the number (byte order, which bytes are data vs. an identifier, and the encoding format). With your known number + its raw bytes, I can work out the exact conversion and give you clean read-and-write code with comments so you understand it. Happy to take a look at your code and the known number/bytes. A couple of questions below.
$30 CAD in 1 day
3.2
3.2

Hi, I can review your existing ESP32/I2C EEPROM code and fix the conversion so the stored bytes correctly map to the known 4-digit decimal value and can also be written back safely. I’ll specifically check: - Byte order / endianness - ASCII vs binary vs BCD encoding - Whether the 4-digit value is packed across multiple bytes - Any scaling, offset, identifier, or checksum bytes - Correct use of Wire and I2C_eeprom libraries - Read -> decode -> verify -> encode -> write workflow Using your known 4-digit value and the corresponding raw EEPROM bytes, I can determine the actual encoding instead of guessing. I can work directly with your existing code, clean up only what is necessary, and provide commented code explaining how the conversion works. Send me the current sketch plus one or more known decimal values with their matching EEPROM byte readings. I am ready to start right away. Best, Mina
$100 CAD in 4 days
3.4
3.4

Hello, I reviewed your project regarding **ESP32 Code Fix for EEPROM Operations**, and I understand that you need help reading the EEPROM correctly, converting the value to a 4-digit decimal number, and writing it back in a reliable way. I have over three years of experience with **C Programming, Debugging, Firmware Development** and have worked on similar projects involving **Arduino, ESP32, I2C EEPROM handling, and embedded systems troubleshooting**. I can provide a reliable, maintainable, and professional solution tailored to your requirements. For this project, I will: • Review the requirements and current setup • Implement **correct EEPROM read, conversion, and write logic for your 4-digit value** • Test the solution thoroughly • Provide clear progress updates • Deliver clean, documented, and maintainable work • Support you with any related issues after delivery I am available to begin immediately and can complete the work within **3 days**. Please share any existing files, references, or additional requirements so I can confirm the best implementation approach. Could you share a small sample of the raw EEPROM bytes and the expected 4-digit value for one known case? Best regards, Miguel
$250 CAD in 3 days
2.6
2.6

Hi, I can help you untangle the ESP32 EEPROM read/write flow and turn the raw bytes into the 4-digit value you expect. I’ve worked with ESP32, Wire, and I2C EEPROM code where the main issue was byte order, data format, or an extra identifier byte. Your current shift example is treating four bytes as a 32-bit integer, which likely doesn’t match how this EEPROM stores the value. I’d first trace exactly what the first 5 bytes represent, then map the raw EEPROM bytes to the known decimal number, and finally write the value back in the same format. I can also help clean up the library usage so the read, convert, and write steps are consistent and testable. If you share the existing code and one known example, I can help you fix it directly. Best regards, Gabriel
$250 CAD in 5 days
2.4
2.4

Raymond, Canada
Payment method verified
Member since Aug 14, 2026
$30-250 CAD
₹37500-75000 INR
₹1500-12500 INR
₹100-400 INR / hour
€250-750 EUR
₹37500-75000 INR
₹37500-75000 INR
$30-40 USD
₹600-1500 INR
$30-250 USD
₹600-1500 INR
₹12500-37500 INR
$250-750 AUD
$15-25 USD / hour
$30-250 NZD
$3000-5000 USD
$15-25 USD / hour
$30-250 USD
$250-750 USD
$250-750 USD
₹12500-37500 INR