New Compustar Firmware

One of the reasons that made me write the Compustar Emulator (see here for the full post) was that I wanted to make changes and improve the Compustar firmware, both because I had a few modifications in mind and because I wanted to simplify how we use our Compustar at the “Osservatorio Città di Legnano“.

Already knowing the 8051 assembly (the Intel 8051 being the Compustar microprocessor) made things easier for me, but I had anyway to go through a lengthy (and funny, at least for myself) analysis process to understand how the original firmware worked and where I could change it to implement all the ideas I wanted to add (like supporting a real time clock addon chip to avoid to have to enter the date every single time).

The firmware I’m now releasing is based on the original Compustar firmware and therefore it is using the original 1986 Compustar Catalog, but it obviously accepts years from 2000 on. It is version 1.60 because it is the result of multiple intermediate versions (made in the last few years and which I’m not releasing).

There are lots of changes/fixes/news in this firmware, and simply listing them all will make for a messy list. I’m therefore dividing this list in sections, hoping to make things better.


  1. Fixed “Last Day of February” bug. (If date rolled over from the last day of February to the first day of March, due to a Hex 28 used instead of a decimal one, the day becomes 29 Feb, or 30 Feb for leap years).
  2. Fixed Timer bug (was increasing high byte of clock instead of high byte of timer, so the timer was corrupting the clock after 6553.5 seconds)
  3. Fixed DISP/TIMEDATE that was leaving RA/DEC indicators displayed
  4. Added the possibility to perfom an ABORT during the slew to the selected reference star while doing the BEGIN/ALIGN procedure.
  5. SET/TIMEDATE (and therefore also BEGIN, since the same routine is used) can now input a year starting from year 2000
  6. Doing SLEW/OBJECT after SLEW/COORDS no longer apply atmospheric refraction again (it was already applied to target coords by SLEW/COORDS)
  7. SET/EPOCH input function has been rewritten, allowing to input a year from 1900 to 2100 included. As a side note, this epoch (the one set with SET/EPOCH) is used when doing SLEW/COORDS. When doing a slew to a database object, the database epoch is automatically used (but the current epoch is NOT changed).
  8. SET/EPOCH clears the screen before asking for the new epoch.

Misc modifications

  1. Default site is now Legnano (351 05, 45 36 N, sorry)
  2. Shortened bootup blinking
  3. Firmware revision is shown at boot
  4. Firmware revision can also be shown with DISP/SCOPE/REV
  5. Added DISP/SCOPE/EPOCH to show current Epoch (the one set with SET/EPOCH).
  6. SET/SCOPECOORDS/OBJ is no longer same as SYNC, but sets the current object to the current telescope coordinates (same as doing a SLEW/COORDS to current telescope coordinates). Useful to “mark” a place, move around, and going back with SLEW/OBJ
  7. Screen is partially cleared after an ABORT, trying not to leave confusing informations displayed. I’m not completely sure whether this fix is really useful and functional, though.
  8. When a CNGC object which happens to be also a Messier object is displayed, the Compustar shows both the “M” and the “CNGC” indicators to the left of the (CNGC) object number. It is now possible to display the Messier number too, using DISP/OBJECT/M
  9. When a Messier object is displayed (there is only the “M” indicator and the number is 1 to 110), it is now possible to display the corresponding CNGC number, using DISP/OBJECT/CNGC
  10. Added display of (uncalibrated, so it is approximate!) battery voltage together with the firmware revision in DISP/SCOPE/REV
  11. When aligning the scope during the BEGIN function, (when there are both the ALIGN and OBJ indicators flashing on the keyboard), the original code had both ABORTs, BACK and the ENTER keys enabled on the keyboard but both BACK and ENTER did actually an ENTER. Now the BACK key is gone and in addition there is the SPEED key allowing you to toggle the speed between SET and SLEW.

