Saturday, October 02, 2004
Til now, I have been working exclusively with the JTAG module that came with the Development Kit. The first time I tried loading code into a non-JTAG module, I found out two things:
1. The hardware had changed, there were now two versions of the ConnectMe in circulation and both were different from the one on my development board. More about this detail below.
2. The standard ConnectMe firmware has no FTP service. You are supposed to load new code into those devices via a web page. I could not make that work, and had to get a special command line tool from Digi. This wrinkle is explored in another post.
I am still confused about the evolution of this situation. Here's what I think I know. Before summer 2004, all ConnectMe modules were alike. The NetOS development kit through rev. D works with this hardware and this hardware alone. Call this the Old platform.
Sometime in the summer of 2004, Digi seems to have done a few things:
1. Updated the chipset's physical layer (PHY) and selected a different Flash chip, creating a new hardware platform.
2. Defined new conventions for usage of the Flash segments, as in which are locked, etc. For example, in the new scheme, the bootloader Flash is no longer locked (some say). NetOS development kit rev. E works exclusively with this new platform. You cannot create apps for the Old platform with the new development kit.
3. Defined a new part number for a totally blank ConnectMe using the new hardware and new development kit: DC-ME-01T-C where the C stands for Customizable.
4. Defined another new part number for a ConnectMe module containing a port of their original standard firmware: DC-ME-01T-S where the S stands for Standard as in Standard Plug-and-Play firmware.
5. DC-ME-01T-S uses the OLD convention for flash segment usage, and has "some segments" locked (I think that means the Boot Loader flash, but at least one person has told me that's unlocked even in the S module). The upshot is that you CANNOT create apps for the S module using the standard development kit, and you CANNOT make the S module look like a C module by wiping it clean.
6. Digi then released a development kit supplement called the Legacy Support Kit (LSK), which you could patch over your rev-E-or-better development kit and gain the ability to write apps for the S module. Despite the name Legacy, it is really for S modules and not for the Old modules as defined above.
This is all bad, but can be handled if you know it. For some reason, though, Digi seemed to be doing everything possible to keep me from finding out. I had to hit a roadblock (can't load code), try to get past it (am I doing something wrong), exhaust all possibilities (cripes it's 2 AM), send a message explaining myself (%!$#@), negotiate with them that I have already exhausted all possibilities, and then, finally, get an answer that let me progress to the next problem. I am not kidding, this went on for days. I actually had to diff the BSP source between LSK and non-LSK development kits to get to the bottom of it. When I presented my observations to tech support for verification, they said, yeah, that's what we told you last week, what's the big deal?
I ended up with three development trees on my disk:
Rev D for the Old modules
Rev E for the C modules
Rev E plus LSK for the S modules (not the Old ones despite the fact that the L in LSK stands for Legacy)
Whew - blew off a little steam there. Let me say once again that the Digi tech support folks are very professional and always helped me as much as they could - once I asked the right question. We just didn't seem to be approaching things from the same direction.
Copyright (c) 2004 Larry Martin. All Rights reserved.
The difference between the -S and -C ME modules is as follows:
ME -S module:
- Programmed with Digi BOOT, POST and EOS (embedded operating system).
- Flash sectors 0-3 (boot) are write protected.
ME -C module:
- Programmed with standard NetSilicon boot loader and customized version
of naftpapp application.
- The entire flash is left unlocked.
Otherwise the hardware itself is identical.