Open ELD400 opened 1 month ago
Thanks for the info!
Looks like jdmtool detects your card as a 4MB card. I made a fix here; could you try it?
You can either check it out using git
yourself and switch to the 8mb
branch, or install it like this:
pip3 install "git+https://github.com/dimaryaz/jdmtool.git@8mb#egg=jdmtool"
I am only guessing at the card's memory layout, so there's a possibility that it won't work correctly. If it doesn't work, try the 8mb-2
branch:
pip3 install "git+https://github.com/dimaryaz/jdmtool.git@8mb-2#egg=jdmtool"
8mb branch read only 4mb
Latutude:~$ #8mb Latutude:~$ jdmtool detect Found device: Bus 005 Device 008: ID 0e39:1250 Firmware version: 20071203 Card inserted: IID: 0x0100ad00 Unknown identifier: 0x31000100 Latutude:~$ jdmtool read-metadata Found device: Bus 005 Device 008: ID 0e39:1250 Detected data card: 8MB non-WAAS Database metadata: Latutude:~$ jdmtool read-database test1.bin Found device: Bus 005 Device 008: ID 0e39:1250 Detected data card: 8MB non-WAAS Reading the database: 48%|██████████████████████████▌ | 3.99M/8.39M [00:46<00:51, 86.3kB/s] Truncating the file... Done Latutude:~$ jdmtool write-database test1.bin Found device: Bus 005 Device 008: ID 0e39:1250 Detected data card: 8MB non-WAAS Transfer test1.bin to the data card? (y/n) y Erasing the database: 100%|████████████████████████████████████████████████████████| 4.06M/4.06M [01:04<00:00, 63.0kB/s] Writing the database: 100%|████████████████████████████████████████████████████████| 4.00M/4.00M [01:43<00:00, 38.5kB/s] Verifying the database: 100%|██████████████████████████████████████████████████████| 4.00M/4.00M [00:46<00:00, 85.6kB/s] Done
Latitude~$ #8mb-2 Latitude~$ jdmtool detect Found device: Bus 005 Device 002: ID 0e39:1250 Firmware version: 20071203 Card inserted: IID: 0x0100ad00 Unknown identifier: 0x31000100 Latitude~$ jdmtool read-metadata Found device: Bus 005 Device 002: ID 0e39:1250 Detected data card: 8MB non-WAAS Database metadata: Latitude~$ jdmtool read-database test2.bin Found device: Bus 005 Device 003: ID 0e39:1250 Detected data card: 8MB non-WAAS Reading the database: 73%|█████████████████████▊ | 6.08M/8.39M [01:11<00:26, 85.5kB/s] Truncating the file... Done Latitude~$ jdmtool write-database test2.bin Found device: Bus 005 Device 004: ID 0e39:1250 Detected data card: 8MB non-WAAS Transfer test2.bin to the data card? (y/n) y Erasing the database: 100%|██████████████████████████████| 6.16M/6.16M [01:37<00:00, 62.9kB/s] Writing the database: 100%|██████████████████████████████| 6.09M/6.09M [02:36<00:00, 39.0kB/s] Verifying the database: 100%|████████████████████████████| 6.09M/6.09M [01:11<00:00, 85.6kB/s] Done Latitude~$
Interesting! Ok, it looks like 8mb-2
works correctly.
There's a chance that 8mb
also worked, but the existing database on the card was exactly 4MB - but that definitely looks suspicious. Could you try writing a greater-than-4MB file using the 8mb
branch, and see if it fails? That would give me more confidence that 8mb-2
is the answer.
My file make 4442137 oct
I have make some tests with 7M file, Finally it's this layout MEMORY_LAYOUT_8MB = [0, 2, 4, 6]
I have make test with merge garmin_databases, files are on issue "https://github.com/dimaryaz/jdmtool/issues/19 (Some fix to work with GarminProgrammingDevice on garmin_databases branch)
8M-2
D630:~$ pipx install "git+https://github.com/dimaryaz/jdmtool.git@8mb-2#egg=jdmtool" --force Installing to existing venv 'jdmtool' installed package jdmtool 0.3.2, installed using Python 3.12.3 These apps are now globally available
D630:~$ jdmtool detect Found a Skybound device at Bus 003 Device 047: ID 0e39:1250 Firmware version: 20071203 Detected data card: 8MB non-WAAS, IID: 0x0100ad00, unknown: 0x1f003100 Card inserted: 8MB non-WAAS
D630:~$ jdmtool read-database read2410AMRN.BIN Found device: Bus 003 Device 033: ID 0e39:1250 Detected data card: 8MB non-WAAS Reading the database: 100%|████████████████████████████████████████████████████████| 8.39M/8.39M [01:37<00:00, 86.4kB/s] Truncating the file... Done D630:~$ jdmtool read-database read2410AMRN.BIN Found device: Bus 003 Device 034: ID 0e39:1250 Detected data card: 8MB non-WAAS Reading the database: 73%|████████████████████████████████████████▌ | 6.08M/8.39M [01:10<00:26, 86.3kB/s] Truncating the file... Done
D630:~$ ls -l j500a-amrn-2410.awp -rwxr-xr-x 1 eld eld 7178444 sept. 20 16:25 j500a-amrn-2410.awp
D630:~$ jdmtool extract-awp j500a-amrn-2410.awp 2410AMRN.BIN Unknown: b'd\x00\x02\x00\x00\x00Dd\x00\x1b\x00\x00\x00A\xc8\x00' Unknown: ['SQA', 'Jul 19 2001', '13:33:03'] Unknown: b'F\x90\x01i' Year: 24 Month: 10 Avionics: 'GNS 430W/530W' Coverage: 'Americas-North Garmin Navigation Database' Size of the remaining content: 7178300 Unknown: b'RKpGr' Unknown: b'd\x00\x02\x00\x00\x00Dd\x00\x1b\x00\x00\x00A\xc8\x00' Unknown: ['SQA', 'Oct 25 1999', '14:16:13'] Size of the remaining content: 7178250 Unknown: b'R\x04\x00\x00\x00\x00\x00' Database size: 7178240 Database is not block-aligned! Writing database... Done Unknown: b'' D630:~$
D630:~$ jdmtool write-database 2410AMRN.BIN
Found device: Bus 003 Device 035: ID 0e39:1250
Detected data card: 8MB non-WAAS
Transfer 2410AMRN.BIN to the data card? (y/n) y
Erasing the database: 100%|████████████████████████████████████████████████████████| 7.27M/7.27M [01:55<00:00, 63.0kB/s]
Writing the database: 29%|████████████████▎ | 2.10M/7.21M [00:56<02:18, 37.0kB/s]
Traceback (most recent call last):
File "/home/eld/.local/bin/jdmtool", line 8, in
8M ttps://github.com/dimaryaz/jdmtool.git@8mb#egg=jdmtool" --force Installing to existing venv 'jdmtool' installed package jdmtool 0.3.2, installed using Python 3.12.3 These apps are now globally available
D630:~$ jdmtool detect Found a Skybound device at Bus 003 Device 047: ID 0e39:1250 Firmware version: 20071203 Detected data card: 8MB non-WAAS, IID: 0x0100ad00, unknown: 0x1f003100 Card inserted: 8MB non-WAAS
D630:~$ jdmtool write-database 2410AMRN.BIN Found device: Bus 003 Device 038: ID 0e39:1250 Detected data card: 8MB non-WAAS Transfer 2410AMRN.BIN to the data card? (y/n) y Erasing the database: 100%|████████████████████████████████████████████████████████| 7.27M/7.27M [01:55<00:00, 63.0kB/s] Writing the database: 100%|████████████████████████████████████████████████████████| 7.21M/7.21M [03:14<00:00, 37.1kB/s] Verifying the database: 100%|██████████████████████████████████████████████████████| 7.21M/7.21M [01:23<00:00, 86.4kB/s] Done
D630:~$ jdmtool read-database read2410AMRN.BIN Found device: Bus 003 Device 038: ID 0e39:1250 Detected data card: 8MB non-WAAS Reading the database: 86%|███████████████████████████████████████████████▉ | 7.18M/8.39M [01:23<00:13, 86.4kB/s] Truncating the file... Done D630:~$
Thanks for the info! And sorry for the delay.
There is one more thing here I will need to solve - detecting 4MB vs 8MB cards - because it looks like they have the same IID. I am trying to figure out the meaning of the "unknown" identifier.
There is one more thing here I will need to solve - detecting 4MB vs 8MB cards<
Or 4MB is 8MB card :-)
on jdm program you can go to jdm menu, open device list, on device list window, below Skybound G2: , click on 8MB or other size you can see what jdm see for type of memory and see type of chip on card : here for my 8MB jdm display : "G2 firmware v:20071203 isG2Orange: 0 Card:441: 8 MB AMD Series C/D (2 MB x 4) JDA version:1.0.0.6 IID:0x100AD00 isOrangeCard: 0"
here when I open my memory case, 4 memory chips AMD "29F016D-120E4C".
On datasheet : AM29F016D.PDF
AM29F016D-120E4C : 16 Megabit (2 M x 8-Bit) CMOS 5.0 Volt-only, Uniform Sector Flash Memory from "AMD"
On my 8MB card I have 4 chips x 2MB = 8MB
Maybe you can find on datasheet or in jdm device list, information to correlate your "unknown" identifier or on data from jdm device list and/or compare with same information on 4MB datacard.
you will be scared when you know the price of 4 chips compared to the price of garmin card
Or 4MB is 8MB card :-)
Well, I don't have a 4MB card myself - I only got the info from another user who reported a bug. Who knows, maybe it's sold as 4MB, but it's all the same hardware inside.
On datasheet : AM29F016D.PDF
Oh wow, I didn't realize all of this info was available!
Maybe you can find on datasheet or in jdm device list, information to correlate your "unknown" identifier or on data from jdm device list and/or compare with same information on 4MB datacard.
My plan was to use a debugger to spoof the ID that JDM reads from the device: change different bits, and see how it appears in the UI. It should be doable - just haven't had time to actually try it.
you will be scared when you know the price of 4 chips compared to the price of garmin card
Ha, I'm curious to know... (Not that I'm surprised that the data cards are extremely overpriced.)
Well, I don't have a 4MB card myself - I only got the info from another user who reported a bug. Who knows, maybe it's sold as 4MB, but it's all the same hardware inside.
maybe 2 chips only on 4MB, on 8MB 4 chips.
you will be scared when you know the price of 4 chips compared to the price of garmin card
Ha, I'm curious to know... (Not that I'm surprised that the data cards are extremely overpriced.)
$2.6 by chip :-)
Info from Jeppesen application et jdmtool
8 MB green jdm : G2 firmware v:20071203 isG2Orange: 0 Card:441: 8 MB AMD Series C/D (2 MB x 4) JDA version:1.0.0.6 IID:0x100AD00 isOrangeCard: 0
jdmtool : IID: 0x0100ad00 unknow identifier: 0x31000100
8 MB green jdm : G2 firmware v:20071203 isG2Orange: 0 Card:441: 8 MB AMD Series C/D (2 MB x 4) JDA version:1.0.0.6 IID:0x100AD00 isOrangeCard: 0
jdmtool : IID: 0x0100ad00 unknow identifier: 0x3500b000
16MB WASS GREY jdm : G2 firmware v:20071203 isG2Orange: 0 Card:451: 16 MB AMD Series C/D (4 MB x 4) JDA version:1.0.0.6 IID:0x1004100 isOrangeCard: 0 jdmtool : IID: 0x01004100 unknow identifier: 0x3C009000
TERRAIN IID: 0x90009000 unknow identifier: 0x90009000