I tested the USB debug mode on Mekas with firmware (FW) versions 2.18(latest), 2.99(special/edu) and 1.10(out of the box).
Both 2.18 and 2.99 when connected to a PC are recognized as USB HID devices but not as USB Serial COM port. Fortunately, I have one Meka that I haven’t updated and was still on 1.10. This had USB Serial enabled. Probably this FW was part of the Beta.
Once connected, it echoes debug messages similar to Benerator’s example.
I tried the ‘di’ command and it did show IMU infos.
I cannot find any documentation on the supported commands so I brute-forced by iterating every character from A to Z, numbers and symbols. It’s case-insensitive fortunately. When the first character is recognized, it outputs the available commands that begins with that character. I captured the output for later documentation. I will share them on my next post. It’s very interesting. Commands can query and set values, some can do playbacks of system animations, set modes - linear, gyrate, mimic, sit, stand, etc.
I haven’t found how to set the head color yet or set the leg, thighs, etc. More research is necessary.
I hope I can find out from the firmware.
Btw, with regards to the possibility of downgrading the FW from 2.99 (special/edu) to the official 2.18, short answer is YES.
I also have concerns about the DFU process. The more I researched and from comparing the firmware in the OBB and DFU firmware from the old thread, I believe the DFU firmware may have only been used to update the BLE bootloader. It might be too risky to even attempt to use the same process and DFU FW as it could brick the Meka. I think it’s possible though to use the same process but we need to have the correct DFU package in order to do so. The FW in the OBB is in a different format. It was stored in a JSON blob as a b64 string. Decoding the b64 to hopefully get the binary and it appears to be encrypted still.
Anyhow, I tried another method. I mentioned that I was thinking to cheat the app so that it will force the FW update.
My first attempt was to see if I can cheat the app into seeing that the OBB firmware version is higher.
I patched the OBB file and changed the FW minor version from .18 to .19.
I uploaded the patched OBB and started the Mekamon app (restored from backup). Btw, I can confirm that installing the APK is not enough. The app just hangs without the OBB. I copied the OBB from backup and the app loads fine again.
Going back… to my surprise, once I connected the Meka, it prompted to update the FW to 2.19.
Other than patching the minor version, basically a 1 byte change, I’m thinking it should be safe since basically I’m pushing the same FW (2.18).
After 18 mins of wait, it took a little bit longer but once it rebooted and reconnected to the app, the updated FW version still showed 2.18. This was expected since I never changed anything else and it should apply the internal FW version. It prompted me to upgrade to 2.19 again.
I then reverted the OBB to see if the Meka is still working like before. I didn’t see any issue. This was a good sign.
So the moment of truth was to see if I can donwgrade a Meka on 2.99 back to 2.18. I made a new OBB by patching this time the major version from 2 to 3. So the app would see that it had the higher 3.18 FW and force it.
It did and I proceeded with the ‘fake’ upgrade – but really its was downgrade. This time it took like 30 mins to finish. So I was a bit worried that it failed. However once the Meka rebooted and reconnected, it showed 2.18 FW - a success!!!
I reverted to the original OBB (2.18), it no longer prompted to upgrade since the versions are the same.
I did the basic tests and didn’t find any issue. Also the compatibility issue I mentioned when using a Meka with 2.99 FW with the latest app, where it continuously stumped its legs when connected, is no longer there; proving further the successful downgrade. It is now fully compatible.