Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

You are here: Forum Home → ANT+ Forums → Miscellaneous → Thread

   

How to connect Garmin Edge Remote Control?

Rank

Total Posts: 4

Joined 2020-12-20

PM

Hello,

I am a hobby developer and I am just implementing a small app on my Ubuntu laptop using openant (https://github.com/Tigge/openant) and Python.
For winter training I would like to use my Garmin heart rate and cadence sensors from my bicycle on my indoor Ergometer. Heart rate and cadence should be displayed on my laptop while cycling on my ergometer.

In a first step I already implemented heart rate and cadence based on the given "ANT+ Managed Network Documents". Works fine grin

Now I would like to control my Python app (start, stop, save a session) from my ergometer by using my Garmin Edge Remote Control.
https://www.thisisant.com/directory/edge-remote-control/

I already followed the PDF specification for Controls: (https://www.thisisant.com/resources/audio-controls/)
I used "Device Type: 16" and played a while with all the channel parameters. But no connection so far. :-(

So my newbie questions are:
- Is it possible to connect Garmin Edge Remote Control by using the Garmin stick on my Laptop with openant?
- What are the right Channel Configuration parameters?

Many thanks for any help.

kkarsten62
     
RankRankRankRank

Total Posts: 122

Joined 2010-10-25

PM

Your getting the Master / Slave settings correct? It's the opposite way around for the remote. The controlled device is the master and you need to go through the pairing procedure with the remote control.      
Rank

Total Posts: 4

Joined 2020-12-20

PM

ifor - 03 January 2021 11:30 AM
Your getting the Master / Slave settings correct? It's the opposite way around for the remote. The controlled device is the master and you need to go through the pairing procedure with the remote control.


ifor, thanks for your reply.
I am trying to set the pairing with the following parameters following this spec

NETWORK_KEY = [0xB9, 0xA5, 0x21, 0xFB, 0xBD, 0x72, 0xC3, 0x45]
Channel Type: BIDIRECTIONAL_TRANSMIT = 0x10
Device_Type = 16 or 144 (with Pairing Bit set) accordding to spec, 6.2 MasterChannel Configuration
Device_Number = 65098 (this number is shown when connecting to my Garmin Edge 1000)
Channel_Period = 8192 according to spec, 6.2 MasterChannel Configuration
Channel_Frequency = 57 according to spec, 6.2 MasterChannel Configuration

And I set a callback to a method to print receiving data. (self.channel.on_broadcast_tx_data = self.on_event_tx)

I do the following procedure:
- Starting my python script with set up from above
- Then long-push of two buttons on the control to initiate the pairing
Sometimes control is flushing ~6-10 green, but then red-green-red-green,...
So I assume pairing process is failing and no output in the event method at all.

Next questions:
Any idea whether the channel parameters are valid?
I am free to use as master my own device number?
Any other control on the market which I can get access by my python app?

Any help is apricated - thanks.
kkarsten62      
RankRankRankRank

Total Posts: 370

Joined 2012-06-27

PM

I recommend experimenting with SimulANT+ instead of your application to ensure you can pair your remote to a profile compliant "Generic Controllable Device". Examine the pages the remote is sending when you press the different buttons. Remotes may send custom commands as well as standard commands using the Generic Command Page 73 (0x49). https://www8.garmin.com/manuals/webhelp/edgeremote/EN-US/GUID-20B80C75-B666-4DA5-807E-1870E56124CB.html explains how to pair the Edge Remote. You will be turning on the simulator instead of going to "Add Sensor" on the Edge. Place the remote as close as possible to your USB stick.

Device_Type should be 16 not 144.

Device_Number is your choice since you are implementing the Controllable Device, which is the master.

It looks like self.on_event_tx may be your issue. You should be looking for receive events from the radio instead of tx events. The tx events will be the page you are transmitting. The data for rx events will be backchannel pages from the slave. You will receive a page 73 (0x49) from the remote when a button is pressed, but will not normally receive data from the remote. See Figure 4-9 in section 4.4 "Generic Control Use Case".

You can search for other remotes at https://www.thisisant.com/directory/ selecting the "Control-Generic" profile filter.      

Signature

Ian Haigh

Rank

Total Posts: 4

Joined 2020-12-20

PM

Hi Ian,

thanks for your help. Yes, experimenting with SimulANT+ was the big help. I saw directly that broadcast data from the master was missing. Problem is that current openAnt version is not handling TX support properly.
I hacked a bit in the core Ant.py, so that master can send the recommended pages (0x02, 0x50, 0x51, ...). Then I received on page 73 the 5 different button clicks stati, 3 normal press and 2 long press which I can use now in my App. ==> Problem solved grin

Regards
Karl ...      
Rank

Total Posts: 1

Joined 2021-10-03

PM

Hi Karl,

is it possible that you can share the page 73 commands the remote is sending for the customizable key?
I'm trying to build my own remote and can not find out what the correct keycode is.

I already know
0x00 is up
0x01 is down
0x24 is lap

Thanks
Daniel