DomePro firmware release notes

Version: 40
Date released: 6-May-2025

Note: this readme includes cumulative features and bug fixes since v.33 which was the last formally released DomePro firmware version.

Note: when upgrading to v.40 BE SURE to upgrade both the azimuth and shutter modules since v.40 has a new module-to-module communications scheme

This document provides instructions on upgrading DomePro firmware and provides release notes on the associated firmware version.

The minimum Maestro4 version which works with this version of DomePro firmware is 0.09.008. Assure that Maestro4 is upgraded to at least this version before upgrading DomePro firmware.

Installation instructions

  1. Assure that the DomePro controller is attached via USB to the Windows PC.
  2. Using the Device Manager on the Windows PC, determine the COM port number for the DomePro controller connection.
  3. Run the DomePro_N.exe file. 'N' is the firmware version number.
  4. The "Astrometric Firmware Upgrader" will run. Follow the steps in the user interface. Step #1 will be pre-completed for you. Step #2 is to select the COM port number for the attached controller and click "Connect". Finally, step #3 is to click "Upgrade Firmware". The upgrade will commence and status on progress will be provided.
    Note: DomeProU and DomePro2 products shipped prior to 1-Apr-2022 cannot be upgraded with the "Astrometric Firmware Upgrader" HOWEVER, contact us and we will assist in conveniently upgrading your firmware.
  5. Upgrade the other controller (e.g. shutter) if this is a classic dome system.
  6. Power-cycle DomePro and it should now boot into using the new firmware and connect to Maestro.
================================= This file best viewed with fixed-font at this screen width or greater ===================================

New this version

Features

TCP server interface (ATCP) implemented for DomeProU
----------------------------------------------------
- DomePro now provides a TCP server interface to DomeProU hardware that includes the Ethernet option.  Details of this interface can
	be acquired from Astrometric in the form of the "Astrometric TCP" (ATCP) specification and TCP packets definition.
- In support of DomeProU's Ethernet interface: Added the following ATCL commands...
	SetNetworkIPv4_Address	HSi4	Sets the IPv4 network address for the hardware device.  Parameter is a string of the form
					"xx.xx.xx.xx" where "xx" are hexadecimal values in the range of 00 to FF.
	GetNetworkIPv4_Address	HGi4
	SetNetworkIPv4_Subnet	HSs4	Sets the IPv4 subnet mask for the hardware device.  Parameter is a string of the form
					"xx.xx.xx.xx" where "xx" are hexadecimal values in the range of 00 to FF.
	GetNetworkIPv4_Subnet	HGs4
	SetNetworkIPv4_Gateway	HSg4	Sets the IPv4 gateway address for the hardware device.  Parameter is a string of the form
					"xx.xx.xx.xx" where "xx" are hexadecimal values in the range of 00 to FF.
	GetNetworkIPv4_Gateway	HGg4
	SetATCP_Passcode		HSap	Sets the 32-bit passcode that this Astrometric device we require all ATCP clients to
						provide for access.  The passcode must be provided in hexadecimal
						format proceeded by "0x".  For example: "0xA341B73D".
	GetATCP_Passcode		HGap
	GetMAC_Address			HGam	Returns the 48-bit network MAC address in hexadecimal format.

Astrometric TCP (ATCP) server enhancements
------------------------------------------
- The ATCP server implementation has been advanced to version 3.  Contact Astrometric Instruments for detailed specifications.
- Added the following ATCL commands in support of the ATCP server v.3 timeout feature:
	BackChannelSetServerTimeOut	BSto	For the present client connection, sets the timeout (in milliseconds) which, after a period
						of no packets received from the client, the client will be disconnected.  More details are
						provided in the ATCP v.3 specification.
	BackChannelGetServerTimeOut	BGto
	BackChannelGetUpTime	BGup	Returns the "up time" (time since power-on) for the ATCP server device.  Value represents seconds
						and is provided in hexadecimal format.
- Note: for the present firmware version, only one simultaneous client connection is allowed to ATCP Server.  If a connection to a new
	client is attempted, while DomePro is already connected to a client, the client machine you are connecting from will likely
	report something akin to: "No connection could be made because the target machine actively refused it"
- Moved serial ATCL command processing to the same thread level as TCP ATCL command processing to assure thread safety.
- Note: for the present firmware version, only one simultaneous client connection is allowed to ATCP Server.  If a connection to a new
	client is attempted, while DomePro is already connected to a client, the client machine you are connecting from will likely
	report something akin to: "No connection could be made because the target machine actively refused it"
- Supports up to 6 simultaneous clients.  When there are already 6 clients connected to ATCP Server the 7th client attempting to connect
	will get an error akin to "Cannot connect to server at specified IP address and port".
