-
Details Matter!
Details
Change Log
Commit: 448fc310 improve reporting 31 changed files
versus
Commit: 1ef7a40c extract median calculation into a separate function 1 changed file Commit: 8125e973 provide total downtime as deparate data point 2 changed file ...
Downtime
func (d *DataCollector) addDowntime( downtime time.Duration) { d.totalDowntime += downtime }
versus
func (d *DataCollector) addDowntime(dt time.Duration) { d.totalDowntime += dt }
versus
func (d *DataCollector) addDowntime(downTime time.Duration) { d.totalDowntime += downTime }
versus
func (d *DataCollector) addDowntime(downtime time.Duration) { d.totalDowntime += downtime }
versus
func (d *DataCollector) addDowntime(downtime time.Duration) { d.totalDowntime += downtime }
Do Details Matter?
Do you see it? In both examples, all the alternatives do exactly the same, but their form has subtile differences. Do those details matter?
Read more… -
Setup ExpertSDR for Digital Modes on Linux
I recently got a SunSDR2 DX and it took me some time to get it up and running with all the other software that I use for ham radio. Maybe the following article saves you some hours.
CAT
ExpertSDR comes with its own network-based CAT protocol named TCI. It has the great advantage that all changes are pushed to the clients, so there is no polling necessary and the clients are updated immediately. This is a great leap forward. On the downside, the list of programs that can use TCI is rather short at the moment. Alternatively ExpertSDR offers an emulation of the Kennwood TS-480, which can be used via a virtual COM port. This works, but it is not very easy to setup, as you need to compile a kernel module (e.g. the tty0tty null modem emulator).
Read more… -
Unmute a microHAM DigiKeyer II on Linux
I’m currently playing around with a microHAM DigiKeyer II and my Ubuntu 20.04 ham radio PC. When I plug in the DK2, there is no RX audio available, although the sound device is recognized by Ubuntu and all the other features of the DK2 work perfectly. To save you some of the hours that I needed to find the cause, here is my current insight into the problem: capturing is disabled by default for the Mic input in ALSA.
Read more… -
Run the CWDaemon as Service
If you want to automatically run the cwdaemon with sidetone output through pulseaudio, the cwdaemon needs to be started as a systemd user service. This is because pulseaudio is only avaiable when you are logged in and the cwdaemon must not be started before pulseaudio is available.
- Add the following content as
~/.config/systemd/user/cwdaemon.service
:
[Unit] Description="CW Daemon" [Service] Type=forking ExecStart=/usr/sbin/cwdaemon -d ttyS1 -x p -T 700 -s 30 [Install] WantedBy=default.target
- Reload the unit file:
systemctl --user daemon-reload
- Enable the service:
systemctl --user enable cwdaemon.service
- Start the service:
systemctl --user start cwademon.service
On the next boot, the cwdaemon will only start when you log in and stop when you log out.
Read more… - Add the following content as
-
Resources about SDR and DSP
I started looking deeper into software defined radio and digital signal processing. Here are some great resources about those topics:
- Sam Koblenski’s blog posts
- Rick Lyons: A Quadrature Signals Tutorial: Complex, but not Complicated
- Steven W. Smith, Ph.D.: The Scientist and Engineer’s Guide to Digital Signal Processing
- Stefan Scholl: Exact Signal Measurements using FFT Analysis
- András Retzler: Software Defined Radio Receiver Application with Web-based Interface (BSc Thesis)
- András Retzler: Integrating digital demodulators into OpenWebRX (MSc Thesis)
- OpenWebRX Source Code
- csdr Source Code
-
Goodbye Wordpress, hello Hugo!
Today I wiped off Wordpress from my webspace and switchted to Hugo, a static site generator - just in case you are wondering.
-
FT-450 Hamlib Timeout Glitch
I control my FT-450D using Hamlib. This worked fine if only a single program was connected to the rig. To be able to connect multiple programs at the same time, I wanted to run the
Read more…rigctld
server as a service and connect the programs using the model #2 (“NET rigctl”). This setup works fine, but every now and then the connection to the FT-450D stopped working. Here is how I found out what’s going on and how I fixed it. -
Automatically resetting an USB-to-serial adapter
I read the temperatures and other data from my heating controller using a python script. The heating controller is connected via a serial line to a raspberry pi, using an FTDI USB-to-serial adapter. From time to time, the adapter stops working. Plugging it out and in again helps, but eventually I found out how to restart it automatically.
You need to find out the device number of your adapter (here it is device 4):
Read more… -
keeb.io Iris
I built my own keyboard. It is an Iris from keeb.io. The Iris has a split 56-key ortholinear layout and it is fully programmable, running the QMK firmware.
Step 1: Choose wisely
Coming from the Kinesis Freestyle II, I wanted to go one step further and have all keys (especially the cursor keys) right at my fingertips, without the need to move my hands. And I wanted to have this luxury everywhere, therefor I looked for a fully programmable solution with split layout. The Iris provides both for a reasonable price, if you are able to use a soldering iron.
Read more… -
Learning to Go
In May I started into a breakneck adventure: new job, new programming language, new tech stack - everything starting over. I was hired at Paessler to be a Go developer. Coming from the Java planet, I had to learn everything from scratch:
- the Go language itself
- the “state-of-the-art” development environment for Go: VS Code
- GitLab with its concept of CI/CD pipelines
- Vue.js for some frontend work (see below)
- Docker and Kubernetes as runtime environment
I can’t remember a moment in my career where I had to master so many different technologies at once. But “Viel Feind’, viel Ehr’”, so let’s rock!
Read more…