Idea for better shifting - Printable Version +- Forum (https://copynotes.be/shift4me/forum) +-- Forum: Discussion (https://copynotes.be/shift4me/forum/forum-6.html) +--- Forum: Feature Requests (https://copynotes.be/shift4me/forum/forum-8.html) +--- Thread: Idea for better shifting (/thread-22.html) |
Idea for better shifting - Ed_R - 09-08-2020 A fellow auto shifter enthusiast here. Been having a nosy at your code, very impressed. I can tell it’s been developed over some time and had considerable thought put into it. I'm too addicted to my enviolo (NuVinci) hubs to want to build one and don't really like derailleur gears. Therefore the following is just a suggestion and not able to test it myself. I noticed in the code and could hear in the video that the servo only moves to the next gear position. Mechanical shift levers have a tendency to move the derailleur past the next sprocket and then drop back to the next position. Think its only when shifting to an easier gear but it helps with quicker shifting. My suggestion is that this could be programmed in so that the servo does to same thing. Slightly over shift and then drop back, not sure for how long or by how much. Something to test if you want or perhaps the shifting is fine and this isn’t needed. Also just remembered something else that has almost made me build a derailleur auto shifter just to test it and that is. Time the shifts to happen at the dead spot of the pedal stroke. As far a I know this isn’t implemented on any electronic shifting due to the need for a cadence sensor. However you have a reed switch for cadence measurement so the position and timing of the crank is known. Would love to know if it could remove the need to ease off the power when shifting. RE: Idea for better shifting - visitor007 - 09-08-2020 The over-shift-then-return thing is already in the code, see the CorrectAmount parameter RE: Idea for better shifting - Ed_R - 09-08-2020 Now that you point it out its obvious, I'd completely missed it. The code is impressively complex and not easy to trace every variable in the Arduino IDE. Now rewatching the video I realise the noise of servo isn't changing just due to the change in resistance as the chain moves between sprockets as I originally thought. RE: Idea for better shifting - Jan Oelbrandt - 09-09-2020 (09-08-2020, 03:54 PM)Ed_R Wrote: I'm too addicted to my enviolo (NuVinci) hubs to want to build one and don't really like derailleur gears. RE: Idea for better shifting - Ed_R - 09-09-2020 Your code looks great for gears but unfortunately no way to enter infinity for GearAmount. To get the best out of enviolo hubs requires a totally different code, I’ve spent the past 4 years developing it. It’s on my Arduino project hub page if you’re interested https://create.arduino.cc/projecthub/erose As for timing the shift at the dead spots of the pedal stroke, I’m a little concerned its going to be difficult to get the shift to happen at a precise time. Sprockets have ramps on them to initiate a shift when the teeth are correctly aligned for easy meshing. Will depend on how many ramps there are and the rpm as to what the time variation is. I wouldn’t bother with a second reed switch or worry about the speed of the servo. The shift doesn’t need to happen on the first dead spot it could be the second or even third assuming cadence isn’t changing rapidly. Getting the optimum timing could be a little tricky, sort of situation you need a high speed camera. I added this timed shifting into my code purely for energy saving. The hub shifts under load without issue but has more resistance. I never really worked out what the best timing values were and realistically I don’t think it makes a lot of difference to battery life. At one point I had my homemade power meter outputting pedal torque as often as it would suffer. This was picked up by the auto shifter and put along side servo position. The results weren’t very conclusive. RE: Idea for better shifting - Jan Oelbrandt - 10-03-2020 (09-09-2020, 08:45 PM)Ed_R Wrote: Your code looks great for gears but unfortunately no way to enter infinity for GearAmount.All you would have to do to work with a CVT is to change the lines like <code> pos = LoadSprocketWidth("GetGear",ActiveGear); into <code> pos = pos + x; (x being a preset amount to be added or reduced to get a noticable "gear" change) And of course a limit to not go below or above servo limits (09-09-2020, 08:45 PM)Ed_R Wrote: As for timing the shift at the dead spots of the pedal stroke, I’m a little concerned its going to be difficult to get the shift to happen at a precise time.I've been observing shift times while riding. I came to an aprox of 90 degrees to early to shift at the dead spot. So I've added a calculation to delay the shifting. I'll be riding with my new code next week, I'll post here how it turnes out. RE: Idea for better shifting - Ed_R - 10-05-2020 Must get hold of my 2 bikes, will hopefully in November. If I do I'll give you code a little try. Great to here you are experimenting with the code timing. Interested to hear how you get on. |