Simple and cheap temperature logger: v2.1 [UPDATE: EEPROM in BOM corrected (SST25WF080) ] [UPDATE2: Link for the Github with source code]

Hi everyone!

It’s been too long since the last update. But it’s there! The last version of the temperature logger, the hardware and the source code.



The changes since the last version:


  • New footprint for the PIC18F26J50, easier to solder.
  • Only 0603 or bigger resistors/capacitors.
  • The serial EEPROM is now a SST25WF080, still 8Mb, but easier to source.
  • Some components price-optimized (USB connector, switch, 3.3V reg).


  • Each logger can get a number, shown in the mass storage device drive name: simply add an asterisk (*) followed by the number you want to assign to the logger (between 0 and 65535) in the config.txt file (after the logging period), save the file and format the logger.
  • Bug fixes in the FAT12 functions, but the logging space is still limited to the half of the EEPROM.
  • Other bug fixes (month and year change, added robustness). The memory and the EEPROM are now scanned when you plug the logger back, to get the last data and reconstruct the filesystem in the case of a battery failure.

Temperature Logger 2.1: Schematics and basic BOM

The Altium files

The source code (based on Microchip Applications libraries -Device – Mass Storage – SD Card data logger- MPLABX)

The source code is now available from my GitHub: Temperature Logger v2.1 – Github

I also made a program/debug adapter (especially useful for debugging):


USB-Temperature-Logger-Programming-tool1This is the “office” version of my previous peg-adapter 😉

A lot of people were asking me if I was selling these loggers. Unfortunately, no. The design and functionalities are sexy, but I don’t have the capacity to launch a production on my own. And if I had do make only a small batch, the price would be totally uncompetitive.

A big thanks for all the people who donated a little something to motivate me!! (or to help me be more ashamed of the lack of updates)

All the contents (except the parts of Microchip’s code in the source) are under the Creative commons license, Attribution – Share Alike – Non Commercial.

Creative Commons License
Simple temperature logger: v2.1 by Jean Wlodarski is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

16 thoughts on “Simple and cheap temperature logger: v2.1 [UPDATE: EEPROM in BOM corrected (SST25WF080) ] [UPDATE2: Link for the Github with source code]

  1. This just begs to become a Kickstarter project. Any chance you’d be interested in taking it to the next level? It’s just so well done! You could offer reach goals for developing newer versions with different sensors…like sound pressure level, moisture, motion, light, etc. It’s the plug and play part that makes this such a no brainer for anyone to buy.

    • Hi!
      I was thinking about it, but there are several limitations:
      *I’m not a us-citizen.
      *I now have a real job I enjoy, but it takes most of my time.
      *I would need more balls..

      But you’re right, it’s kickstarter material. I’m even getting emails from people asking me how much I’m selling the loggers.
      As I don’t plan making a commercial product, I released the full firmware/schematics under the CC license (I don’t like the commercial clause in the OSHW license).
      Now this project is advanced enough, I’m thinking expanding the capabilities to log more stuff, or even make a universal logging platform (while keeping the plug&play/usb stick part that makes 90% of the value of this project). Like you said, sound pressure, light, humidity or also heart beat rate, radioactivity, RF frequency….

  2. Do you have assembled hex file for this project? I have some problems assemblyng hex file. I do not know where is the error in the circuit, or in the program. Hex file will be highly appreciated.

  3. HI Jean, Congrulatulations nice project.

    Could you tell me what the versãod Mplab-X did you use?

    Could you tell me what the versãod Mplab-X did you use?

    I tried to compile the files but no success. Thank you.

    • I used MPLAB X v1.4 with the Mplab C18 3.4 compiler. And the Microchip libraries “microchip_solutions_v2011-12-05”.
      It won’t work with the XC 8 compiler.

      • Jean correct,

        I’m also using C18 compiler, downloaded the files you provided so they try to access some folders in different locations and can not create the file. HEX

        I know I’m abusing but could send me the file in a single folder so you can compile?

        Some files you modified correct? Could you tell me which ..?

        You can send to me ?

        Thank you.

      • Unfortunately, no I can’t. This project isn’t on the easy side, so if you can’t edit a few file paths, I don’t think you have the patience to make it work. Sorry.

  4. Hi!

    Neat project, but can you add a quick description to how the logger works, for example, does it log while the device is mounted as a mass storage device, or does it detatch while recording? (is that what the button does?)

    When it is formatted/prepared, and plugged in with no button press which state does it default to; mass storage, or logger?

    (these questions may have been answered in a previous blog post, but Google takes you here!)

    Also, could you post an example of the CSV file it creates?


    • Hi!
      You can find all the posts related to the USB Temperature Logger by clicking on “Temperature Logger” in the blog’s categories (right side of the screen).
      Here, a link to a post with a description and a video.

  5. hi Jean, im developing a library for the new sst25 flash chips as mass storage device via usb, is it ok if i request your code sst25 library mods for this? its a huge jumpstart for me in customizing the MDD file system library..

    • Hi Christian, I don’t allow the commercial use of my code, sorry. The articles offer a good overview and since microchip changed their compiler and tool chain, it’s actually faster to start from scratch.

      • Yes, microchip has new example in their harmony library but i dont like how it is structured and still prefer to work in their old libraries.. anyways its for sst26 not sst25. Ok, i understand. Thank you still for the reference codes that you posted. 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s