You are here: Foswiki>Software Web>OVMS (10 Jan 2019, JohnHill)Edit Attach

OVMS

Optical Path Difference and Vibration Monitoring System (OVMS) uses fast accelerometers to collect fast measurements (routinely 1 kHz) from the telescope. It's primarily used for LBTI to measure and correct telescope vibrations. It's also used by engineering teams to monitor telescope vibrations.

Where it runs

Computers.jpg

  • ovms-uei - OVMS PowerDNA cube (a.k.a. RACKtangle). PowerPC running modified Linux Kernel. ssh is allowed. Located at LLTH (Lower Left Tree House), has 12 I/O boards for data collection. ssh root@ovms-uei
  • ovms - Linux PC with OVMS INDI interface (only visible from LBT network/VPN). Runs the telemetry daemon, client, and the monitor GUI. ssh ovms@ovms

How it runs

  • accelerometers collect data, feed them through I/IO into PowerDNA cube
  • PowerDNA runs in its FPGA data collection
  • Data are transmitted to PowerDNA main CPU
  • Data are sent from PowerDNA as UDP multicast
  • Clients collect data from UDP multicast and do what they need to do, primarily
    • ovmsMonitor GUI (for big displays)
    • LBTO Telemetry client (records hdf5)
    • OVMS+IF/piston, used by LBTI
    • OVMS+AO/TT - currently (Sep, 2018) under development by MPIA/Microgate/Arcetri/LBTO/NotreDame

UEI Contacts in 2018

Software Build and Installation Notes

README.md

Note that if you stop/restart the real-time software while telemetry is being recorded (unpaused),
the telemetry collection will go down and the telemetry daemon must be restarted and telemetry must be resumed.

Testing Notes

Since the data is so voluminous, it's hard to verify. For telemetry testing, you can compare sniffer out put with telemetry (HDF5), both run for just a few seconds.

To use the sniffer on the ovms host:

%CODE{lang="bash"}% ovmsSniffer -i 192.168.53.60 -f 1000 -s %ENDCODE%

You can dump this to an output file and then edit the file to get a CSV:
  1. delete the header lines
  2. replace the blanks with commas
  3. sometimes the end-of-the-line ends up with a comma after that - delete it
  4. add a header line - this is tricky because the header is different based on the real-time prediction mode options
    If you were running with 11 slots, you could use these files as the headers
    sniff-header-11chans-noest.txt
    sniff-header-11chans-estmode1.txt
    sniff-header-11chans-estmode2.txt
    sniff-header-11chans-estmode3.txt

You can use h5csv to dump the estimation mode telemetry or the accel data to CSV:

%CODE{lang="bash"}% h5csv -u -d opd_estimation_mode3_01 201602102059.ovms.opd_estimation_mode3.h5 > 201602102059.ovms.opd_estimation_mode3.csv h5csv -u -d internal_system_monitor_01 201602102059.ovms.internal_system_monitor.h5 > 201602102059.ovms.internal_system_monitor.csv %ENDCODE%

You can use graph_local to bring up these files and compare fields

J. Hill has a csh script that calls sniffer (as user telescope), prints a header and does statistics. /home/lbcobs/supportscripts/TelemetrySupport/stats_ovms.csh

UEI Setup

Output from sample program that dumps device information

model   = 3012
sernum  = 0047745
mfgdate = 3/30/2009
caldate = 3/30/2009
Model: 211 Option: 1
Serial: 49330
IRQ: 12
Slot: 1
Address: 0xc9080000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 49331
IRQ: 12
Slot: 2
Address: 0xc9090000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 49332
IRQ: 12
Slot: 3
Address: 0xc90a0000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 49333
IRQ: 12
Slot: 4
Address: 0xc90b0000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 49334
IRQ: 12
Slot: 5
Address: 0xc90c0000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 164791
IRQ: 12
Slot: 6
Address: 0xc90d0000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 164818
IRQ: 12
Slot: 7
Address: 0xc90e0000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 48574
IRQ: 12
Slot: 9
Address: 0xc9100000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 49158
IRQ: 12
Slot: 10
Address: 0xc9110000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 49161
IRQ: 12
Slot: 11
Address: 0xc9120000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 211 Option: 1
Serial: 164832
IRQ: 12
Slot: 12
Address: 0xc9130000
Subsystem AI
        Number of channels: 4
        Resolution: 24
        Maximum rate: 125000.000000

Model: 20 Option: 1
Serial: 37412
IRQ: 12
Slot: 13
Address: 0xc9140000
Subsystem DO
        Number of channels: 1
        Resolution: 16
        Maximum rate: 10.000000
Subsystem AI
        Number of channels: 16
        Resolution: 24
        Maximum rate: 10.000000

Model: 40 Option: 1
Serial: 47772
IRQ: 15
Slot: 14
Address: 0xc9150000
Subsystem DO
        Number of channels: 1
        Resolution: 16
        Maximum rate: 10.000000
Subsystem AI
        Number of channels: 16
        Resolution: 24
        Maximum rate: 10.000000

Configuration Files

There are four config files used by the processes on the ovms machine. Some of the info is just for the Ice protocol.

src/Monitor/ovmsMonitor.cfg
The monitor config file contains details for the accelerometer components. Each accelerometer has a slot and a channel, and threshold values for each.
This file is also used to create the telemetry components. If this file does not match the hardware configuration, the telemetry data will be incorrect.

# -------------------------------- #
# Component configuration:         #
#                                  # 
#  - number of components          #
#  - components name, description  #
# Note: this should be quite fixed #
# -------------------------------- #
Comp.Number=9

Comp.1.Name=SX_M1
Comp.1.Description=Primary Left

Comp.2.Name=SX_M2
Comp.2.Description=Secondary Left

Comp.3.Name=SX_M3
Comp.3.Description=Tertiary Left

.......

# --------------------------------- #
#    Accelerometer configuration    #
#                                   #
#  - component, name, slot, channel #
#  - PSD thresholds for each of the #
#    frequency regions              #
#  - Active: if accelerometer is at #
#    the moment connected with the  #
#    UEI (1: active) or not (0)     #   
# --------------------------------- #

# Number of Accelerometers
Acc.Number=45
...... 
# ------------------------------------- #
# Accelerometers for component 1:       #
#  OVMS_SX_M1                           #
# ------------------------------------- #

Acc.1.Comp=1
Acc.1.Name=OVMS_SX_M1_1
Acc.1.Slot=3
Acc.1.Channel=3
Acc.1.Active=1
Acc.1.SerialNumber=25844
# 10 V per G
Acc.1.Volt2microGfactor=100000
Acc.1.Threshold.Region.1=0.8
Acc.1.Threshold.Region.2=0.8
Acc.1.Threshold.Region.3=0.5
Acc.1.Threshold.Region.4=0.8
Acc.1.Threshold.Region.5=0.8
Acc.1.Threshold.Region.6=0.8
Acc.1.Threshold.Region.7=0.8
Acc.1.Threshold.Region.8=0.8
Acc.1.Threshold.Region.9=0.8
Acc.1.Threshold.Region.10=0.8

....
accelerometer configuration for each component
Data.Update.Replot.msec=500
Uei.Update.msec=5000
Telemetry.Update.msec=5000

src/Telemetry/ovmsTelClientConfig.cfg
only Ice parameters in here, nothing application specific

src/Telemetry/ovmsTelConfig.cfg
Log level defaults to "debug". Make sure the HDF5 file directory and telemetry buffer area are available.
...
# Ice Logging system
#
# 0 = no logging
# 1 = logging in /var/log/messages
#
TelService.Logger.Level=1
...
#
# LBT Telemetry parameters
#
TelService.hdf_path_name=/lbt/telemetry_data
TelService.disk_buffer_dir=/tmp
TelService.disk_buffer_size=500000
TelService.leap_seconds_file_name=/lbt/UT/leap-seconds.list
TelService.tel_name=ovmstelemetry



src/Monitor/ovmsUEI.cfg
Make sure the IP address matches that of the ovms host.
# -------------------------------------- #
# This is the configuration file for the #
# UEI.                                   #
#                                        #
# The ovmsMonitor and the ovmsTelemetry  #
# service read data from the UEI via the #
# multi-cast socket connection specified #
# here.                                  #
#                                        #
# !! NOTE !!                             #
#  Restart monitor and telemetry service #
#  after changing this file.             #
# -------------------------------------- #

UEI.Socket.Tv.sec=4
UEI.Socket.Tv.usec=500000
UEI.Socket.Timeouts=3

UEI.Socket.Mcastgroup=226.1.1.1
UEI.Socket.InterfaceIP=192.168.53.60
#UEI.Socket.InterfaceIP=192.168.100.1
#UEI.Socket.InterfaceIP=127.0.0.1
UEI.Socket.Port=4321

UEI.Socket.Data.Slots=1
UEI.Socket.Data.Chans=4 
Topic attachments
I Attachment Action Size Date Who Comment
ADASS-XXI-Borelli.pdfpdf ADASS-XXI-Borelli.pdf manage 748 K 04 Jun 2014 - 22:37 UnknownUser Software-centric View on OVMS for LBT; Borelli ADASS paper
Computers.jpgjpg Computers.jpg manage 1007 K 08 May 2017 - 20:22 UnknownUser Computers diagram
READMEEXT README manage 5 K 18 Apr 2014 - 17:13 UnknownUser OVMS source README file - updated for LBTO
UEIPACSoftwareManual3.3.0.pdfpdf UEIPACSoftwareManual3.3.0.pdf manage 1 MB 25 Jun 2018 - 20:40 UnknownUser UEIPAC SDK User Manual 3.3.0
UEIPAC_Quickstart.pdfpdf UEIPAC_Quickstart.pdf manage 134 K 25 Jun 2018 - 20:58 UnknownUser UEIPAC Quick Start
sniff-header-11chans-estmode1.txttxt sniff-header-11chans-estmode1.txt manage 789 bytes 10 Feb 2016 - 22:33 UnknownUser Header line for CSV file built from sniffer output, 11 channels, different estimation modes
sniff-header-11chans-estmode2.txttxt sniff-header-11chans-estmode2.txt manage 799 bytes 10 Feb 2016 - 22:33 UnknownUser Header line for CSV file built from sniffer output, 11 channels, different estimation modes
sniff-header-11chans-estmode3.txttxt sniff-header-11chans-estmode3.txt manage 967 bytes 10 Feb 2016 - 22:33 UnknownUser Header line for CSV file built from sniffer output, 11 channels, different estimation modes
sniff-header-11chans-noest.txttxt sniff-header-11chans-noest.txt manage 757 bytes 10 Feb 2016 - 22:33 UnknownUser Header line for CSV file built from sniffer output, 11 channels, different estimation modes
Topic revision: r58 - 10 Jan 2019, JohnHill
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback