Friday, August 05, 2011

House block loop antenna for 160m

At the urging of old mate Ross, VK1UN, I've run a wire loop antenna right around the suburban block we live on and I've just had a contact on 160m. I bought a roll of 100m of figure 8 electrical flex:

R0014019

It runs at fence height on three sides of the block (well short of 160m in length though):

R0014023

But at the back I run it up a tall tree:

R0014024

It's not quite long enough for a full wave on 160, so it turns out to be resonant at 2.25MHz:

R0014021

Happily, my antenna tuner is able to match it on 160m and tonight I had a nice contact with Ian, VK3XN who I figure it about 800km from me:



160 faded so we switched to 80m where I have an excellent dipole high above the house. The loop was about 2 S points worse than my current dipole, but still readable.

So, a simple loop antenna, not very high off the ground turns out to be a simple way to get on low bands in a suburban setting. Count me impressed.

Thanks Ross, and Ian for the contact.Running WSPR it appears that I'm being heard around Australia running 5W (note that VK1UN is mis-reporting me as being on 10m)

Screen Shot 2011 08 06 at 8 53 11 PM

There's quite a group on 160m WSPR on a Saturday night in Australia:

Screen Shot 2011 08 06 at 9 00 26 PM

Special thanks to VK6DZ who is hearing me 3,000km away.

Screen Shot 2011 08 06 at 9 31 28 PM

And here's what I'm hearing:

Screen Shot 2011 08 06 at 9 32 31 PM

Monday, August 01, 2011

Convert Fuji 3D MPO to Anaglyph

The cheap Fuji 3D camera has been lots of fun but viewing the pictures is a challenge. I ordered some Red/blue specs on ebay and have been figuring out how to automate conversion of the MPO files from the camera through to good quality anaglyph images. (If you have red/blue glasses this will look good, believe me). Dural trash n treasure The code is pillaged from a couple of places including here where it is mangled by the blogging software and doesn't work with the current bumpy. I've fixed it up and here it is for your entertainment:
"""Make a red-blue 3d Anaglyph image from an MPO file
Based on code from:
http://www.velocityreviews.com/forums/t357242-anaglyph-3d-stereo-imaging-with-pil-and-numpy.html
"""

import Image, ImageOps
import numpy
import sys
import os