- Added the GetATCP_ServerSocketNumber (HGss) command.  This command returns the ATCP Server socket number, that the requesting client is
	connected to, as a hexadecimal number between 0x00 and 0x05.
- Added the GetATCP_ServerConnectionStatus (HGcs) command.  This command takes the ATCP Server socket number as a parameter(a hexadecimal
	number between 0x00 and 0x05) and returns status dependent on the socket connection status to a client:
	- If not connected: "N/C"
	- If connected: "xx.xx.xx.xx:n:f" with the following field definitions:
		- xx.xx.xx.xx is the connected client IP address where "xx" are hexadecimal values in the range of 00 to FF.
		- n is the connected client source port number
		- f is 1 if the socket has experience receive buffer over-run (i.e., more than 512 byte "max ATCP packet size" of data
			received) since the last power-up or 0 for no over-run.
- Added the ATCL command GetNetworkDeviceID HGnd.  Gets the device ID for ATCS' built-in networking hardware.  Presently, all Astrometric
	Ethernet-enabled devices ship with a network device that reports 1 for this command.
- Note: Network capability is disabled if the ATCP passcode is the factory default value of 0xFFFF0000.  This mandates a passcode change by
	the sys admin (usually through Maestro) and best assures ATCP Server security.
- Note: Since the ATCS TCP initialization code is only run at startup, any changes to the following result in the need to power-cycle ATCS
	to re-initialize TCP:
	- Making a physical change to network connectivity such as plugging in a cable that was not plugged in at power up.
	- Changing ATCS TCP Server network settings such as IP address, subnet mask or gateway.
	- Changing ATCS TCP Client (if used) network settings such as server IP address and port number.
	- Changing ATCS Drive Type to TCP1
	- Changing the ATCP Passcode off from the default value of 0xFFFF0000 requires a power-cycle to enable networking.  Subsequent
		changes to the ATCP Passcode can be made without a power cycle.

"Stall if motor fault" feature
------------------------------
- This feature is for azimuth systems with step/dir motors.
- When this feature is enabled, a motor fault (e.g., stall or other motor-specific problem) will be registered if the "Motor Fault"
	feedback signal from the motor driver (connected into the Mon+/Mon- DomeProU inputs) is asserted when the motor is being commanded
	to move.
- Associated new ATCL commands:
	DSms: SetDomeAzStallIfMotorFault with parameter "Yes" or "No"
	DGms: GetDomeAzStallIfMotorFault
- Specific implementation using Teknic servo motors
	- Teknic HLFP output assigned to the "SERVO ON" function.  Meaning: when the Servo is On the HLFB output asserts
		(conducts).  The HLFB output de-asserts when the motor is off/faulted and in a shutdown state.
	- HLFP output used to source current into the Mon+/Mon- inputs.
	- DSmsYes command used to SetDomeAzStallIfMotorFault.
	- Then, if DomeProU is activating the azimuth motor(s), and the Teknic HLFP output is asserted, there will a fault
		(via azimuth MoveMode showing "Fault") and all commanded motion will cease.
- Changed the name and description of the following ATCL commands:
	DSms: SetDomeAzStallIfMotorNotEnabled --> SetDomeAzStallIfMotorFault
	DGms: GetDomeAzStallIfMotorNotEnabled --> GetDomeAzStallIfMotorFault
- New policy our Motor Enable... motor not disabled when there is no movement.  Motor only disabled when there is a motor fault as
	detected by signal feedback from the motor.
- Added support for detection of a 2nd azimuth motor fault
	DSm2: SetDomeAzStallIfMotor2_Fault
	DGm2: GetDomeAzStallIfMotor2_Fault

New ATCL commands for shutter overdrive
---------------------------------------
- SetShutterODriveOpen (DSoo)	[ShutterNumber][HEX] 	Set the amount of time, in 1/10's of seconds (max 50, or 5 seconds),
	that the shutter indicated will run after hitting the Open limit.
- GetShutterODriveOpen (DGoo)	[ShutterNumber]
- SetShutterODriveClose (DSoc)	[ShutterNumber][HEX] 	Set the amount of time, in 1/10's of seconds (max 50, or 5 seconds),
	that the shutter indicated will run after hitting the Close limit
- GetShutterODriveClose (DGoc)	[ShutterNumber]
Note: prior to using the shutter overdrive feature, contact Astrometric Instruments to get information on possible jumper
	reconfigurations needed inside the shutter controller.

New ATCL commands for shutter brake control
-------------------------------------------
- SetShutterBrakeDelayDisengage (DSbd)	[ShutterNumber][HEX] Set the amount of time, in 1/10's of seconds (max 50, or 5
	seconds), that the brake for the shutter indicated will be disengaged prior to shutter motor turn-on
	Note: presently, this command only works for Shutter1.
