You are here: Foswiki>Software Web>OVMS (24 Feb 2022, 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 & Quick Look

Sniffer

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

Dump to CSV

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%

Telemetry Visualization

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

Quick Statistics

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 or /lbt/lbto/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 
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: r59 - 24 Feb 2022, 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