i-Bot wrote:It seems a shame to wipe out the existing loader, and may make users more cautious to try your new software.
That's fair enough, we're only redoing the bootloaders to allow better stability of flashing over the air, right now loss of data due to wireless interference corrupts the data and the existing bootloader can't always recover from it. By using a packetised upload protocol we can flash the CM-5 and servos over unreliable communications media.
Do you know enough about the download protocol to get a small aplication program into the AX12 ? LPM usually works from an application looking at the bootloader area. This is what I did with the Robonova C3024 and then dumped out the bootloader code to the serial port.
That's exactly what we're planning to do next
To achieve this we either need to reverse engineer the .rom file format (which is very strange) or replicate the flash protocol the CM-5 uses. Due to bus sniffing we do think we've got the latter one but it requires testing, and testing means risking it
Can you share the start of the packet dump of the download ? I assume it starts at 1M to make the jump into the loader, then probably at 57.6K for the loader.
Yes, certainly. However before I share it I want to make sure it's right, and that means replicating its behaviour and understanding the process.
I was going to do this for the Robobuilder controller, but it turns out this uses a standard bootloader product. Also there is no messing around of the data.
Yes, the more we look in detail at the bootloaders the more we wish Robotis had given us the source so we could fix some of the problems. While we could use an industry standard bootloader I haven't yet had a look at any and we've pretty much written one with the app the CM-5 currently runs, converting it to a bootloader is just a case of cutting out some features and optimising for size and stability.
i-Bot wrote:It seems a shame to wipe out the existing loader, and may make users more cautious to try your new software.
That's fair enough, we're only redoing the bootloaders to allow better stability of flashing over the air, right now loss of data due to wireless interference corrupts the data and the existing bootloader can't always recover from it. By using a packetised upload protocol we can flash the CM-5 and servos over unreliable communications media.
Do you know enough about the download protocol to get a small aplication program into the AX12 ? LPM usually works from an application looking at the bootloader area. This is what I did with the Robonova C3024 and then dumped out the bootloader code to the serial port.
That's exactly what we're planning to do next
To achieve this we either need to reverse engineer the .rom file format (which is very strange) or replicate the flash protocol the CM-5 uses. Due to bus sniffing we do think we've got the latter one but it requires testing, and testing means risking it
Can you share the start of the packet dump of the download ? I assume it starts at 1M to make the jump into the loader, then probably at 57.6K for the loader.
Yes, certainly. However before I share it I want to make sure it's right, and that means replicating its behaviour and understanding the process.
I was going to do this for the Robobuilder controller, but it turns out this uses a standard bootloader product. Also there is no messing around of the data.
Yes, the more we look in detail at the bootloaders the more we wish Robotis had given us the source so we could fix some of the problems. While we could use an industry standard bootloader I haven't yet had a look at any and we've pretty much written one with the app the CM-5 currently runs, converting it to a bootloader is just a case of cutting out some features and optimising for size and stability.