Launch firmware update problem


#1

So here it is. I got my Launch yesterday. Loaded Feel Connect to my HTC phone, connected the device. Message comes up about firmware update. Clicked the button, but then looked just above it, where it says something like "current firmware is v1.3, updating to v1.2. But it was too late… What a hell?
Anyhow, update failed. The device is blinking red/blue. Numerous attempts to update firmware failed right at the very end where it says “Finalizing”. And then battery dies… Same story today after recharging battery. Extremely frustrated as I cannot even try it in manual mode.
Sent an email to Kiiroo, but meantime if someone has any idea on how to fix it, I’d really appreciate the response.

Just a note: I have already followed their flowchart, I do not have any other mobile devices (and not in a position to borrow one from friends :grin: ), nor Windows 10 computer.

Phone:
HTC6525LVW
Android 6.21.605.3
Developer options are enabled


#2

Huh. That v1.3 thing is weird. Their firmware download site still lists v1.2 as the latest.

I’m really shocked there’s no way to kick the launch out of bootloader mode and back into usage mode. I may end up getting another launch to start testing fixes for this on, as I really don’t want to brick my development hardware right now.

I unfortunately don’t have a readymade fix for this right now. You’ve obviously already read most of my attempts to help others with this. I just need to dig into the firmware loading procedures I guess.

Also, do you happen to have a macOS or linux machine? :slight_smile:


#3

Thanks qdot! Yes, I have read all the related threads. My eyesight is not great, but I swear it was saying firmware v1.3. Here is the software version also says 1.3.12 (not sure if it is firmware related) https://play.google.com/store/apps/details?id=net.dulta.feelclient

Let’s see what Kiiroo has to say about it. Personally I do not like the idea of updating firmware over Bluetooth. I mean it is slow and unreliable, with no way to backup/restore. I suggested for them to use a small PC based utility and do it over the USB cable. Such luxury device should have more reliable way of updating a vital software piece, which could make the whole unit useless in case of an error.

Unfortunately no, I do not have an access to MAC or Linix. Only Windows 7 is at my disposal.

Thanks again


#4

Ok, someone on another forum said they went back to FeelConnect 1.3.4 to update their firmware and that worked for getting them out of a red/blue cycle. I’m trying to dig up the old APK now, if I find it and you’re still having problems, we can give that a shot.


#5

Yes, I am still having problems. Kiiroo got back to me and asked to download again and try as they have updated their server with new firmware v1.3 package. But the app itself is still the same version v1.3.12 dated 7.21.17. So I believe the problem is indeed with the app and not with firmware because I have exactly the same problem trying to update with newly posted firmware. That’ll be great if you find an older .apk


#6

AlavG - The same exact thing happened to me with this 1.3 update. It tried loading, got all the way to the end, then crapped out. I tried three different androids, and either couldn’t get them to connect or had them fail. Finally bit the bullet and put feel connect on my work iphone 5. It connected and updated flawlessly. Beg, borrow, or steal yourself an iphone and try again!


#7

lol apple123! I wish my company supplied me with iphone. They are paying for my personal android though, but that’s about it. So now you just confirmed my suspicion about broken android app (or at least malfunctioning). Somebody, lend me the iphone!! :slight_smile:
Thanks for the info!


#8

I had the same problem when updating to 1.3.

I kind of suspect it is related to reconnecting to the device: The app does not rediscover the launch after it has rebooted.

A workaround that worked for me:

Start the firmware update process, let it progress to the point near the end, where the motor does a small movement. Without interacting with the feelconnect app quickly disable bluetooth on your android, and re-enable it again.

This did the trick for me, the app then was able to complete the update process.


#9

OMG! Thanks a lot mf1! That did the trick! After a week of struggle it is finally working.
Yes, indeed, feelconnect is generally having problems connecting to the device. After restarting the app I always have to restart bluetooth service for it to connect.But I would never think to do it in the middle of update.

Thanks again!


#10

Ok. I spent the weekend completely reversing Kiiroo’s firmware loading protocol, and now have my own loader that works flawlessly. I’m working on getting a web version of this up and running so people on mac/linux/android can at least fix things up themselves.

