Auto Raising Front Wheel - Let's crowd source it!

OK all you DIY Arduino geeks out there.     Let’s come up with a device to go under our front wheels that will automatically raise and lower the front wheel in relationship to the pitch of the road.   

I’ve got some decent ideas about how to make this happen electro / mechanically but don’t know how to do this with the software.  

Let’s make this a “open source” project so that we can all build it and benefit from the product. 


This would be fun.  As a first step, can someone who knows about the Ant+ protocol comment about whether there is a standard way to communicate gradient info?  If there isn’t would Zwift be willing to document or help make the communication over Ant and BTLE clearly identify this info?

If you really want to do this, then… :slight_smile:

I suggest you need to read all about the ANT+ and ANT+ FE-C protocol, and then understand how Bluetooth Smart trainer control is implemented - although at this time I am assuming the methodology of interacting with the trainer would be similar to ANT+ FE-C.

First suggestion, read this article at DC Rainmaker for an overview

Everything you ever wanted to know about ANT+ FE-C and bike trainers

then start reading the life out of the Developer info on the ANT site…and any similar site you can find for Bluetooth (and BT Smart).

e.g. for ANT


It seems from some very quick reading that the software (like Zwift) probably transmits a resistance percentage value to the trainer, which then adjusts the accordingly to simulate the gradient getting harder.  Software can also send a target wattage value to the trainer if the user is doing a Workout or something with a specific power target. (Erg mode?) but we wouldn’t care about that for this use case.

You assumed you could receive a grade (%) parameter, which may not be true, but you could at least use this  resistance  parameter as a proxy.  While it’s possible that maybe Zwift itself could somehow send the actual grade - because they know it -that would seem to be outside of the actual protocol support, and I don’t think Zwift would have time for this, and you wouldn’t want to depend on anything custom coded anyway.

So then you know all that,  you would need to then have a device with either an ANT chipset or stick and Bluetooth Smart (4.x?) support.  And drivers.  Mmm drivers.

Then you would need to have code that could pick up the signal from the software (Zwift) would could read the resistance value and then trigger a motor to move to adjust your platform.  I see a couple issues right off:

One, that I believe ANT is a 1:1 communications protocol so Zwift probably can’t send those ANT FE-C commands to more than one device.  And you need it to go to your actual Smart trainer first…  if you have one, in which case maybe you have to use Bluetooth Smart instead.  But if you don’t have a Smart trainer, then I guess your Arduino device could masquerade as the Smart Trainer and receive the signals.  … Although the problem there might be that Zwift needs to know what kind of trainer it is talking to, and if your device pretends to be a  smart trainer, then you can’t be telling Zwift at the same time that you are actually using (say) a Kurt Kinetic “dumb” trainer with a known power curve… which would be used for zPower.  (sigh)

Two, that the motor you trigger has to be powerful enough to adjust this platform, while you may have much of the weight of your body on it.  I’m sure that is not insurmountable, but it may not be cheap as in some of those tiny little motors you can get.  Something to consider might be a device where you can get a good deal of mechanical advantage.  Something that springs to mind is the Retul Levul wheel block.  Unfortunately it is not for sale outside the Retul dealer market (apparently) but you could use the same principle?


Anyway, I’m just a non-programmer with a smattering of knowledge… don’t take anything I said as gospel,…do the research and check with experts.  :)



Check out TinyLab, I ran across it yesterday and it seemed cool - could be useful here:

PS.  I forgot to say that I really like your idea  :)

if someone can pull it off effectively then I’d get one…

It might be ghetto but something like that Retul block with a  much longer adjustment handle could at least be operated manually by hand from the cockpit.

At the other end of the spectrum, I suppose there’s always:


Hi Duane and Duke,   Thanks for showing some interest in this.      

Unfortunately, someone  has filed a patent for this idea.

This means that I’m not going to get super rich and be the next Mark Zuckerberg of cycling… 

But, we can still do this as a public non profit DIY project and enjoy it.


After reading your notes, especially Dukes in depth thoughts, I’m a bit depressed.   I now realize that not only do you guys kick my butt on Zwift but you also seem to be leaps and bounds ahead of me with regards to SW and communication protocols!

Duke, I agree that lifting the weight of a rider +bike, even if it’s only the front wheel, is no easy task.   But, I’m going to take a lesson from Mr. Archimedes and use a screw type lifting device (similar to a car jack) which will give considerable mechanical advantage.   I’m confident that I can overcome this issue.   Since this is just going to be a “dumb” device in the beginning (controlled by maybe a thumb switch on the handlebar) then it shouldn’t be too difficult to come up with a working model.      

But, from a control point of view I do have a decision point I need to pass.   Should I go with a stepper type servo motor or a regular DC type motor?    Stepper’s are generally easier to control and offer precise adjustments,  But, DC motors are dead simple to wire up and control manually.  

Again, thanks for showing some interest in this.    My guess is that we will go thru all of this and then one of the big boys (Wahoo, Unfortunately, Saris,) will come out with a cheap version of this and we will be out of business.  :-) 