_magic = [0.299, 0.587, 0.114]
_zero = [0, 0, 0]
_ident = [[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]

# anaglyph methods from here: (fantastic demos)
# http://mitglied.lycos.de/stereo3d/an...comparison.htm

true_anaglyph = ([_magic, _zero, _zero], [_zero, _zero, _magic])
gray_anaglyph = ([_magic, _zero, _zero], [_zero, _magic, _magic])
color_anaglyph = ([_ident[0], _zero, _zero], [_zero, _ident[1], _ident[2]])
half_color_anaglyph = ([_magic, _zero, _zero], [_zero, _ident[1], _ident[2]])
optimized_anaglyph = ([[0, 0.7, 0.3], _zero, _zero], [_zero, _ident[1], _ident[2]])
methods = [true_anaglyph, gray_anaglyph, color_anaglyph, half_color_anaglyph, optimized_anaglyph]

def anaglyph(image1, image2, method=true_anaglyph):
    m1, m2 = [numpy.array(m).transpose() for m in method]
    im1, im2 = image_to_array(image1), image_to_array(image2)
    composite = numpy.dot(im1, m1) + numpy.dot(im2, m2)
    result = array_to_image(image1.mode, image1.size, composite)
    return result

def image_to_array(im):
    s = im.tostring()
    dim = len(im.getbands())
    return numpy.fromstring(s, 'uint8').reshape(len(s)/dim, dim)

def array_to_image(mode, size, a):
    return Image.fromstring(mode, size, a.reshape(len(a)*len(mode), 1).astype('uint8').tostring())

for filename in sys.argv[1:]:
    if filename.lower().endswith('.mpo'):
        print "reading %s" % filename
        basename = os.path.splitext(os.path.basename(filename))[0]
        file = open(filename, 'rb')
        data = file.read() # read both images
        offset = data.find('\xFF\xD8\xFF\xE1', 4)
        firstData = data[:offset - 4]
        leftFileName = '%s-left.jpg' % basename
        left = open(leftFileName, 'wb')
        left.write(firstData)
        left.close()

        rightData = data[offset:]
        rightFileName = '%s-right.jpg' % basename
        right = open(rightFileName, 'wb')
        right.write(rightData)
        right.close()

        nativeWidth = 3584
        nativeHeight = 2016

        desiredWidth = 1000
        fullHeight = desiredWidth * nativeHeight/ nativeWidth

        left = Image.open(leftFileName)
        left = ImageOps.autocontrast(left)
        right = Image.open(rightFileName)
        right = ImageOps.autocontrast(right)

        os.remove(leftFileName)
        os.remove(rightFileName)

        left = left.resize((desiredWidth, fullHeight), Image.ANTIALIAS)
        right = right.resize((desiredWidth, fullHeight), Image.ANTIALIAS)

        combined = anaglyph(left, right, half_color_anaglyph)
        #combined.show()
        outFileName = "%s_Anaglyph.jpg" % basename
        combined.save(outFileName, "JPEG")
        print("Wrote %s" % outFileName)

You run it like this:
$ mpo_anaglyph.py *.MPO
reading DSCF0005.MPO
Wrote DSCF0005_Anaglyph.jpg
reading DSCF0006.MPO
Wrote DSCF0006_Anaglyph.jpg
reading DSCF0007.MPO
Wrote DSCF0007_Anaglyph.jpg
DSCF0081 Anaglyph DSCF0077 Anaglyph DSCF0072 Anaglyph

Sunday, July 31, 2011

Amateur radio home brew group show and tell

Today was a meeting of the Amateur Radio NSW Home Brew and Experimenter's group at Dural. The topic was duplexers, diplexers and filters. I shot some video which begins with some footage of the VK2WI broadcast.



Thanks to everyone who presented. Sorry about the hand-held video but this time I'm using a wireless mic for the first time so audio is much more intelligible.

The video has been tweaked and updated but it's the same as before.

Friday, July 29, 2011

Ripping the CD collection ready for iCloud

CdsWhen I was young I used to buy lots of records. When CDs appeared I bought them all again! In recent years the CD collection has gathered dust and the only music that gets listened to is the stuff that's been moved on to computers and iPods. One of the great pleasures of having my music collection on computer is having it play random tracks and discovering wonderful tracks of unexpected albums. I decided to rip the entire collection. It's time consuming, although much better than it used to be, my Mac Mini imports at 8x these days. Going through the process threw up a few observations about the age of the Compact Disk that is drawing to a close:
  • CDs don't last for ever. Quite a few have lost the silver coating in parts over the years.
  • Mould spots have grown on some, Sydney humidity I guess, hard to get off.
  • Jewel cases have always been hard to open and brittle - a bad combination.
  • Jewel cases are a very bulky way to store data these days.
  • What kind of idiot publishers have used duplicate id numbers?
  • The little cover pictures are not a patch on impressive 12 inch albums. Cover art on a tablet is a great improvement.
  • It was a wise choice to use an un-compressed format.
  • I bought the same CD twice on a few occasions.
I've been looking around at the possibility of selling my CDs. It doesn't look like you get much for them any more. The eBay auctions often end without bids and the thought of sending hundreds to little packages out via the post office for a dollar each doesn't sound like a good use of time. Syncing my collection to iCloud seems like a good way to go. I hope it works! Backing up 52Gb of data is a responsibility I'm keen to offload. It would be nice not to have to buy all these tracks for the third time.

Wednesday, July 20, 2011

The Lion wakes tonight

Maccentric ChatswoodTomorrow a new MacOS X version, called Lion, will be released by Apple.

For the past two releases, mate Coops and I have formed a queue outside our favourite Mac store, Maccentric in Chatswood to be the first to purchase a copy.

Manager Hendrick comes out and laughs at us but it's been fun.

This year, alas, Lion will be released for electronic download only and worse - Maccentric in Chatswood has closed their doors. (They're still open at Warringah Mall and doing a "roaring" trade).

It must have been rough for them when Apple opened up a store just a block away in Chatswood Chase.

We'll look back and laugh at the idea of software coming in boxes, but it did make me feel like the fruit of my work was somehow a physical thing.

Monday, July 18, 2011

Digital 3D camera on super special

Pic header 01I have a long interest in 3D photography, and even a couple of old film cameras in the bottom drawer here.

There is a digital 3D camera from Fuji that is basically two 10Mpx cameras in one body with a nifty lenticular LCD panel. These used to sell for over $500, which was a bit much for me, but today I noticed that Harvey Norman Balgowlah has them in the red spot discount bin for $128.

It's a Fuji FinePix Real 3D W3.

Stereo pair

The target market is consumers with 3D TVs (I don't) so viewing is the challenge. The images do look good on the on-camera display, but that's no good for sharing. I purchased some +3.5 reading glasses for $4 and by using a card I can view the images nicely on the computer screen.

I have an old viewer for side by side prints which can work and you used to be able to get one off prints with lenticular screens on the front. The other interesting option is viewing on an iPod/iPhone with the Hasbro my3D viewer.

Wobble2

The camera has a few ergonomic issues, it's really hard to avoid covering the right lens with your finger for example, but seems like a bargain at this price. It also shoots movies and as they say in the store - can be used for 2D as well.

The store I went to had about ten in the bin so be quick if you want one.

Splitting MPO files

The Fuji 3D camera, and others apparently, store 3D images in a .MPO file. This file is simply two Jpegs one after the other. I wrote a little python command line tool to split these files into left and right images.


"""Split an MPO file which is just two JPEGs back to back
"""
import sys
import os

for filename in sys.argv[1:]:
if filename.lower().endswith('.mpo'):
print "reading %s" % filename
basename = os.path.basename(filename)
file = open(filename, 'rb')
data = file.read() # read both images
print "read %d bytes" % len(data)
offset = data.find('\xFF\xD8\xFF\xE1', 4)
print "second image starts at %d" % offset
firstData = data[:offset - 4]
print "first image is %d bytes" % len(firstData)
left = open('%s-left.jpg' % basename, 'wb')
left.write(firstData)
left.close()

rightData = data[offset:]
print "second image is %d bytes" % len(rightData)
right = open('%s-right.jpg' % basename, 'wb')
right.write(rightData)
right.close()


It runs like this:


$ python mposplitter.py sample.MPO
reading sample.MPO
read 3655848 bytes
second image starts at 1799552
first image is 1799548 bytes
second image is 1856296 bytes
done.

2023 Update


Just came back to this and python3 requires some changes:

#!/opt/homebrew/bin/python3
"""Split an MPO file which is just two JPEGs back to back
"""
import sys
import os

for filename in sys.argv[1:]:
    if filename.lower().endswith('.mpo'):
        print("reading %s" % filename)
        basename = os.path.basename(filename)
        file = open(filename, 'rb')
        data = file.read() # read both images
        print("read %d bytes" % len(data))
        offset = data.find(b'\xFF\xD8\xFF\xE1', 4)
        print("second image starts at %d" % offset)
        firstData = data[:offset - 4]
        print("first image is %d bytes" % len(firstData))
        left = open('%s-left.jpg' % basename, 'wb')
        left.write(firstData)
        left.close()

        rightData = data[offset:]
        print("second image is %d bytes" % len(rightData))
        right = open('%s-right.jpg' % basename, 'wb')
        right.write(rightData)
        right.close()
        

To view the images in my old 3D print viewer I need two side by side pictures.

R0014018

The Python Image Library can do what's needed pretty simply:


import sys
import Image

nativeWidth = 3584
nativeHeight = 2016

fullWidth = 400
fullHeight = fullWidth * nativeHeight/ nativeWidth
halfWidth = fullWidth / 2
halfHeight = fullHeight / 2
print halfWidth
print halfHeight

if len(sys.argv) != 3:
print "Usage: %s left.jpg right.jpg" % sys.argv[0]
sys.exit(1)

leftFileName = sys.argv[1]
rightFileName = sys.argv[2]

left = Image.open(leftFileName)
right = Image.open(rightFileName)

combined = Image.new("RGB", (fullWidth, halfHeight))
left = left.resize((halfWidth, halfHeight), Image.ANTIALIAS)
right = right.resize((halfWidth, halfHeight), Image.ANTIALIAS)
combined.paste(left, (0,0))
combined.paste(right, (halfWidth, 0))
combined.save("output.jpg", "JPEG")


Here's the output file:

Output

Email via HF radio with Winmor

Ross, VK1UN, is in the country and so I fired up the WSPR station so we could see if it's practical to have a QSO between Sydney and Melbourne. 40m was pretty dead but 20m was alive on Sunday afternoon.

I got a signal report from James, VK2JN, who lives near by and runs a packet radio email gateway. I've tried to get this going in the past using a physical packet modem without much luck but he suggested trying a soundcard TNC called Winmor.

Screen Shot 2011 07 18 at 9 49 12 AM

I have a netbook with Windows XP and a Signalink USB interface and following the instructions in this pdf all worked pretty much as advertised.

What you get
  • A decent email client
  • The sound card TNC (with the pretty display above)
  • A session control app that can get the latest frequencies
  • Lots more I haven't figured out yet


Here's the window that tells you what local channels are available (it can be updated over the air too):

Screen Shot 2011 07 18 at 10 10 29 AM

At this point I'm merrily exchanging email from internet to radio, radio to internet and radio to radio.

The great thing about all this is that it will work in the outback or out to sea - pretty much wherever a digital HF signal can get through. You get a limited number of minutes per day but it's a great service.

Screen Shot 2011 07 18 at 10 02 43 AM

Now, where's the MacOS and Linux version of this?

Sunday, July 10, 2011

On a cold day, a small shack is a big plus

It feels very cold here in Sydney at the moment. My workplace is sometimes overly hot which got me interested in measuring, and plotting, the temperature.

My radio shack is cupboard size and has a small fan heater in it which very quickly warms the space. But just how quickly…

Heater

A while back I built a PIC based thermometer that reads a Maxim 1-wire temperature sensor and sends the readings out a serial port at 9600 baud.

Device

USB serial cables seem to just work out of the box on linux these days:

Serial port

A little bit of python using pyserial to read lines from the serial port and log them to a text file suitable for reading in to a spreadsheet.


#!/usr/bin/env python
"""Utility to log temperatures from a serial device.
"""

import serial
import time

LOGFILE = '/tmp/temperatures.txt'

ser = serial.Serial('/dev/ttyUSB0')
log = open(LOGFILE, "a")

line = ser.readline()
while line:
logline = "%s\t%s\n" % (time.ctime(),
line.split()[0])
log.write(logline)
log.flush()
line = ser.readline()


Here's a bit of the log file:

Sun Jul 10 14:31:07 2011 28.0
Sun Jul 10 14:31:09 2011 28.5
Sun Jul 10 14:31:11 2011 28.5
Sun Jul 10 14:31:13 2011 28.5
Sun Jul 10 14:31:15 2011 28.5
Sun Jul 10 14:31:17 2011 29.0


Here is the temperature in my shack from window close to toasty warm.

Temperatures

Saturday, July 09, 2011

A day doing PA sound

Armed with a bag of adapter plugs, clip leads, a multi-meter and a torch, I spent today running PA sound for a local community group's annual festival. All sorts of technical hilarity ensued.


The day was a mix of speeches and musical performances ranging from solo voice, to stringed instruments with singers to dance groups. The music to accompany the performers was handed to me on CDR disks shortly before they went on. In other cases it was played from a laptop, sometimes an iPod.

One act asked for the singers in the backing track to be removed (there's software to do that apparently), I did what I could with the equaliser but it wasn't enough. Another singer wanted lots of reverb, which unfortunately wasn't available. All the performers wanted more volume, while some audience members cursed me for the overly high sound levels.

The most amazing request was this guy who handed me his phone showing YouTube and asked me to play a video over 3G to provide the audio over the PA while he sang along to it. He has more faith in technology than me.


He said if a call came in I should reject it and play on. A detailed explanation of the loading bar in the YouTube player ensued. In the lead up, his phone slept and asked for a PIN, which I had to hastily get from him. Amazingly it was "alright on the night".

At the end I had to patch a DVD player's sound via a canon mic socket back to the mixer.

My compliments to the Allambie Heights School Community Centre which has excellent PA and mixer facilities these days.

All good fun but it's nice to be curled up at home where life is simpler.

Sunday, June 19, 2011

Interesting memorial to 2FC transmitter

A busy ham radio day here at 'chez vk2tpm'. A few weeks back, when I'd built the "shambles" 80m transceiver, I emailed a very strong local station, Malcolm VK2BMS, asking to arrange a contact so I could get a signal report. Here's the transceiver (double side band tx, direct conversion receive):

Shambles tx

Malcolm replied to my email some months after I sent it - apparently his cat uses the computer, presumably to upload cat videos to YouTube, and he's only just got it back. We had a contact today after the WIA broadcast and he says I sound pretty good if I don't over-drive.

He, and Robert, VK2ZNZ mentioned a plaque in the pavement at the corner of Edinburgh road and Eastern Valley Way, not far from the home QTH, and we headed off to take a look:

2FC memorial

"Radio Broadcasting Station 2FC

2FC began broadcasting on 5/12/1923. Farmer and Company Limited Broadcasting Service leased land from the corner of Edinburgh Road and Lyle Street (now part of Eastern Valley Way) to halfway to Sugarloaf Creek. Powered by 5,000 watts, it was 'the world's largest broadcasting station' (1923 Willoughby Municipal Council Annual Report). Two steel lattice towers 200 feet high and 600 feet apart supported a squirrel type cage aerial. The main operating room and staff quarters were directly below. The studios in Pitt Street were linked to Willoughby by landline. In 1929 the transmitter, by then out of date, was dismantled and moved to Homebush Bay."

In the time when 2FC transmitted from here you had to get to the transmitter by ferry and tram.

VK2ZNZ has been busy while I've been away with a new valve receiver built in the perspex style:

Valve receiver

And it has a battery high voltage supply made from 9V cells:

High voltage battery

Monday, June 13, 2011

MFJ-9440 QRP 40m SSB Transceiver

Back in February I ordered a low power SSB transceiver from MFJ, the MFJ-9440. In June it arrived!

Front with mic

They have versions for 75m, 40m, 20m and 10m. For US$260, you get a simple transceiver that draws low current (100mA) on receive (attractive for long listening on battery power) and puts out about 5W on transmit. The design is by K1BQT, Fred Littlefield, and is well regarded.

Construction is solid and it looks like it could survive a bit of travel without any bits dropping off. Internally it's largely surface mount which should be very robust.

Internal

Receive sensitivity is adequate but not as good as other radios here. Given the low power output I can probably only contact people who are very strong anyway. There's plenty of receive audio volume available, but there is some hiss behind it.

Coverage comes set to about 7.15Mhz to 7.35 so I shifted mine down and re-peaked the receiver.

This afternoon, I called CQ and was quickly answered by Peter, VK2NEO located in Griffith who gave me a 5 and S9 (although there was some fading). We had a good chat during which he reported that I was slowly drifting "towards 20m" but that transmit audio was "excellent".

Manly Warringah 80m sked contact Brian, VK2JE, also popped up, based near Taree and also gave a good report.

I'm pleased with the radio, it's fun to use a simple analog VFO controlled rig for a change and to not have all the buttons and menus.

It did take a long time to arrive and the front panel is a little rough in both printing and the dial pointer is slightly damaged. The meter doesn't seem to show my transmit power very much for some reason but an external meter shows about 5W peak output.

Dial closeup

It's a fun edition to the shack and the price is reasonable. Thanks to Peter and Brian for responding so quickly to my CQ on 40m. You can read the manual here.

Sunday, June 05, 2011

Technology in Tibet

I've just returned from a three week visit to Tibet and as a watcher of technology and society there was much to catch my eye. (Note the SLA battery).

House tech

Tibet is now part of China and while it's still mostly a manual subsistence farming lifestyle for much of the population, the central government is investing heavily to drag it into a more modern way of life.

Everywhere outside of large towns you can see people in traditional dress, ploughing fields either by hand or with the help of a yak. Household water comes via irrigation style water courses and sewerage is non-existent. In fact, farms gather human manure along with other dung for crop fertilisation. (Note that yak dung is dried and then burned for heating).

Despite the stone-age dimension to life, there is a lot of technology on show.

Impressive hydroelectric schemes are in place and power has been distributed across the plains to even very small mud huts which get a power meter on the side.

Electricity tower

Where there isn't mains power (and even where there is), there's widespread use of solar power. The efficient evacuated tube hot water system is on every rooftop in Lhasa. Solar electric street lighting is used in villages.

Solar kit

A 10w solar kit including panel, charger, battery and a 12V compact fluorescent lamp sells for about AU$100. We saw these in use in several homes.

House solar

Large solar cookers that look like wide satellite dishes with a cooking pot at the focus. The sell for AU$200.

Solar cooker

Lower tech solar, in the form of simple green houses with plastic over metal spines, are new and popping up everywhere meaning that vegetables are available much more than in the past. (The best thing about traditional Tibetan food is said to be the view).

Amazingly there is almost 100% mobile phone penetration and on several occasions even monks were seen using mobiles, sometimes texting inside temples.

The most common type of shop, even in small villages, is a mobile phone store. Nokia is popular as are fakes (which don't work the same, but are highly functional).

Phones

There are lots of bicycles in a variety of useful configurations for single or multiple passengers and cargo carriage. On the motorised side about half of the scooters are electric and feature a removable battery pack.

Scooter

The streets are full of recharging scooters during the day.

Scooter charging

Being very flat, Lhasa is a great place for cycling but the use of electric powered transport is very popular.

In Lhasa, the medium wave band is almost empty but FM has many stations including one in English that has Chinese lessons as part of the program. On short wave the BBC was easy to hear in the evenings along with deutche velle and one night I did hear a bit of radio Australia recognised by the waltzing Matilda chimes followed by the news theme.

Here's an interesting FM radio we saw in a few shops:

Fm radio

Radios with shortwave are widely available but people I asked didn't seem to be aware of what they might hear.

Radios

Many radios look somewhat retro, including audio cassette players, but in fact they often have the ability to play back from USB storage and have SD card readers.

Radios usb

As in the rest of china, the Internet is filtered but it seems to change day by day. The first time I tried to access my gmail hosted mail the browser bounced to the local baidu search page, but later in the trip this did work ok. I had no trouble using gmail via the exchange interface on iOS. Blogspot, Facebook and other useful domains just give a network error.

Here's a few more of the electric scooters:

Scooter umbrella

Delivering the post:

Post

Batteries are often easily removable:

Battery

Like this:

Battery 2

Many have 48V systems:

Jialing

Zai Zhong Wang:

Zai zhong wang

Notes from a tech traveller

Sorry for the break in transmission, for the past three weeks I've been on the road from Lhasa, Tibet to Kathmandu, Nepal. Most of the time was in Tibet.

Tibet

I'll write soon about the technology seen on the trip but while it's fresh here's some notes on what tech I took and how effective it was.

In general, my bag was too heavy, partially because of the wide range of temperatures (0 degree tent stays to mid 30C humid weather).

Here's the gadget list:

  • Tecsun PL-310 short wave radio
  • iPhone 4
  • iPad 2
  • Kindle DX with 3G
  • Mophie juice pack power station
  • Apple USB charger
  • Ricoh Digital III camera


Aside from the camera, the most used gadget was the PL-310 short wave radio which let me stay in touch with world news via the BBC and to some extent VOA. The BBC belted in each early evening on 17790kHz. The radio reports the strength as 53dbuV/m (with a noise floor of 24dbuV/m).

This radio is very compact, has excellent battery life, and I particularly like the automatic tuning mode which takes about two minutes to scan all of it's short wave bands and store the active frequencies. It would often find 60 stations on a scan.

Amazingly, the Kindle's free data service worked in Tibet (part of China) and as well as buying a few books (including a Lonely Planet) it meant that I could get to my email, although it's pretty slow and painful.

Kindle

The iPad is great on the plane, I read and watched some movies, the flights we took had no personal entertainment system and the "big screen" movies were in Chinese so this was good. During the trip an eInk display, like the Kindle, is more practical for the packing weight.

The Mophie battery pack was good - it's the one with a USB socket, power went out quite frequently in both Tibet and Nepal which have regular "load shedding" power cuts.

Apple's standard iPhone/iPad USB charger is about the most practical USB charger around. I took both Australian and UK mains plugs but even then it was sometimes hard to get a good mains connection to the weird wall sockets available.

Socket

The iPhone worked well as a second camera and the HDR feature was very handy trying to get detail in snow capped mountains and bright clouds. Here's a straight shot:

Normal

And here's the HDR version:

Hdr

Oddly the Telstra SIM didn't find coverage in Nepal but aside from that China Mobile's coverage is amazing throughout Tibet and right up to Everest base camp.

Internet access was pretty patchy. Some internet cafes do not offer WiFi so it was their virus ridden pirated Windows computers or nothing. Where we did get wireless internet it was very slow and unreliable but enough to check that no dramas had arisen at home.

So, for general staying in touch in low tech countries you can't beat a short wave radio even today. Rather than carrying heavy books a tablet reader makes sense in terms of weight.