This is how I update the code on eVOLVER units when we have software updates. I plan to make deployment scripts in the future to streamline this, but if you only have one or two eVOLVERs to update this process is fairly simple.
Open up a terminal of your choice (I use iTerm).
Use the cd command to navigate to the eVOLVER server software.
Use git to pull the latest version of the code. I have my own fork, so I need to pull the code from an upstream master branch. git pull origin master should work for most setups.
I like to use the scp command to transfer the files over to the eVOLVER. scp stands for secure copy - it uses ssh to transfer files between computers on a network. You can also use any GUI based tool - Filezilla is a popular one. I also normaly only transfer the python files, and not the entire evolver directory. The server saves calibration files and other configurations which we don’t want to modify. To transfer only the relevant python files, run the following command: scp evolver/*.py pi@<eVOLVER_IP>:evolver/evolver
Now that the files have been updated, the last step is to restart the server so the changes will take effect. ssh over to the evolver and run sudo supervisorctl. Then enter restart evolver, and you’re done!
On Windows, SCP is not built into the operating system. But you can use WinSCP or another FTP client (like Filezilla) as a GUI for accessing the files on the Raspberry Pi. Here are modifications to the steps above.
1-3. Download and extract the files from the appropriate Github release.
Use WinSCP to drag the .py files into the correct locations. Be careful to not overwrite other types of files, as you might overwrite your calibrations.
Most Windows 10 computers have a Windows 10 SSH Client (such as OpenSSH Client) so you can log into the Raspberry Pi from Command Prompt in order to restart the server. Simply type ssh pi@192.168.1.X to indicate the IP address of your eVOLVER and log in. From here, you can run sudo supervisorctl as normal.
Looking for the password to the raspberry pi as well for file transfer. Could this be made public on the wiki, with a brief tutorial on how to change the default password (if the default password is considered sensitive information)?
When comparing eVOLVER server code 2.0.1 to 1.2.1 (actually i don’t know which software version was installed in our new-purchased eVOLVER, but the evolver-electron-AppImage is 1.0.0), there are changes in files not limited to .py files (the screen shot below).
Why do we just need to update the .py files? Yes, we could manually change file calibrations.json to latest version as suggested here , but do we need to update files like conf.yml?
If you’re starting fresh definitely update conf.yml. I noted this here. I was hesitant to say everyone should replace that file completely in case someone has any options configured that would get overwritten, but that one field does need to be added.
There is a distinction between a calibration (as in the calibration experiment that was run collecting the raw data and user input), and a fit, which is fitting some function to that data. What calibrate.py is displaying are the calibration experiment names, which you can then use to run fits against using that same script. The GUI setup page displays available fits, ie what function should be applied to the raw data coming from the sensors on the eVOLVER. Also just to note, those default calibrations are dummy data and fits, you should do your own before running any real experiments.
If you view that json file through a formatting utility (such as this) you can see how the fits are nested inside of the calibration, and that a calibration can potentially have multiple fits associated with it.