It’s been 285 days since SatDump 1.0.3 was released. A lot has changed since then - new features have been added and numerous bugs were squished! That’s why we decided to finally release SatDump version 1.1.0.
Back when we started SatDump, we decided on using a versioning system that actually meant something. You might be wondering, how does it work? Why is it possible to get 1.1.0 and up before they are released?
It’s actually rather simple: the version naming convention is
- A change in
Xmeans a complete break in compatibility between versions, or a massive development step (like the 0.0.39 => 1.0.0 update involved the change of pretty much all of the code)
- A change in
Ymeans partial compatibility changes, but ones that could break backward support. In this release we’ve changed the product generation and handling substantially to account for things like calibration, which means that products generated in ≤ 1.0.3 may not work in 1.1.0 and vice versa.
- A change in
Zis the “normal” small updates, that do not substantially influence compatibility.
commithashis only visible on pre-release builds (or builds from source). It is the ID of the commit on which the build was compiled. It’s a useful tool for debugging, and changes with every code edit, no matter how small.
All commits following the release are counted as the next version (except rare instances when a crucial bugfix is released, when the release might get updated), which is why for a while it was possible to get v1.0.4 or v1.1.0 (which has only been released when this post is live).
We’ve decided that it’s about time we add some scripting capabilities to SatDump. We chose Lua for this purpose - it’s versatile, easy to use and fast when compiled using LuaJIT.
But… what is the scripting about!?
Calibration has been a hot topic for a while in SatDump’s backstage. For a long time we were debating the best way to handle all the different instruments we support and plan to add in the future, while still keeping it simple and as fast and efficient as possible. We’ve come up with a system that utilizes both C++ and Lua giving us optimal performance paired with ease of use (for users and developers!).
But what does that mean in practice? SatDump can now generate level 1b products for selected instruments (for now these include AVHRR and MHS, but other instruments such as AMSU-A or HIRS are WIP). Put differently: SatDump can now display radiance (and brightness temperature, or percentage of albedo for visible channels) from instruments that have been calibrated. This is a big deal, as raw counts from these instruments are not linear to temperature or even albedo (in case of AVHRR which uses a dual-gain setup) and allows for the further generation of scientific products such as land and sea surface temperature maps.
Calibration is not the only feature that uses the new possibilities Lua gives. We’ve realized that the simple equation-based composite system can be very limiting at times as it only has access to a single pixel at a time. This is solved by giving the user the ability to write their own processing code in Lua. To make it faster, we made sure to bind all of the image processing functions from SatDump. Note that this is much more complicated and involved than the old system, thus it is not recomended for simple tasks and new users. However, it allows doing much more advanced and custom things than the basic system, which is more intended for simple RGB combinations.
Until now, you needed to log-in to get the latest SatDump pre-builds. Not anymore!
The latest prebuild versions can now be found under the “releases” tab in GitHub (https://github.com/SatDump/SatDump/releases/tag/nightly).
Do note nightly builds are built from the “development” codebase. This does not mean it is unstable by default, but rapid feature changes are to be expected. This also means you can get to test every new addition early without having to wait a new release. In general, using nightly builds is not an issue.
Thanks to JVital2013, Mac users now dont have to build SatDump themselves anymore. Ready-to-use
.dmg files can now be downloaded from the releases page, along with all other standard builds. While those will work for Apple Silicon (M1/M2) Macs, it is not recommended as performance will suffer greatly compared to natively-compiled builds. Pre-compiled ARM/Universal builds are planned.
Tired of using multiple programs when decoding satellites? Fear no more, we got you covered.
SatDump can not only predict passes now, it can also take over the control over your rotor. If you are especially lazy, you might want to check out the new autotrack function. Just tell SatDump the satellites you are interested in, and it will automatically calculate the best passes, control your rotor and start decoding without you having to do anything!
After APT decoding was introduced in version 1.0.3, the option to underlay created images with a RGB map was added, allowing for stunning APT composite images!
The NOAA NO (precipitation likelyhood), MSA and MCIR enhancements found in WXtoIMG have all been implemented into SatDump. SatDump now also supports a lot more filename patterns that are used for map overlay and composite images, increasing compatibility with third party software.
APT will also now be calibrated using wedges, and optionally autocropped to keeps parts of decent signal only.
Support for CCSS LDPC codes was finally added, allowing to decode Orion, LandSat-9 and other satellites utilizing these standards.
Thanks to a recording by Fred Jansen, it was finally possible to develop a decoder for TU Berlin’s TUBIN satellite. It was launched in 2021 with the primary mission of monitoring wildfires. TUBIN takes images of the earth in the visible spectrum with a resolution of 40m/px aswell as thermal images with 170m/px.
In April of 2023, China launched a new FengYun-series satellite, FengYun-3G. Soon after, support for the MERSI-RM, MWRI-RM and PMR instruments was added to SatDump.
Since SIPMAI and HAOC are not yet activated on 3G, no decoder is available (yet). Once these are online, a decoder for these will be added!
MERSI-RM is even projectable already, allowing for cool stuff like map overlays and composites.
4 Months after FengYun-3G, FengYun-3F was launched, carrying instruments such as the new MERSI-III. Since it is quite similar to 3D/E, support was quickly added, despite some instruments still beeing offline to this day. They will be added once they become available. However the signal seems much weaker than 3E at the moment, it’s a bit early to tell but onboard antenna issues do seem like an option unfortunately.
After the failure of METEOR-M N°2 in December 2022, Roscosmos launched METEOR-M N°2-3 as a replacement in June 2023. Support for HRPT and LRPT (both 72k and 80k modes) was added. Furthermore, Fred Jansen managed to get a Meteor X-Band dump to Moscow, which was found to contain recorded MTVZA data. This lead to the development of working global MTVZA coverage and projections, as well as adding back MTVZA to HRPT which was previously thought to be inactive.
Similar to EUMETSAT’s EUMETCAST system, GOES satellites transmit DVB-S2 modulated image data using the GEONETCAST platform. Initial support for this service has been added to SatDump, but is not yet completed. Thats why it is WIP. First tests look very promision though, and we hope to have full support implemented in the near future.
Thanks to SnazzLazz, who managed to get some RAW X-Band Data from GOES-16, Aang23 was able to develop a decoder for raw SUVI images from GOES.
STEREO-A had an inferior conjunction with Earth this year, making it possible to receive and decode its low rate signal even on smaller dishes. Support was added in SatDump to make this possible.
More information here: https://skyriddles.wordpress.com/2023/07/03/stereo-a-comes-home/
After Scott Tilley and AMSAT-DL provided nice baseband files of the DSCOVR signal, a image decoder for the EPIC instruments was added. It’s still work-in-progress and unfortunately you will need a very large dish (10 meters or more) to capture the high-rate signal containing most of the image data.
One of the more frequently requested improvements was to implement some decoders for Lucky-7 and other cubesats. Thats why we added a Image decoder for Lucky-7. More cubesats to come soon!
Roscosmos launched a new geostationary weather satellite in January, Elektro-L N°4, positioned over the Pacific Ocean. SatDump can now decode xRIT just like on Elektro-L N°3. This decoder should also already work for the N°5 satellite when it is launched.
Image by John Bell @eswnl
Inmarsat STD-C decoding was added! This allows decoding EGC broadcast messages, and sending packets over UDP to parse in other software.
One of the more frequently requested features was the decimation option. That’s why we are happy to announce that it is a thing now! Decimation can be used to artificially lower the samplerate of a SDR, saving a lot of space during baseband recording and processing power, as well as to mildly increase the SNR with very narrow signals such as STD-C or STEREO-A. The decimation feature can be found in the Recorder tab, directly under the device selection box.
A lot of instruments are now projectable, including MTVZA and IASI. Together with tons of new composites by lego11, you can get some amazing scientific data like atmospheric water vapor, air temperatures at different layers or even soil moisture. HIRS, AMSU, MWRI, MWHS, VIRR and lots more got new composites and more will come in the near future. Thanks!
When using a downconverter or upconverter, the user can now put in the LO frequency and select the target frequency normally, without having to calculate the needed SDR frequency in the head :D
The UmKA cubesat will send images of the stars on 2.4 GHz. It is not operational yet, but a decoder is ready for when this is the case.
Apart from the vegetation images that were added in a previous release, we noticed that the PROBA-V downlink also appears to contain GPS information. SatDump dumps these GPS logs to a file now.
F482247407320.0182247 303821148 510389196.16E F622247407320.0000018-0.02316316518 19648142.57 -28290264.790 -1.01 39.8 1F 16 23933452.43 -255308.195 -7608.35 31.9 0F 23 23270100.75 -9146110.110 +5729.48 38.2 1F 25 22816395.90 -10887258.151 +6580.99 38.0 1F 0 0.00 +0.000 +0.00 0.0 00 0 0.00 +0.000 +0.00 0.0 00 0 0.00 +0.000 +0.00 0.0 00 31 22803882.08 +128632.465 +2093.91 33.5 07 26 20659655.36 -20355257.163 -4689.17 40.2 1F 2 20969736.70 -24233997.795 -2353.69 40.4 1F 29 20813240.49 -22284182.997 -1456.82 39.5 1F 5 22468959.27 -12296654.497 -2577.02 36.7 1F 49
While this is still an early feature and could potentially evolve significantly in the future, SatDump now has its own remote SDR system for cases where you intend on having the SDR accessed over the network.
If intending to access devices present in your local network, simply starting the server (in CLI, or on Windows starting the executable) with your SDR(s) plugged in, and then refreshing the device list in SatDump will have them show up.
Streaming over the internet is also an option, but does mean you will need to manually enter the IP and the port in the settings.
You asked, and we have listened: SatDump can now be installed on Windows! While the portable app is still provided, the installed version makes it easy to provide SatDump to all users on your computer. It also makes updates a breeze - simply run an updated installer and the old version will automatically be updated, while preserving your settings.
Schools/other institutions: The SatDump installer supports silent, automated deplpoyment to managed Windows devices through services like SCCM and PDQ. Are you thinking about using SatDump in the classroom as a learning tool? Now, it can be managed and updated along with your organization’s other apps.
Run the installer with the
/S flag for silent installation.
Since NOAA-15 is going through a rough phase at the moment, lego11 decided to send it some love by adding a “days in orbit” counter.
Enabled projections for NOAA-DSB HIRS images and retuned FengYun MERSI & NOAA-18 AVHRR projections.
CCSDS decoding has been made lighter and the DSP has been cleaned up. Correlation can now be handled by the GPU. All in all SatDump should work a lot smoother now.
The Viewer and Recorder UI’s have been rewritten using ImGui’s native elements making it more stable and predictable (after some weird behavior when floating windows were introduced). Many inputs have also been updated to make them more user-friendly:
- Most frequency and samplerate input fields now support scientific notation, MHz suffixes, etc.
Timestamp fields now accept a human-readable date time
SatDump should also fit better automatically on High-DPI displays. If you needed to change the “UI Scaling” setting in SatDump before, you should no longer need to - unless you want to make it bigger or smaller on purpose, of course!
This release comes with many, many bug fixes. Some of the notable ones are:
- MSU-MR images from METEOR-M showed up in completely wrong locations due to the timestamps being parsed wrong (in very specific cases). This is fixed now.
- When the user tried to correct a non-correctable image (in specific cases), SatDump crashed. That doesn’t happen anymore.
- A memory leak caused random crashes. Its not leaking anymore, and SatDump should work a lot more consistent now.
- A small issue with a mutex caused SatDump to crash when attempting to do two things at once, which is now fixed.
- A small bug has been fixed in the FFT code sometimes caused SatDump to write FFT beyond its allowed space, causing random crashes.
- When using a SDR++ Server as a sample source, SatDump segfaulted when trying to exit it.
- Fix Waterfall scaling when live processing
- PROBA-2 is handling timestamps differently now for some reason. This resulted in only one image decoded per pass. The Timestamp parsing has been fixed, all images are docoded properly now.
- ASCAT images from MetOp satelles were projected upside-down on southbound passes.
- Fixed a potential bug with NOAA DSB
- Quite a few fixes about SIMD handling that could cause crashes on machines without AVX2
- Corrected a bug that could make M&M clock recovery crash if too little data was provided
- Fixed FY-2 S-VISSR decoder discarding partial scans
- RTL-SDR Bias-Tee fix
- DMSP F-17 offsets on OLS had changed
- Prevent some pipelines crashing if no images were produced (eg, LRPT)
- Fixed DPI Scaling
- Better handling of various TLE-related errors
Since 1.0.3 was released we had to fix windows-specific issues countless times (by the time this post is public, probably more than countless times). If you experience any weird behavior when using SatDump on Windows OS, please let us know. Most of the develpoment is done under Linux, so some issues with Windows sometimes behaving differently are hard to spot.