Ultrasound data transmission via a laptop

We present a simple example of data transmission using ultrasound, using a standard laptop using gnuradio. We simply make use of the laptops own in-built speaker, along with a cheap microphone.

Gnuradio is an excellent suite of programs, which allows the creation of Software Defined Radios.

The following is the flow diagram we designed using the gnuradio-companion program, which generates the necessary pythoncode for us. We make use of a carrier frequency of 23KHz, which is above the range of human hearing and a sample rate of 48KHz, whichallows us to produce this frequency. We tried PSK and FSK, but found FSK worked most reliably for this, however further research into the best modulation technique is necessary.

We make use of the packet encoder/decoder modules, in order to handle all good stuff like correctly aligning bits to the byte boundary etc.One very important setting you must do is to make sure the gain of the final output, is around 0.5, as if not set to around this, you will get audible output.

Further research:

I’m looking to modify the generated python code, to automatically iterate through a wide range of different potential baud rates and different modulators, in order to find the most effective configuration to use.

me

admin

hendri

hi, i’ve tried gnuradio-companion file, but the wx gui is not showing up? do you know shy? i’m using gnu radio companion 3.7.2.1.

actually i’ve got 2 warning, but have a same message when i execute the companion : “Block key “blocks_ctrlport_monitor_performance” not found when loading category tree”
whether it has the effect of warning?

hendri

I want to try, create ultrasonic like your grc project. i have a question for to ensure me, can we create ultrasonic with frequency more than 23 khz (maybe more than 30khz) using standard speaker (that written have spec: respond in 90 hz – 20 khz)?

admin

February 9, 2014

Potentially you could, but both your soundcard and speaker would have to support that. I know most laptop’s soundcards
only seem to go up to around 48kHz, meaning the max. frequency you could output would be 48/2=24kHz (according to nyquist).

j054n

Hi, I’m trying to test your project, but I have some doubts about how to adapt it using GRC under Win7.
Must I to run two instances in 2 laptops with different TCP addresses?
Must I setup some parameters for audio soundcards?
Must I setup some permissions? I’m obtaining some errors like this:

admin

Luke Kim

I’m interesting in ultrasound voice transmission.
the idea is, transmitter device modulate the voice to 20khz ~ 24khz and play it through speaker, then the recevier device catch it and demodulate the sound and play it.

the theory is make sense i think, but i’m not sure it really works well.
the quick and best way is just code the program and run. but i wonder it can be.

do you think my idea is make sense?
and does it work you think?

admin

Sree_ph

I’m working in a similar project. I tried ur GRC. But it didn’t work.. Is dere any modifications to be done on topblock.py? I am using gnu companion 3.7.4 version. On running no gui options are working. Please Help

Regards

sreena

admin

Thulani

I tried running the same project but it keeps on telling me that the makefile can’t be created and it doesn’t offer me the input screen to enter the required text to be transmitted.
After creating the flowchart using Gnuradio, do I have to write another python code for the capturing screen or it suppose to be generate when I run the flowchart.

admin

wayde

Hi Chris,
great project. ive been trying to get something like this to work for a while, great to finally get a complete grc file. unfortunately i cant get it to work 🙁

i get this error:
opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wx-3.0-osx_cocoa/wx/_core.py:16633: UserWarning: wxPython/wxWidgets release number mismatch
warnings.warn(“wxPython/wxWidgets release number mismatch”)
Using Volk machine: sse4_1_64_orc

also not really sure how i use the TCP source but ill look into that. do you know how i could use a file source instead and send a text file or something.

anyway ill continue my search, thanks very much for the project file im sure it will be a huge help once i get it working!

something probably with the socket and server may be. I wanted to ask you about the over all working of the modules, like how do we send the data as there is no console opening up, do we have to open both flows on each laptop or just transmit side on one and receive side on other, what is the use of tcp sink and tcp source. can you explain these a little

Kailesh

Hi, and am adding up another issue in this project. That is am using GNUradio 3.7.5.
Is it necessary to use only 3.7.2 for this better execution.

And another doubt is in both the laptop(as client and server) the addr we are giving is 127.0.0.1 so is it possible to communicate both the machine, as far as i have installed GNUradio in VMware(Ubuntu) and in another machine as Main booting OS as ubuntu… Kindly clear my doubts.