Running KiwiSDR from a headless browser
Chrome (and probably other browsers) can now be run headless. That is, they can be run from the command line without showing the actual browser. This saves a lot of resources needed to paint and update the display. It also means you can listen to a KiwiSDR in the background witihout fearing accidentally closing the browser window while doing something else.
Why would I want to do this?
1. I can just listen to a radio station with no visible open browser.
2. I can open up to 4 WSPR extensions to report reception with no open browser.
To use KiwiSDR in a headless browser requires entering a command line. I use a batch file to save typing or copying the command.
First you need to locate the chrome.exe file on your system. Everything makes that very easy. https://www.voidtools.com/
The command line I use is to listen to 740 AM on my own Kiwi is:
"C:\Users\Peter\AppData\Local\Google\Chrome\Application\chrome.exe" --headless --disable-gpu --remote-debugging-port=9222 "http://kiwisdr.ve3sun.com:8073/?f=740.00amnz10"
The first part is the location of the chrome.exe file. Yours will definitely be different.
--headless - run without showing the browser (as a background process)
--disable-gpu - necessary due to bugs that haven't been fixed yet
--remote-debugging-port=9222 - the port to use to make changes such as tuning to a different frequency, etc.
"http://kiwisdr.ve3sun.com:8073/?f=740.00amnz10" - the complete URL you would use in a normal browser.
The command line I use to monitor 2 WSPR frequencies is:
"C:\Users\Peter\AppData\Local\Google\Chrome\Application\chrome.exe" --headless --disable-gpu --remote-debugging-port=9223 "http://kiwisdr.ve3sun.com:8073/?ext=wspr,20m&mute&win2&ext=wspr,40m&mute"
To access the debugger window, which can show the user interface, just enter http://localhost:9222 into your usual browser.
9222 is the default port. If you are opening more than one instance of chrome, you have to use different ports for each.
How to stop a headless browser?
It seems once the process has started, the usual ctl-C and ctl-Break don't work to stop it. Even closing the cmd window doesn't make a difference.
So I use ProcessExplorer (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) which shows the command line used to start each process. Task Manager used to do that but if it still does, I couldn't find it.
Otherwise, you have to stop all the chrome.exe processes, which can be many.
Linux and Mac users should be able to do all this with equivalent methods.
I hope others find this useful.
Links to more information: https://www.chromestatus.com/feature/5678767817097216
- Peter
Comments