Wednesday, September 17, 2008

OH7RDA digipeater installation

Last weekend we went and installed the OH7RDA APRS digipeater on top of a hospital in Siilinjärvi together with the local hams from my old hometown, Kuopio. The Tarina hospital is located on a hilltop 16 km north of Kuopio, with a pretty good open view in all directions. We used to have a packet radio node at the very same location with 1200 bit/s access on 144 MHz and two 9600 bit/s links on 434 MHz, but the site had been abandoned for quite a while, due to lack of interest by everyone involved.

The old 2-meter radio, a modified Finnish mobile VHF radio with an embedded TNC2 clone (OH-TNC v2), was still in working condition, the power supply turned out to be just fine once one lead which should be attached to the rectifier was reconnected, so we just needed to install a vertical antenna, a new cable, and set up the APRS digipeater software.

(On the left: OH7TB attaching an N connector to the cable)

I obtained a 3*5/8λ vertical (dual-band, 8*5/8λ for 70cm), the guys in Kuopio had the coax and fixed the power supply. I set up an UIDIGI EPROM for the TNC, and replaced the backup batteries (sealed lead-acid) inside the radio-tnc combination.

I couldn't configure the UIDIGI to properly do WIDEn-N digipeating with callsign prepending (only when digipeating the packet for the first time), so I found a surplus miniature PC to run Linux and digi_ned. Now that the digipeater is already installed, it turns out UIDIGI could, perhaps, be configured to do the Right Thing, OH2NJR has been making some progress on that.

Anyway, I put a 2G CompactFlash card in the PC to make it more reliable - spinning hard disks at sites like this tend to break way too often. I installed Debian Linux on it, removed mostly all extra packages to make the installation small and quick to update, and then made sure it doesn't write on the flash card on a regular basis, since that tends to wear out the flash memory over time. That required 4 things:
  1. Moving all temporary directories from disk to memory (/etc/fstab: "tmpfs /tmp tmpfs defaults,noatime 0 0", repeat for /var/tmp and /var/lock too)
  2. Mounting all flash partitions with the noatime option (defaults,noatime in fstab). As an alternative, they could be mounted read-only, but that requires additional tricks.
  3. Disabling stuff from crontab: see /etc/cron.(hourly|daily|weekly|monthly)/, /etc/cron.d/ - it's no use doing much else than log rotation on a box like this. Updating manual and locate databases is a waste of flash write cycles on an unattended mountaintop PC.
  4. Moving all log files to /var/tmp and making sure they are rotated quickly enough so that the partition will not fill up. I edited /etc/syslog.conf to make all system logs to go to a single /var/tmp/messages, and disabled all logging on the digipeater software.
Then I installed and configured digi_ned so that it will digipeat RELAY, WIDE, WIDEn-N and TRACEn-N packets, but only up to WIDE3/TRACE3 - it'll ignore WIDE4-7 packets. No logging after the initial testing.

I also added a small script, run hourly from crontab, which restarts digi_ned if it would happen to die for reason or another. I haven't been running it anywhere before, so I don't know how stable it is, and on an embedded box with 128 megs of non-ECC memory, anything can happen in a few years.

A couple of hardware pieces needed to be purchased for the PC:
  • A CompactFlash - IDE adapter: about 3 USD from DealExtreme - including shipping. Make sure you get the right type for your IDE cable (male/female, correct size - laptop IDE 44 or desktop-style IDE 40 cable)
  • An USB serial dongle to connect to the TNC: less than 5 USD from DealExtreme. The Prolific driver in Linux has been written using reverse engineering techniques, and it doesn't support all of the low speeds below 9600 bit/s, but that doesn't matter here.
  • The CompactFlash card. DealExtreme sells these too, but they aren't much cheaper there. There are "industrial" versions of the cards which should handle more write cycles, but if you can eliminate all of the periodic write cycles (watch your iostat) which happen after the reboot, it doesn't really matter.
Here, OH7FDN and OH7RJ are attaching guy ropes to the 5-meter-long Diamond vertical. Let's hope it lasts for a few years, and replace it with a proper commercial antenna when it breaks.

Some of the DealExtreme stuff doesn't have much quality packed in, but the price is fine. You can't get any better CF adapters anywhere, they're just going to cost more, and they'll still be from the same Chinese factory. Beware, that shop is very addictive. The stuff is just too cheap. I'm suspecting child labor and way-too-low wages for those who do the packing and mailing.

OH7VM and OH7RJ with the installed antenna.

Photos by yours truely. There's some more if you're interested.

The digipeater seems to be working fine. There's not much activity on the north side of Kuopio (yet), but you can take a look at the APRS position packets heard by OH7RDA. It seems to work just fine for a mobile in Nilsiä.

I'm also building a PIC-based logic card for the OH7RAA repeater (145.600 MHz, -1.6 MHz, in Kuopio). The board can already send a CW id, but I haven't yet wired the 1750 Hz and DTMF decoder chips. Yes, the voice on the mobile phone video is mine.


Anonymous said...

Hey, mount the partitions on the CF with the 'noatime' atribute, or mount read-only. In other case the CF might be dead in near future :(

Hessu said...

Good note - I actually *did* mount the partitions with 'noatime'. I just forgot to mention this in the blog post. I'll edit it in...

I usually mount all disk partitions with noatime, as I don't make any use of the access times anyway. It makes a difference on laptops, sometimes avoiding a disk spin-up.