I'm looking to transmit some data (CSV files) from a measurement instrument underground to a receiver on the surface. I've learned that in order to penetrate the limestone, low frequencies have to be used (around 80-130kHz). There are various methods to achieve this including ground-spike antennas that use the earth between two electrodes to help form a large antenna by injecting current into it, and magentic loop antenna pairs that essentially work as an inductor by transmitting and receiving the magnetic (H) component of the RF transmission rather than the low power E field component.

With that put aside, I've noticed that there aren't any existing RF modules that transmit at these frequencies. Because of that I've considered the posibility of directly synthesising a modulated signal using an Arduino (UNO or Nano). As far as I understand it I need a direct digital synthesis (DDS) IC to generate a reference frequency. From there I understand the Arduino can be used to calculate a waveform that simulates the modulation of that carrier in the mentioned frequency range. I've identified that on-off keying (OOK) would be a suitable modulation method due to its simplicity and resistance to noise.

This is where I need some help. How do I take a CSV file, use its contents to OOK modulate a carrier wave and then directly synthesise this waveform using Arduino? Are there libraries that already exist to enable this? If so, how would I use them? I don't have extensive programming knowledge so I'd appreciate any help I can get.

  • I've noticed that there aren't any existing RF modules that transmit at these frequencies. -- because of licensing. You're not allowed to in most places unless you have that frequency band allocated to you by the regulatory body for your area.
    – Majenko
    Feb 28 at 15:13
  • what hardware are you using? ... a library is useless if you have nothing for the library to control
    – jsotola
    Feb 28 at 15:14
  • You can just use raw Serial data for OOK control - that way it does all the start/stop framing for you.
    – Majenko
    Feb 28 at 15:16
  • @Majenko how can I do this? Do I mix the serial data with the carrier by analogue means at the output? Or am I missing some theory an experienced Arduino user has?
    – K. Millar
    Feb 28 at 16:14
  • Serial will give you a digital on/off signal. Use that as the data input to your modulator circuit.
    – Majenko
    Feb 28 at 16:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.