The question was about having a backup of settings in Ground Control, which is the program that sends commands to the machine. @Bar may have to confirm this, but I believe that the groundcontrol.ini file could be copied between each of the students’ laptops and they would be able to run their programs with no issues.
The important task would be to make sure that everyone has a current version of the ini file. If someone were to miss a calibration that could throw off their cuts.
There has been talk of programming the firmware so that the calibration gets saved to the Arduino instead, which would do away with needing to copy this file between computer. That would make it very easy to just plug a laptop into the USB cable and run a program. However, I don’t believe that change has been made yet.
The Arduino has nonvolatile memory. This is what your are flashing to when you upload a file. However typically it’s hard coded data. There isn’t as it sits separate memory to write to. So in theory you would need to update the firmware file with your settings and resend it to the Arduino. We could add external memory and read write the variables to it but that would drive up the cost of the system.
the more logical approach would be to add a SD card slot to the shield
With this we could probably develop a display system to calibrate and run files from the SD card. This would effectively turn the Maslow into a 2D copy machine. Very useful for repeating designs.
if we add a ESP8266 with a SD slot as a sub processor we could use the WiFi on it to get to a WiFi SD card system. This would require some code magic of course but it’s do able.
No special boards are needed the ATMega2560 has 4kb of EEPROM which is more than enough to hold the necessary settings data. We already store the encoder steps there, which is how the machine knows where it is when you turn it on.
I only need a few more days, but with holidays and testing it may not be ready for prime time until January.
Once this is done, it could be an option to disable the settings checker in GC, so that it would just use whatever was on the machine. I don’t know enough about GC to know whether this would actually work. But either way, copying the groundcontrol.ini file around would solve the issue.
@krkeegan: I had thought I had seen you mention you were writing a fix to make the settings store in the Arduino’s EEPROM. I’m no expert on the Arduino IDE, but I can image how complicated that code is. You continue to be an indispensable member of our community! I really appreciate all the work you’ve been putting into program fixes. Keep up the great work, and don’t worry too much about getting results immediately. Enjoy the holidays as well
@Daniel_Burke: Not a problem. I haven’t tried it myself, but based on what I’ve read and what little I do know about Ground Control I had a feeling copying the file could be the solution to your problem.
I’d recommend creating a structure with a version number as the first field so you can tell when it’s changed. Marlin takes the easy way out, resets everything to defaults if it detects a different version in the firmware and EEPROM, probably good enough if GC can restore the values.
Marlin’s M50x might provide some ideas on how to handle the EEPROM
Is SPI available or is the shield using it? I’m asking because i want to know if implementing a SD card is even an option? Access to the SD card would only be when not running a file. I’m trying to understand if the SD slot could co-exist. Not just for backing up the eeprom, but other tasks as well.
It looks like on the mega the hardware SPI is pins 50-53. Correct me if I’m wrong but I assume the version is passed during GC startup, I would not think it would keep looking for it after that and possibly allow the SPI to be reused?