- GetShutterBrakeDelayDisengage (DGbd)	[ShutterNumber]
- SetShutterBrakeDelayEngage (DSbe)	[ShutterNumber][HEX] Set the amount of time delay, in 1/10's of seconds (max 50, or 5
	seconds), that the brake for the shutter indicated will be (re)engaged after shutter motor turn-off
	Note: presently, this command only works for Shutter1.
- GetShutterBrakeDelayEngage (DGbe)	[ShutterNumber]
- For the SetDomeIsoOutAssignment (DSix) and GetDomeIsoOutAssignment (DGix) commands: added the "Brake1" assignment.
- The following shutter Brake ATCL commands now work for Shutter2 in addition to Shutter1:
	- SetShutterBrakeDelayDisengage (DSbd)	[ShutterNumber][HEX] Set the amount of time, in 1/10's of seconds (max 50, or 5
		seconds), that the brake for the shutter indicated will be disengaged prior to shutter motor turn-on
	- GetShutterBrakeDelayDisengage (DGbd)	[ShutterNumber]
	- SetShutterBrakeDelayEngage (DSbe)	[ShutterNumber][HEX] Set the amount of time delay, in 1/10's of seconds (max 50, or 5
		seconds), that the brake for the shutter indicated will be (re)engaged after shutter motor turn-off
	- GetShutterBrakeDelayEngage (DGbe)	[ShutterNumber]
	- For the SetDomeIsoOutAssignment (DSix) and GetDomeIsoOutAssignment (DGix) commands: added the "Brake2" assignment.

Digital temperature (one-wire) sensor support
---------------------------------------------
- DomeProU models now support internal (to the box) temperature sensing.
- The following ATCL commands are renamed:
	- GetDomeAzimuthTempADC --> GetDomeAzimuthHW_Temp ("DGat")
	- GetDomeShutterTempADC --> GetDomeShutterHW_Temp ("DGst")
	And they now return the following value: hex integer value representing temperature in units of DecC x16.

New Module-to-Module communications scheme
------------------------------------------
- The communications between the shutter and azimuth module has been redesigned to allow for shutter modules power savings
	modes, allow for more up-link/down-link data, allow for "future proofing" the interface and to allow for non-RF (e.g., using
	Astrometric's CAN bus communications accessory) between the modules.

Misc
----
- DomePro firmware will detect illegal internal firmware conditions and traps the code in what is called an Internal Error state to assist
	with diagnostics.  In this state DomePro will halt however it will display a descriptive error on its front-panel display which
	will remain until the device is power-cycled.  PLEASE REPORTED the text of these Internal Errors if they are encountered.
- Re-wrote the reporting of "internal errors" (fatal errors in operation) to be consistent with ATCS and to be reported by Maestro.
	Additionally, any internal errors will be reported on the front panel display.
- For the SetDomeIsoOutAssignment (DSix) and GetDomeIsoOutAssignment (DGix) commands: added the "Flag" assignment.
- Renamed the SetDomeIsoOutTest (DSio) command to SetDomeFlagOut (DSfo)
- Renamed the "Test" IsoOut assignment ot "Flag".
- With these changes you use the Flag output as follows:
	- Use the SetDomeIsoOutAssignment ATCL command to set the IsoOut assignment to Fla: DSixFlag
	- Use the SetDomeFlagOut ATCL command to:
		- Set the IsoOut to conducting DSfoYes
		- Set the IsoOut to nonconducting DSfoNo
- Removed the GetLocalModeActive "DGla" ATCL command.  Instead, use the GetDomeShutterStatus "DGsx" and look for the "0x1D"
	return code indicating that the shutter module is in Local Mode.

Bug fixes

- Fixed a bug for Azimuth Drive Type = StepDir: Previously, when the Drive Type was set to StepDir the internal azimuth position was
	not properly initialized so azimuth GoTo's were offset by the azimuth position at the time that the Drive Type was set to
	StepDir.
- Fixed a bug where ATCP Server would occasionally hang on connect.  This was due to an un-handled TCP state that is now handled
	correctly.
- Removed this feature introduced in v.32: "For the StepDir Drive Type: Dir returns to a low state after a move to reduce power
	consumption.".  This was leading to some steps being lost for GoTos and is no longer necessary due to changes in DomeProU's
	internal circuitry.
- Fixed a bug where an attached servo motor, using StepDir Drive Type, would not disable on fault for the GoTo Move Mode.  It would
	disable on fault for all other Move Modes.
Contact Astrometric support with any questions or issues.


Copyright 2025 Astrometric Instruments, Inc.