Changed/Added Options

  1. Modified OPT-0 logging option: now date is output with a 4-digit year and an header will be printed when OPT-0 is activated.
  2. Added OPT-2 to log time and date with separators to make them more readable: (yyyy-mm-dd hh:mm:ss instead of yyyymmddhhmmss). Note that this option will make the log line longer than 80 characters.
  3. OPT-3 disables Site Longitude/Latitude input in the BEGIN function.
  4. OPT-4 disables Date/Time input in the BEGIN function.
  5. OPT-5 displays the Bayer Name instead of the magnitudo for the 100 reference stars (REF 1 to REF 100)
  6. OPT-8-6 limits the RA speed to 50% of the maximum RA speed. This can be useful to avoid motor stalls if the telescope is not well balanced.
  7. OPT-8-7 limits the DEC speed to 50% of the maximum DEC speed. This can be useful to avoid motor stalls if the telescope is not well balanced.
  8. OPT-8-0 and OPT-8-1 select the tracking speed. See the table below. Note that when a non-sidereal tracking speed is selected, the READY label will flash.

Tracking speed selection

OPT-8-0OPT-8-1Tracking speedREADY LabelComment
Not SetN/A15.041 arcsec/sSteadySidereal speed (normal Compustar tracking speed)
SETNot Set15.000 arcsec/sFlashingSolar speed
SETSET15.668 arcsec/sFlashingLunar (really approximated!)

For the reason behind OPT-3 and OPT-4, see the next section!

Hardware update: a non volatile memory AND real time clock for the Compustar

This firmware supports a non volatile memory and real time clock installed in a free socket in the Compustar!!! The non volatile memory will allow this firmware to save what you have configured (options, location) and keep them configured even when you power the Compustar off.

The real time clock will allow you to set the clock once (using either BEGIN or SET/TIMEDATE) and have it already set.

The required IC (Maxim/Dallas DS1643) can be bought on EBAY or AliExpress. Regular IC resellers like DigiKey or Farnell seem unfortunately to have discontinued this IC. There could be other options but this is the only one (that I know of) that can be directly installed in the Compustar without other modifications.

The empty socket where you can install the DS1643 chip

The DS1643 chip installed. The small dip indicating pin 1 of the DS1643 must be oriented like the other EPROM chips.

With this IC installed in the Compustar, you can have a faster startup procedure (really useful for fixed installation): activate OPT-3, OPT-4 and OPT-9-6 (the standard option to skip polar align in begin) and then you can begin with the simple reference star slew and sync (with BEGIN). You can also leave OPT-3 and OPT-4 as default and start with ALIGN instead of BEGIN.

Updated options reference

OptionAvailable fromDescription
OPT-0Original firmwareObserving log: 1=Active
OPT-1Original firmwareAsk for observing log comment: 1=Active. See note below.
OPT-21.60Date/Time formatting in observing log: 0=Compact, 1=Readable (but the line is longer than 80 chars)
OPT-31.600=Ask, 1=Don't Ask for Site Longitude/Latitude in the BEGIN function
OPT-41.600=Ask, 1=Don't Ask for Date/Time in the BEGIN function
OPT-51.60For the 100 REF stars: 0=Display Magnitudo, 1=Display BAYER name
OPT-8-01.600=Sidereal tracking rate, 1=Tracking rate set by OPT-8-1
OPT-8-11.600=Solar tracking rate, 1=Approximate Lunar tracking rate
OPT-8-61.600=RA speed up to maximum value, 1=limit RA speed to 50% of maximum speed
OPT-8-71.600=DEC speed up to maximum value, 1=limit DEC speed to 50% of maximum speed
OPT-9-0Original firmwareRatio in RA: 0=360:1, 1=720:1
OPT-9-1Original firmwareRatio in DEC: 0=216:1, 1=432:1
OPT-9-2Original firmware0=Park Folded, 1=Park unfolded
OPT-9-3Original firmware0=Park N/S, 1=Park Horizontal
OPT-9-4Original firmware0=RA Motor normal, 1=RA Motor Reverse
OPT-9-5Original firmware0=DEC Motor normal, 1=DEC Motor Reverse
OPT-9-6Original firmware1=Skip Pole star align in Begin

A couple of notes about these options:

  • I’ve never found OPT-1 documented. The description above is what I’ve found by looking at the code. The reason for not being documented may be that this numerical input is also shown when the Compustar is doing internal slews that may not be obvious to the user, for example during boot and during the BEGIN, ALIGN or END procedures.
  • I have found OPT-9-7 documented as “0=Fork mounting, 1=German mounting”, but the firmware does not ever read this bit.
  • You can light up (almost) all the display by doing DISP/SCOPE/ALTAZ and then OPT/<the key between 0 and ENTER>. This works with the original firmware too!

