CrazyScan & SkyWalker-3

CrazyScan is FREE satellite/terrestrial/cable scan software.
Small size, speed, convenient interface, and visual data presentation made it one of the favorite tools of satellite enthusiasts.
CrazyScan software does not talk/communicate directly to hardware, instead it talks to StreamReader.dll and is capable to work with any DVB card supported by this interface.
As a result, StreamReader.dll gets constantly updated (includes support for more and more different DVB cards).

There are two ways to add DVB card to the list of CrazyScan supported devices:

  1. add it to the the list of StreamReader.dll supported devices, or
  2. write your own StreamReader.dll
For now (while still developing BlindSacn algorithm), I decided to follow path #2.
I made my own StreamReader.dll (available in Software Updates section) which supports SkyWalker-3 only, it does not know anything about other DVB-s cards. Even more, I did not write a full blown DLL-library, instead I exposed only those functions which are used by CrazyScan. Thus, at this current condition it is probably not a very useful DLL-library for any other DVB application except CrazyScan.

This custom StreamReader.dll uses some new firmware functions (introduced in firmware version 2.05.7) which are used for Blind Scan algorithm. BLScan() and BLscanEx() are already exposed in this DLL-library, and they are doing very good job (more about that below). BLscan2() implementation is still in the process.

Here is how it looks so far.
For all following screen shots, I used Ku-band of SES-3 satellite located at 103.0W position.
Most major NBC feeds on this satellite are permanent transponders (you can see them day after day), but there are a lot of occasional transponders as well (sometimes you see them, sometimes not - they present only when there is a live feed). Scan of entire 500MHz span takes 12-16 seconds (depends on the settings, you can tweak the settings in the Genpix_SW3.ini file):

Some transponders are obvious. You can right-click on the spectra trace to open a Carrier Search window (you have to click on the trace, clicking on the grey background above/below the trace produces different action).
The below screen shot shows result of clicking on the spectra trace very close to its peak (maybe, couple of MHz off, but you can see that vertical dotted line is very close to the center of its bell-shaped profile):

To speed up the Blind Tune (carrier search), you can tweak the search parameters (beware that incorrect parameters may even prevent Blind Tune to find a transponder). In this particular case, transponder is very strong and has wide bandwidth. Thus, Blind Tune (click the green Blind Scan button) found transponder within half a second. Note that after successful signal lock, CrazyScan corrected the position of the dotted line (now it is exactly at the peak of the carrier frequency), and added parameters of that transponder near that dotted line.
You can also observe the constellation diagram, and see that the signal quality is not perfect (there are overlapping I/Q-clouds). This could be because your dish is not optimally aligned to this sat (or dish is too small for your geographical location):

Other transponders may be not very obvious (in terms of finding the center of the bell-shape), especially, if there are couple of low bandwidth transponders are nearly overlapping. In this case, you can do a true Blind Scan within specific frequency range (right-click somewhere outside of the spectra trace, and drug the mouse across the spectra; when you release the mouse button, CrazyScan will show you the start and stop of the Blind Scan range):

Now, click the BlindScan button, and few seconds later CrazyScan will show your all detected transponders withing that frequency range. Blind Scan may take a while (Modulation/FEC-rate detection time is roughly reversely proportional to the Symbol Rate of a transponder; thus, it may be rather slow for low Symbol Rates).

And here is the constellation diagram for that detected 4600ksps transponder. Note that second transponder in this group (pictured above) was not detected, probably because it is too week (and its constellation diagram would look much worse then that one):

Here is an example of several adjacent low-bandwidth transponders which form something like one "average" bandwidth transponder.

This is where Blind Scan comes really handy. It does find several transponders (where you may suspect to find just one), though the search process is slowed by low bandwidth of each transponder (took about 30 seconds to Blind Scan this small frequency range):

here is a zoomed portion of this spectra (you can see the parameters of detected transponders):

Genpix_SW3.ini file contains several parameters which can be used to tune StreamReaderSW3.dll behavior, speed, quality and efficiency during Spectrum Acquisition or Blind Scan.
StreamReaderSW3.dll reads INI file during start-up of CrazyScan application. Thus, you have to restart CrazyScan every time you want new value of any of the parameters to take an effect. You can disable the parameter line with ";" symbol, in that case StreamReaderSW3.dll will use the default value for that parameter (indicated in the comment). To enable the parameter, remove the comment symbol (;) and adjust the value as you wish (Microsoft default library allows to use only unsigned integer as a parameter value).

Parameters affecting the Spectrum Acquisition speed and spectrum quality:
scanBW: sets the bandwidth of RF tuner during Spectrum Acquisition, indirectly set by setting Symbol Rate for the digital tuner (this is for Spectrum Acquisition only, it does not affect Blind Scan capability to find proper Symbol Rate). Lower scanBW value can improve the resolution of the Spectrum (though, longer wait time will be required for each spectrum point). 4000 Ksps is a good starting point for BW value for SkyWalker-3, even if your frequency step size is just 1MHz. I rarely use any other values.
wait: it's a time delay in milliseconds between commands SetTunerFrequency() and GetSignalStrengh() sent to the tuner (for each point of the Spectrum). The shorter the wait time the faster Spectrum Acquisition will be (though accuracy will be diminished, and some artifacts can appear). 0-25ms range is a typical adjustment range for SkyWalker-3 (shorter delays for slow PC, longer delays for faster PC).
If you see some strange spikes (few points on the graph are clearly way off from where they should be, your delay is too small: tuner does not have enough time to set the proper gains).
All other parameters are not used during Spectrum Acquisition.

Parameters affecting the Blind Scan speed and quality:
MinFreqStep: "micro-step" size. It is used during evaluation of the RF signal during blind micro-stepping. If two adjacent points give identical evaluation score, there is a big chance that potential transponder is detected. Thus, smaller micro-step values (approximately 200 KHz) are advised to detect narrow bandwidth transponders (3-5 Msps). Obviously, smaller micro-step prolong the blind scan process. To speed up the process (especially if you don't expect narrow bandwidth transponders on that satellite) you can set larger micro-steps. For now, don't use micro-step values larger then 500 KHz, since BlindScan2() algorithm is not implemented yet (CrazyScan, when it uses just regular BlindScan() calls, sends these request every 1000 KHz, thus it does not make sense to set micro-step value lager than that).
BScanMinSR: Blind Scan algorithm evaluates every point of the spectrum and when it finds the potential transponder it starts Blind Tuning process. Obviously, the wider the allowed Symbol Range the longer the Blind Tuning process (more iterations are required). It is Minimal Symbol Rate which affects the duration of the Blind Tuning process (the Maximum Symbol Rate hardly affects the speed and thus always set to 45 Msps, maximum supported by SkyWalker-3). If you don't expect to find narrow bandwidth transponders, set the Min Symbol Rate appropriately (set 4500 if all expected transponders have symbol rate 4600 Ksps or higher). This well reduce the Blind Tuning process noticeably.
PowerThreshold: set in negative dBm units (since standard Microsoft library does not allow to use negative values in ini file, StreamReaderSW3.dll simply multiplies this value by -1). Blind Scan algorithm will skip all tuning attempts if power of the possible transponder is below threshold. Often, if the signal is below -62dBm, SkyWalker-3 can not lock that transponder properly anyway (Signal-to-Noise ratio will be too low). Thus I often set threshold to -62 dBm. Your threshold can be different (it depends on the size of the dish, LNB quality and signal loss in the coax cables and switches).
In the implementation on BlindScan2(), I plan to speed up Blind Scan process by simply ignoring portions of the spectra which are already below threshold (current CrazyScan algorithm which uses BlindScan() does not do that, it continue to scan the portions of spectra even if there is no potential transponder there).
skipDC2: if set to 1, Blind Tune will try all modulations supported by SkyWalker-3, except Digicypher II. This could speed up Blind Tune by 2-3 fold (since SkyWalker-3 has to use a separate tuning command for every flavor of Dygicypher modulation). This parameter does not affect the speed of micro-stepping, it simply reduces the time-out required to Blind Tune a potential transponder. You still can select Digicypher II modulation explicitly (from drop down menu) from Carrier Search and Constellation monitoring dialogue.
AutoTuneRange: this parameter tells the tuner how far from the requested frequency it can auto-adjust the actual frequency when tuning to transponder. If set high, tuner will eventually "snap" to transponder peak frequency if this peak is within the desired range of requested frequency. This will help to find a transponder faster during blind scan. At the same time, this high value can prevent the scan algorithm to detect relatively weak transponders situated next to the strong transponders (especially, if they have the same symbol rate). This is because frequency auto-adjust process will simply snap to the stronger transponder if it is within the same frequency range from requested frequency. Usually, I use 2000-5000 KHz values (lower values if I expect narrow bandwidth transponders sitting next to each other, and higher values otherwise).




eCommerce by CubeCart