Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

HowTO: Import/Export data to Oregon Scientific PDA293/Echo

1 view
Skip to first unread message

Barbara H Wiseman

unread,
Jun 22, 2003, 7:43:23 AM6/22/03
to
We had a problem with a PDA293 which was a replacement for a broken
PDA of the same model. We had a backup of the data from the old PDA
(before it broke) with winlink, but had battled for hours to get the
backup.
The new PDA came with Easy Sync, which seemed to work well and easily,
BUT how to get the data on to Easy Sync or to get Winlink working
again so we could put the data on to the new PDA???
We had almost decided to copy and paste each field in each record from
the .txt files to Easy sync when we came accross this wonderful
article. We had to copy the .mdb file while Easy sync was running,
then had to open it in Access 97 (Access 2000 would have converted it)
and were able to import the comma separated files (TIP make sure that
the data does not contain commas eg between bits of the address). So
now we think we have cracked it so are posting this to thank Andrew
Mayo and incase anyone else has a similar problem.
Nick & Barbara Wiseman

Andrew Mayo (ajm...@my-deja.com)
wrote on
Date: 2002-02-05 06:04:08 PST

Recently I picked up an Oregon Scientific PDA293 (also known as the
Echo) for around GBP35, which is about USD50. Unfortunately the
synchronisation software available for this unit sucks big-time, and
in fact the only synch software I've been able to get running at all
is the Easy Sync product bundled with the unit.

Since I wanted to import and export data from external sources, this
was a big disappointment. Easy Sync is a self-contained package; it
uses an Access database to store information and allows you to upload
and download this to the organiser, but you have to input information
either into the organiser or Easy Sync, there is no facility for
import and export.

Since Easy Sync uses an Access database, it seemed like it would be
quite simple to update the tables from an external application.
However, attempting to open the idtlinkdb.mdb file from within Access
resulted in an 'unsupported database version' error.

I discovered, however, that this is simply an evil trick on the part
of Oregon's programmers. Since they didn't want to break any of their
partner vendor ricebowls, they deliberately crippled Easy Sync to
prevent anybody importing or exporting data to it from external
sources. To ensure that you didn't update the database tables
yourself, the software writes a couple of invalid bytes to the .mdb
file when it closes. It then rewrites these to the correct value when
you run it. You can see this by copying the .mdb while Easy Sync isn't
running, then start it up and use fc /b to look at the differences.

But because Easy Sync has to correct the database file values before
it can open it, you can update the database tables by opening the .mdb
file while Easy Sync is running. Then close Easy Sync, re-run it and
the data will be there ready for downloading to the PDA. Or you can
use the same trick to extract uploaded PDA data and export it to
another application.

(of course you could also write a little utility to patch the .mdb
file, but this is simpler)

Here is a snippet of VB code that deletes all rows from the telephone
book and then inserts a whole bunch of random gunge, just to prove
that things work.

Dim c As New ADODB.Connection
Dim rs As New Recordset
Dim i As Long
c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=e:\program files\oregon scientific pda293\easy-sync for
pda293\idtlinkdb.mdb;"
c.Open
Set rs.ActiveConnection = c
rs.Open "delete from telephone"
rs.Open "telephone", , adOpenDynamic, adLockPessimistic

For i = 1 To 300
rs.AddNew
With rs
.Fields("name") = "N" & Int(Rnd(1) * 1000000)
.Fields("phoneno") = Int(Rnd(1) * 1000000)
.Fields("homeaddress") = "A" & Int(Rnd(1) * 1000000)
.Fields("companyname") = "C" & Int(Rnd(1) * 1000000)
.Fields("companyphoneno") = "CP" & Int(Rnd(1) * 1000000)
.Fields("companyaddress") = "CA" & Int(Rnd(1) * 1000000)
.Fields("faxno") = "F" & Int(Rnd(1) * 1000000)
.Fields("emailaddress") = "E" & Int(Rnd(1) * 1000000)
.Fields("mobilephoneno") = "M" & Int(Rnd(1) * 1000000)
.Fields("companyposition") = "CN" & Int(Rnd(1) * 1000000)
.Fields("birthday") = "B" & Int(Rnd(1) * 1000000)
.Fields("userdefined") = "U" & Int(Rnd(1) * 1000000)
.Fields("machineid") = 5266
.Fields("type") = 141
.Fields("status") = 1
.Fields("ischecked") = 1
End With
rs.Update
Next i
rs.Close
c.Close
MsgBox "done"

Note that this code needs to be run with Easy Sync up and running.
Then close Easy Sync and re-enter it. The data will now be displayed
and you can download it to the PDA.

The remaining data types such as notebook entries etc. are contained
in tables with identical layouts. You must set the machineid, type,
status and ischecked columns. I just copied the values that were
already in rows added manually through Easy Sync. There is also a
numeric row id which I did not bother setting; the download appears to
work without it.

A couple of other points:-

Firstly, there have been some posters asking about the data protocol
which the PDA uses to communicate with the PC. I used the "portmon"
utility (www.sysinternals.com) to snoop on the dialogue during a sync
operation. The protocol is quite complex and involves sequenced
response packets and checksums. I doubt that Oregon make this
information public and although I could see that disassembling it was
possible, and made some headway, the work required to implement the
protocol was quite considerable and subverting Easy Sync is a *lot*
simpler if you want to get data in and out of the unit. Unless you're
using Linux, in which case I guess you're up for a fair bit of work.
(I do have quite a bit of information gleaned so far on how it works
(email ajm...@kohuconsulting.com), to which you are most welcome; I am
a great Linux advocate and encourage any such efforts).

Secondly, the PDA's memory allocation scheme is fairly basic. Each
type of entry, e.g phonebook, notepad, etc, is assumed to occupy
around 200 bytes. Thus you can have around 2,500 total entries of any
kind, regardless of the length of each entry. Thus, although the unit
has 512K of memory, unless you create quite lengthy phonebook entries
you'll probably end up wasting most of the available memory, which is
a shame. Still, it was only cheap and does the job quite adequately.

Finally Easy Sync may not work properly if other software is also
using the serial port. It may be necessary to reboot after using other
software, because Easy Sync doesn't appear to configure the port
fully. In particular, if Easy Sync won't work, check that the port
settings in Device Manager include XON/XOFF flow control. Then reboot.
This should fix the problem.

You may wonder why on earth I persevered with this, rather than
getting my money back. The reason is that as far as I know, the PDA293
is the only credit-card sized PDA with stylus entry, there's no
alternative, so if this is what you want, you have to fight the
wretched software that comes with it. And don't bother with the
separately downloadable Windows Link software. I have spent hours
trying to get that to work with complete lack of success. It will not
synchronise with the PDA and reports all kind of data errors. Oregon's
tech support told me to try the latest software after I'd already made
it clear I was already running the latest software, so I don't imagine
I'll get any help from them.

0 new messages