Notizbl0g.

h4cking, ham radio, fire fighting and m0re

Headless Building MMDVM Firmware

A while ago I was looking for a way to build the MMDVM firmware on a bare Debian Jessie system running on a Raspberry Pi. It has no X installed and thus I need a way to build the Arduino Due firmware without installing tons of GUI packages. I copied parts of a Makefile for the Arduino IDE as it is just executing command line binaries under the hood.

I added some support for building the MMDVM firmware using a Makefile to the github project a while ago. The only problem left was finding a way to “install” the Arduino IDE in command line mode.

Interfacing Tait TB7100 and MMDVM

The other day I got hold of a Tait TB7100 1U repeater. I thought I might make a good basis for a MMDVM HotSpot or even repeater. Apparently the RX had a sort of a problem. Using the service manual I discovered that the TCXO for the RX was missing its power supply due to a removed resistor. After fitting in a replacement the unit worked ok with a testing configuration for a FM repeater.

So that would make a good hardware for a MMDVM HotSpot now. Some research on the Yahoo group revealed that you need to directly wire RX and TX audio directly to the two modules on the inside.

Monitor a DAPNET Transmitter With Nagios

After describing how to get notified of system criticalities via pager I wanted to have my DAPNET transmitters monitored via Nagios. A basic description can be found under [1]. Firstly you need to set up the plugin check_http_json. The source and installation hints can be found on [2]. That enables Nagios to query the DAPNET master using a JSON request and process the result.

A little different to the manual by RWTH Aachen I also configured the hostname of the master in /etc/nagios3/resource.cfg in order to have it not depend on the hostname of the Nagios host.

DAPNET Alarm Page by NAGIOS

After settinp up a DAPNET client for the POCSAG Amateur Radio paging network I was looking for some good source for interesting information to be sent to my pager. I already had a Nagios monitoring solution set up in order to monitor several D-Star service and repeaters in my area. So I wanted to get Nagios to inform me as soon as one of these services changes state to critical.

The solution is to implement a second method for nagios to send a notification. The original method to send an alarm via email was left as it is.

Compiling Aprsc for ARM Platform

After discovering that the HamserverPi release 1.5 is actually a Debian wheezy based system and therefore not supporting RustPager ([1]) I manually set up a Debian Jessie lite on my Raspberry Pi to serve as web server for the HamNet. RustPager compiled fine after two hours of full CPU load.

As I had set up an APRS server for HamNet use I also wanted to do that on the Jessie lite system. Apparently there are no .deb packages to install from the package tree. So I tried to compile it manually mainly following Hessu’s guide on [2]. A problem occured with the statically linked library libevent.a. This is how I managed to get along with this error.

ICOM IC-2820 Fan Mod

By the time the fan of my IC-2820 became really noisy. And as it runs from time to time automatically it can be disturbing although the unit is mounted under my table here. My friend DL5BQ was so kind as to look for a replacement part. And as I did not want to just cut the wire but leave the original part as it is I looked for the connector. The replacement is a Pabst 0412 fan that comes with a 5,25” PC connector. I replaced it with a 1.5mm two pin JST ZH connector.

Flashing STM32F446RE Nucleo

After building the MMDVM shield by Toufik F0DEI I tried to flash the MMDVM firmware using the MMDVM Makefile and executed “make deploy”. That command failed and the output said something about that it could not open the port. After looking through the openocd config files I discovered that it looks for a device with 0x0483/0x3748 as VID/PID.

But in my case the board showed up with 0x0483 0x374b. After changing this in /usr/share/openocd/scripts/interface/stlink-v2.cfg the deploy command worked like a charm and transferred the firmware successfully. By the way: This was done on an Ubuntu 16.04 with openocd v0.9.0 installed from the official repositories.

IC-2820 With Fixed GPS Position

I am running an ICOM IC-2820 at home for D-Star repeater use. It has the D-Star unit built in and the GPS antenna was connected. The GPS module seems quite deaf at it takes ages for it to get a satellite fix. And what also was annoying is that the reported GPS position suffers from (small) drifts over time. That results in a bunch of point on aprs.fi maps and similar. So I was looking for a way around this issues and made a proof-of-concept.

Udev Rules for Quad Serial Adapter FT-4232H

After running out of available serial ports for sniffing purposes I ordered a 4-port serial adapter with FTDI FT-4232H chip. That is basically an USB-RS232 adapter with four ports built into one device. That should be sufficient to run slsnif or jpnevulator in order to debug or reverse engineer serial protocols. After plugging the device there is the usual gambling about which device has what device name. For standard FT-232 chips I have some custom udev rules that create symlinks for various purposes. That should also happen to this quad port adapter.

Determine DVmega FW Version

A while ago I published some shell code that allowed for detection of the firmware version on DVmegas. That did not work realiably. So I made a small C snippet based on the MMDVM code by Jonathan G4KLX. The source can be found under [1]. It should compile on any Linux system without errors.