So, I've taken a look at the Harmony 700 logs, and overall it looks basically similar to other remotes. However, there are definitely some differences that will take some work.
To decode some more, it'd be useful if we could capture a complete trace of the HTTP traffic between Logitech's software and their web-server, and also the download files that it pushes to the client to execute. You'd have to install some kind of network sniffer (e.g. wireshark) to capture the former. To capture the download files, you'd need to use a web-browser to access http://members.harmonyremote.com/, and force the browser to save the files instead of automatically opening them with the Logitech software (there should be a separate file for identifying the remote, updating configuration, updating firmware). There are some fields in the HTTP responses that libconcord generates that need to be tallied back to fields in the GET_VERSION response, and flash/eeprom/... reads. That's why we need the HTTP dump (note: this dump will include your Harmony user ID and password). Also, since the 700 firmware updates appears to have two separate regions, we'd need to take a look at the config file that the website pushes (may also include your user ID/password) to work out how to extract the two sections of firmware. As far as supporting the 700: a) We could probably force any GET_VERSION response with length 8 to be the 700 for now. b) We need to add new entry points to libconcord for pre-/post- configuration update to send the new "restart config" commands. c) We need to somehow expand the firmware APIs to be able to erase and program two separate sections. Perhaps the remote will work OK if we erase both sections then program both sections. That would allow this to be implemented without any API changes by hiding more complex blobs behind the APIs (list of data blobs instead of a single data blob). However, if the order *has* to be erase, write, erase, write, then we'd need to modify the libconcord API to allow the client application to specifically iterate through the sections that need to be programmed. (I wonder if I should get a 700 from eBay/Amazon; this will probably need some iterative tweaking to get it working) I include some notes on the protocol comparisons against an 880 below: Harmony 700 GET_VERSION response 28 GET_VERSION response, length 8 25 Firmware version 2.5 (Region 2 version) 00 ?? Board version <<0.0>>.0 1C HW version 0x15:1c 15 HW version 0x15:1c E0 ?? 42 ?? 0C ?? 23 Region 0 or 1 version 2.3?? Harmony 880 GET_VERSION response 27 GET_VERSION response, length 7 40 Firmware version 4.0 18 HW version 1.8 49 Flash ID 01 Flash manufacturer 80 Architecture 8, fw_type 0 0F Skin 08 Protocol Harmony 700 Update Config Write Restart Config 02 02 ***** NEW; no command here on 880 A3 0A 09 00 Write Restart Config 05 00 ***** NEW; no command here on 880 A3 0A 05 00 Write Invalidate Flash Erase Flash 030000..100000 Write Flash 030000..end Erase Flash 1E0000..1F0000 ***** SKIPPED by libconcord on 880 Write Restart Config 03 01 ***** NEW; no command here on 880 A3 0A 03 01 Write Restart Config 06 00 ***** NEW; no command here on 880 A3 0A 06 00 Reset Device (02) Harmony 880 Update Config Write Invalidate Flash Erase Flash 020000..0C0000 Write Flash 020000..end Erase Flash 1E0000..1F0000 ***** Skipped by libconcord on 880 Reset Device (02) Harmony 700 Firmware Write Unknown ***** CHANGED; different command to 880 A1 0B Erase Flash 020000 ***** NEW; multiple regions Write Flash 020000..end ***** NEW; multiple regions Erase Flash 000000..010000 Write Flash 000000..end Write RAM 00 02 Read RAM 00 Reset Device (02) Harmony 880 Firmware Write RAM 00 00 A3 06 00 00 Read RAM 00 Write Invalidate Flash Erase Flash 1D0000 Write Flash 1D0000..end Write RAM 00 02 Read RAM 00 Reset Device (02) ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ concordance-devel mailing list concordance-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/concordance-devel