Sunday, November 18, 2018

Unboxing GSM 3000 GSM3000 Gyro Stabilization Mount





Check the GSM3000 mount firmware version by connecting the mount Interface to PC via USBtoSerial Converter. Use serial terminal software to check data sent/received from GSM3000. Power off the Gimbal and restart it again, at the first initialization the GSM3000 will send firmware version to serial lines. Please check picture below.


Note: GSM3000 mount firmware version “GSM3000_V4.8.836” is required to control the GSM3000 mount with the POS. The bolded ‘8’ tells indicates that this firmware is intended to be used with the Applanix POS AV. Contact SOMAG for the firmware upgrade.

From the serial monitor software, it shown that the firmware version of the GSM3000 is as required to mount with POS AV.

YDC must be enabled via the POSConfig software utility by selecting the YDC Output option. This option requires an authorization code to enable software functionality. The authorization code must be purchased from Applanix. If the YDC has been enabled, the Statistic Window will show a YDC-O option in the Option string.




POSConfig Utility
POSConfig is used to change the PCS settings such as POS AV model, IMU or GNSS types, or enable specific options. Contact Applanix Technical Support and Service before using.
The following options are currently available:
• 04 Yaw Drift Correction (YDC)
Enables the automatic steering of a stabilized mount, using the real-time navigation solution. Refer to the Specification for Yaw Drift Control description on page J-1 for details.
• 11 Event Based Navigation Output (EVO)
Enables the output of the navigation solution (position and attitude) in real time at the time of the Event 1 and Event 2 pulse occurance.
• 20 Flight Management System (FMS)
Enables the Ethernet software interface (dedicated control and data port) for communication with Flight Management System and software triggering mechanism in real time firmware (refer to the POSTrack V6, starting on page L-1, for details).
• 22 Generic LiDAR Support (LID)
Enables automatic LiDAR logging control on/off based on start/end of the survey line.

Run POSConfig Utility
The following provides instructions to run PosConfig.exe to configure the PCS for the correct POS model, GNSS receiver, IMU type and other options.
Note: Ensure that firewalls and anti-spyware utilities are disabled before running POS Config.
1. Ensure POS AV system is properly connected and operational.
2. Power-up POS AV system.
3. Execute PosConfig.exe application; Select POS window opens



4. Select a POS IP Address and click Next button (an IP address may be entered manually); POS Config window opens.
5. Click Change Model button to select a different POS model. Available models are 610, 510, 410, 310; ‘AV’ is not changeable. Changing models requires an authorization code that must be purchased from Applanix.
6. Select IMU Type from drop-down menu



7. Select Primary GNSS Receiver type from drop-down menu.
8. Select Secondary GNSS Receiver type from drop-down menu.
9. Select applicable Options.
10. Click Update button - a prompt for an Authorization Code appears - please enter the code. Once operation is complete, Success window opens.



11. Click Exit button.
12. Recycle POS AV system power.



Warning: Do not power-down the POS AV system until POSConfig notifies that reconfiguration is complete.


When the YDC-O (Yaw Drift Control - Option) enabled, and the POS AV port setting set to gimbal GSM3000, the POS AV will send ASCII command "K" to RX RS232 serial port GSM3000.

The POS AV port setting as follow:
- Select Setting -> Input/ Output port Set Up -> COM2 setting
- Baud Rate : 19200,
- Parity : none,
- Data Bits : 8 bits,
- Stop Bits : 1 Bits,
- Flow Control : none
- Output Select : Gimbal,
- Input Select : Gimbal,
- Gimbal type : GSM3000,
- Update rate : 20 Hz

Please check picture below.

The POS AV will repeatedly send serial ASCII command "K" to serial COM2, at the first attempt to comunicate with GSM3000. When its connected with GSM3000 and no error on wiring connection, the GSM3000 will reply to POS AV the firmware version of the GSM3000 mount. The Gimbal status on POS AV will change to "Gimbal On: OK". Otherwise when the wiring connection is wrong, and the POS AV didn't receive the firmware version from GSM3000, the Gimbal status on POS AV will shown "Gimbal Off". Please check picture below.


After receiving command "K" the GSM3000 mount will identify itself and inform about its state in the form "Name_Version state (End of Line)". The name is separate by space, the version is chained with an underline and the two-digit code number are separated by space from the version. End of line is "\r\n".

For example: "GSM 3000_V4.8.843 01\r\n" means name GSM 3000, version V4.8.843, state Initialization.
Codes:
- 00 status OK
- 01 during the initialization

