Here is a sound track I
recorded using my MC60 so that you can use it to test the programs and see that
you are doing everything well. First you have to fix it using my script:
Linux prompt>./fixmc60wav.csh soundtrack.wav
and then decode it using my program with a command line like this (output
also included):
Linux prompt>sox fixed_soundtrack.wav -t dat - | ./soundtrack -t 1 -c 55
-m z
Bad or no peak duration parameter, using default: 1
Bad or no stop
duration parameter, using default: 500
Reading track 1
Bad or no threshold
level parameter, using data...
Noise max./mean/rms amplitude:
0.002/-0.000/0.000
Threshold: 0.003
Recognition error of bit 697,
stopping.
Swipe time: 0.553 s
Data max./mean/rms amplitude:
0.111/-0.000/0.022
Bits: 696, individual duration: 0.795 ms
Start sentinel
found
%RUEDA, J?
End sentinel found
LRC OK.
Improvements
I know the process described above is somewhat complicated and tedious, but
what did you expect for free? :-) It is very unpleasant to record stripes with
the mobile and later to have to transfer them to a PC with Windows and then
reboot in Linux (or transfer to a second PC with Linux) to decode data. Then you
can realize that some tracks were not correctly recorded and that you have to
swipe them again, but you may no longer have the chance; so I advise to record
more than one swipe per track.
To overcome these caveats I considered the possibility of writing a program
to record and decode the tracks, all in one, within the mobile itself, taking
advantage of the MC60 Java feature. You can download for free the Siemens Mobility Toolkit
(free registration is required) and the Java
Software Development Kit for Windows required by the Siemens kit. When I had
a look I realized that the Siemens Java API is rather primitive and limited.
There is no API to capture sound from the microphone, so you must use the "New
ring tone" capture option anyway. Then you should execute the application that
loads and decodes the sound file. But even that is difficult because the MC60
uses the MIDP 1.0 API which lacks the float type!
Even given these restrictions, maybe in the near future I'll try to develop
a program to decode tracks within the mobile, so that you can avoid the transfer
to a PC and see in real time if the track was successfully read (this have the
additional advantage of having to store less data, so that the autonomy is
enlarged considerably), but you'll have to wait, so check this page every now
and then (not too often, I'm a very busy man! ;-).
Yet there is another possibility, though even more complicated. You can
attach an standard serial port magnetic stripe reader (or a non standard
reader)to the mobile serial port (interface
adapter will be required) and read data with a custom application. However I
find this option less useful due to power considerations. If you want to avoid
an external power supply (surely desired because you are looking for something
portable), no much devices are available which might be powered from own (or
mobile itself) battery, nevertheless a very small power consumption device might
be designed for that purpose. It's up to you!
padilla@gae.ucm.es
(30-Aug-2004) My PGP public
key.This link:
http://www.gae.ucm.es/~padilla/extrawork/mobilesoundtrack.html

Go to the parent page: Magnetic stripe reader.