I assure you that I am probably not kicking your butt on Zwift  ;)

I know nothing about motors either, but I had one thought:  

Response time: You might need a fairly quick response time from your motor/mechanical system, depending on the terrain.

If the gradient of the “road” rose up quicker than the ability for your motor to adjust, then that would be less than ideal.  e.g. you hit the future Zwift equivalent of the Muur van Geraardsbergen, and the gradient goes up FAST.  Your motor is now struggling to get the front wheel up to a height that is representative.  

Interrupt : A further issue is for short up and down “rollers” (hills), say you need the wheel block to simulate 10%, so the motor starts cranking.  But it’s only a short hill, so soon you are going down the other side.  Depending on how the software and motor handled it, it might still be trying to reach 10% as you get down the hill.  Maybe you can do an interrupt or override or something, as if to say to the motor “Wait I know you never got to 10%, but now I need you to go -10%…”


What you suggest is actually smart for the trainer companies to think about.  Say a user has already paired a smart trainer with their Software & Device, and while maybe there isn’t the ability for the software/device to communicate to a “smart wheel block” as well, maybe the Trainer itself can relay that - either via some closed or open protocol.  So you buy your “KICKR smart wheel block” or “Tacx Neo smart wheel block” - in fact Tacx already does a “steering frame”  (which unfortunately doesn’t work in Zwift:  so it’s not outside the bounds of possibility they would consider this.  e.g. Tacx Neo Riser, or KICKR RIZR (please send the cheque to…) It would be another killer feature option to swing users towards the Tacx Neo or KICKR … just like Road Feel on the Neo.

RE: the Patent

while I’m no lawyer, I suspect that there is enough difference in how you propose doing this vs. that presentation, which seems to focus on the mechanism of attaching the front fork to a rod, which seems to slide or pivot.  I believe you had in mind to raise a platform under the front wheel?  If that moved purely straight up and down, then I guess some low friction rollers that allowed the wheel to spin to compensate would be necessary.  It might also move on an angle (imagine 45 degrees moving upwards towards the bicycle), if that helped reduce the need to spin the tire.  (LOL I’m doing hand motions in the air trying to picture this…)

Anyway, this is what happens when Zwift breaks your smart trainer support… (current technical issue) =  you have lots of free time.  Have a good weekend!

Thanks again Duke for the fantastic feedback and ideas.

I think we are right and we will see, maybe quite quickly, one of the “big 4” (Tacx/Elite/Wahoo/Saris) come out with one of these units.   I know if I was on the executive strategy team I would.   I would come up with one that would work with all brands.   I would also market it at a reasonable price as it’s a bit of a hook to get a consumer interested in the bigger units, where I suspect the money can be made.   Actually, if Zwift has taught us anything it’s that the money may not be in hardware at all but the strategy recurring fee’s.      Anyways, I digress.

As I was suffering thru a very fast pace 100km group ride that was over my head I also was thinking how to overcome the quick changes in incline/decline.   In fact, I’m not sure that it could be done effectively on zwift because I feel that a few of those whoop-de-whoops are not completely consistant with reality.  

Sorry to hear you are grounded this weekend.   I’m guessing you are a Tacx user and that the recent updated crashed you.   This worries me.  I’m on a dumb trainer at the moment but the big brown truck should be delivering my Tacx Neo in a few days.   I’m really hoping they sort it out by then.    But, from my understanding it works on the Ant+ dongle but just not bluetooth?   Is that correct?

Well, consider this weekend as recovery time and come back in a few days to dish out pain and suffering on your next group ride.  :-)


BTW, in case you are wondering about the name…  I changed back to my real name and guess I will keep it this way.  


Thinking out loud about this some more, if I were a company marketing this I might have some liability concern primarily around the matter of something rising and falling and potential pinch injuries with pets and children.  Any solution would need to be fairly enclosed to avoid this risk.

If a solution were built it might be wise to also include some steering control such that it might be possible to deliver both incline simulation and steering control for fine tuned draft control.

Not actually a DIY but check the ebove from Activetainment



There used to be a third party aftermarket device that did just this for a Computrainer. The device intercepted the protocol between the trainer and the PC. This required hacking the protocol, because I believe at the time Racermate had not published the protocol. I do not know if the device is still available; I haven’t checked in some time.

In terms of altering the bike position to simulate grade, it would not actually require that much movement. I do think a stepper motor driving a screw-jack would be able to handle the transitions. You can get some quite powerful stepper motors, with high velocity RPM rates.

An auto adjusting lift would be great, but I’d be very happy with a electric lift I could adjust with a controller.  5 settings would be fine.  -10, 0, 7, 10 and 15.  It would be useful to ensure you are using the appropriate muscle group for the grade.  I wouldn’t bother changing it for small differences.  There are plenty of small manual lift tables out there.  Add a stepper motor and controller and I think you would be set.

There is some hope, the patent claim on this from Emily L seems to have expired recently (no fees paid).


|   |   |   |
Expired due to failure to pay maintenance fee


Effective date: 20170416



It’s here! 

Our chance for PROFIT are over…

Wahoo Climb