Note: state only available from version GSM3000.... 36 or higher.





Thursday, November 15, 2018

Using External GPS NMEA Input for Ardupilot APM 2.6

Using External GPS type NMEA mode for Ardupilot APM 2.6

To work with external GPS type NMEA mode, make sure your firmware installed is Ardu Rover v2.51 beta. Because other firmware (Arduplane and Ardu Copter) only support Ublox GPS.

The default baudrate for any GPS connected to Ardupilot APM 2.6 is 38400bps. You can change the baudrate setting using the factory configuration software, If you are using Garmin GPS 18, you can download snsrcfg.exe to changes baudrate.

Saturday, October 6, 2018

Using Arduino Nano as a External Shutter Release (External Trigger) with DigiCamControl Software


External triggers can be used to extend camera(s) capture capabilities like bulb mode for cameras which don't support it or to trigger multiple cameras in same time without lag. In this project we using Arduino Nano and opto Isolator to interface Shutter release PC serial Port Cable.

Nikon DSLR Camera require the metering circuit (Auto Focus) signal to be present when the shutter release signal fires. If the shutter release button on the camera half pressed, its will focusing the metering circuit to focus the camera lens. To handle with these two signal controls without interfere each others, we need an opto isolator for each signal control.

Nikon camera has an interface terminal called "Nikon 10-pin remote terminal", which has connected to ground pin, release trigger pin, and wake up/ focus pin. We use those pins to interfacing with Arduino Nano with PC serial that will be able to triggering Nikon Camera externally.


From the Arduino Nano digital output pins to these Nikon shutter pin and focus pin, we need to add opto isolator circuit to separate the camera power and the arduino power. The opto isolator also use to separate the focus signal and the shutter signal to avoid interfere each others when internal shutter button pressed manually.

To work with DigiCamControl Software External device Trigger, we need to define its interface controller first. This can be done in Setting->Device->Add. The image below shows the setting for Arduino Shutter Release, more combinations shows in Setting->Devices.


After a device is defined, the Arduino Nano shutter release can be used in multiple places like in multiple camera control. If the camera has an attached device, all capture action will executed by the device, not by the normal PTP script utility. In this way if the arduino Nano connected to 2 cameras and if we click on capture, both cameras will capture.


The DigiCamControl Software using RS232 serial protocol with default baudrate 9600bps. The Command control is using ASCII text ended with "Carriage Return" and "Line New" codes. The first line coding is to setting the baudrate and define the shutter pin on Arduino:



int RLY_CAMERA = 12;
            int BAUDRATE = 9600;

void setup()
{               
  // initialize the digital pin as an output.
  pinMode(RLY_CAMERA, OUTPUT);
 
  Serial.begin(BAUDRATE);
  while(!Serial)
  {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  // reserve 200 bytes for the inputString:
  inputString.reserve(100);
  digitalWrite(RLY_CAMERA, LOW); // Ccamera off
}



And for the next step, we need to matching the command to "Shutter ON" and "Shutter OFF" as declared before in DigiCamControl Software.


·                            Shutter ON  : “A”
·                            Shutter OFF : “O”


Below are the coding to check the command sent from DigiCamControl Software to the Arduino Nano and trigger the Camera if a command found.



// the loop routine runs over and over again forever:
void loop()
{
            digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
            digitalWrite(PULSE, HIGH);   // turn the LED on (HIGH is the voltage level)
            delay(1);               // wait for a microsecond
            digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
            digitalWrite(PULSE, LOW);   // turn the LED on (HIGH is the voltage level)
            delay(1);               // wait for a microsecond

            if (stringComplete)
            {
                        if (inputString.startsWith("A"))
                        {          
      Serial.println(inputString);
      Serial.println("Trigger ON");
      inputString = "";
      stringComplete = false;
      digitalWrite(RLY_CAMERA, HIGH);  
                        }
                        else if (inputString.startsWith("O"))
                        {
      Serial.println(inputString);
      Serial.println("Trigger OFF");
      inputString = "";
      stringComplete = false;
      digitalWrite(RLY_CAMERA, LOW);  
                        }
            }
}


void serialEvent()
{
  while (Serial.available())
  {
    // get the new byte:
    char inChar = (char)Serial.read();
    //delay(10);
    // add it to the inputString:
    if (inChar != '\n')
    {
            inputString += inChar;
    }
    // if the incoming character is a newline, set a flag
    // so the main loop can do something about it:
    if (inChar == '\n')
    {
            stringComplete = true;
    }
  }
}