2020-07-04 Again with systemd in the new GPS Pi 3 days ago
Again and again systemd annoys me. This time in the GPS Pi configured for timing. Since I want it to work perfectly at start I added the systemd rules as suggested by A Raspberry Pi Stratum 1 NTP Server - Phil's Occasional Blog with /etc/systemd/system/ublox-init.service containing:[Unit] Description=u-blox initialisation Before=gpsd.service Before=ntp.service [Service] Type=oneshot ExecStart=/usr/local/bin/gpsctl -q -a -B 115200 --configure_for_timing [Install] WantedBy=multi-user.targetAfter reboot ntp was running, but no data at all from the gps unit, and gpsctl was unable to revive it. The solution was to disable the above unit and ntpd, powerdown and restart the whole system and try again. After that doing the changes by hand and starting ntpd worked fine. It's probably some sort of race condition, but any time I try to make a system with systemd do something reliably I run into things like this.
2020-07-03 Switched the GPS configuration to one optimized for timing 4 days ago
Based on A Raspberry Pi Stratum 1 NTP Server - Phil's Occasional Blog I switched the gps to a configuration optimized for timing. The default settings are optimized for location services, but I want an NTP server. I used gpsctl to configure the ublox chip in the GPS/RTC Hat:$ gpsctl -a -B 115200 --configure_for_timing -vv Serial port ("/dev/ttyAMA0") open... Serial port open and configured... Automatically determining baud rate... Trying 230400 baud... Trying 115200 baud... Trying 57600 baud... Trying 38400 baud... Trying 19200 baud... Trying 9600 baud... Synchronized on 9600 baud... Changing baud rate to 115200... Successfully changed baud rate to 115200...After that I got location data at a high speed. I changed the /etc/ntp.conf parameters to use the GPS_NMEA and PPS drivers, with:# PPS reference server 127.127.22.0 minpoll 4 maxpoll 4 fudge 127.127.22.0 refid PPS # GPS NMEA driver server 127.127.20.0 mode 89 minpoll 4 maxpoll 4 iburst prefer fudge 127.127.20.0 flag1 0 flag2 0 flag3 0 time2 0.043 refid GPSAnd now I get much better numbers:$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== oPPS(0) .PPS. 0 l 14 16 377 0.000 -1.656 0.134 *GPS_NMEA(0) .GPS. 2 l 13 16 377 0.000 -11.730 0.517 +ntpritchie.idef 126.96.36.199 3 u 44 64 377 4.263 1.436 62.373 +metronoom.dmz.c 188.8.131.52 2 u 44 64 377 12.141 -2.250 49.247 koos@henkp:~ $ ntpdc -c kern pll offset: -0.00142676 s pll frequency: 7.468 ppm maximum error: 4.934e-06 s estimated error: 3.372e-06 s status: 2001 pll nano pll time constant: 4 precision: 1e-09 s frequency tolerance: 500 ppmThe time offset factors still need work, but I'm getting close!
2020-07-03 The GPS ticks! 4 days ago
I remembered the junkbox contains an active GPS antenna which I bought together with the gpskit gps unit in 2003(!). And some other bits and pieces included a SMA to BNC adapter so I put the little GPS antenna outside and connected it to the GPS/RTC Hat. Before I was back behind a computer it was showing a location and within a few minutes it had a PPS pulse. I was used to cold start taking at least 15 minutes with the gpskit! So I tested with ntpd talking to gpsd via shared memory. This gave an interesting offset between local gps time and a nearby ntp server.$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *SHM(2) .PPS. 0 l 6 64 377 0.000 -0.149 1.672 xSHM(0) .GPS. 0 l 5 64 377 0.000 -104.51 1.943 +ntpritchie.idef 184.108.40.206 3 u 101 64 376 2.774 0.950 13.948 +metronoom.dmz.c 220.127.116.11 2 u 99 64 376 10.482 -0.844 10.638 $ ntpdc -c kern pll offset: -0.000136461 s pll frequency: -11.054 ppm maximum error: 1.3748e-05 s estimated error: 1.7071e-05 s status: 2001 pll nano pll time constant: 6 precision: 1e-09 s frequency tolerance: 500 ppmI'm not too happy about the fact that the GPS NMEA messages are seen as wrong, so I'm going to stop using gpsd and go for a setup optimized for timing.
2020-07-02 Setting up the Raspberry Pi to talk to the GPS/RTC board 5 days ago
With most of the hardware in, it is time to configure the Raspberry Pi to allow the GPS/RTC board to be installed. One tip was to do this before installing the board to avoid serial conflicts. First steps based on Building a GPS Time Server with the Raspberry Pi 3 which uses a different GPS board. Disabling tty service on the UART:# systemctl stop serial-getty@ttyAMA0.service # systemctl disable serial-getty@ttyAMA0.serviceAnd make changes to /boot/cmdline.txt to disable serial console, removing the console=serial0,115200 part. Also needed is to disable the use of the hardware uart for bluetooth. This device does not need to do bluetooth at all, so I disable the software.sudo systemctl disable hciuartAnd add the lines to disable the bluetooth uart to /boot/config.txt:dtoverlay=pi3-disable-btAnd with that the UART is completely free to use for GPS and PPS messages. I made all these changes and only added the GPS/RTC hat to the Pi after these changes were done. Next steps were to add the i2c settings according to the GPS/RTC manual. For this I addeddtoverlay=i2c-rtc,rv3028 dtoverlay=pps-gpioAnd indeed the i2c bus appears as the manual says:# apt-get install python-smbus i2c-tools [..] # i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- 42 -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --I removed the fake-hwclock package and tested operation. On the commandline it works, but in a reboot I still see weird times in the log. After that I did the changes to /lib/udev/hwclock-set, now it looks like:dev=$1 #if [ -e /run/systemd/system ] ; then # exit 0 #fi if [ -e /run/udev/hwclock-set ]; then exit 0 fi if [ -f /etc/default/rcS ] ; then . /etc/default/rcS fi # These defaults are user-overridable in /etc/default/hwclock BADYEAR=no HWCLOCKACCESS=yes HWCLOCKPARS= HCTOSYS_DEVICE=rtc0 if [ -f /etc/default/hwclock ] ; then . /etc/default/hwclock fi if [ yes = "$BADYEAR" ] ; then # /sbin/hwclock --rtc=$dev --systz --badyear /sbin/hwclock --rtc=$dev --hctosys --badyear else # /sbin/hwclock --rtc=$dev --systz /sbin/hwclock --rtc=$dev --hctosys fi # Note 'touch' may not be available in initramfs > /run/udev/hwclock-setThe rtc has to be configured correctly, I used information from A Raspberry Pi Stratum 1 NTP Server - Phil's Occasional Blog to configure the rv3028 chip. Get the gpsctl tool and use configure-rv3208.sh to set up the chip. Now the rtc is correct and used at boot time. I'm seeing NMEA messages when I run gpsd or ask the serial port for data. The NMEA messages are very limited because there is no GPS antenna connected yet.
2020-07-02 My social media accounts 5 days ago
Social media is a nice and easy way to interact with people. There was and is a lot of choice in social media. Ages ago I started with fidonet echomail groups, later with usenet and recently with web-based social media. But that's also a development from volunteer-run systems to commercially run systems. Companies like twitter, google and facebook are in the world to make a profit. With echomail and usenet the protocols and software were not linked to the operator of the service, someone else was able to run the same service and allow access to the network again. When google+ stopped the ties to people I knew were broken and I had to find them again on other networks. I am somewhat active on twitter. My 'main' twitter account is twitter.com/khoos but I was getting a lot of negative messages about world politics which got depressing. Since twitter has made it a lot easier to manage more than one twitter account from the twitter web interface I decided to add a specific account for amateur radio with the predictable name twitter.com/PE4KH. Amateur radio twitter is not completely free of politics, but it's a lot more sane view of twitter.
2020-07-01 A new home timeserver: GPS/RTC board 6 days ago
The Raspberry Pi GPS/RTC Expansion Board from uputronics came in today (thanks mailman!). Next part needed: a gps antenna. But that's on backorder with another supplier. Also needed: time to install raspbian on the Pi and start testing.
2020-06-29 Newish electronics project: an igate 1 week ago
Some time ago I saw announcements of an igate build project from PI4RAZ, the amateur radio club in Zoetermeer. An igate is a system that receives APRS messages and forwards them to the Internet aprs servers. There is a distinct lack of APRS coverage here in Utrecht, so more places that receive those messages and pass them to the Internet are a good idea. A specialized repeater to repeat them on the air would be even better, but that needs a special radio license which is one step too far and expensive at the moment for me. The electronics came in months ago, but time to pick up the soldering iron and start with the hard part wasn't available. I started this monday with that hard part: soldering a VHF module on top using something close to surface mounting. Just with a lot more space between the soldering islands than real surface mount. Still needed good light and a magnifying glass to check my work constantly. I only had to desolder one small blob of solder which went in the wrong direction. After that I soldered the resistors. That went fine. After that my eyes were too tired, but the first step has been made.
2020-06-28 Future cycling goals (2) 1 week ago
As I mentioned before I have some future cycling goals which include some form of long-distance cycling journey, with serious influences from the book Computing Across America. Naturally amateur radio will play a part in such a cycling journey, just as Steven K. Roberts had on his trips. Via the german amateur radio club DARC I found this bit in the "Deutschland-Rundspruch 24/2020":DK3JB erreicht erstes Ziel auf seiner Funk-Fahrrad-Reise Hans-Gerhard Maiwald, DK3JB, hat nach mühsamer und beschwerlicher Fahrt, teilweise auch wegen schlechter Radwege, am 15. Juni gegen 21 Uhr sein erstes Ziel, Kappel im Hochschwarzwald, erreicht. Dabei legte er ohne E-Unterstützung 580 km mit seinem 40 kg schweren Radanhänger zurück. Dem 72-jährigen OM geht es gesundheitlich gut. Hans-Gerhard gelang es, den weitaus größten Teil der Strecke permanent mit seinem TH-D74 in APRS aufzuzeichnen. Dabei hat sich der 1200 g schwere 12 V/20-Ah-Lithium-Ionen-Akku sehr bewährt. DK3JB hat zahlreiche Verbindungen in FM und D-Star vom Fahrrad aus getätigt. Durch Ludwigshafen wurde er von mehreren Funkamateuren gelotst und seine Route mitverfolgt. Hans-Gerhard bleibt bis Sonntag in Kappel und radelt danach vorerst an den Bodensee weiter.And I found out more about the cycling tours between Siegen and Friedrichshafen in Germany via Funk-Fahrradtouren of DK3JB and it is very inspiring to me. There is also an article DK3JB wieder mit dem Fahrrad unterwegs nach Friedrichshafen - funkamateur.de with information about this tour in 2020 (all in German, which I can read but not really write). He has done this tour several years already, I found an article from the June 2008 trip: Mit Fahrrad, Zelft und FTM-10SE durch Süddeutschland (pdf). After having read a book about cycling through Europe with the Rhine as one possible route, this confirms my earlier thoughts. Combining recumbent cycling, amateur radio and a nice ride through Europe is the direction I'm thinking.
2020-06-24 Moved the shed roof temperature sensor from under the roof to above the roof 1 week ago
I wanted to do some things in the shed with cabling, some things were not ideal after the solar power installation. One of the things was that I had a temperature sensor to measure the temperature above the roof, but with all things that happened with cables it ended up hanging below the roof. I moved it back up in the ventilation pipe and with the current temperatures it started measuring 4 degrees Celcius higher immediately.
2020-06-20 A new home timeserver: first parts, a Raspberry Pi 2 weeks ago
And yet another Raspberry Pi is showing up for my home network. This will become the GPS-based timeserver. I may add it to the NTP Pool when I'm satisfied enough with it. It will probably also replace the 'shed' weather station computer in the long run, to save on power use. I added an extra USB-based wifi adapter to the Pi. The shed has no wired network and my experience with the other computer there is that dual-band (2.4 GHz and 5 GHz) wifi support is the best way to have a chance to get working network. I also ordered the Raspberry Pi GPS/RTC Expansion Board directly from uputronics.
2020-06-15 A new home timeserver on order 3 weeks ago
After earlier tries to have a nice GPS-based timeserver for my home network I noticed a simple but very effective GPS 'hat' for the Raspberry Pi, the Raspberry Pi GPS Hat from Uputronix. While the Pi's are already taking over the home network just one more could be a nice addition. In the longer run this will probably replace the shed computer. So I ordered a Pi with an added dual-band WiFi adapter, a case, the GPS hat and a GPS antenna. The GPS hat has PPS support so I will get the time correct. With the instructions from 5 minute guide to making a GPS Locked Stratum 1 NTP Server with a Raspberry Pi it should be easy. If this all works I may even add the resulting Pi to the IPv6 NTP Pool. Update 2020-06-16: SOS Solutions came back with some bad news: the uputronix Pi GPS Hat isn't available anymore. I'm now looking at the comparable adafruit hardware which is somewhat more expensive, but offers the same options. Update 2020-06-18: And the adafruit hardware is also not available soon. I cancelled the GPS unit part of the order and I'm looking at sourcing a GPS module for the Pi from another source. The GPS hat which sossolutions no longer sells is originally from uputronics where a newer version of the Raspberry Pi GPS/RTC Expansion Board is listed as available on the site. Based on a ublox chipset which allows me access to a lot of the GPS data.
2020-06-07 CQRLOG and repeater contacts 1 month ago
Friday evening I had a contact with PI4AA via the PI2NOS repeater. So I logged the contact with those parameters in CQRLOG. After a number of other contacts I wanted to upload my new contacts to LoTW. In an upload, CQRLOG creates an ADIF file of the contacts and lets tqsl sign the resulting file before sending the signed file to LoTW. But tqsl doesn't want to include repeater contacts (those aren't valid for LoTW, so it interprets the rules correctly) and it gives a return status 9 meaning "some QSOs suppressed" which CQRLOG displays correctly. But as a result of that return code it doesn't allow for the other contacts to be uploaded at all, leaving me with a growing number of contacts not uploaded to LoTW. I reported the bug to the CQRLOG forums: Propagation type RPT (repeater) should not be uploaded to LoTW - Forums » CQRLOG » CQRLOG - bugs with a suggestion for a program fix. From my experience, good bugreports for CQRLOG will be acted upon fast. In the mean time as a workaround I mark all contacts with propagation type 'repeater' as already uploaded to LoTW to skip them. MySQL statement:$ mysql -S /home/koos/.config/cqrlog/database/sock cqrlog002 mysql> update cqrlog_main set lotw_qslsdate=curdate() where prop_mode='RPT' AND lotw_qslsdate is NULL; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0and now other contacts can be uploaded fine.
2020-06-05 Frastanzer s'dunkle 1 month ago
Yet another import from our snowboard holiday in Austria. The beer today is a Frastanzer s'dunkle. As the name suggests, a dark beer. With a good head of foam when poured correctly. The taste has a bit of a sweet note and has hops, but not as strong as other beers. A nice beer, good to bring from Austria or find at a store with lots of choice in beers.
The beer details
Company Frastanz Beer name s'dunkle Beer style Pilsener Alcohol by volume 5.8 %
2020-06-03 I participated in the Dutch PACC 2020 in February 1 month ago
But I forgot to write about it, because I made a very minimal number of contacts: 6. I wanted to get the Veron A08 contest group using call PA0AA in the log and added some others. And on submitting the log I didn't set the category to 'checklog' so there is a result with a ranking. I got reminded today because our friendly mail delivery person brought an envelope with the token of merit (het vaantje) which is very special for this contest. The good part is all 6 contacts were valid, so 6 contacts, 6 points, 3 multipliers making a stunning score of 18, and not the last in my category! Ranking 117 (out of 122) in single operator all band low power ssb only.
2020-06-01 I participated in the CQ WPX CW contest 2020 1 month ago
After a number of recent morse contacts with special event stations I decided to participate in the CQ WPX CW contest during the weekend. Not for getting a big score, but to get experience with morse contesting. Morse speeds in a contest like this are 25-30 words per minute which I can't decode, so I used fldigi to decode most of the morse. This means I have to enter my results as 'assisted'. And 'most' of the morse is the correct description because the important detail to decode are callsigns and serial numbers. The signal report is always 599 or 5NN which is usually sent faster than the rest of the conversation because it's a specific pattern a trained morse operator hears anyway. I really didn't participate very long and still made 65 contacts. I'm not sure they all went correct, but it's a start. If I make 10 errors each of those is only 1 error for the other station. It's interesting how this approach to morse contesting gets me 65 contacts when serious participation in a digital mode contest will get me about 120 contacts. But high numbers of contacts are quite normal in a morse contest. I have received serial numbers over 2000. Logs are processed and the first confirmations via ARRL Logbook of the world are already coming in.
2020-05-27 PMR channels have been expanded. In 2018, but I found out today 1 month ago
It's been a very long time since I was busy with pure radio frequency scanning. Being active on the sending side too has made me less interested in frequencies where I can only listen. But recently I was looking at what is available, and noticed the marine VHF channels. I could program them all in a scanner, but I decided to use software defined radio to see if anything is active in that band. Late in the evening there is currently no activity. But I set a scanner to scan all known channels and heard some chatter on PMR channels. On one channel was a remark that there was interference and they should switch to channel 14. In my memory analog PMR had 8 channels. So I looked it up and found out analog PMR was expanded to 16 channels on 1 January 2018. There is also DMR446 (same frequencies but with time division multiple access) on the same frequencies and dPMR446 with 32 possible frequencies in the same range. So now the scanner is updated with the new analog frequencies and I can hear a baby monitor, motorcycle driving lessons and a building site.
2020-05-25 Websites get attacked from the very first moment 1 month ago
Sometimes hobby and work intertwine when I'm not expecting it. I set up a domainname and added a dummy website for something related to amateur radio. I have no idea if it will go anywhere, but I thought I'd get the web configuration right. The domain name isn't published anywhere. But, to my surprise:18.104.22.168 - - [20/May/2020:09:14:35 +0200] "GET /.git/HEAD HTTP/1.0" 404 594 "-" "-" 22.214.171.124 - - [20/May/2020:09:14:35 +0200] "GET /.git/HEAD HTTP/1.0" 404 594 "-" "-" 126.96.36.199 - - [20/May/2020:09:14:53 +0200] "GET /.git/HEAD HTTP/1.0" 404 594 "-" "-" 188.8.131.52 - - [20/May/2020:09:14:53 +0200] "GET /.git/HEAD HTTP/1.0" 404 594 "-" "-" 184.108.40.206 - - [20/May/2020:09:15:12 +0200] "GET /.git/HEAD HTTP/1.0" 404 594 "-" "-" 2a00:d680:30:50::67 - - [24/May/2020:16:54:36 +0200] "GET /wp-login.php HTTP/1.1" 404 594 "http://******.*******.**/wp-login.php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"I added the domain name and requested a LetsEncrypt certificate on 11 May 2020, I set up the webserver correctly on 19 May 2020. The only 'publication' of the name is via the certificate transparancy log. Somehow this is enough for the first probes for possible security issues. Looking in the haproxy logs finds even more requests on 15 and 18 May 2020. Part of the requests are via http, not https.
2020-05-24 Going for countries on other amateur bands 1 month ago
In the past few days I used the long-wire antenna with tuner to get on 'other' amateur bands. I added contacts on the 17 and 15 meter bands to several countries around my country. Some of those countries were new on those bands, so that's nice. No spectaculair new distances or countries, but a good flow of new contacts.
2020-05-24 Shared my script to optimize outgoing QSL cards 1 month ago
As a radio amateur I like sending and receiving QSL cards. QSL is the Q-code for "I confirm reception" and a QSL card is the way to confirm a contact. I have my own QSL card design and a big box of cards to send out. With contacts I usually do a check if a fellow amateur mentions the wish for cards via the QSL bureau on her/his qrz.com page, because I only want to send cards to interested amateurs. Due to the way I process my cards I can put up to 4 contacts on one card, so it's a simple optimization that if I have one contact that I want to send a card for I also check for other contacts with the same callsign. The qslmaximizer.pl script does this for the CQRLOG database.
2020-05-19 Testing encryption with sslscan including deprecated TLS versions 1 month agoOlder news items for tag english ⇒
Keeping encryption settings correct needs a lot of testing to make sure things are right. With external-facing webservices this is easy with the Qualys SSL scan, but for other services than https or services not facing outward a local tester is needed. This local tester is sslscan, a commandline tool but which depends on the shared openssl libraries which have insecure protocols disabled to helps disabling those deprecated protocols. But to test services the client needs to support those old protocols to do the test correctly. So I built a static version of sslscan with static openssl using the instructions at https://github.com/rbsec/sslscan. And that works for the full testing range!Read the rest of Testing encryption with sslscan including deprecated TLS versions