Kepler Friction drive comes of age.

Hi!

My name is Andre and I just joined ES (although I'm following this forum for quite a while). I would like to share my friction drive e-bike build with you. I was inspired by Kepler's beautifully simple design and created my own version.

https://youtu.be/dclgHJkaDs4

I added a couple features to the design:
The stopper discs are slightly larger and and I added an intermediate threaded plate which allows individual stopper adjustments completely independent of the central screw -> I can take the motor off by only removing the central screw... without losing the stopper adjustments. Another advantage of the intermediate plate is that you can tighten the stopper screws as much as you want and it will never bind up the pivot. Also, all adjustment screws are easily accessible from one side.

I'm using a VESC in FOC mode. A bluetooth module in combination with the Metr app gives me an awesome cockpit and allows to set the assist levels from the phone. I also added an Arduino which I use to configure the controls/buttons...I'm still playing around with this. I also have magnets in the chainring and a hall sensor ...so true pedelec will be activated soon!

The bike is a Specialized Secteur Disc which I upgraded to Ultegra, fully hydraulic discs, and Stans wheels with 35mm tubeless tires. The whole build is 24lbs ready to go. Not bad considering it has discs, an AL frame, and pretty big tires.
 
Hi Andre. Welcome officially to the forum.

Love the design enhancements. You look like you have some great building skills there. You really should put together a build thread on this bike. There is still a lot of interest for this friction drive system/concept and I am sure there are many people on this forum who would appreciate you going into further detail on this build.

I am currently modifying the end stop design myself at the moment to improve the lockdown after adjustment.

Keep up the good work. I look forward to seeing more about this bike build in the future.
 
Andre said:
I'm using a VESC in FOC mode. A bluetooth module in combination with the Metr app gives me an awesome cockpit and allows to set the assist levels from the phone. I also added an Arduino which I use to configure the controls/buttons...I'm still playing around with this. I also have magnets in the chainring and a hall sensor ...so true pedelec will be activated soon!

I have looked at the Metr app and it looks great. Only problem is it uses the ADC port on Vesc which i currently use for my button throttle. I think I will give one a go and figure out a PWM Arduino solution for the throttle which I presume your doing at the moment.
 
Thanks for the warm welcome!

I would love to share more details of the build. What are you interested in particularly?

Yes, I use the Arduino to send PWM to the VESC. Currently I have a button on each shifter. One is configured to 250, the other to 500W. The Arduino also makes it easy to configure "stepped" ramps, which make engagement smoother.
In the future I want to activate the hall input and also cruise control (e.g. double click locks the throttle, and pulling the brake turns it off). The Metr app/module combo is really great. The bluetooth connects very reliably and everything is customizable.

I can really recommend the intermediate plate approach. The lockdown is rock solid and maintenance is a breeze. The stopper lockdown screws are threaded into the intermediate plate and stick out on the backside. The extending screws then simply fit into the corresponding (non-threaded) holes in the carrier plate. This way you can take the hole thing off just by removing the center screw (without having to unscrew the lockdown screws). Hope this makes sense. I added a few pics... (edit: not sure why, but not all pics are shown in preview...you have to click on them).

IMG_9626.JPG
IMG_9627.JPG
IMG_9614 small.jpeg
IMG_1869 small.jpg
DJI_0087 copy.jpg
 
Andre,

Great Job , especially making a mount that works with a bike that has the BB30 bottom bracket shell on the frame.

I look forward to pictures of the magnets on one of the chainrings and hall sensor locations , hook up , etc.
How many magnets are you using ?

Are you using a ESC or a VESC ? ( I ask because a ESC from H.K. is better priced than the VESC's I have seen on skateboard vendor's websites, and would like to get both from H.K. )

I see on the cell phone Display that you are getting up to 26.6 mph,

Is that the top speed ?
If so what would it take to get the top speed to around 32-35 mph , 7 cell pack , 8 cell pack ?
Or
A larger or higher KV motor ?

I agree with Kepler , you should make your own thread on your build.

I am sure that there are people who have the Higher End Bikes , that have a BB30 frame , that will love for you to sell the bracket .
 
Andre said:
Thanks for the warm welcome!

I would love to share more details of the build. What are you interested in particularly?

Yes, I use the Arduino to send PWM to the VESC. Currently I have a button on each shifter. One is configured to 250, the other to 500W. The Arduino also makes it easy to configure "stepped" ramps, which make engagement smoother.
In the future I want to activate the hall input and also cruise control (e.g. double click locks the throttle, and pulling the brake turns it off). The Metr app/module combo is really great. The bluetooth connects very reliably and everything is customizable.

I can really recommend the intermediate plate approach. The lockdown is rock solid and maintenance is a breeze. The stopper lockdown screws are threaded into the intermediate plate and stick out on the backside. The extending screws then simply fit into the corresponding (non-threaded) holes in the carrier plate. This way you can take the hole thing off just by removing the center screw (without having to unscrew the lockdown screws). Hope this makes sense. I added a few pics... (edit: not sure why, but not all pics are shown in preview...you have to click on them).

Thanks for sharing the detail on the end adjustment plates. It is a very neat solution. I like the way the pressure on the endstop pins is transmitted outwards rather then perpendicular to lock down mechanism. Makes it much less likely to loose adjustment. It amazing how much pressure is exerted on lower end stop when the motor disengages and when riding on bumpy roads.

I have come up with a method of adjustment also that allows full lockdown without fear of binding and allows the pivot arm and motor to be removed from the bike with one screw. Under testing at the moment. It's a little more simple in its design approach then your method but your method may well be a more robust approach. I will post some picture up soon for review once I have done a few days testing on it.

With regards to Arduino button throttle, programming is not my stong suite here. Can you provide some further detail on both the hardware setup and programming of your Ardunio? Does the Arduino get its power supply from the Vesc.
 
Below are some renders of the latest endstop modifications that i am currently testing. The lower endstop is the critical stop as this takes all hammering from disengagement and bouncing around when riding on rough ground. It uses the unbrako bolt head as the end stop and has a triple lockdown system when you include the centre bolt that ties the entire assembly together.

The upper endstop is less critical and doesn't get hammered at all. It just need to take the pressure of drive engagement. Subsequently a simple unbrako bolt and lock nut have been used here.

As you can see from this design, unscrewing the centre bolt removes the motor and swingarm assembly in one motion without disturbing the endpoint adjustments.

One other improvement I would like to make is the addition of an anti rotation stopper for the main assembly. Anti rotation only needs to be in one direction which is the direction acted upon when the drive disengages or is bouncing around on rough ground. working on a few ideas at the moment.
 

Attachments

  • Friction drive.JPG
    Friction drive.JPG
    35 KB · Views: 6,003
  • Friction drive1.JPG
    Friction drive1.JPG
    30.6 KB · Views: 6,003
  • Friction drive2.JPG
    Friction drive2.JPG
    29 KB · Views: 6,003
Andre,

I would love to see the Pedal Assist function working on these. Been reading on Kepler's great work for my second ebike project and hoping to start soon. The battery-in-bottle is tricky awesome!

My bike can't use the bottom bracket plates as there is no space left between the cranks so I will have to look at adapting the endstop design for a seat post implementation. Will initially 3D print brackets to test best installation location.
 
@scooterman

I'm using a VESC (a FOCBOX to be precise).
The magnets are sitting inside the chainring bolts...see pic. The bolts are hollow and I just have one magnet on each side of the bolt which holds them in (no glue). It's 5 magnets. Hall is just sitting on the backside of the main carrier plate.
IMG_1859.JPG
Top speed is close to 30mph with a full 6S (270kV motor) and a steady 28mph over the rest of the charge. I could go faster with a cell more, of course. But honestly...28 is plenty fast. I have no need for more.
The BB30 adapter ring was more trouble than expected. The ring is heavily machined out on its backside to clear the welding seams of the frame and I ended up scotch-welding it in place. Clamping alone did not work because when it was clamped fully, the BB bearing was binding up! So it's not like I have invented a universal, easy to use BB30 solution. Every bike is different in the BB area...a universal solution is difficult. I think Kepler's approach with the english bracket is as universal as it gets.

@Kepler

It's funny...I had more trouble with the upper stop. I was hammering it upwards on my early versions.
I love the simple bolt approach on your latest design! You should machine the upper nut to have a shoulder that engages with the curved slot...then it won't spin when you want to readjust.

The Arduino Nano is powered from the VESC. I'm as talented as you in regards to Arduino code. That's why my hall setup is not active yet. So far I'm just using a simple servo command (found online) to map the buttons to PWM outputs.

@royco
When I get the pedal assist working, I will share the code here. I just built myself a "LEGO/Arduino e-bike system simulator" (with magnet disks, halls, 2 buttons, and a servo as a PWM indicator). With this contraption I plan to learn how to write the pedal assist code (in the living room).

IMG_2014.JPG
 
Nice contraption you got there Andre.

Are you using the ForumsController code or making up your own?

I had fit issues with the PAS on my bike so had to 3D print a new one and use the magnets from the original PAS from the kit. So if you need help with 3D printing stuff I can help (if you dont have one already). Also, designed a PAS for the chainring but can't find anyway to reverse the sensor's read orientation.

Throw us a link here once you start your own build thread.
 
Andre said:
@Kepler

The Arduino Nano is powered from the VESC. I'm as talented as you in regards to Arduino code. That's why my hall setup is not active yet. So far I'm just using a simple servo command (found online) to map the buttons to PWM outputs.

So it begins. Time to teach an old dog new tricks.

Actually I am pretty excited about finally getting into a bit of programming. Anyone who has followed my journey would know I am an old school analogue man so this is going to be a bit of a challenge for me. To make life easier and speed things up, I will cheat a bit and use Visuino. Gone out and bought a starter kit. Driving a servo with a pot so step "A" completed. I want to stick with the 2 button throttle but have a double click hold the selected button on. Programmers are saying "too easy" I know, but I am looking forward to the challenge of working this out.
 

Attachments

  • 20180328_190708.jpg
    20180328_190708.jpg
    73.3 KB · Views: 5,903
well 4 days of Youtube tutorials and a heap of online reading brought me to the realization that line coding sucks :lol:. Got the basics and can now get my servo to do some simple commands however still a long way off being able to write code that makes the PWM output do what I really want it to do.

Enter Visuino. https://www.visuino.com/ For those not familiar with the product, it is a block programing package that allows you to assemble and link your logic then it writes the code for you and uploads it to your Arduino controller. Still a decent learning curve to get your head around all the logic options and how to put it together but for me at least, it has allowed me to assemble the logic and getting the PWM signal to react the way I wanted in a relatively short period.

Changed my mind on how to setup the button control. Now utilizing 3 buttons.

Operation is as follows:
press button 1 => fast ramp to 50% throttle and latch
press button 2 => fast ramp to 100% throttle and latch
You can toggle between the 2 buttons any time and latch each speed as required.

Press button 3 (microswitch on the brake lever) throttle is killed. However there is a 4 second ramp back to zero % so the motor deactivates smoothly.

So that it. the code is completed and i can now control my Vesc through the Vesc's PWM port. The ADC port on the Vesc is now freed up for the Metr Bluetooth interface which i should have in about a week. Happy days :)
 

Attachments

  • Arduino.JPG
    Arduino.JPG
    74.9 KB · Views: 5,804
Wow! That Arduino throttle control is fancy!

I know you got it all programmed using Visuino, but if you ever need a hand with programming, Kepler, I write semi-regularly in Python, PHP, with a little Javascript and Ruby tossed in. I've never written for Arduino before, but I'd be interested in taking a stab at it sometime. How small of an Arduino can you get that still has the same capabilities?
 
I am using a Pro Mini board for the actual build. It has basically the same capabilities as it's larger brothers but is stripped down to bare minimum. No built in TTL and no voltage regulator. Still easy to program with an external TTL and the the Vesc supplies the required 5V. Other great thing is that these clone boards only cost a couple of dollars.

Also modified the program to use the internal pullup resistors for the digital inputs so no need for extra external resistors now. Makes the solution even cleaner.

Got everything working nicely and the Bluetooth interface to the metr App works a treat. Just need to build the actual button pad to go on the handlebars and I will be ready to go.
 

Attachments

  • Arduino1.jpg
    Arduino1.jpg
    90.1 KB · Views: 5,648
  • Arduino2.jpg
    Arduino2.jpg
    56.6 KB · Views: 5,648
  • Arduino4.jpg
    Arduino4.jpg
    54.1 KB · Views: 5,647
  • Arduino5.jpg
    Arduino5.jpg
    63.2 KB · Views: 5,647
  • Arduino6.jpg
    Arduino6.jpg
    100.3 KB · Views: 5,648
I have been riding the bike with this setup for a few weeks now. Its been ok however the throttle hasn't worked out exactly as I wanted. Problem has been that the Vesc in FOC mode doesn't like a locked PWM input. It would hold for about 10 seconds, then the throttle would drop off. However in BLDC mode, not a problem. Tried all sorts of setting on Vesc in FOC mode, but nothing would work. Holding the throttle buttons down or manually pulsing the buttons would keep the bike going but this was not the way I wanted the throttle to work.

So I went back to the drawing board with the programming and after much experimentation, came up with a solution. The solution was to program the throttle to ramp to the required throttle setting, then when there, latch on but pulse just slightly at that throttle setting. This would keep the input to Vesc live and I no longer needed to manipulate the buttons to keep drive activated.

I am not sure if this issue is specific to my Vesc but I think this exercise has highlight the advantage of having the ability to do whatever you want to do with the throttle input once you go to a programmable solution.

To be fair, Visuino has still been a significant learning Journey however, as the programming became more complicated, I have no doubt without the aid of this program, I would not have the result i wanted today.

Anyway, a few more shots of the setup and the the Visuino block diagram. If anyone wants the raw Visuino file, send me a PM and I will be happy to send it to you.
 

Attachments

  • Button1.jpg
    Button1.jpg
    53.7 KB · Views: 5,321
  • Button2.jpg
    Button2.jpg
    93.4 KB · Views: 5,321
  • Visuino.JPG
    Visuino.JPG
    221.6 KB · Views: 5,322
Finally got the Arduino interface to work with the Vesc in the way I wanted it to. Problem was not with the Vesc but with my programming of the Arduino interface :oops: . Ended up being that the reset action that was applied by the brake switch was the cause of the throttle dropping off. The fix was to apply a Debounce block into the reset logic. Now the throttle holds perfectly on full throttle and 50% and releases predictably when the brake is applied.

With this latest programming, the drive works the best it ever has and lifts the overall user experience just that little bit higher. As long as it is dry, i cant really fault the operation. Any moisture though and the fun is all over. Lucky I am fair weather rider :)
 
