Why doesn't Netosprog work with a remote device with the /ip= parameter

I have been using Netosprog to program out test units and production units (v7.5) and have noticed once we have shipped some product that when the devices are no longer on our network we cannot get them to program without having a local Digi connected and visible. We use the /upload /ip=x.x.x.x for the remote ip but the Netosprog seems to still want to go through the discovery steps and will not program the unit if a local unit is not found. When the local unit is found then it uses the ip address specified and does program the remote unit. So when we need to update units in the field we need to make sure there is one turned on locally in order to do so. It seems that if the /ip parameter is specified then it shouldn’t be looking for a device locally. Has there been an update to the netosprog that I am unaware of? I am using v1.3.15.0

When it comes back have you verified that the mac address still the same? What is the device you are using?
What are the parameters you are passing?
examples:
netosprog /set /mac=00409d254074 /ip=192.168.1.1 /subnet=255.255.255.0 /gateway=192.168.1.200
Assigns a static IP address to the device with 00:40:9D:25:40:74 as its MAC address.

netosprog /set /mac=auto /ip=dhcp
Enables DHCP on the first detected device.

/ip={IP address}
The current IP address of the device. Required only if the MAC address parameter is not used.

C:
etos75\bin>netosprog /upload /ip=10.100.1.207 /firmware=image.bin /username=root /password=xxxx

Just trying to upload new firmware to the remote ip. We do not use the MAC address since the program showed the ip can be specified and since these are on a remote cellular network there is no way for it to probe the MAC address using the broadcast/find protocol.

Hello what is the error you are getting when trying to update. Do you get an error like the one below?
C:
etos75\bin>netosprog.exe /upload /ip=10.52.19.156 /firmware=image.bin /username=root /password=password

NET+OS Programmer
Version 1.3.15.0
Copyright 2004-2009 Digi International Inc

Searching for devices. Please wait…

Locate device (auto): SUCCESS
Uploading firmware…
Failed to open FTP session with error 12029

C:
etos75\bin>

No, we are getting a Device not found, that is the issue. Netosprog appears to be ignoring the /ip= parameter on the /firmware command and searches for the device locally and then and only if it finds any device on the network it will go ahead and use the /ip specified to program the correct device. When the /ip is specified it should skip the auto search and just use the ip we want to upload to. The auto search only returns devices on our network so when we want to program a remote device we have to have a local device on the network to just trick it out so it will program ours. This I think is the bug Netosprog has and should be fixed.

The first example is my trying to program a bogus ip address and it auto finds one on another ip then because of that it tries to connect via ftp to the one specified on the /ip= (which will fail because I don’t want to program it).

The second example is what happens with the same command but with the local test device unplugged. It does not even attempt to program the one specified by the ip parameter.

C:
etos75\bin>netosprog /upload /ip=10.100.1.99 /firmware=image.bin /username=r
oot /password=password

NET+OS Programmer
Version 1.3.15.0
Copyright 2004-2009 Digi International Inc

Searching for devices. Please wait…

Locate device (auto): SUCCESS
Uploading firmware…
Failed to open FTP session with error 12002

C:
etos75\bin>netosprog /upload /ip=10.100.1.99 /firmware=image.bin /username=r
oot /password=password


With the local device disconnected, does not attempt to program the device specified:

NET+OS Programmer
Version 1.3.15.0
Copyright 2004-2009 Digi International Inc

Searching for devices. Please wait…

Locate device (auto): Searching for devices. Please wait…

Locate device (auto): FAILED
ERROR: Device not found.

According to the Netosprog help when specifying /firmware you can specify the device to program using /ip=