[ARMada] small updates

there are small updates to ARMada. let me cite the SVN log:

Revision: 3585
Author: geggo
Date: 19:55:28, Mittwoch, 19. August 2009
fixed parameter limit check for ADD SP, val operation
Modified : /trunk/nokia/ARMada/compiler.c

Revision: 3579
Author: geggo
Date: 19:29:51, Mittwoch, 19. August 2009
fixed ADDSP, ADDPC, SUBPC descriptions to match new ADD/SUB type opcode
fixed ADD Rn, SP, val opcode
fixed .code description
Modified : /trunk/nokia/ARMada/ARM_Compiler.aps
Modified : /trunk/nokia/ARMada/ARM_Compiler.rc
Modified : /trunk/nokia/ARMada/ARM_Compiler.vcproj
Modified : /trunk/nokia/ARMada/code.c
Modified : /trunk/nokia/ARMada/code.h
Modified : /trunk/nokia/ARMada/compiler.c

[GSM] New FFT Visualizer Component

This time I built a new FFT Visualizer Component.
It’s a split “FFT Plot”+”Waterfall” view, which has the “FFT Plot” in the top and the waterfall in the bottom half.

In the video (watch fullscreen in HD mode) you cannot see the dB markers very clearly.
These are on the left and the right border of the “FFT Plot” (top part) and labelled in 50dB steps.

The “Waterfall” has a configurable upper and lower dB limit (changed with mouse wheel, see lower left corner).
Values above the upper limit are drawn cyan, those with a dB value lower than the lower limit are drawn black.
The values between are colored with a color between.

Here a video of that component:

[GSM] Code updates

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

[GSM] GSM Analyzer

As described in earlier blog posts, I coded a driver for an USB radio receiver which is comparable to USRP. So I’m able to “record” radio data and save it, or process it on-the-fly with some tools.

GSM Analyzer is a C# tool that demodulates and decodes the GMSK signal which GSM uses. Furthermore it decodes the L3 (Layer 3 Protocol) messages sent in the broadcast channel (BCCH). This means, I’m able to “tune in” into some GSM radio channel and sniff the packets which the base station (BTS) is sending. Usually thats just really public information like the provider ID, information about the network and such things. Nothing interesting.

People who know the nokia net monitor would just look up that in the phones menu…
I “just” select some radio frequency and look that up there using my tool ;)

That project is really just for fun. Some people call me crazy. No idea why they do that. Thats really not hard to decode. And it has nothing useful yet. Okay… if I’m able to decrypt the A5 crypted SDCCH/TCH traffic, that whole story really would get interesing. But thats still pure theory yet.

Maybe I will describe that stuff more in the near future. Maybe I will release the source code. Maybe I won’t :)

See the project page for some videos. (the text is the same, except for the video description)

[.NETrilo] another test release

i was so anxious to make .NETrilo usable so i spent another day implementing stuff.

today i implemented a DirectSound plugin (“snd_DirectX.dll”) that supports just playback for now. recording still has to be done, but that has to wait until i start the “input” stuff. (i.e. “inp_DirectX.dll”)

i also implemented GSM decoding. i used a version of the GSM codec that was ported to java and ported that to C#…
it performs very well… but the processor usages unbelieveable high :-/ (10 times more than the native client)

not sure, but i should make extra modules for the codecs. so i’m able to use different licenses for each module and we are able to use faster native libs for the standard platforms (win32/linux) and .NET versions of the codecs for others.

someone wants to help? :-/