### JUNGFRAU Firmware

For SLS Detector Package v3.1.0
Minimum compatible version: 13.11.2017
Latest version: 13.11.2017

At times, one has to update the firmware, which then also requires updating the on-board software.

Jungfrau firmware can be upgraded via the SLS Detector Package binaries from the command line.

1. One must get the latest package's corresponding POF file from the SLS Detector Group.
2. Update the latest SLS Detector package installed.
3. Update the on-board software as per the instructions in the next section.
4. Start the on-board server in debug mode:
   1. Connect to the blackfin on the detector
      `telnet bchipxxx`
   2. Prevent existing on-board server from respawning by:
      1. Edit `/etc/inittab`
      2. Comment out the line `#ttyS0::respawn:/jungfrauDetectorServervxxx`
      3. Reboot blackfin using `reboot`
      4. Run `ps` to ensure no gotthardDetectorServers are running
   3. Start the server in debug mode using:
      `./jungfrauDetectorServerxxx -debug`
      Leave this console on to come back to it later.
5. From the command line of the pc, clear shared memory
   `./sls_detector_get free`
   If one gets shmget error, please clean the shared memory properly using the script in `slsDetectorPackage/cleansharedmemory.sh`
6. Add the detector to shared memory using
   `./sls_detector_put hostname bchipxxx`
7. Program the FPGA using
   `./sls_detector_put programfpga xxx.pof`
8. Once the programming is done:
   1. Switch to the console that has the debug server running and kill it using Ctrl+C and ensure no jungfrauDetectorServers are running
   2. Restart the new server to see if it runs with the new firmware
      `./jungfrauDetectorServerxxx`
      If the server didn't start properly, please contact us with the error message shown when starting the server up, else continue with the following steps.
   3. Respawn the new server (server starts at detector statup):
      1. Edit `/etc/inittab`
      2. Uncomment out the line `ttyS0::respawn:/jungfrauDetectorServervxxx`
      3. Reboot blackfin using `reboot`
      4. Run `ps` to ensure that both the gotthardDetectorServers are running.
         `jungfrauDetectorServervxxx`
         `jungfrauDetectorServervxxx 1953`