Wahoo RFLKT support

Jens shared this idea 9 years ago
In Progress

The Wahoo RFLKT is an external bluetooth display to mount onto your handlebar.

It can be used to display your speed or routing information, but it comes with yet another app.


They offer an API for support of third-party applications and I think it would be great if Locus would support this neat little device.


Maybe this would be best suited as an Add-On? If so, please tell me what changes will happen to the API as indicated on the wiki.


Cheers


http://eu.wahoofitness.com/devices/rflkt.html

Replies (14)

photo
2

I'll receive the RFLKT in a few days and I already looked around both Wahoo Android API and Locus Android API and I think it should be doable as an addon, including navigation! I've never made an Android app but I'll give it a try. :-)

photo
1

I always like to read such responses :). If you will need anything, feel free to write me, I'll gladly help with some tasks or help to improve existing Locus API. Anyway for such add-on, I think that all should already be there.

photo
photo
1

Here's my first attempt at this: https://github.com/liskin/locus-rflkt-addon/releases/tag/v0.1


Doesn't really do much, just displays time/speed/distance/heart rate/cadence. I'll try to make navigation work soon.

photo
2

Okay, my add-on is in Google Play store: https://play.google.com/store/apps/details?id=cz.nomi.locusRflktAddon

The UI is still terrible (but how much UI does one need here, really?), but I consider it quite usable, even turn-by-turn instructions work. I took it for a ride this Saturday and had no problems with it at all, apart from forgetting to update to a version that doesn't have fixed demo street names on nav page. :-)

Does anyone here actually have a RFLKT and is willing to try this and provide feedback?

photo
1

Hi Tomáš,


you are fast. Unfortunately I personally don't have this device, so I wish you many many users/testers :).

photo
photo
1

Yes (well, a RFLKT+ but I hope it works the same)!

I will do as soon as the weather clears up :)

Really looking forward to it! Thanks a lot.

photo
1

Seems the weather won't clear up fast, so I will try indoors as much as I can!

photo
1

Well it should work the same, but don't expect the ANT sensors to work. Getting that to work would be quite tricky.

photo
photo
2

So I did a quick test indoors.

It works really well! I am really looking forward to testing this outdoors!

I think the ANT sensors are not that important, given they didn't even work on the official app for a long time.

Similarly I guess that the barometric pressure and temperature sensor would be difficult to add?


Loading pages seriously takes some time, but that is only during startup so I think very negligible.

How difficult would it be to add more pages/fields? Maybe similar to the official app where one can setup the pages as desired?

I have never worked with Scala so I don't think I can be much of a help.


Anyway, I think this looks very promising and having navigation is the absolute killer!

Thank you very much!

photo
1

Hi, I'm really glad that it works for you, I was honestly scared that there would be an issue I haven't though of and it would crash horribly. :-)


Yes, barometric pressure/temperature would be a similar problem as the ANT sensors, mostly because I don't think there's a way to send the data to Locus. Of course if we just wanted to show the numbers on a RFLKT, that could work, but it won't get into Locus track recording. And, most importantly, as I don't own a RFLKT+ or any additional sensors, there's no way I can code and test it. But I guess if you really wanted, at least the temperature could be doable without having the device and I would give you an apk to test or something.


Loading pages takes a really long time because of all those navigation icons. Without the navigation page, loading takes a few seconds. So I think it's actually more annoying for me than for normal users who load pages just once. :-)

Speaking of which, adding pages is actually quite easy, this is the configuration: https://github.com/liskin/locus-rflkt-addon/blob/master/src/main/res/raw/display_cfg_rflkt_default.json

There's some explanation of that format in the iPhone API kit (the one you obtain after filling out a form here: http://eu.wahoofitness.com/development-api), but it's easy to understand even without that, so unless you're curious, don't bother. Letting the users select which pages they want is something I'd like to do, letting them design the pages from scratch is too difficult, I think.


