(Originally published in April 2012)
Back in the late 1980s, I think I might have been the first SSTV software developer to implement the "Martin modes" - after Martin of course. By the way, Martin himself only referred to the modes as "New Modes". The term "Martin modes" was coined by the Robot 1200C owners who installed the upgrade EPROM in their scan converters.
At the time the Martin modes were first aired, I was running my ColourStore 2000 system, using a BBC Micro with a colour framestore to send and receive SSTV. When Jeremy, G3NOX, installed a Martin EPROM in his Robot 1200C, I quickly deciphered the new modes by sampling his SSTV transmissions and proceeded to add the modes to my own system. I remember the clock oscillator in the old BBC micro was not really stable enough to cope with the "free-running" nature of the new modes so I had to calibrate it every few minutes against a more stable 10MHz oscillator that was used as a pixel clock in the framestore. The very similar Scottie modes were added in the same way soon after. If you look at the QST photo on the ColourStore 2000 page you can see that the Garfield picture I received on 6 metres from WA1UQC is sloping (or "slanting", if you prefer). The picture I sent back looks straight, so I guess the Beeb had warmed up enough by then. I think that QSO must have pre-dated the addition of calibration process to my system.
Anyway, I decided a few days ago (April 2012) that I would quite like to try receiving the Martin modes using my sound card-based VB.NET software that I have been using to play with 8-second black-and-white SSTV. The Martin modes are not particularly complicated but timings are critical. The multi-tasking multi-threading environment of a modern Windows PC is not ideal when it comes to accurate timings down to microsecond levels. The sound card sampling clock is quite accurate however, so I decided to try timing all the elements of a Martin mode image in whole numbers of audio samples. As I use a 44.1 KHz sampling rate, that meant providing all the necessary timings in multiples of 22µS. This seemed rather daunting at first, but by playing with the numbers and not sticking rigidly to 320 pixels per line, I eventually got something that looked about right.
Here's an early sample of the image quality. The TX source was a Robot 1200C with Martin 4.6 EPROM:
I'm pretty pleased with that! The image is 646 x 512 and that is the size that is displayed in my test program. One thing I don't like about MMSSTV is the way it shows received pictures in such a small window. Yes, I realise most SSTV images are around 320 x 256 pixels, but an image that size gets a bit lost on a modern high-resolution monitor. In the heyday of the Robot 1200C, most users had 14" RGB monitors (like the classic Philips 8833) and the Robot image at 256 x 256 resolution would fill the screen. Lovely! By the way, the timings of the Robot display circuitry are such that it produces rectangular pixels rather than square ones, so 256 x 256 was displayed at something close to a 4:3 aspect ratio. Anyway, I personally like a bigger picture, so "zooming" the image by a factor of two gives something that I find nicer to look at than the small images of MMSSTV. You can of course zoom received pictures in MMSSTV - or even see them coming in live at the larger size - but I prefer to handle them at the larger size all the time.
I still have a long way to go - I need a VIS detector as yet - but I'm having a lot fun with this SSTV project, the first I've ever done on a PC. More on the Martin mode project in the next few days.
Update April 2015
Since writing that article I have implemented more sophisticated timing methods for SSTV RX and TX and no longer have to time everything in units of 22µS. I would still like to produce a complete SSTV TX and RX program but getting the receive side up to the required standard may require digital signal processing techniques that are currently beyond my understanding. If anyone with a good knowledge of FFT software and Windowed Sinc filters would like to help, please email me at (paul at classicsstv dot com).