jks
About
- Username
- jks
- Joined
- Visits
- 32,327
- Last Active
- Roles
- Member, Administrator, Moderator
- Points
- 331
Reactions
-
Quiet switch mode power supply (SMPS) for KiwiSDR
It's a real shame our efforts to place a T1-1 on the Kiwi-2 failed (it made matters worse for reasons that were never fully understood, but no doubt due to the cramped conditions on the board). But you can bet a T1-1, and more, will be present on Kiwi-3 where there will not be the space constraints.
-
Reflashing BBB with Kiwi-1 with image v1.682 [fixed]
Believe it or not, this was probably a power supply problem. We've seen over the years that writing SD cards requires a substantial amount of extra peak current. So a power supply that operates a Beagle + Kiwi board normally may not also be able to power an SD write operation on top of that.
This explains why running a Beagle + SD write alone (without the Kiwi board) worked. The current saved from not having the Kiwi board was enough to handle the SD write peak currents.
I have updated the operating guide instructions to mention this issue.
-
Please protect your KiwiSDR 2 from the high-level RF fields of nearby transmitters
Please make sure your Kiwi is adequately grounded. So the antenna input protection circuitry has a path to drain any charge it is intercepting. Ideally this would be on the antenna coax near the
RF in
SMA connector. Or from the Kiwi metal case.The ground connection from a switch mode power supply is likely not earth grounded and the Ethernet cable is transformer coupled with capacitive bypass.
-
Damage due to nearby lightning strike
-
KiwiSDR production status and availability
Seeed has been forced to raise Kiwi prices on their website by 15% due to the ongoing semiconductor supply issues.
But there are still plenty of units at old the old prices from distributors. So do some shopping around. Remember that Mouser offers free international shipping to many locations for orders over $50. And be careful to consider shipping, tariff/import, VAT/GST and other costs which these days is a large fraction of the device cost (and the latest sign of our failure as a society/species -- but I digress).
-
rx-tx.info: preview/table/map of WebSDR, OpenWebRX & KiwiSDRs
From the new OpenWebRX fork developer I think: https://rx-tx.info
-
About Python KiwiClient [Kiwi API question]
The Kiwi protocol requires the client to send "keep alive" messages at least once every 60 seconds. Otherwise it is assumed the client (Javascript in the browser usually) isn't really running even if the web socket connection is still open for some reason. This had to be done in order to prevent connections from remaining open for long periods of time even through no one was really there. If no keep alive is received the connection is closed.
I don't know if it helps, but I was able to make web socket connections and send Kiwi commands and receive Kiwi sound and waterfall binary data using a program called
websocat
(web socket concatenate). See: https://github.com/vi/websocat There are binaries available for Windows, Linux and Mac and I was able to run the Mac one without problems.So, to connect to a Kiwi and get sound data do something like this from the Mac command line:
cat snd.ws.txt | websocat_mac -n ws://my_kiwi:8073/12345678/SND
Where
my_kiwi
is the name of the Kiwi and the filesnd.ws.txt
contains these commands to send to the Kiwi:SET auth t=kiwi p=
SET AR OK in=12000 out=44100
SET squelch=0 max=0
SET genattn=0
SET gen=0 mix=-1
SET ident_user=kiwirecorder.py
SET mod=am low_cut=-5000 high_cut=5000 freq=7550.000
SET agc=1 hang=0 thresh=-100 slope=6 decay=1000 manGain=50
SET keepalive
12345678
is a number and needs to be unique for each connection (hence a timestamp in msec). Thewebsocat -n
argument keeps the connection to the Kiwi open after all the commands in the file are sent. But note the connection will still close because additionalSET keepalive
commands are not being periodically sent.What you will receive from the Kiwi will be a combination of messages and data looking something like this:
MSG client_public_ip=[your public ip address as seen by the Kiwi]
MSG rx_chans=4
MSG chan_no_pwd=0
MSG chan_no_pwd_true=0
MSG is_local=0,1
MSG max_camp=4
MSG badp=0
MSG version_maj=1 version_min=447
MSG load_cfg= (large amount of configuration data omitted)
MSG center_freq=15000000 bandwidth=30000000 adc_clk_nom=66666600
MSG audio_init=1 audio_rate=12000 sample_rate=12001.062106
MSG stats_cb={"ct":4633,"ce":0,"cf":1000,"cc":0,"cu":[51],"cs":[49],"ci":[0],"ac":0,"wc":0,"fc":0,"ah":0,"as":0,"sr":12001.062106,"ga":0,"gt":0,"gg":0,"gf":0,"gc":66.665900,"go":0,"gr":"RF82ci","ad":0,"au":0,"ae":0,"ar":0,"an":4,"an2":32,"ap":[0,7439,0,0],"ai":[0,2121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sa":9,"sh":9,"tu":"04:04","tl":"17:04","ti":"NZDT","tn":"Pacific%5c%2fAuckland"}
SND [binary sound data]
SND [binary sound data]
...
You can do something similar for the waterfall with the command line:
cat wf.ws.txt | websocat_mac -n ws://my_kiwi:8073/12345678/W/F
And the
wf.ws.txt
file:SET auth t=kiwi p=
SET zoom=0 cf=7550.000000
SET maxdb=-10 mindb=-110
SET wf_comp=0
SET wf_speed=1
SET ident_user=kiwirecorder.py
SET keepalive
And you'll receive the waterfall data:
MSG rx_chans=4
MSG chan_no_pwd=0
MSG chan_no_pwd_true=0
MSG max_camp=4
MSG badp=0
MSG version_maj=1 version_min=447
MSG center_freq=15000000 bandwidth=30000000 adc_clk_nom=66666600
MSG kiwi_up=1 rx_chan=0
MSG extint_list_json=%5b%22colormap%22,%22cw_decoder%22,%22devl%22,%22DRM%22,%22fax%22,%22FFT%22,%22fsk%22,%22IBP_scan%22,%22iframe%22,%22iq_display%22,%22loran_c%22,%22navtex%22,%22noise_blank%22,%22noise_filter%22,%22sig_gen%22,%22S_meter%22,%22SSTV%22,%22TDoA%22,%22timecode%22,%22wspr%22%5d
MSG wf_fft_size=1024 wf_fps=23 wf_fps_max=23 zoom_max=14 rx_chans=4 wf_chans=4 wf_chans_real=4 wf_setup
MSG zoom=0 start=0
MSG wf_fps=1
MSG request_dx_update
W/F [binary waterfall data]
W/F [binary waterfall data]
...
This discussion is not complete because we need to talk about the parameters for the various
SET
commands and also the content of the returned binary data. These details are all handled by the kiwiclient / kiwirecorder Python code and that's why you should really try and make an effort to understand it. -
My KiwiSDR has Died [power supply problem]
Hi Kevin. When the BBG is running alone, and Ethernet cable hooked up, do you get green and yellow LEDs lit on the Ethernet RJ45 jack? What are the 4 blue status LEDs on the BBG doing?
On the Kiwi board by itself, can you measure the resistance of the round jack power center pin to ground? Except for an inline choke and 4 caps the power trace goes straight to two pins on the P9 header which feeds the BBG. So when not connected to the BBG it should measure open, more or less. Schematic: http://kiwisdr.com/docs/KiwiSDR/kiwi.schematic.pdf
-
Problem with massive RFI after changing router
Changing the external SMPS is fine. But there is another issue that is more difficult to deal with. The use of internal DC-to-DC converters (that are also SMPS) directly on the PCB of the device.
These days it seems a lot more devices, including PC motherboards, are powered with higher voltage from the primary supply. Then high-efficiency "point of load" DC-to-DC converters are used right at the consuming load. In the case of your router the external SMPS is now 12V instead of 5V and there is almost certainly a 12V-to-3.3V (or even less) converter internally (chips don't run on 5V these days and in many cases don't run on 3.3V either except maybe for I/O). -
Command MU
mu
is an alias formake users
And doingmake -n users
reveals that it does a:
So /var/log/user.* are the log files you'd want to search and copy information from. As usual with Unix there are a dozen different ways of doing this sort of thing depending on the result you want.zcat /var/log/user.log.4.gz > /tmp/kiwi.log; zcat /var/log/user.log.3.gz >> /tmp/kiwi.log; zcat /var/log/user.log.2.gz >> /tmp/kiwi.log; cat /var/log/user.log.1 >> /tmp/kiwi.log; cat /var/log/user.log >> /tmp/kiwi.log; cat /tmp/kiwi.log | grep -i leaving | grep -vi kf6vo | grep -vi 192.168.1 rm -f /tmp/kiwi.log