On the videos you’ve maybe seen that my tool shows the bursts in some plot window. I used GDI for drawing the lines… damn this is soooo slooow…
Today i decided to switch to DirectX drawing for speedup. Ater some hours of playing around, I found out how to draw a plot easily. (using DrawUserPrimitives with LineStrip vertices)
The graph is reeeeaally fast now (displaying bursts in realtime) with just about 5% of CPU load. kewl :)
But the DirectX assemblies Microsoft provides seem to work only with x86.. oouch. So I looked for some solution and found SlimDX which is a managed DirectX library. Using this library I can now run my tools in x64 mode again.
How much faster my tool is in x64 mode?
Hm I think about 0.001% up to 0.002%… But hey, running 64 bit code is much cooler :)
I uploaded two dumps generated with my GSM Analyzer:
- Dump 1 contains ~15 min dump without “SYSTEM INFORMATION” or “PAGING REQUEST” messages except those with an IMSI
- Dump 2 contains just a few seconds with everything and is really ugly to read for this reason
okay, i didnt post very often in the last time – sorry for that ;)
but here some new screenshots showing my java-tool decoding the police radio frequency.
On the right side you see the connected processing modules like a squelch filter based on FFT, some AM/FM demodulator, a FIR filter to remove unwanted noise and a sound output and WAV writer to record the demodulated audio into a WAV or MP3-file.
On the left side, there’s the control panel for that USB receiver. There i can set the frequency, filter width and some AGC parameters. It also allows scanning more frequencies and stopping at one, as long it has a strong signal level. (you perhaps know this function from some police radio scanners)
Shows a simple FFT of some police radio signals IIRC.
This image shows a graphical editor for the open source tool GNURadio. Its similar to the tool i built, but just has 20 times more functionality ;)
On that image i built a stereo FM decoder (its not that easy!) which reads from a file and outputs the signal to the sound device.
After some screens like this one:
I was able to make a GNURadio “node” which reads from my shared mem areas (using my DLL). That means, i was able to integrate GNURadio (e.g. the FM Stereo decoder) into a running instance of my ShmemManager and had a live stereo radio.
So instead of the File Source node in GNURadio i had a SHMEM Source. Changing the radio frequency in my Java tool immediately (well…. with 2 sec delay… ;) ) gave me the new radio station on the soundcard.
In fact some very cool stuff. But that stuff wont be released, since it only useful if you have that USB receiver a friend built. Sorry for that ;)
here some screenshot of the device in action:
i didnt post much lately.
this is because im working on a little project for a Cypress CY7C68013A. thats a USB2.0 chip with a 8051 microcontroller for setup and firmware.
really an interesting project :)
won’t tell you exactly what its for, but its used to stream RF radio data with speeds up to 32MB/s to a Win32 program used for recoring and decoding etc.
i’m using Microsoft Visual C++ together with SDCC (Small Devices C Compiler) to compile the firmware for the Cypress chip. the used Win32 driver is the standard Cypress driver for those chips, but interfaced with a DLL i wrote.
i’m using shared memory for distributing data to one or more applications which may preprocess the data stream they get. they redistribute it again over shared memory areas. made also TCP Client/Server tools so that whole thing works via network too.
that project looks quite mature now.
at least everything is working as intended ;)