As far as Android development is concerned, scala isn't all that different from Java. If you just want to add a page and some fields, that should be easy. The hardest part, I'm afraid, will be obtaining all the libraries (https://github.com/liskin/locus-rflkt-addon/blob/master/src/main/libs/README.markdown), setting up the android sdk and sbt and getting it to build. If you'd like to try it and need help, I think it would be best to use gitter: https://gitter.im/liskin/locus-rflkt-addon


Thanks again for the feedback.

photo
photo
1

Hey Tomas, I'm really keen to get this working. But the 'Disovery' checkbox just flat out refuses to be checked in the top right hand drop down and I can not connect to the RFLKT. Would appreciate some detailed instructions on how to connect the device. ie. The order in which to switch things on, should I reset, do I need to uninstall other apps etc?


Thanks for your hard work.


Cheers,

Andrew

photo
1

Are you on Android 6? There's been some changes in permissions and some people have reported that this may cause problems with discovery. One user wrote:


"First, I somehow get the version on Play Store to work yesterday. I basically went into setting and gave the app permission to everything."

Can you please try that? At least give it permission to use location, as that seems to be necessary for BT discovery to work.

(I only got Android 6 since yesterday, did not have any problems with it, but I'm running a slightly newer version that's on the Play store. I should make a release, soon. :-))

photo
1

Tomas thank you for your prompt reply! Yes I'm running Android 7 I believe. I manually gave the addon app permission and now all seems to be working!


Thank you!!

photo
photo
1

When i heard about this addon i bought a RFLKT immediatly. My RFLKT have been arrived today so I'm ready to test it. Will the navigation (based on saved track)be available?

photo
1

I think it will.

photo
1

I have tested it on mtb singletrails. It worked well for me. Great addon. With navigation based on saved track would be perfect for me and it would help to keep my phone in my backpack;-)

Thanks for your great work.

photo
1

Ohh.. I was dumb. I figured out how i can switch on the navigation (based on saved track).

photo
photo
1

I'd like to use my RFLKT guiding me on a track from wikilocs (GPX). Is that possible yet? I've imported the gpx file and it show on my android phone map view. I clicked 'guide' but nothing really happens, on the phone or RFLKT. Could it be I'm too far away from a waypoint? If I add a waypoint close to the GPX track and click 'guide' I see real guidence on both screens. Anyway, great app! I took advantage of the end year sale and bought Pro!

photo
1

I see that "navigate" shows me turn by turn navigation on both screens. Will have a go with that, thanks!

photo
photo
1

I have a RFLKT with the newest firmware (1.2.28) I've tried to discover it with the Locus add-on. The app and the RFLKT also show "connecting", The app shows "RFLKT connected", but after that the bluetooth connection suddenly crashes.


I have switched all the permission "on" in the application menu.

Anybody has any idea to make it work?

photo
1

I think 1.2.28 was one of the defective firmwares

photo
2

Hi Tomas!


Thank you for the tip. I've just upgraded the RFLKT firmware to the latest (1.2.29), and everything works fine with this.

photo
1

Oh, they still release firmware updates? I thought they called it a day on RFLKT. :-)

Anyway, glad you got it to work.

photo
1

I informed about the wahoo support, and they offered a method to upgrade the RFLKT firmware (see below):

Android Steps

"1. Open the Wahoo Utilities app.

2. Make sure the Wahoo device is powered on.

3. Click on the Wahoo device when it pops up.

4. Wait for the Wahoo Device to connect, once connected tap the grey icon of the device with the Bluetooth emblem in it 10 times to bring up the firmware update list. It will show what firmware is current, choose the latest firmware next to that update in the listor the one that is (recommended).

5. Allow the update to finish and try and reconnect the device to the Wahoo Fitness app when done.

6. Return to the Wahoo Fitness app, repair the sensor in the sensor settings and save the sensor to the proper workout profiles.

7. Return to the main wahoo fitness screen, select the proper workout profile and start your workout!"

photo
1

Oh, that's a weird trick, tapping the icon 10 times. Anyway, it tells me there are no updates even though my firmware is 1.2.18. But I guess I wouldn't tell the difference anyway. :-)

photo
photo
1

In case of asphalt road the point to point navigation works great for me. Is it possible to show the route in low resolution mode in an individual page on RFLKT? It would make my life easier on the singletrails.I know I ask too much but it would be very great.

photo
1

I wish that was possible, but it isn't. RFLKT hardly keeps up with the texts I'm sending to it (actually with the latest wahoo library updates, even that works very very badly, to the point I'm considering just buying a Garmin and ditching this whole project). There's no way we'll be able to send a bitmap to display. :-(

photo
photo
1

Dear all, dear Tomas

I am sorry that this message is not related to android. I am an ios user and desperate to find a way to use a turn by turn workaround on the rflkt. I would like to know if you think that we could code something like this :

From a txt file containing distance and to where to turn (generated from any map utility or locus ?). Ask the wahoo app to read it and display on the rflkt the left arrow or right arrow etc... when we actually hit the distance.

Again I am sorry if this message is off topics.

Hope you guys can help me

Thanks

Eric

photo
1

Did you try the Ride with GPS app for iOS? They say it supports the RFLKT.

photo
1

Hi Tomas,

Yes I did but ridewithgps does not allow to export/use route without paying...

photo
1

Yeah, but it's probably going to be cheaper than hiring a coder to make an app just for you. :-)

photo
1

Yeah! I get that :)

