I was experimenting with sending low resolution images from a remote location over a low bandwidth analog radio connection.
The obvious solution would be to send the image data as some sort of digitally modulated analog signal that is in turn de-modulated in the receiving end and turned into digital image data. One advantage of doing so is that the image data can be compressed reducing bandwidth but since the data integrity of the transmission is not 100% some sort of forward error correction is needed to ensure that all or most of the image can be reconstructed.
All in all this is an involved process so I thought I would try to simply send the images as good old fashioned SSTV.
Using a classic ESP32-cam I wrote some firmware that will convert the image from the camera into a PWM modulated audio signal on a I/O pin (GPIO4). This signal can then be fed more or less directly to the analog input of a radio transmitter.
The firmware is capable of transmitting in either Robot color24 or Martin M1 mode. I started implementing multiple modes but realized that they are all pretty much the same so for now those two modes will do.
I also experimented with using the Adafruit-GFX library to draw OSD messages over the image. In my application the OSD information is better added after reception so I later deleted that functionality.
On the receiving end the audio signal signal can then be fed to one of the many different SSTV receiver programs to be demodulated back into images.
Despite the crude nature of SSTV it works surprisingly well and is pretty robust to noise. I think for remote imaging purposes where simplicity and low cost is important this method is quite feasible.