Skip to content

zleffke/FoxTelem

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FoxTelem

AMSAT Fox-1 Telemetry Decoder

/**

  • FOX 1 Telemetry Decoder
  • @author chris.e.thompson g0kla/ac2cz
  • Copyright (C) 2015 amsat.org
  • This program is free software: you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version.
  • This program is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU General Public License for more details.
  • You should have received a copy of the GNU General Public License
  • along with this program. If not, see http://www.gnu.org/licenses/.
  • Version 0.03
  • Pause output when no audio
  • Version 0.04
  • Better clock recovery by re-processing the current window with the new clock
  • Version 0.05
  • 400 Hz Low Pass filter and automatic gain control
  • Version 0.06
  • Fixed crash in the bit decoder when the slow speed frame printed out but not populated
  • Version 0.07
  • Assume SYNC marker in place unless missed several times
  • Flip the received bits
  • Version 0.08
  • Check for two valid SYNC markers the right distance apart. Avoids noise and decodes more reliably.
  • Added properties file
  • Decodes what appear to be long frames that are missing the first SYNC word, if a valid header can be found
  • just after where the SYNC word should be
  • Decodes double length frames that are missing the middle SYNC by inserting a SYNC word
  • Version 0.09
  • Frames updated to move the 2 bit field to the end. Frame length defaulted to 970 bits
  • flipReceivedBits defaulted to false - this was likely a recording issue, not an issue with FOX1
  • Version 0.10
  • Show the user when audio is too quiet and when it is loud enough through the soundcard
  • Implemented KA9Q RSdecoder to correct errors - needs more testing. Can be turned on/off in properties file
  • Version 0.11
  • Filter changed to RaisedCosine filter with corner freq of 200Hz. This seems to give the best shaped bits. I tested
  • with corner freqs of 100 and 400 as well. No decode and cosine shaped bits at 100. Little difference to IIR LPF with 400.
  • Raised Cosine is considerably slower to execute than IIR. May need to make it a configuration option
  • Version 0.12
  • Implemented RS Erasures for invalid 10b words. If a 10b word is not valid (-1) then an erasure is passed to the RS Decoder
  • indicating the position of the bad word.
  • Reject corrupted frames if they fail the RS decode.
  • Added debugFrames to the properties file
  • Version 0.13
  • Do not attenuate signal. If signal is above threshold, then pass through unchanged. Prompt user that level is too loud if needed
  • Added -help
  • Tuned parameters for better decoding of difficult signals
  • Version 0.14
  • Changed internal storage of bits in the bitStream to boolean values
  • Initial implementation of the high speed decoder
  • 100 Hz Raised Cosine Filter set as Default
  • Version 0.15
  • Test GUI added for analysis of the signals
  • Version 0.16
  • Bug fixes to the GUI, including play back of monitored audio
  • Version 0.17 = revision 2355 in SVN
  • Fixed bug where CPU usage was over 50% even when idle
  • Auto-detect if received bits are flipped
  • Bit detection algorithm using distance from last bit
  • Fixed bugs with selection of audio sources and sound cards
  • Version 0.18
  • Implemented simple local storage of captured frames and analysis graphs
  • Display screen for captured frames
  • Simplified source screen
  • Defaulted sound card to 44100
  • Version 0.19
  • Fixed bug when sound card reselected and "line not available"
  • Removed error message for filter SAMPLE_RATE
  • Version 0.20
  • Fixed bug that prevented VAC from working. Needed to close the audio line after testing if it was suitable,
  • otherwise it was not available when needed. Also needed to include the description with the name, because VAC
  • names its devices the same for input and output.
  • Fixed bug where RSSI lookup using extrapolation returned NaN
  • Version 0.21
  • Store the sample rate in the config file
  • Store the last sound card used as source and sink in the config file
  • Show part of graphs by specifying a start reset / uptime
  • Skip long sections of uptime that have no data when plotting graphs unless user specifies that all uptime should be plotted
  • Changed dates to UTC
  • Fixed minor display bugs for spacecraft parameters
  • Version 0.22
  • Conversion routines for SPIN
  • Conversion routines for IHUDiagnostic, HardError, SoftError
  • Updated telemetry save file format (unfortunately) to add datestamp and SPIN format
  • Fixed a bug in the TXPACurrent calculation. Fixed a bug in the solar panel temperature lookup.
  • Battery current multiplied by 1000 to put it in mA
  • Removed options that should not be changed
  • Version 0.23
  • Fixed bugs that prevented execution on the Mac including file separator and Device list size
  • Version 0.24
  • Fixed bug in graph display where search params were not updated when tab used to move between fields
  • Fixed a bug where audio data was not reset correctly and we decoded slightly fewer frames in the regression test
  • Added config setting for save to payloadStore - to enable repeat tests of the same Wav file
  • Fixed formatting bugs on source tab and added wav file progress bar
  • Reduced number of allowed RS Erasures to 16
  • Version 0.25
  • Fixed bug in the capture date where it was stored in 24Hr format and parsed as 12hr format
  • Version 0.26
  • Shortened radiation frames max length from 60 to 58. Two empty bytes were printed at the end of the records when saved to file.
  • Added error handling for exceptions that should be evident in the GUI
  • Fixes for High Speed decode of bit files
  • Version 0.27
  • Fixed bug where radiation bytes written to file as hex
  • Added logging
  • Version 0.28
  • Fixed bug where error is generated when decode from a wav file is stopped
  • Support for Mono wave files debugged
  • Fixed bug where stereo data copied incorrectly in the filter
  • Fixed bug where DC elimination did not work correctly, but defaulted DC elimination to off
  • Switched to calculation of filter coefficients at run time. Default set to WindowedSinc 200 Hz filter
  • Version 0.29
  • Write the radiation data to the file in Hex again
  • Added task number to the decode of hard error
  • Experimental display of the radiation bytes on a separate tab
  • Version 0.30
  • Fixed divide by zero error in bit detection algorithm
  • Version 0.31
  • Display the name of the ihuTask when HardError is decoded
  • Decode the STATE and other parts of the radiation packets
  • Version 0.32
  • Fixed bug in RS decoder initialization
  • Restructured the bitStream to cope with the volume of data from highspeed
  • Fixed RS Decoding for High Speed frames
  • Set the default high speed frame length to 5273 bytes
  • Version 0.33
  • Fixed a bug where the RsCodeword overran if the frame length was wrong
  • Fixed a bug where the circular bit buffer overflowed
  • Printed out first radiation data in the high speed frame
  • Fixed gain issue with raised cosine filter
  • Displayed filter params
  • Fixed bug where audio could be heard after decoder stopped
  • Disabled filters for high speed
  • Suspended decode of VUC data packets until code is debugged
  • Version 0.34
  • Stored high speed payloads in the payload storage
  • Decode Radiation packets
  • Version 0.35
  • Fixed bug where the JfileChooser did not have focus because the JcomboxBox was still open
  • Store duplicate radiation frames with the same reset and uptime
  • Fixed bug where diagnostic, hard and soft error "graph" windows did not update in real time
  • Fixed a bug payload numbers did not update correctly on the Health Tab
  • Only add radiation packets that span across frames if the next packet is also the next in the sequence. Otherwise reject as corrupt
  • Version 0.36
  • Make sure COBS decoder throws an exception if the packet overruns and write a message to the log
  • Updates to debugging output for debugBits and debugClock
  • Slight improvement to clock recovery because the default value is set to the last sample of the previous bit and not
  • the first sample of the current bit. Clock Recovery Zero threshold set tighter for high speed.
  • Fixed bug in gain calculation for Windowed Sinc filter
  • Show total payloads decoded on the source tab
  • Added Eye diagram
  • Version 0.37
  • Fixed null pointer exception in eye diagram
  • Version 0.38
  • FTP Files to test location every 10 mins
  • Version 0.39
  • Fixed label for I2C2 in diagnostic window
  • Added spacecraft panel to selected different params for each model
  • Fixed code that showed warnings during compile
  • Added additional error messages to FTP routine and no-op to prevent timeouts
  • Added File menu option to delete the Payload files
  • Added FM and Spare lookup tables for VBATT/2
  • Display VBATT/2 instead of Battery module telemetry when FM and FS selected
  • Version 0.40
  • Graph formatting updated. Graph preferences stored
  • Mac and Linux formatting updated
  • Version 0.41
  • No longer hard coded the FoxId to 1 in the displayModule
  • Graphs for Status Bits and Antenna have correct axis values
  • Rebuild the audio source lists when the combo box is clicked
  • Added settings screen with font sizes for graphs and display modules
  • Version 0.42
  • Fixed issue where zero level of graph was sometimes drawn in the wrong place
  • Moved decoder options to settings screen
  • Added log file path to settings screen
  • Allow loading of wav files from the File menu
  • Fixed issue with label on graph just below the axis
  • Display Hard/Soft errors in tables rather than as text
  • Added save to CSV file
  • Added Reset button for graph queries
  • Added copy/paste of graphs to the system clipboard
  • Version 0.43
  • Bug fixes to 0.42
  • Draft IQ demodulation and libusb support for FCD
  • Version 0.44
  • Server upload of raw frames
  • Bug fixes for IQ demodulation
  • HID interface for the FCD.
  • Fixes to Mac and Linux fcd interface code
  • Version 0.45
  • Multi-satellite support
  • Bug fixes
  • Settings screen re-factored and cleaned up
  • Version 0.46
  • Camera Picture decode, storage on disk as Jpegs and Display
  • Version 0.47
  • Fixed minor bug when bits purged too frequently in HS frame
  • Better debug output for Camera
  • Refresh images as they are downloading
  • Version 0.48
  • Fixed bug where decoder crashed on startup if the images had all been manually deleted
  • Track latest image as it is down-loaded (if user wants that)
  • Fixed formatting of error tables
  • Use Boolean values for Safe Mode bits
  • Decode the last 8 bits in the Gyro Diagnostics as other diagnostic items for the camera
  • Updated hard error values for ErrorCode and added Alignment as an additional field
  • Fixed bug where graph axis labels were not drawn across the whole axis
  • Add reset/uptime to camera thumbnail images and fixed data format
  • Version 0.49
  • Read jpeg header from the spacecraft directory
  • Add picture counter to the thumbnails
  • Bug fix for tick display on graphs
  • Version 0.50
  • IQ Release - circular buffers and updated FM demodulation
  • High Speed decode possible with IQ decoder
  • Tuning with the arrow keys
  • Filter IF with Tukey filter (vs Blackman) and do not populate DC bins
  • Fixed bugs in FFT overlap add and offset
  • Version 0.51
  • Insert the JPEG Restart markers and the JPEG Footer when VT Camera images received
  • Version 0.52
  • Warn the user when debugBits is set
  • Added MPPT conversion
  • Better formatting of graph labels on Uptime axis
  • Added GPL to Help>About and linked the manual file
  • Drafted manual and linked as a PDF file
  • Allow decode from arbitrary IQ source
  • Warn user if soundcard can not read data fast enough
  • Fixed bug where total decodes was corrupted sometimes
  • Remember if audio is being monitored when the program restarts
  • Fixed bug where log file is filled with too many error messages
  • Fixed bug where eye panel display contained noise
  • Capture bit SNR and store as a measurement
  • Ask for log file directory at startup
  • Track drifting frequency in IQ mode
  • Capture signal strength and frequency in IQ mode and store as measurement. Include in STP headers
  • Version 0.53
  • Support the Original FCD and other 96000 sample rate IQ devices (not tested because I have the pro plus)
  • Formatting of the input tab and main window
  • Allow Maidenhead locators to be entered and converted to lat/long
  • Added stereo channel to settings
  • Fixed Mac bug where HTML formatting was incorrect
  • FFT panel formatting
  • Rename jpeg header so it is Mac compatible
  • Fixed bug where layout load errors not caught
  • Load the radiation layout from 2 different files for the 2 formats
  • Fixed bug where errorDialogs did not work when logging disabled
  • Fixed issue where eye panel froze when shifting from HS to LS
  • Fixed issue where Font too large on Help About screen on the Mac
  • Added diagnostics for uncaught exceptions in threads
  • Resize the picture in the cameraTab so that it fits
  • Improve Mac fileChooser
  • Version 0.54
  • Catch uncaught exceptions in the Event Dispatch Thread (EDT)
  • Store RF SNR
  • Capture Az and El from SatPC32 if it is running
  • MPPT current sense should be in mA and not A.
  • Fixed bug where RS Erasures overflowed and decoder crashed
  • Fixed bug where decoder overflowed the audio buffer when idle in high speed mode
  • Version 0.55
  • Added Fox-1D to the spacecraft directory
  • Fixed bug where filters were not remembered or updated in the GUI
  • Version 0.56
  • Send to server using UDP
  • Fixed bug where high speed frames were not sent to the server
  • Server upload fixes so that empty data fields are not sent, e.g. Frequency
  • No longer write data to the installation folder. Save properties in user home directory
  • Display both formats for Radiation data
  • Make sure the Fcd is released when it is no longer selected
  • Fixed bug where the RF SNR was 10dB too high.
  • Fixed bug where "show latest image" sometimes did not work
  • Support much better formatting of big fonts on tabs for people with poor eyes
  • Set the FCD Pro to 96000 when it is selected
  • Use the local platform line.separator in the log file
  • Fixed bug where measured carrier Frequency was not graphed correctly
  • Fixed divide by zero error when wrong rate chosen for IQ decode
  • Fixed bug where frequency was recorded incorrectly if FFT bin was greater than FFT_SAMPLES/2
  • Stopped allocating new memory in the decoder to avoid audio glitches and to reduce memory footprint
  • Fixed bug where measurements were plotted backwards when a reset/uptime was given as the start of the graph
  • Removed conditions where decoder was not stopped before new decoder started, causing buffer read issues
  • Detect the current directory in a way that also works on Linux (hopefully)
  • Fixed bug where SYNC words were added multiple times when a double length frame was detected
  • Fixed bug where decoder tried to process the same bogus frames over and over (when receiving noise)
  • Fixed bug where a single audio byte could be skipped, corrupting the audio stream
  • Version 0.57
  • Open graph windows that were previously open
  • Fixed bug where Mac could not find the currentDirectory
  • Version 0.58
  • Fixed bug where reselecting the FCD complained that it could not be opened
  • Stopped the FCD defaulting other sound cards to 192000
  • Fixed bug where canceling out of selecting a wav file caused the program to crash
  • Added event listener to the sample_rate pull down so it is reliably saved to the properties file
  • Version 0.59
  • Automatically find the signal if it is in the expected frequency range for the satellite we are tracking
  • Store the errors and erasures as a measurement
  • Add warning to the manual about Windows Smart Screen and Java versions on Mac
  • Squelch the audio when SNR of bits is low - note that his has strange behavior with wav file playback, but works well with live data
  • Default the audio monitor to ON at installation
  • Fixed bug where RF SNR was calculated slightly wrong
  • Version 0.59b
  • Fixed bug where frames sent to the wrong port on the server.
  • Bug where filtered audio was the default
  • Defaulted primary and secondary server for testing
  • Version 0.60
  • Fixed bug where IQ decoder could corrupt a byte in the circular buffer
  • Version 0.61
  • Reduce slightly the processing delay before audio is heard
  • Implemented the MacOs preferences, about and quit menus
  • Minor fixes to text in HelpAbout. Added AA2TX
  • Fixed bug where raw radiation data was listed incorrectly on the radiation tab
  • Don't save properties until exit, to prevent the file being locked
  • Enable the red X on the settings screen
  • Save measurement to file in the background (like telemetry) to avoid any audio glitches
  • Removed Fox Tail Freq from measurements. Will go in PassMeasurements - this will corrupt any saved measurements - sorry!
  • Added ERRORS and ERASURES back to the Spacecraft files so that they are logged
  • Fixed formatting errors for large fonts on graphs
  • Print error message if the manual can not be found
  • Added 12 sample running average filter to the graphs
  • Removed Popup warning when audio missed. No displayed in footer
  • Version 0.62
  • Fixed bug where picking an invalid directory caused a crash
  • Fixed bug where running avg for short graphs caused a crash
  • Use the native Mac OSX file chooser on the Mac. Also use where possible on other platforms.
  • Write TCA at the end of a pass, if possible (this is not yet uploaded to the server)
  • Version 1.00
  • HelpAbout now shows the Fox-1 Engineering team (vs 1A)
  • Fixed bug where title of graph could clash with horizontal axis when drawn at the top
  • Changed reset icon on graphs
  • Changed the name of the Radiation Experiments to "Vanderbilt Radiation" from Vulcan
  • Prevent passMeasurement graphs from displaying because they do not display meaningful data
  • Prevent an incorrect directory from being chosen from the settings or initial settings screens
  • Formatted Livetime correctly on the Vanderbilt Radiation tab
  • Indicated the reset/uptime for the last min/max payloads on the health tab
  • Help about says "Radio Amateur .. " vs just "Amateur"
  • Bug fixes to the find signal algorithm
  • Remember the position of the horizontal divider on the Vanderbilt tabs
  • Display something sensible on the HERCI tab (but this does not include the 1D branch yet)
  • Fixed bug where graphs could not be opened for a second time on MacOs and Linux
  • Version 1.00a
  • Tweak the position of the graph header and save some space on small graphs
  • Changed Fox-1C to Fox-1Cliff

*/

About

AMSAT Fox-1 Telemetry Decoder

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%