It was just in case you know...

photo
photo
1

Hi there


I don't know if you are still supporting this add-on but I have it working with Oreo.


What is the mapping.txt file for? Should I install it somewhere?


Thank you!

photo
1

mapping.txt is for decoding error reports, unlikely you'll ever need it. :-)

photo
1

That's good to know - Thank you!


The notification screen doesn't seem to be working for me, but maybe that is because of Oreo?

photo
1

You may need to tweak the permissions manually in your phone's Settings → Applications (it needs access to SMS/calls and also Contacts to resolve phone mumbers to names). This helped in the past with BT permissions on Android 6. Unfortunately I don't have a phone with Oreo that I can test this on.

(And I must admit that it's been quite a while since I did anything with this. It sort of works, but it's not perfect, and Wahoo has been very slow to respond to my e-mails about problems with their API, and the product has long been discontinued, so it's only a matter of time until I finally snap and buy something else. I really loved the idea of using Locus for everything, and the battery life of RFLKT is just superb, but the communication with it is so slow it's impossible to display a map, and without a map it's not as useful as I'd like. And the communication is flaky in a few other ways and I really doubt there's any chance of Wahoo ever fixing the code.)

photo
1

The permissions change worked - Thank you!


Of course all messages are via WhatsApp these days, but good to have phone notifications.


Really pleased to have found this add-on. Thank you for writing it. Working well for me on Oreo.

photo
photo
1

Hi Thomas,

Thanks for the great work. Im still using the good old rflkt and I wanted to add a couple of bits to your code, but I'm a novice , can you advise how tricky this might be? What tools I need.

1. Rename data fields to mph not kmh

2.add a couple of data fields, Ave & max speed, gradient, temperature ( I have a rflkt +) and others I think of

3. And finally the most tricky I suspect is to enable the ant+ support of my rflkt+ so I can connect extra sensors

I'm on android by the way

Many thanks again for the great work

Cheers

Mat

photo
1

Hi Mathew,

It's been quite a while since I last worked on this, so I suspect it might be somewhat tricky to get up and running, as things in the Android world change fast.

Anyway, I'd start here: https://github.com/liskin/locus-rflkt-addon#building and you might need to consult this as well: https://github.com/scala-android/sbt-android#usage, especially the part about ANDROID_HOME. You will need the exact version of android SDK that locus-rflkt-addons uses, and I hope sbt-android tells you which one it is and perhaps even gets it for you, but I don't remember exactly. You'll also need the wahoo api library, which is somewhat hard to get as you need to accept their ToC and then you'll be able to download only a very recent version without any documentation. This goes here: https://github.com/liskin/locus-rflkt-addon/tree/master/src/main/libs. As you won't be able to get the old library version that locus-rflkt-addon needs, I think the only option is that I send them to you, which I guess is against the ToC, but what can we do... ;-) (contact me via e-mail or IRC or whatever if you want the files)

If you manage to get it building, then (1) should be easy, (2) should be doable and (3) quite a bit harder, perhaps even impossible (especially if you want to feed the sensor data back to Locus; there's no API for that).

To be honest with you, it's a lot of work and isn't really worth it unless your goal is to learn about Android development (that was one of my goals back then).

photo
1

Hi guys,

just quick two cents ... sending data back to Locus Map is doable. API already support sending heart rate values. Other values may be added on request.

Menion

photo
1

@Menion Thanks for the clarification!

BTW, I did check https://github.com/asamm/locus-api before writing my answer because I remembered that the Android Wear addon probably does need to feed the HRM data back, but I couldn't find it. What did I miss? :-)

photo
2

It's based on so-called "Broadcast actions", but instead of "action to do", is send "data to handle". And exactly, add-on for Android Wear needs this but because we needed it only internally, it is not officially in the docs. So when (someone) will need this, let me know.

photo
photo
1

Hi, thanks guys


I'm going to give it a go this week and see where I get too


Cheers


Mat

Leave a Comment
 
Attach a file