Update 27th December, 2017: new version 1.70!
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. I started numbering these release from 1.60 because it is the result of multiple intermediate versions (made in the last few years and which I’m not releasing).
Version 1.70 adds and fixes a few things, but the main news is an updated RS232 protocol which enables ASCOM support, with the help of a driver on the PC! See this post for the full story. Unfortunately, I could not fit this updated protocol in the standard 32KBytes EPROM, and therefore a larger 64K EPROM (and a small hardware modification) is required for the ASCOM support to run. I’ve released 32KBytes firmwares anyway, in case you don’t need ASCOM support but you want everything else.
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.
- 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).
- 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)
- Fixed DISP/TIMEDATE that was leaving RA/DEC indicators displayed
- Added the possibility to perfom an ABORT during the slew to the selected reference star while doing the BEGIN/ALIGN procedure.
- SET/TIMEDATE (and therefore also BEGIN, since the same routine is used) can now input a year starting from year 2000
- Doing SLEW/OBJECT after SLEW/COORDS no longer apply atmospheric refraction again (it was already applied to target coords by SLEW/COORDS)
- 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).
- SET/EPOCH clears the screen before asking for the new epoch.
- Fixed spurious OPT-0/OPT-1 operation during boot. These were present with the original firmware too, but they were not an issue because you were not able to boot with these options enabled. Now, if you have installed an NVRAM, they may be so.
- Fixed default options (default options had OPT-9-6 enabled by default and it shoudn’t)
- Fixed Lunar tracking speed, which I somehow messed up. Now it’s 14.539 arcsec/s
- Key “-” is no longer highlighted in the OPT menu (where it has no use)
- Fixed ABORT labels highlight during and after the END procedure
- Speed and UP/DOWN indicators are correctly displayed if you exit the END procedure (previously, there were left off)
- Default site is now Legnano (351 05, 45 36 N, sorry)
- Shortened bootup blinking
- Firmware revision is shown at boot
- Firmware revision can also be shown with DISP/SCOPE/REV
- Added DISP/SCOPE/EPOCH to show current Epoch (the one set with SET/EPOCH).
- 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
- 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.
- 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
- 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
- Added display of (uncalibrated, so it is approximate!) battery voltage together with the firmware revision in DISP/SCOPE/REV
- 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.
- Added C8 firmware versions.
- Print the observing log header during boot if the OPT-0 option is enabled (and an NVRAM makes it enabled at boot!)
- At the end of the END procedure (when the parking slew has been completed) “PARKED” will be shown on the Compustar display
- Added a specific sound (something like beeep-beeep-beeep) at the end of a slew.
- Added PC mode/ASCOM support protocol on RS232 (see “An ASCOM driver for the Celestron Compustar”, here. For 64K EPROMs only)
- 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.
- 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.
- OPT-3 disables Site Longitude/Latitude input in the BEGIN function.
- OPT-4 disables Date/Time input in the BEGIN function.
- OPT-5 displays the Bayer Name instead of the magnitudo for the 100 reference stars (REF 1 to REF 100)
- OPT-6 enables/disables ASCOM support.
- 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.
- 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.
- 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-0||OPT-8-1||Tracking speed||READY Label||Comment|
|Not Set||N/A||15.041 arcsec/s||Steady||Sidereal speed (normal Compustar tracking speed)|
|SET||Not Set||15.000 arcsec/s||Flashing||Solar speed|
|SET||SET||14.539 arcsec/s||Flashing||Lunar (really approximated!), updated in revision 1.70|
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.
For the installation procedure of the required chip, please refer to the Hardware modifications for the Celestron Compustar page, here.
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
|OPT-0||Original firmware||Observing log: 1=Active|
|OPT-1||Original firmware||Ask for observing log comment: 1=Active. See note below.|
|OPT-2||1.60||Date/Time formatting in observing log: 0=Compact, 1=Readable (but the line is longer than 80 chars)|
|OPT-3||1.60||0=Ask, 1=Don't Ask for Site Longitude/Latitude in the BEGIN function|
|OPT-4||1.60||0=Ask, 1=Don't Ask for Date/Time in the BEGIN function|
|OPT-5||1.60||For the 100 REF stars: 0=Display Magnitudo, 1=Display BAYER name|
|OPT-6||1.70||0=ASCOM support disabled, 1=ASCOM support enabled.|
|OPT-8-0||1.60||0=Sidereal tracking rate, 1=Tracking rate set by OPT-8-1|
|OPT-8-1||1.60||0=Solar tracking rate, 1=Approximate Lunar tracking rate|
|OPT-8-6||1.60||0=RA speed up to maximum value, 1=limit RA speed to 50% of maximum speed|
|OPT-8-7||1.60||0=DEC speed up to maximum value, 1=limit DEC speed to 50% of maximum speed|
|OPT-9-0||Original firmware||Ratio in RA: 0=360:1, 1=720:1|
|OPT-9-1||Original firmware||Ratio in DEC: 0=216:1, 1=432:1|
|OPT-9-2||Original firmware||0=Park Folded, 1=Park unfolded|
|OPT-9-3||Original firmware||0=Park N/S, 1=Park Horizontal|
|OPT-9-4||Original firmware||0=RA Motor normal, 1=RA Motor Reverse|
|OPT-9-5||Original firmware||0=DEC Motor normal, 1=DEC Motor Reverse|
|OPT-9-6||Original firmware||1=Skip Pole star align in Begin|
A few 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!
- OPT-6 cannot be enabled on 32KBytes firmwares.
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.
If you want to try 64KBytes EPROMs, you should check the “Enable 64Kbytes code eprom” 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 telescope we have in Legnano. Therefore it has the original 1986 database. I have no plan, so far, to update the database myself.
In the ZIP archive you download you will find 4 different files:
|Filename||Compustar Telescope||EPROM type||ASCOM support||Checksum|
Note: 64K EPROMs requires additional modifications to the Compustar Hardware. Please refer to “Hardware modifications for the Celestron Compustar”, here.
After having downloaded the file, you must unzip it and program a blank 32K EPROM (27C256) or 64K EPROM (27C512) 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).