<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">ANT Forum</title>
    <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/" />
    <link rel="self" type="application/atom+xml" href="https://www.thisisant.com/forum/atom/" />
    <updated>0</updated>
    <rights>Copyright (c) 2026</rights>
    <generator uri="http://expressionengine.com/" version="2.5.2">ExpressionEngine</generator>
    <id>tag:https:,2026:03:02</id>


    <entry>
      <title>How do I choose the right fitness app development company in the USA&#63;</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/11456/" />      
      <id>tag:https:,2026:/www.thisisant.com/forum/viewthread/.11456</id>
      <published>2026-03-02T23:18:57Z</published>
      <updated>0</updated>
      <author><name>Noahjhon</name></author>
      <content type="html">
      <![CDATA[
        Choosing the right <a href="https://inceptivesdigital.com/fitness-app-development">Fitness App Development Company</a> in the USA doesn’t have to be confusing. Here’s a clear, practical way to evaluate your options:<br />
<br />
Look at their portfolio<br />
Check the apps they’ve built before. Do they have experience with fitness or health projects? Real examples show what they can actually deliver.<br />
<br />
Check client reviews and references<br />
Good feedback from past clients matters more than fancy marketing. Ask for references or look for honest reviews online.<br />
<br />
Ask about specific features<br />
Make sure they know how to build things like workout tracking, wearable integration, meal logging, and subscription systems. A team that has built these before will move faster and avoid mistakes.<br />
<br />
Communication style<br />
Clear and regular updates are key. You want a partner who can explain things in plain English, not tech jargon.<br />
<br />
Understand their development process<br />
Find out how they plan, design, build, and test apps. A structured workflow means fewer surprises and delays.<br />
<br />
Focus on security and privacy<br />
Fitness apps handle personal data. A good team knows how to protect user info, follow US privacy rules, and secure APIs and backend systems.<br />
<br />
Compare costs, not just price tags<br />
The cheapest option isn’t always the best. Look at what you get for the price. A slightly higher cost with a reliable team can save you headaches later.<br />
<br />
Support and maintenance<br />
Apps need updates and bug fixes after launch. Ask if they offer ongoing support and how that works.<br />
<br />
When you keep these points in mind, it becomes easier to pick a fitness app development company in the USA that fits your goals, budget, and timeline.
      ]]>
      </content>
    </entry>

    <entry>
      <title>Tacx Neo Isokinetic Mode</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7688/" />      
      <id>tag:https:,2023:/www.thisisant.com/forum/viewthread/.7688</id>
      <published>2023-10-15T07:25:04Z</published>
      <updated>0</updated>
      <author><name>M.P.</name></author>
      <content type="html">
      <![CDATA[
        Hi, the Tacx Neo smart trainer used to have an option on the android utility app to set an isokinetic mode. It was really good for low cadence and also max power training.<br />
<br />
The feature disappeared when the app was replaced.<br />
<br />
Hoping this can be done with ant+ (mobile was bluetooth). How might I find out the required data page to set this mode? Alternatively if I was to try guessing then any reccomendation on where to start?
      ]]>
      </content>
    </entry>

    <entry>
      <title>FE&#45;C Messaging Strategy for Setting Mode and Resistance</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7680/" />      
      <id>tag:https:,2023:/www.thisisant.com/forum/viewthread/.7680</id>
      <published>2023-08-23T14:23:24Z</published>
      <updated>0</updated>
      <author><name>Roger Schmitz</name></author>
      <content type="html">
      <![CDATA[
        I'm writing a ConnectIQ App that will use the FE-C profile as a Generic Ant channel to control the mode and resistance on a trainer.<br />
<br />
The app is running a graded exercise step where it needs to periodically change the resistance level and mode on the trainer.<br />
<br />
What is the best strategy for making sure that the trainer receives the settings from the CIQ App?  I can't just send one Acknowledge message and hope that it gets it.  I have considered 3 strategies.<br />
<br />
1) Have the App keep sending "Target Power" data pages as an acknowledged message until the App receives a Ant.MSG_CODE_EVENT_TRANSFER_TX_COMPLETED message as a part of a channel response message.<br />
<br />
2) Just keep sending "Target Power" data pages as acknowledged messages to every Broadcast message that is received from the trainer.<br />
<br />
3) After sending the "Target Power" data page as an acknowledged message, I could send a "Request Data Page" (0x46) to request that the trainer send back a "Target Power" data page.  Then I could verify that the settings are correct and retry sending a "Target Power" data page back to the trainer.<br />
<br />
#3 has a lot of overhead.  I think I would only do that if #1 was insufficient for some reason or if I'm not understanding that channel response message appropriately.  So it's really between #1 and #2.<br />
<br />
#1 seems like the elegant way to do things.  However there are some complexities that creep in.  When I want to set the trainer in %grade mode, I need to send both "Wind Resistance' and "Track Resistance" pages so I would need to verify that both are received by the trainer.<br />
<br />
I don't see much harm in method #2.  If the resistance data isn't received by the trainer, the only remedy I have is to send it again anyway.  I imagine that this will hog some ANT bandwidth but this seems pretty small.<br />
<br />
Is there a generally preferred strategy for this?
      ]]>
      </content>
    </entry>

    <entry>
      <title>FE&#45;C How to Handle Multiple Slaves</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7679/" />      
      <id>tag:https:,2023:/www.thisisant.com/forum/viewthread/.7679</id>
      <published>2023-08-23T14:01:47Z</published>
      <updated>0</updated>
      <author><name>Roger Schmitz</name></author>
      <content type="html">
      <![CDATA[
        I'm writing a ConnectIQ App that will use the FE-C profile as a Generic Ant channel to control the mode and resistance on a trainer.<br />
<br />
It seems that it is possible for 1 trainer (master) to be simultaneously connected to more than 1 display device slaves).  In this case, multiple display devices could be sending ACKNOWLEDGE messages back to the trainer to set the resistance.<br />
<br />
Is there a way to prevent this conflict or at least detect the situation so I could warn the user that there is a conflict to tell them to shut one of them off?
      ]]>
      </content>
    </entry>

    <entry>
      <title>Real Time Data acquisition (Speed data)</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7646/" />      
      <id>tag:https:,2023:/www.thisisant.com/forum/viewthread/.7646</id>
      <published>2023-03-22T11:42:33Z</published>
      <updated>0</updated>
      <author><name>MeysamEstaca</name></author>
      <content type="html">
      <![CDATA[
        Hi, <br />
I am using FE-C profile to receive speed data of my bike trainer as well as controlling its resistance.<br />
The issue I have is that I don't recieve data in real time ( There is delay like 1 second or more ).<br />
I use Data Page 16 (0x10) which is General FE Data to read the speed based the FE-C document.<br />
<br />
I want to know if it's possible to receive data faster ( in real time ).  what do other developers do to simulate the bike speed in real time ( without delay ). I think because we are using 4hz for data transmission, we are not able to receive data fast enough to be real. if I am wrong please let me know. I am new to wireless communication and I appreciate any help and guide about this issue.<br />
<br />

      ]]>
      </content>
    </entry>

    <entry>
      <title>Sample code to write resistance to bike trainer</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7635/" />      
      <id>tag:https:,2023:/www.thisisant.com/forum/viewthread/.7635</id>
      <published>2023-01-24T11:08:53Z</published>
      <updated>2023-01-24T11:11:16Z</updated>
      <author><name>MeysamEstaca</name></author>
      <content type="html">
      <![CDATA[
        Hi, <br />
I want to use the FE-C profile to write resistance to my bike trainer. <br />
Till now I was able to read the bike speed and power using bike speed and cadence profile and bike power profile.  Because I am noob in this level of programming I used the “ANT PC SDK - API Libraries and sample source code “ to read the bike speed and power output.<br />
What I did is just to change the channel period and device type inside the “DEMO_HR_RECEIVER” based on the speed and power device profile and then interpret the received which was quite simple.<br />
Now I am struggling to be able to write resistance to my Bike trainer. I read the document FE-C but still don’t understand in what part of the code I can write a number as resistance.<br />
Based the FE-C device profile document, I configure the channel (slave channel in table 7-1).<br />
<br />
But where should I write the resistance, could you provide me a sample code (in C++) like the DEMO_HR_RECEIVER please.<br />
If you could provide me a simple demo code like DEMO_HR_RECEIVER that would be nice.<br />
I appreciate any help, <br />
Thanks. <br />
<br />
<br />

      ]]>
      </content>
    </entry>

    <entry>
      <title>Help using SimulANT+ 2.10 to &#8220;mock&#8221; real device</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7624/" />      
      <id>tag:https:,2022:/www.thisisant.com/forum/viewthread/.7624</id>
      <published>2022-11-21T21:14:30Z</published>
      <updated>0</updated>
      <author><name>gcox</name></author>
      <content type="html">
      <![CDATA[
        Hello community,<br />
<br />
I have been developing controlling slave app for FE-C device namely Saris H3. Mostly it works fine but I have a few quirks I would like to test and verify. As the testing with device + bike is quite tedious I wanted to try out SimulANT.<br />
<br />
I have 2 USBs and I am capable to connect and use 2 simulation devices e.g. FE-C+ FE-Display.<br />
<br />
But, when I try to simulate FE-C and "boot" my app there is no love happening.<br />
I use the default values in simulator and default values on my client app.<br />
<br />
Is this kind of setup possible?<br />
Am I doing something apparently wrong?<br />
What would you need to be able to help me out figuring this thing out? <img src="http://www.thisisant.com/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" /><br />
<br />
Following is a small log excerpt from client app:<br />
[2022-11-21 21:37:14.239] [PowerOnAnt] [info] ANT Library Version ALU3.800<br />
[2022-11-21 21:41:41.876] [PowerOnAnt] [info] Server listening on 0.0.0.0:50051<br />
[2022-11-21 21:41:48.272] [PowerOnAnt] [info] Registered Bike Power Data Stream<br />
[2022-11-21 21:41:48.272] [PowerOnAnt] [info] Registered Manufacturer Data Stream<br />
[2022-11-21 21:41:48.273] [PowerOnAnt] [info] ANT Library Version ALU3.800<br />
[2022-11-21 21:41:48.273] [PowerOnAnt] [info] Registered Command Status Data Stream<br />
[2022-11-21 21:41:48.274] [PowerOnAnt] [info] Registered Fitness Equipment Capabilities Data Stream<br />
[2022-11-21 21:41:48.331] [PowerOnAnt] [info] Initialization was successful!<br />
[2022-11-21 21:41:48.331] [PowerOnAnt] [info] Init complete...<br />
[2022-11-21 21:41:48.331] [PowerOnAnt] [info] Resetting module...<br />
[2022-11-21 21:41:48.342] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x6F<br />
[2022-11-21 21:41:48.342] [PowerOnAnt] [info] RESET Complete, reason: <br />
[2022-11-21 21:41:48.342] [PowerOnAnt] [info] RESET_CMD <br />
[2022-11-21 21:41:48.342] [PowerOnAnt] [info] <br />
[2022-11-21 21:41:49.347] [PowerOnAnt] [info] Setting network key...<br />
[2022-11-21 21:41:49.353] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.353] [PowerOnAnt] [info] Network key set<br />
[2022-11-21 21:41:49.353] [PowerOnAnt] [info] Assigning channel...<br />
[2022-11-21 21:41:49.362] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.362] [PowerOnAnt] [info] Channel assigned<br />
[2022-11-21 21:41:49.362] [PowerOnAnt] [info] Setting Channel ID...<br />
[2022-11-21 21:41:49.372] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.372] [PowerOnAnt] [info] Channel ID set<br />
[2022-11-21 21:41:49.372] [PowerOnAnt] [info] Setting ChannelSearchTimeout...<br />
[2022-11-21 21:41:49.382] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.382] [PowerOnAnt] [info] ChannelSearchTimeout ID set<br />
[2022-11-21 21:41:49.382] [PowerOnAnt] [info] Setting Radio Frequency...<br />
[2022-11-21 21:41:49.392] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.392] [PowerOnAnt] [info] Radio Frequency set<br />
[2022-11-21 21:41:49.392] [PowerOnAnt] [info] Opening channel...<br />
[2022-11-21 21:41:49.402] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.402] [PowerOnAnt] [info] Channel opened<br />
[2022-11-21 21:41:49.402] [PowerOnAnt] [info] Enabling extended messages...<br />
[2022-11-21 21:41:49.403] [PowerOnAnt] [info] Extended messages enabled<br />
[2022-11-21 21:41:49.412] [PowerOnAnt] [info] Cid: 0x0  msgId: 0x40<br />
[2022-11-21 21:41:49.412] [PowerOnAnt] [info] Extended messages enabled<br />
After this 0 traffic <img src="http://www.thisisant.com/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" />
      ]]>
      </content>
    </entry>

    <entry>
      <title>Beginner&#8217;s question &#45; setting resistance</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7526/" />      
      <id>tag:https:,2021:/www.thisisant.com/forum/viewthread/.7526</id>
      <published>2021-06-03T15:45:12Z</published>
      <updated>2021-06-03T18:59:59Z</updated>
      <author><name>polivaoren</name></author>
      <content type="html">
      <![CDATA[
        Hello. I'm developing a game in unity for my smart trainer. I don't have experience in ANT+. I purchased a code for controlling my Ant+ (<a href="https://assetstore.unity.com/packages/tools/network/advanced-ant-71980">https://assetstore.unity.com/packages/tools/network/advanced-ant-71980</a>). It mostly works fine. I'm connecting properly to my device and can read speed and distance data. But, I'm failing at setting the resistance on the device. Here is the failing code:<br />
<br />
        pageToSend = new byte[8] &#123; 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, (byte)(resistance * 2) &#125;;//unit is 0.50%<br />
        deviceChannel.sendAcknowledgedData(pageToSend);<br />
<br />
<br />
<br />
      The value of:<br />
 (byte)ANT_ReferenceLibrary.ANTMessageID.RESPONSE_EVENT_0x40)<br />
            is: ANT_ReferenceLibrary.ANTEventID.EVENT_TRANSFER_TX_COMPLETED_0x05<br />
<br />
So I'm assuming the transfer was complete, but no resistance was changed. Same problem applies to the slope.<br />
<br />
Any advice or pointing in the right direction is highly appreciated.<br />
Sorry for the newbie question<br />
Oren
      ]]>
      </content>
    </entry>

    <entry>
      <title>Hardwire sensor to wireless</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7474/" />      
      <id>tag:https:,2021:/www.thisisant.com/forum/viewthread/.7474</id>
      <published>2021-01-24T15:44:57Z</published>
      <updated>0</updated>
      <author><name>ACorcuera</name></author>
      <content type="html">
      <![CDATA[
        All i am new to ANT development but how can i make a existing wired sensor to console become ant compatible?  I have a stationary bike that has a broken console and want the data to show on my phone instead!
      ]]>
      </content>
    </entry>

    <entry>
      <title>Sending UserWeight to SmartTrainer (page 55)</title>
      <link rel="alternate" type="text/html" href="https://www.thisisant.com/forum/viewthread/7473/" />      
      <id>tag:https:,2021:/www.thisisant.com/forum/viewthread/.7473</id>
      <published>2021-01-23T14:50:22Z</published>
      <updated>2021-01-25T21:26:53Z</updated>
      <author><name>myjunk123</name></author>
      <content type="html">
      <![CDATA[
        having some issues on sending user weight to the trainer to better support slope simulation.<br />
Currently my implementation works and I can send a slope value to the gradient successfully. However, I am currently just using the default values for user weight (75kg) and bike weight(10kg) I think from the specs.<br />
<br />
since there is a. relation ship between user weight and the apparent feel of the slope, I'm looking to be able to change the user weight.<br />
<br />
I am using page 55 to send the data, but I'm unsure if the trainer I'm using doesn't support or I'm sending it wrongly.  This is what I'm doing currently. (I tried sending 20kg and 400kg but doesn't seem like there's a diff in the feel / amount of power needed to climb the hill)<br />
<br />
I also tried to send the underweight * 0.01 (per the specs) but this doesn't work as well.<br />
<br />
<br />
Note: I tried writing the code into the question, but somehow the code triggers a "security protection" from cloud flare. So I'm attaching a picture instead.
      ]]>
      </content>
    </entry>


</feed>