Experimenting this firmware with the Compustar Emulator

Before programming an EPROM to install this new firmware in a real Compustar, you can try it in the Compustar Emulator.

Simply download the file (below) to some folder, unzip it, start the emulator and load this firmware in place of the original one by selecting (in the emulator!) the Options menu and then Settings. The settings dialog will open, click the button to the right of the “Code (A)” textbox and locate the file you have just unzipped.

You may also simulate an installed NVRAM/Clock chip by checking the “Enable DS1643 (Socket D)” option.

Click OK, and then restart the Compustar (to load the new firmware) with the Options menu and then “Reset Compustar”.


You will see the firmware starting like the original firmware you know, but with the addition of the number “1.60” (the firmware revision) in the lower left part of the display.











The first thing I suggest to try is to activate OPT-5 and display some star data, for example Schedar (REF 4, Alpha Cassiopeiae) by doing DISP/REF/4/ENTER (you can skip the BEGIN procedure since we are not dealing with the real Compustar, so it’s not a problem). You will see that the Compustar will tell you that the star is ALP CAS (ALPha CASsiopeiae).









Another thing that you can try is this: slew to RA 10h00 and DEC 70 00 deg (SLEW/COORDS/10 00 0/ENTER/70 00/ENTER) and wait for the slew to finish. Let’s assume you see something in the eyepiece and therefore you press FIELD to make the compustar find what it is. The compustar says it is CNGC 3034, but it also lights the “M” indicator to tell you it’s a Messier object (see image on the left). With this new firmware, you may also ask what Messier object it is: press ABORT to exit from the FIELD menu, and then press DISP/OBJ/M. The compustar will tell you it is M82!

Note: this may not work if you have set the compustar in a location where M82 is not visible.






The new firmware

This new Compustar firmware is based on the original Celestron Compustar firmware for the C14 telescope we have in Legnano. Therefore it will work on the C14 and I THINK it should work on a C11 too. It has also the original 1986 database. I have no plan, so far, to update the database myself.

After having downloaded the file, you must unzip it and program a blank 32K EPROM (27C256) with this new firmware and replace the topmost EPROM IC (the one farther from the DB9 joystick connectors). You should leave the other 2 EPROMs (which contains the database) as they are, but these EPROM must be the original 1986 EPROMs, not the Y2K+ EPROMs (the two databases are not fully compatible).



Skip to comment form

  1. Tom Sorbel

    Dear Angelo,

    My apologies on contacting you here like this, but my email and computer time is limited due to family matters.
    You may email me directly, but I don’t know when I will read your reply or respond to it.

    First, thank you(!) for all that you have done in upgrading the Compustar, and what you have provided and will provide to all of us.

    Second, the following is important!

    Maybe you have already performed this software change, but if not, you must! The original “PGM” software must be changed to allow the Compustar to perform from the year 2000 and beyond, due to a +1 day leap century change needed. I have tested this indoors, using the computer module, and it is verified that the software change is need. To add this 1 day calculation, you must go to address “5B95”, and change the original code from “14” to “00”.

    The original code, starting at address “5B93”, of E5 3F 14 F6 E5 3E 14 D3, will now look like E5 3F 00 F6 E5 3E 14 D3.

    Hopefully, you can make this change in your new software, if you have not already done so.

    Thanks again for all you have done.

    Tom Sorbel

    1. Besangelo

      Dear Tom,

      First of all, I want to thank you for the excellent work you have done releasing the original Compustar Y2000 firmware. Without that firmware, I probably would never have started using a Compustar!!

      I checked the code and that change has already been implemented. The note for this change went somewhow lost when I translated and organized the original modification list I wrote in italian. Thank for posting the note, however.

      I’m sending an email too with some other details: take your time before replying.


  2. Tom Sorbel

    Dear Besangelo,

    Just a note to let you know I never received an email from you – could you resend it?

    Thank you.


    1. Besangelo

      Mail resent. It’s strange you didn’t receive it since I did not get a “not delivered” reply from any server. I’m sending a copy of this email using my aemfoto.it account which I normally don’t use.

      Thanks for notifying me of the problem.
      Best regards

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>