For anyone interested in technical details, here’s what’s going on with that reboot fix.

I noticed the same problem when loading from my android tablet while working on the firmware loader code. It would get to the end, do a “Finalizing”, then just stall.

After the firmware is loaded to the device, a couple of integrity checks are done, and then the device reboots into the regular application mode (blinking blue light). During this, the launch disconnects from bluetooth. After that reboot, the application needs to reconnect to the launch and sends a couple of commands to the cmd/data characteristics in order to “lock” the Launch back into app mode, otherwise if you power down and restart it’ll be back in bootloader mode again.

Unfortunately, the algorithm to reconnect after reboot in FeelConnect is dumb. Lots of random sleeps and retries, and it could very well be that the phone doesn’t disconnect correctly so you may not even see the Launch after it reboots. The reason this always works on iPhone is that iPhones are extremely predictable. They’re all the same. Android phones, on the otherhand, you never know what you’re going to get, the bluetooth response/stacks can vary widely. Kiiroo does not seem to have engineers equipped to handle this kind of variation.

For this fix, what you’re doing when you turn bluetooth off/on is basically clearing out the connections, so when you turn bluetooth back on, the app starts scanning again, and it can finally connect and send that “lock” command.

Now that I know how all of this works, I’m trying to build a utility to send those commands over without having to guess the point at which you need to turn things on/off. This should hopefully be the beginning of the end of firmware reloading bricking.


#11

Thank you, that is extremely encouraging. I’d very much appreciate a standalone updater, preferrably something I can use from a Linux commandline :slight_smile:


#12

Hah, well, I developed this using node.js and typescript from a debian terminal, so that’s definitely an option. :slight_smile:

If you’re already a node user, then it’s pretty much ready to go, I just need to put some CLI argument handling in. If not, I may try to figure out some other way to rewrite/distribute a loader in a language/env that doesn’t bring in most of the node ecosystem too. :slight_smile:


#13

what is this update good for? is it necessary? Will it improve performance?


#14

Can’t really say for sure, Kiiroo aren’t really forthcoming with what they do in firmware, and I’m not quite adept enough at reading raw PIC24 yet to have any idea what’s going on via a binary diff. We haven’t see anything obvious though.


#15

Hey guys. I got pointed in this general direction via reddit for Launch connection issues. I tried downloading the newest firmware last night and it kinda looks like it bricked my launch. Its just flashing red and blue and I’m not sure how to fix it. Any ideas? I’ve tried some fixes like deleting/reinstalling Feel Connect but no go so far.


#16

I am quoting a post by mf1. His fix worked like a charm:

Start the firmware update process, let it progress to the point near the end, where the motor does a small movement. Without interacting with the feelconnect app quickly disable bluetooth on your android, and re-enable it again.


#17

If you’re still having problems, let me know. I’ve now written my own firmware loader/fixer utility that has helped a few people fix their launch. I’ll just need to guide you through using it because it’s not quite ready for stand-alone use yet (there’s a few bugs we’re still working out).


#18

Sounds great, where can I download your fix?
Just tried an upgrade using the app and got the damn ble and red blink


#19

Well, it’s actually a website.

You’ll need a macOS or Linux machine, or an android phone running Android 6 (M) or greater. macOS machine will be by far the most reliable of those choices, but Linux and Android should work.

Anyways, assuming you’ve got one of those, you’ll need to use Google Chrome, and go to https://buttplug.world/kiiroo-firmware-loader/

On Android: If you get an error that’s something like “Error: Gatt Error Unknown”: Turn the phone bluetooth off and on, then retry the step you just did. You may need to do this multiple times.

Feel free to message me directly or post here if you have problems. I’m still working out a lot of stuff on the site, so if anything seems buggy or is hard to understand, lemme know.


Launch Firmwire Bootload Stuck
#20

Also, if something doesn’t work after 2 or 3 tries, don’t keep trying, just let me know and wait for my reply. You may be banging your head against something that’s a problem with our updater. :slight_smile: