What does everyone do currently to backup EEPROM?


#1

I have a couple of questions about saving to EEPROM. I hope it’s all right if I give way too much background information first.

When I got my Arduboy, it had Arduventure on it, and I played it all the way through to the end. Eventually I wanted to try other games, but I didn’t want to lose my save. I decided to back up the EEPROM so I could keep playing Arduventure once it was publicly released, and the first utility I found to help with this was Arduboy Assistant by @crait. It worked great for viewing the EEPROM, but when I tried to back it up, the data that was sent to the serial terminal included many unprintable characters, and when I tried to copy the data out of it into a text editor, it did not copy most of the characters.

I ended up modifying the sketch to encode the output as integers instead, giving me a list that was easy to copy into a text file and save, and I modified the loading code to decode the integers back into raw bytes (using atoi and a small buffer). This works great for me, and I can share my modifications if anyone wants them and if @crait doesn’t mind. However, clearly somehow other people were able to retrieve and save the binary data directly from serial without encoding it. I didn’t see any discussion of it in the Arduboy Assistant thread. Is there some other utility involved, or a way to get the data from the serial monitor that I missed?

I also noticed that there are quite a lot of solutions for backing up EEPROM, including Arduboy Assistant by crait, some python scripts by Mr. Blinky, Arduboy Utility (for Android) by obono, absg by SerendipityDoDa, and probably more that I missed. There was also discussion about sending commands to the bootloader to do backups. So what I’m wondering is: those of you who back up your save games, what do you use?

I’m wondering this partially because I’m curious what would be best to recommend if somebody hasn’t backed up saves before.


I received my arduboy!
#2

I would like to know as well. All I want is to create a save file for Arduventure and over an hour later and I still don’t know how to do it.


(Erwin) #3

I personally use another Arduboy if I want to finish a game.


#4

@kc2dpt, while I’m not sure if there is an agreed-upon way to back up EEPROM, I can give the way I did it. It isn’t too hard. The only requirement is that you know how to use the Arduino IDE to upload things.

I used Arduboy Assistant to back up the EEPROM, but I had to make some small changes to get it to work for me. You can get it here (@crait, let me know if you don’t want me distributing this modified version). The original version’s way of backing up EEPROM did not work for me, so you’ll need the modified version to follow these steps. I assume the Arduboy is plugged in and turned on for all steps.

  1. Upload the modified Arduboy Assistant onto your Arduboy using Arduino IDE. This will remove Arduventure, but will not erase your save data. If Arduventure is on your Arduboy, then uploading other code is tricky, but the Arduventure page gives details about that.
  2. Click on the Tools -> Serial Monitor menu option in Arduino IDE. It should pop up a window that has a text input field at the top and a bigger empty output area below.
  3. Go to the EEPROM Manager menu on your Arduboy and select “Back-Up EEPROM”. It will tell you to run the IDE, and since we set up everything in the previous step, just press A.
  4. When the Arduboy says “Done!” check the output for the Serial Monitor window in Arduino IDE. It should have a bunch of numbers, with each number on their own row. If it’s still blank, then perhaps your computer doesn’t realize the Arduboy is plugged in. Try unplugging it, plugging it back in, and trying step 3 again.
  5. Select all the text in the Serial Monitor output and copy it to a text file. This is your EEPROM backup data. You can save it with any text editor, including Notepad.

You’re done! Your save data is backed up!

To restore your save data:

  1. Upload the modified Arduboy Assistant onto your Arduboy using Arduino IDE. Same as before, we need the Arduboy Assistant to restore the save data.
  2. Click on the Tools -> Serial Monitor menu option in Arduino IDE. This time we will be using it to send data instead of receive it.
  3. Select all the text in your backup file, copy it, and paste it into the input field at the top of the Serial Monitor window. Click “Send”. It will be pasted as a bunch of numbers all in one line. It’s important we do this before we try to receive the data on the Arduboy. The window will seem to freeze after clicking “Send”. That’s normal.
  4. Go to the EEPROM Manager menu on your Arduboy and select “Restore EEPROM”. It will warn you that the existing data in EEPROM will be lost. Press A.
  5. Upload some other game and resume playing where you left off. Once the Arduboy says “Done!”, that’s it! Your save data should be restored.

I hope that this helps. I know it might look like a lot, but the steps aren’t too complicated.

Keep in mind this will back up and restore the entire EEPROM, so you might not want to load your saves like crazy, since it will potentially write to every EEPROM address when restoring a save. I think it’s nothing to worry about though, because I doubt it’s likely for somebody to restore their saves so often they would wear out the EEPROM.


#5

Thanks for the help. I added a few comments to the code…

// Version 1.2, May 03, 2018
// By wuuff
// based on


#6

I’m using my python scripts. cause they’re fast and convenient as you can see here: