create new tag
view all tags

Code Release 12


NCR/ECR Brief Description Status Rating Revision Date
NCR 117 Star cat angles 'All-up' test successful thumbs up Other 25 Nov 2005
NCR 129 Safehold angles 'All-up' test successful thumbs up Other 22 Nov 2005
NCR 130 TDRSS errors 'All-up' test successful thumbs up Other 28 Nov 2005
NCR 132 10 arcmin check in SAFE Combined with ECR 212. thumbs up - 19 Aug 2005
NCR 134 Timeout waiting for slew 'All-up' test successful thumbs up Important 23 Nov 2005
NCR 140 XRTPOS and win coords 'All-up' test successful thumbs up Important 17 Nov 2005
NCR 143 SAA interruption 'All-up' test successful thumbs up Important 17 Nov 2005
NCR 145 Ramp failure 'All-up' test successful thumbs up Important 16 Aug 2005
ECR 169 AT exposure overhead 'All-up' test successful thumbs up Other 15 Nov 2005
ECR 196 Remove twilight zone code Implicitly tested by other tests. In CVS. thumbs up - 28 Oct 2005
ECR 202 RTS line 'All-up' test successful thumbs up Other 24 Nov 2005
ECR 207 AT end-stops 'All-up' test successful thumbs up Significant 21 Nov 2005
ECR 212 Bad slews 'All-up' test successful thumbs up Significant 18 Nov 2005
ECR 213 New count rate etc tables Not included.. Significant 15 Nov 2005
ECR 214 1) Flatfields in SPs 'All-up' test successful thumbs up Other 22 Sep 2005
2) Disable channel boundary loading 25 Nov 2005
ECR 215 TDRSS HK after gotosafe 'All-up' test successful thumbs up Other 25 Nov 2005
ECR 216 Window load in slew 'All-up' test successful thumbs up Significant 21 Nov 2005
ECR 218 Multiple FCs, new ATs 'All-up' test successful thumbs up Significant 21 Nov 2005

(See Recommendations for Release 12 and Complete list of NCRs and ECRs.)

Release 12 NCRs

Release 12 ECRs

Release 12 Patches

Other Items



MSSL NCR 117 (open)

There is an error in the star catalogue code which means that 2 very bright stars may not be avoided by the distance specified in the angular constraint table.

ICU code patch available

MSSL NCR 117 Testing Notes -- HowardHuckle

MSSL NCR 129 (open)

When the observatory is in Safehold, the ICU still checks against constraint angles of 45, 30 and 20 degrees for the Sun, Earth Limb and Moon respectively, when it should use a value of 20 for the Sun only. This is because, in the original specification, it was incorrectly documented that the ICU would be off.

ICU code patch available

but check for compatibility with ECR 212

MSSL NCR 129 Testing Notes -- HowardHuckle

MSSL NCR 130 (open)

DCS timeout waiting for HV ramp and FW move should send TDRSS errors. RTS slewabort should send a TDRSS error.

RTS/Tables patch available

MSSL NCR 130 Testing Notes -- HowardHuckle

MSSL NCR 132 (open)

The ICU code unnecessarily checks for within 10 arc min when in SAFE state.

This has now been combined with ECR 212

MSSL NCR 134 - SERS S-0067 (open)

The ICU timed out waiting for a slew to start on 2005-02-21. This was because the ICU was busy checking the star catalogue after settling on a safepoint when another slew was requested. Was this a little abnormal because of the crazy BAT recovery (see Anomaly Report S-0065) but is nevertheless a bug in the ICU Ada code. Ada function GET_PT_CONFIG can take a long time and needs first of all to be timed to see how long it takes and then needs to be changed to make it interruptable by a high priority RTS.

ICU code patch available

MSSL NCR 134 notes

MSSL NCR 134 Testing Notes -- Phil Smith

MSSL NCR 140 (open)

The calculations for the XRTPOS for the DPU window offsets (for the Finding Chart and Genie and for the other AT exposures) use the target (requested) position not the current (actual) position, thereby introducing the spacecraft pointing offset as an error in the window positions. This means that the GRB is often outside of the important Genie window. On subsequent exposures next orbit, no correction is made for the Spacecraft pointing, thus introducing the Spacecraft pointing error into the DPU window offsets. If an XRTPOS is available, the offsets should be calculated from the XRTPOS and the boresight. If the XRTPOS is not available (or it is a second or third attempt at a finding chart an orbit or more after the original attempt) then the offsets should be calculated from the (current - target) spacecraft position error and the boresight.

MSSL NCR 140 notes

ICU code patch available

RTS/Tables patch available

dcsgen code patch available

MSSL NCR 140 Testing Notes -- HowardHuckle

MSSL NCR 143 (open)

The ICU incorrectly chose to continue a previous exposure after an SAA interruption, although a slew to a new target had occurred in the meantime. This, in turn, led to an incorrect setting for the expected HV cathode range and then to a limit failure. The SAA interruption occurred within 2 seconds of the start of the slew. Initial analysis indicates that the above circumstances led to a call to an ICU 'book-keeping' routine from the do_slew rts in the wrong sequence. This problem resulted in NCR 144 which has been fixed.

ICU code patch available

MSSL NCR 143 Testing Notes -- HowardHuckle

MSSL NCR 145; SERS anomaly S-0150* (open)

HV ramp failure because do_slew was interrupted by do_slew and interrupted the ramp. It looks like what happened is the SAA finished so the mcp23 was ramped up from 66% to 100%. But before that could finish there was a slew which stopped all ramps. Then when ready to start the exposure, the ramp was started again but the high voltage software task decided that a voltage of around 1520 was within the tolerance of 100V of the nominal 1612V and so the HV software decided the ramp wasn't necessary. Then the independent limit task software decided that 1520V was too low as the limit is only +/-55V.

  • nominal voltage= 1612.360
  • vmcp23_tolerance_eeprom = 100
  • vmcp23_oper_h = 1668.280
  • typical noise = 50V

Obviously this should be the setup: tolerance + noise <= limit It isn't.

So the problem happens when the exit from SAA is followed 24s later by a slew (i.e. not very often) which is why we haven't seen this before.

On investigation, this proved to be a problem similar to the 'creep' problem of NCR 30. In this case, however, it was the e.g. 60V noise tolerance on MCP23 that led the code to incorrectly believe it was already at the required voltage. The fix was to apply a similar algorithm to the HV ramp as for the 'creep' problem i.e. when the current HV is read back at the start of the ramp, it is corrected to the last value commanded by the ramping code provided it is within the noise range. The code then only thinks it is at the required voltage already if there is an exact match between current voltage and requested voltage.

ICU code patch available

MSSL NCR 145 Testing Notes -- HowardHuckle

MSSL ECR 169 (open)

The AT exposure overhead is 3s and the science output would be better if this could be reduced. Remember to change the overhead parameters in the standard table.

MSSL ECR 196 (open)

Remove twilight zone code

ICU code patch available

MSSL ECR 196 Testing Notes -- HowardHuckle

MSSL ECR 202 (open)

The diagnostic rts 'line' should be removed as it is never used.

Patch available

MSSL ECR 202 Testing Notes -- HowardHuckle

RTS/Tables patch available

MSSL ECR 207 (open)

In order to facilitate ground analysis of ATs, the Ada code should be modified such that a single image exposure in 1 filter can be replaced by multiple shorter exposures in the same filter contiguously.

ICU code patch available

MSSL ECR 207 Testing Notes -- HowardHuckle

MSSL ECR 212 (open)

Make UNACCEPTABLE_DIFFERENTIAL_DRIFT, UNACCEPTABLE_ABSOLUTE_DRIFT and NOT_AT_PREDICTED_POSITION send an error message which causes a BLOCKED_FAILSAFE if the angle is < x degree (x = 13 arc min?) and causes a SAFE if the angle is > x degree.

ICU code patch available

RTS/Tables patch available

It now includes NCR 132

MSSL ECR 212 Testing Notes -- HowardHuckle

MSSL ECR 213 (open) - heh part

Update the following tables after calibration.

  • new count rate table Program to convert Phil output completed 11 Aug 2005 (count_rate_gen) - now in CVS

MSSL ECR 214 (open)

Make the default UVOTMODE flatfield or IC+FF for safepointings.

Can easily do flatfield only. Job for Pat.

Disable the loading of channel boundaries (but still take the events and send to the DPU).

ICU code patch available

RTS/Tables patch available

MSSL ECR 214 Testing Notes -- HowardHuckle

MSSL ECR 215 (open)

Send TDRSS HK after gotosafe and fastsafe have run.

When the ICU runs a safety RTS in response to a problem there is no TDRSS HK to see that everything is well.

It would be very easy to send 2 packets of TDRSS HK after gotosafe and fastsafe are run so that the HK page is updated and no further check is required (needing a telecommand to turn on TDRSS HK).

RTS/Tables patch available

MSSL ECR 215 Testing Notes -- Phil Smith

MSSL ECR 216 (open)

When detector windows other than full are used and the exposure is interrupted by a GRB, the window table load is done after 10 arcmin rather than during the slew thereby starting the finding chart 30s late.

Load the window table during the slew to a GRB rather than after arriving (10 arcmin).

RTS/Tables patch available

MSSL ECR 216 Testing Notes -- HowardHuckle


AT sequence change involving 2 Finding Chart exposures as well as other changes to the AT sequence filter tables are to be requested. Primary F/C restart now only if < 50% achieved

Table changes job for Scott

ICU code patch available

Intermediate table patch ECR217_part1 available to get data on white and longer Finding charts.

MSSL ECR 218 Testing Notes -- HowardHuckle

Release 12 Ada Patches

Release 12 dcsgen/fm Patches

Release 12 dcsgen compiler Patches


SERS S-0113

Unexplained Safety Circuit trip.

S-0113 notes

MSSL ECR 178 (open)

The failsafe filter wheel stops, HV ramp and table load aborts should be dealt with efficiently. This could be considered part of ECR 169. TO BE CLOSED AS NOT WORTH THE RISK.. see MSSL ECR 178 notes - 13 Apr 2005


  • Move the calculate_sun_moon_planets down a little in do_slew to ensure the DPU sees it before the slew starts OR place a failsafe /idpustop at the start.
  • DCS_TOO_FEW_ARGS should have an entry in errors.tab
  • Why is force=on in state_changes.rts for one window table load but not the other?
  • run blocked_failsafe during table load: this will move the filter wheel during a table load and filter wheel may lose position
  • ibpestopcentrdld delays are EITHER not long enough or not necessary
  • ibestopcentrdld; delay 3 may be too short
  • Recalculate the exposure overhead and change it in the code if necessary


Release the User Manual with ICU s/w release 12 - see relevant section in Recommendations for Release 12 Documentation NCRs to be closed soon after release12

Have meeting with Phil, Mary, Alan when issuing manual to close them all for good.


See Tony's original paper documentation.


The watchdog telecommand runs code which has a delay which means it can't be sent twice in close succession.


If the ICU loses DPU heartbeats it gives Ada exceptions after 1-2 days.


If the first copy of EEPROM tables is corrupt, there's no NHK to say so.


EEPROM reads/writes can conflict because they are not mutex protected. So don't dump and load at the same time.


ICU_MEM_MANAGER mem dumps increment the task counter once per dump not once per loop.


ICU_MEM_MANAGER CRC reports give the wrong start address when more than a small area of memory is checksummed.


Threshold is not set to 15 on startup: only important if the camera is on.


If the DPU heartbeat data are "suspect" they are still used. This may not be a problem.


Task accepts have delays which should not be there.


The star catalogue, count rate table, AT table, PT table RTS index and table are not CRC-checked every read (just at the start of a group of reads). Since EEPROM bit-errors have been observed at MSSL with a bit changing from 0 to 1 and back on a very short timescale, these tables should all be read into RAM and CRC checked before the values are used and the values used should only be read out of RAM.


Filter wheel position lost a number of times in testing (PRIME side only). Since this only happens on the prime side, it is probably due to mis-alignment of the filter wheel. This problem needs to be documented in the FILTER WHEEL section of the User Manual.

MSSL NCRs 124, 141, 146; SERS anomalies S-0042, S-0120, S-0159 BASIC code

Two BASIC code bugs. The task status bits are shared in the same word and each task reads and writes these many times conflicting with each other until one task writes "ASLEEP" another overwrites with "ALIVE" and the watchdog task reboots the ICU. The watchdog task also writes "UNKNOWN" in an unprotected manner. The BASIC packages affected are detanalog.adb (HV_RAMP), icu_mem_manager.adb (MEMORY_DUMP) and mechanism.adb (MECHANISM_MOVE). This is a bug in the PROM code (as well as release2-11 of the OPER code in EEPROM) and cannot be fixed so needs to be documented.


Heater set command Vmin > Vmax causes reboot.


Fix or document error code 99 in blocked TDRSS.


Edit the code to reset the safety circuit after the first trip of a snapshot or exposure and trip properly on the second. This needs documenting in the user manual.


Note that the SMC should not be observed in white as it can cause a safety circuit trip. The reason for this is not because the SMC is too bright but that it appears bright to the safety circuit as the resultant image on the detector is extended.


Add an appendix to the User Manual describing the RTS language and table specification.


  • On List
  • Notes on work so far
  • Problem encounted requiring investigation or item requiring attention
  • Tested successfully singly smile
  • Completed (on date shown) thumbs up

Last revision: r84 - 2006-08-10 - 16:28:02 - HowardHuckle

Edit | Attach | Watch | Print version | History: r84 < r83 < r82 < r81 < r80 | Backlinks | Raw View | More topic actions
Topic revision: r84 - 2006-08-10 - HowardHuckle
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback