Subsystem Build & Test
Table of Contents
Team Vision for Subsystem Level Build & Test PhaseA 4 week plan was implemented for the team to work asymmetrically, playing on each team members strengths
The full list of deliverables and their statuses can be found here
Radio Technology DevelopmentThree possible replacements for the feedhorn antenna have been obtained and measured on a network analyzer.
The original feedhorn was a Terk LOGTVO antenna. This antenna was broken and is in need of replacement. The standing wave ratio (SWR) is the most useful parameter for comparing these antennae.
The three tested antennas are as follows.
Based solely on the analyzer measurements, the Boostwaves antennas seem like good fits for replacements. The WA-2802 seems to have a slightly better response.
A test plan is developed to determine gain and beamwidth of the antennas using a transmitter and a dipole. It was attempted using the noise source that is part of the system calibration, but the noise was too low power to be detected by the receive antenna. A proper transmitter will be needed to conduct this experiment.
A full run down of the RF system was attempted, but it was discovered the the RF switch controlling which source the Callisto unit looked at did not work. A replacement is being found.
The TV antenna, ambient dipole, noise source, and 50 ohm load produce expected results when tested separately.
Server/DriverThe central SunTracker server/driver integrates the entire system and exposes an HTTP server for management and control. It currently is capable of exchanging messages with the Arduino, communicating with LABVIEW and ASCOM over HTTP/WebSockets, and generating status report and error email notifications.
The ASCOM driver has been adapted to communicate over WebSockets, however hardware testing is pending rewire.
Stack light communication/settings are not yet implemented pending design of the stack light and its protocol.
Screenshot of demo server running interactively. Includes disconnecting and reconnecting Arduino hardware controller.
Sun Tracking AlgorithmThis Sun tracking algorithm is to replace the current program for calculating the suns current positon. The current solution does not provide autonomous tracking of the sun. With this algorithm, the positon can be calculated at regular intervals without the need for human intervention. To calculate the position, the python library PyEphem. The library is able to calculate key position data of many bodies in the sky, most importantly the sun. The type of data that can be calculated includes: Right Ascension, Declination, Azimuth and Altitude. This data can be used with the rest of the system to track the sun. Additionally, this library provides the Sunrise and Sunset times for the Calisto Scheduler.
Callisto SchedulerThe Callisto will capture data continuously. The scheduler will use the SunTracking code to calculate the rise and set times and save FIT files for all times during which an observation is scheduled. FIT files not associated with sun tracking or user observation will be discarded.
AnemometerArduino code was developed to receive wind data through an ADC. The captured voltages are then converted in to wind speed and transmitted through a serial connection. The integrity of measurements need to be verified, as the equation used to determine wind speed were taken from the data sheet. For now, this is assumed to be close enough for our purposes, as a thorough test of this component is not high priority.
LabVIEW FITS file reader system
v2 version has been added, with the following additions:
- Built for 1080p display (v1 was for 2160p)
- Instead of index selection, scales interpret user frequency and time input
LabVIEW 2013 32-bit runtime is required (free download) to run the executable if LabVIEW 2013 32-bit is not already installed. Source VI is available for recompilation. Debugging must be turned on for successful recompilation
VI will work in any 32-bit library, GFITSIO library ONLY works in 32-bit LabVIEW
To open the labview files successfully, the fits library must be installed in user.lib. The FITS library exists in the link below. 32 bit LabVIEW MUST be installed
JSON communication demoSource VI
To open the labview files successfully, the following libraries must be installed in via VI package manager. The links to the libraries are below.
- VI package Manager
- Websockets Library
CAD/public/CAD/SRT/SRT The following is a summary of CAD work performed
- The previous teams' model was reassembled to accurately reflect dish movement
- The Internals of the PC box were modeled, and a plan
to create custom computer hardware mounts was generated
for the following
- SSD holder
- Custom PCB
- PC Power Supply
Work to be done:
- Custom Dish Mount
- Ionia Observatory Physical Control Panel
Risk and Problem Tracking
|ID||Category||Risk Item||Effect||Cause||Likelihood||Severity||Importance||Action to Minimize Risk||Owner|
|R1||Technical||Improper feedhorn installation||Feedhorn may have loose mounting or be unable to be assembled.||Manufacturing Faults||0||3||0||Feedhorn to be replaced with Antenna||ME|
|R2||Technical||Unreliable internet connection to Zurich||May not be able to transmit all data overnight.||Environmental conditions including thunderstorms.||2||1||2||"Provide data backup until Zurich server confirms reception"||CE|
|R3||Technical||Dish may be too heavy for motors/actuators||Tracking functionality is lost, manual repairs required||Ice buildup, power depletion||1||2||2||Motors oversized for current load||ME|
|R4||Technical||File transfer system error||Zurich server receives incomplete data||Power lost or connectivity issues.||0||2||0||Create Temp file on FTP server, move when complete||CE|
|R5||Technical||Auto-calibration error||Incorrect data analysis, manual repairs required||Drift of control systems over time||2||3||6||2 callistos in parallel, one for cal one one for data||CE|
|R6||Technical||Network Communication Error||Remote operation made difficult or impossible||Loss of connectivity, internet outage||1||1||1||Ensure system doesnt rely on TeamViewer/Active user input||CE|
|R7||Technical||UPS battery dies||System loses power and is no longer operational.||Mains power is lost and UPS battery is exhausted.||1||2||2||Put system into safe shutdown state before battery is exhausted||CE|
|R8||Technical||RadioEyes/LabView incompatibility||Additional time required for integration solution||No documented API support||0||2||0||Plan B In effect:= custom Astronomical Data||ME|
|R9||Technical||Feedhorn selection may carry unexpected collaterals (integration)||RX levels may become inefficient for extraction from raw signal||Mismatching impedance and frequency response||1||3||3||Perform extensive testing on feed/dish assembly||EE|
|R10||Technical||Software Error||Data may be corrupted or incorrect; Zurich may not recieve data at all||Improper program setup / unforeseen program error||1||2||2||"Perform extensive software testing and provide data backup"||CE|
|R11||Technical||Interference between subsystems||May cause errors or discrepencies in subsystem operation||Improper magnetic shielding on power lines near vulnerable systems||1||2||2||"Isolate magnetic interference, or place wiring more carefully"||EE|
|R12||Technical||Improper power management||One or more subsystems failing due to internal power loss||Power delivery components insufficient to meet power needs||1||3||3||Perform extensive power system calculations||EE|
|R13||Technical||Internal subsystem overheating||Damage to one or more subsystems||Inadequate cooling systems or lack of temperature sensor||1||3||3||Test Plan for thermal model validation||ME|
|R14||Technical||UPS overheat||Damage to battery system||Temperature sensitive battery in harsh enviornment||0||3||0||Will install UPS indoors||ME|
|R15||Resource||Insufficient budget to meet all project requirements||May need to take performance hits to accomodate cheaper budget||Limited funds (~$500)||0||1||0||$1500 donation from ASRAS||All|
|R16||Resource||Destruction of Suntracker project hardware||Loss of uniquely designed hardware, project delays||Incorrect assumptions about input levels and tolerances/ general clumsiness||1||3||3||Observe best practices, be careful, stay away from other people||All|
|R17||Resource||Inadequate space to assemble and test||Team may not be able to build project||Specialized Test Requirements||1||3||3||Ensure that proper space or devices are reserved well in advance, only attempt finaly assy onsite. Prelimnary Assembly at RIT observatory. Wind and Thermal Testing||All|
|R18||Resource||Theft of system components||Irreplaceable components may be lost||Improper storage of materials||1||3||3||Lock physical project materials in a locker/keep at home||All|
|R19||Resource||Insufficient backup data storage||Zurich or ASRAS server may fail to recieve data||Insufficient or nonexistant backup data storage||0||2||0||Amount of data needed to exceed data capacity exceeds lifetime of system||CE|
|R20||"Environmental/Social"||Remote log-in to unit may pose security threat||System may be tampered with by unauthorized user||Malicious actor obtaining password/login information||1||3||3||Use Username/Password +Secure Design||CE|
|R21||Technical||IP66 may not be as advertized||Water Damage||Leak, improper sealing||1||3||3||Test current enclosure, use waterproof sealing||ME|
|R22||Technical||Software sends too many emails consecutively||Flooded Mailbox||Periodic Failure alerts||2||2||4||Batch alerts together, rate limit messages||CE|
|R23||Technical||Smarthost service unavailable||System unable to send email alerts||Service is unavailable||1||2||2||Alternate alert mechanism (stacklight)||EE|
|R24||Technical||Wind Damage||System components break||High winds, low structural integrity||1||3||3||Reinforce structure||ME|
|R25||Technical||System resonates with wind||System components break||Winds hitting natural frequencies of structure||1||3||3||Apply Damping||ME|
|R26||Technical||Heat Sensor Fails||System overheats||Random/Software Failure||1||2||2||Overkill on cooling solution/ Software safeguards||ME|
|R27||Technical||Humidity Sensor Fails||Loss of humidity information, water damage||Random/Software Failure||1||1||1||Enhanced waterproofing solution/ Software safeguards||ME|
|R28||Technical||Custom Astronomy Coordinate map unfeasible||Unable to build necessary Radio Eyes Functionality ourselves||Scope too large/Too complicated||2||2||4||Plan C: Track only the sun, deprecate Top40RF requirement||ME|
|R29||Technical||Improper Antenna Mount||Impossible to get good reading||Focal point miscalculation/ Design Change||1||3||3||Adjustable Antenna mount||ME|
|R30||Technical||Runaway Dish||Damage to components||Control/Electrical Failure, various||1||3||3||Install E stops||EE|
|R31||Technical||Shorts and Interference in unit||System Malfunction, Potential Damage||Improper Wiring||1||3||3||Rewiring, Robustification of system||EE|
|R32||Technical||Software Communication Error||Hardware may not be controlled by PC software||Software doesn't start, starts incorrectly||1||3||3||Arduino defaults into safe position if no PC contact||CE|
|R33||Technical||Improper Antenna installation||Antenna may have loose mounting or be unable to be assembled.||Manufacturing Faults||1||2||2||Utilize good practices||ME|
|R34||Technical||Dropped connection||Lack of remote control||To be investigated||3||3||9||Troubleshoot Error, robustify software||ME/CE|
|R35||Resource||Defective RF switch||RF subsystem does not function||ESD damage?||3||3||9||Purchase new switch||EE|
Plans for next phase
WEEK10 PLANSPlans listed by individual
- Support Motor Testing work with Slav, Dave
- JSON command integration with Arduino
- Update controller model based on Arduino feedback
- Implement Callisto scheduler
- Demo control of Callisto/data collection by server
- Auto calibration sequence
- Integrate sun, object tracking with Dave
- FTP upload, data archive
- Arduino robustness
- Simulate failure/removal of each component, ensure server is notified
- Error recovery
- Automatically query environment info etc., update controller model
- Support LABVIEW integration with Slav
- Support stack light integration (tentative)
- Sample web status page (optional)
- Link status page in email -> help reduce # of emails
- Determine Path forward with Switch
- Low-Noise Amplifiers
- Determine that LNAs are still functioning
- Fix janky wiring
- Determine optimal feedhorn
- Find transmitter to use in gain/beam tests
- Talk to Jim, he might have a transmitter
- Setup and perform tests with dish
- Blocked by need for a test setup
- Labview communication development
- Labview GUI design
- Enviro Displays
- Error Messages
- Set up Motor for testing with Brandon, Dave
- Case Management - Will Block PC development (nbd)
- Create Mount for Dish -WIP
- Finalize rewire
- Enable Motor Testing
- Motor Kill Switch
- Do what Brandon says with PyEphem
- Create list of Top 40 visible objects as placeholder
- Function to determine whether object is visible at a given time, and at all times between start/end times (to check (1) whether a scheduled observation is valid / object can be seen and (2) whether observation interferes with sun observation)
- Function to get all rise/set times between start/end times (e.g. from Monday to Friday, calculate all rise/set times for given object) (to help user schedule an observation)
- C functions