I am both really happy you have your arduino throttle working.... and cringing at the block "programming" used.


On the otherhand, its literally what I do for a living.
 
I've also acquired a bluetooth card to add to my Kepler Friction drive bike. It works... but it uses the ports currently assigned to my twist throttle. I've tried rerouting the throttle into the Vesc through the servo cables using the hacked servo tester method (as shown here https://www.youtube.com/watch?v=cceUTv6tAaA and other places). But the end result is unresponsive - no power is going to the servo board/throttle and nothing registers in BLDC Tool.

Can anyone suggest how I might get this to work - eg, which settings I would need to change in BLDC Tool for the throttle to be recognised and powered?.. or if there are alternative Vesc ports I could use for the throttle. I've googled around for a possible solution, but no one appears to have tried setting up this configuration yet. Thanks.
 
Need a bit more information.

Are you using a Hall throttle or a resistive throttle like a Magura?

I am presuming you are using a hall throttle. The hack in the Youtube places power (+5V) and ground to the hall throttle with the green wire which is a 1V to 4V feed back to the servo tester which is in turn is bridged to the middle pin where the servo tester pot use to be. That centre pin would normally see a sweep from 0V to 5V with the original pot installed. Some servo testers will work with a 1V to 4V range as applied by the hall throttle but some servo testers might not like that voltage range.

I would be doing the following.

Remove the pot from the servo tester.
Get +5V and ground from the Vesc to power up the servo Tester. This comes from PPM (servo) connector
Get +5V and ground to the hall throttle.
Connect the output from the Hall throttle (usually the green wire) to the centre pin on the servo tester where the pot use to be.
Connect the servo output from the servo tester (usually orange or white) to the PPM input of the Vesc (usually the orange wire)
Configure the Vesc for UART and PPM App.

You should now see an input into Vesc when you move the throttle. If you dont, make sure you can drive a standard servo with the throttle connected to servo tester.

See how you go with that.
 
Yes, the Vesc 4 is what i am using and recommend for this drive

There are a few ebike builds using the Vesc4 but i dont know of any using the Vesc6. I presume the esc4 and esc6 are your versions of the Vesc.
 
Back
Top