Zen Photon Ultra - limited version (Bafang Ultra, Rohloff Speed hub, Gates belt drive)

as Gionni mentioned, the bike has a throttle (actually, we have improved the throttle hardware from what you see in the picture)
and the Rohloff E-shift is only limited to Bosch and Panasonic motors. As of now, no other motor works with Rohloff E-shift.


Our Bosch-motor equipped Samurai works with Rohloff E-shifter and dual battery, but on the flip side, none of the Bosch or Panasonic motors have a throttle.
Hey Rav'.... what throttle hardware are you using now?
I swapped out the thumb throttle you sent with my bike to a half twist.
PXL_20240229_183658149~2.jpg



Though I use the throttle on a very limited basis.. I much prefer it in function.. and it matches the palm grip while taking up less bar real estate.
 
Thanks to you both Ravi and Gionni.
No worries.
Personally I have no use for the e shifter and wouldn't want it even if available with the Bafang. There's more than a few complaints on it with the Bosch setup and I like easily dropping up to 4 gears with a quick twist in anticipation of changing terrain.
If you ride more relaxed the e shift might work well for you
 
How noisy/quiet is the setup that you have right now if you don't mind me asking?
The Ultra isn't the quietest motor and the Rohloff is audible but nothing that offends. I recently re_greased the motor which did make it a little quieter. I find it acceptable.
Good news is that mid 2023 Bafang started installing different quieter gears and it appears to have made a difference.
 
Well, that's up to Ravi, obviously. I did say it was "perhaps outlandish."
Perhaps Outlandish?....I'd say irresponsible for an oem.
Stop trying to make this personal. The facts are what they are. I've outlined a simple test procedure for anyone with an Ultra motor to verify my statements as to how the Ultra behaves with changes in the Torque Tab. As for not broken, I disagree - not being able to have different torque settings for anything above 13 MPH, while having 6 different sets below is broken, at least in my opinion. I think it's fair to say you haven't tried it, so you don't actually know how much better it could be. You're essentially running the SPD100 settings for all bike speeds above 12.5 MPH. That's apparently OK for you, but having the ability to tweak settings for different speeds above that for a road-based bike is good to have.
I stand by my original statement... you seem to be alone in it's necessity and implementation. My typical daily exercise ride is 20mi at an average speed of 16mph and a maximum of 25mph on a paved very hilly surface. The motor outputs smoothly, predictably and as desired at all speeds including those above 13mph. One might even argue that once at cruising speed there's no need to have different acceleration outputs and doing so could interfere with a smooth, predictable acceleration curve.
Maybe provide an example of why one would want to implement a pre_programmed change in motor output say at 19mph when accelerating from 15 mph to 22mph.
You can easily and predictably modulate motor output via pedal pressure input... which to me is more intuitive and works without issue.
I personally feel there's too much programming speculation and not enough isolated testing validation, and that has caused more than a few people to give up on improving their settings since they're essentially stabbing the dark.
True... and that's what I'm hoping Ravi can eventually help with. Using the Bafang issued software I think could answer many questions.
I don't know which "factory" you're talking about.
Manufacture: Bafang
Some OEMs ship Ultra motors with "0" for Base Voltage - I've seen that personally with at least 3 different OEMs. A few OEMs ship with 754mV or thereabouts. I agree that the non-zero default is reasonable. I've seen it postulated that the value of "0" causes the Bafang firmware to substitute some default value internally, but I have no way to actually test that. I have seen that putting in too small a non-zero value can make the motor a bit jumpy at stand-still, as the motor generating more than Base Voltage is apparently interpreted as pressure on the pedals.
Perhaps 0 is a self calibration mode.. reading and inputing base voltage as read at start up?
In any case I did state it's good to double check and even add a few for good measure as I don't see the downside to doing so.
I do cover setting up a Delta Voltage table for a less than 60kg max applied pressure in my posts.
Yes you do.. but you advise against it. Additionally none of your pretty spreadsheets include doing so.
Also, I did run a live test while riding my own bike using my EggRider and my phone's screen recording capability, and I was surprised to find that I'm apparently a much strong rider than you are ;), as I did hit maximum voltage (from 60kg) a few times during that ride.
Maybe you are... maybe you're not. I think it's probably more that you're a sloppy rider that doesn't anticipate gear and PAS changes correctly putting yourself in a position to have to stomp 🙃
My point was that many ride an ebike to avoid those pressures and using a smaller spread helps eliminate them. If I want to push myself all I need to do is choose a lower PAS. That way I'm deciding how much force I want to exert and it's not dictated by programming. I also think it makes the acceleration curve more responsive.
Luckily, changing PAS levels is the easiest thing to program on a Bafang motor, so people can try it out for themselves.
And probably the most understood piece of programming. I realize that an intuitive common sense approach negates the need for fancy spreadsheets... but that's not part of my goal here.
 
Last edited:
good call on the thumb throttle, i have one bike with thumb throttle and one bike with twist and much prefer the thumb throttle. more natural feel and feels quite a bit safer too. i also like that the thumb throttle is on the left side where the twist throttle is on the right.
 
good call on the thumb throttle, i have one bike with thumb throttle and one bike with twist and much prefer the thumb throttle. more natural feel and feels quite a bit safer too. i also like that the thumb throttle is on the left side where the twist throttle is on the right.
I'd have to disagree on the natural feel and my main reasoning for preferring the twist throttle. Also easier to maintain a desired output over a bumpy surface...at least for me.
As for safety, both can be bumped unintentionally and require mental training to avoid doing so. I've accidentally activated both and trained myself to always tap down to PAS 0 before dismount and to have the brake lever under finger when handling the bike.
My twist throttle is on the left as I have the Rohloff twist on the right.
Preferences are varied so options are appreciated.
 
Last edited:
Perhaps Outlandish?....I'd say irresponsible for an oem.
It's still Ravi's call. The double-fake-magnet method provides a better on pavement riding experience than the stock Bafang programming model can provide while still giving the rider an accurate bike speed readout on his display. Hardly "irresponsible."
I suspect the gating question for Ravi is whether he can/wants to source a display with a wheel diameter/circumference range that goes up to twice the normal range.

you seem to be alone in it's necessity and implementation.
You seem to not have read all the posts on it here, and you certainly haven't read my DMs. The real reason it's not more widely used is that it requires a display for which you can set the wheel diameter/circumference to twice the actual value, and the EggRider is the only display I know of which has that capability. Which means you haven't tried it, so maybe time to honestly think about why you attack something you haven't even tried?

Maybe provide an example of why one would want...
First, the obvious thing to point out is that unless you have all 6 of your SPDxx columns in the Torque Tab set exactly the same, you already have motor programming that varies based on bike speed. So, the question really is why you would rather have control over only half the bike speed range you actually ride in?

Second, my original thread on the subject gives some guidance (and example) on what values to set in the SPDxx columns, and that guidance is based on bike speed. I'll copy and paste here, with minor edits:
"
ParameterSpd0Spd20Spd40Spd60Spd80Spd100
Bike Speed Range0 - 5.5 MPH2.5 - 10.5 MPH7.5 - 17 MPH12.5 - 22 MPH20 - 31 MPH> 25 MPH
Start (kg)13118421
Full (kg)405060603520
MinCur (%)1357912
MaxCur (%)100100100100100100
  • At low bike speeds you don't want light pressing on the pedals to give much, if any, assistance - that would make the bike less controllable at low speeds. But, as the bike speeds rise you eventually get to the point where you want almost any pressure as an indication that you want more power/go faster. Hence values for Start decrease as bike speed goes up.
  • For Spd0, you want a ramp up in pedal pressure to get you going from a stand-still. Hence, reducing the Full value to a low-ish number lets you apply medium pedal pressure to get full power.
  • For Spd100, any pedal pressure at all means you want more power to go even faster. So, not only a low Start threshold but a low max pedal pressure since you're in top gear and you don't want motor power to be limited by your ability to apply pedal pressure while at a high pedal cadence.
  • Spd80 is similar to Spd100, but allow for more pedal pressure modulation by the rider to vary the motor output. This is done by increasing the Full threshold.
  • For Spd40 and Spd60 I'm assuming the rider is in an appropriate gear and can control the application of pedal pressure from nothing up to the Ultra's max recognition of 60kg. If you can't get to 60kg of pedal pressure, then I still recommend keeping the 60 for Full and instead adjusting your Delta Voltage table to accommodate the pressure range you can apply. Keeping the 60 value here enables less granularization in torque sensor, which should be better.
  • I set Spd20 as a mix of Spd0 and Spd40 values. This is still a low bike speed. Basically, from a stand-still you start in Spd0, but almost immediately are into Spd20.
"
Since you asked, one example of why this is so great are my SPD100 column settings. I've got "Full" set to a low 20kg, which essentially means that any real pedaling at all yields Full Motor Power (within the PAS limit, of course). This is absolutely dandy at 30MPH or faster, but would be a disaster for me at only 13MPH. That's just too much power too easily at too low a speed, yet that's the top programmable speed range normally.

Now, if you're the type of rider who normally maxes out at, say, 15MPH, then you don't need the double-fake-magnet setting, but anyone who goes over, say, 22 MPH normally will appreciate this, IMO. I say don't knock it until you've tried it, but that hasn't stopped you so far.

I do cover setting up a Delta Voltage table for a less than 60kg max applied pressure in my posts.
Yes you do.. but you advise against it.
And rightly so. My short discussion in this post sums up the advantages, which is based on human capabilities. Since the maximum pedal pressure we humans can apply varies inversely with pedal cadence, it's more advantageous to be able to specify the highest pressure ("Full") at which we the most power ("Max") on a per speed range basis than to set a hard limit to be used everywhere.

In simpler terms, anywhere in the Torque Tab you might have had "Full" set to 60kg, just set it to your actual max, whether that's 50kg or 42kg or whatever. And if you want, think about your bike speeds and pedal cadences at those speeds and set your Full value accordingly.

Luckily, changing PAS levels is the easiest thing to program on a Bafang motor, so people can try it out for themselves.
And probably the most understood piece of programming. I realize that an intuitive common sense approach negates the need for fancy spreadsheets
You appear to be confused. I have not published a spreadsheet on PAS levels as it's pretty straightforward math. I also provided some examples here.
 
It's still Ravi's call.
Of course
Hardly "irresponsible."
So entering erroneous information into the bikes controller to trick it and facilitate at speeds 25mph and above ... "any real pedaling at all yields Full Motor Power (within the PAS limit, of course). This is absolutely dandy at 30MPH or faster"
And you don't see that as opening an ebike company up to liability?
Please allow me to update my characterization to criminally ignorant.

As for the rest... it was understood from your initial set of posts. I believe my implementation of the settings caters more to the average owner.

You appear to be confused. I have not published a spreadsheet on PAS levels as it's pretty straightforward math. I also provided some examples here.
Seriously? You're really going to argue semantics?
The examples are the output of and in the format of a spreadsheet.
 
Last edited:
It's still Ravi's call. The double-fake-magnet method provides a better on pavement riding experience than the stock Bafang programming model can provide while still giving the rider an accurate bike speed readout on his display. Hardly "irresponsible."
I suspect the gating question for Ravi is whether he can/wants to source a display with a wheel diameter/circumference range that goes up to twice the normal range.


You seem to not have read all the posts on it here, and you certainly haven't read my DMs. The real reason it's not more widely used is that it requires a display for which you can set the wheel diameter/circumference to twice the actual value, and the EggRider is the only display I know of which has that capability. Which means you haven't tried it, so maybe time to honestly think about why you attack something you haven't even tried?


First, the obvious thing to point out is that unless you have all 6 of your SPDxx columns in the Torque Tab set exactly the same, you already have motor programming that varies based on bike speed. So, the question really is why you would rather have control over only half the bike speed range you actually ride in?

Second, my original thread on the subject gives some guidance (and example) on what values to set in the SPDxx columns, and that guidance is based on bike speed. I'll copy and paste here, with minor edits:
"
ParameterSpd0Spd20Spd40Spd60Spd80Spd100
Bike Speed Range0 - 5.5 MPH2.5 - 10.5 MPH7.5 - 17 MPH12.5 - 22 MPH20 - 31 MPH> 25 MPH
Start (kg)13118421
Full (kg)405060603520
MinCur (%)1357912
MaxCur (%)100100100100100100
  • At low bike speeds you don't want light pressing on the pedals to give much, if any, assistance - that would make the bike less controllable at low speeds. But, as the bike speeds rise you eventually get to the point where you want almost any pressure as an indication that you want more power/go faster. Hence values for Start decrease as bike speed goes up.
  • For Spd0, you want a ramp up in pedal pressure to get you going from a stand-still. Hence, reducing the Full value to a low-ish number lets you apply medium pedal pressure to get full power.
  • For Spd100, any pedal pressure at all means you want more power to go even faster. So, not only a low Start threshold but a low max pedal pressure since you're in top gear and you don't want motor power to be limited by your ability to apply pedal pressure while at a high pedal cadence.
  • Spd80 is similar to Spd100, but allow for more pedal pressure modulation by the rider to vary the motor output. This is done by increasing the Full threshold.
  • For Spd40 and Spd60 I'm assuming the rider is in an appropriate gear and can control the application of pedal pressure from nothing up to the Ultra's max recognition of 60kg. If you can't get to 60kg of pedal pressure, then I still recommend keeping the 60 for Full and instead adjusting your Delta Voltage table to accommodate the pressure range you can apply. Keeping the 60 value here enables less granularization in torque sensor, which should be better.
  • I set Spd20 as a mix of Spd0 and Spd40 values. This is still a low bike speed. Basically, from a stand-still you start in Spd0, but almost immediately are into Spd20.
"
Since you asked, one example of why this is so great are my SPD100 column settings. I've got "Full" set to a low 20kg, which essentially means that any real pedaling at all yields Full Motor Power (within the PAS limit, of course). This is absolutely dandy at 30MPH or faster, but would be a disaster for me at only 13MPH. That's just too much power too easily at too low a speed, yet that's the top programmable speed range normally.

Now, if you're the type of rider who normally maxes out at, say, 15MPH, then you don't need the double-fake-magnet setting, but anyone who goes over, say, 22 MPH normally will appreciate this, IMO. I say don't knock it until you've tried it, but that hasn't stopped you so far.


And rightly so. My short discussion in this post sums up the advantages, which is based on human capabilities. Since the maximum pedal pressure we humans can apply varies inversely with pedal cadence, it's more advantageous to be able to specify the highest pressure ("Full") at which we the most power ("Max") on a per speed range basis than to set a hard limit to be used everywhere.

In simpler terms, anywhere in the Torque Tab you might have had "Full" set to 60kg, just set it to your actual max, whether that's 50kg or 42kg or whatever. And if you want, think about your bike speeds and pedal cadences at those speeds and set your Full value accordingly.


You appear to be confused. I have not published a spreadsheet on PAS levels as it's pretty straightforward math. I also provided some examples here.

Gentlemen,
Many thanks for your critical insights. I gather that there is a lot of more room for improvement of the pedal-assist technology that works for the North American market. We will work with Bafang to make some of these critical changes.
 
Gentlemen,
Many thanks for your critical insights. I gather that there is a lot of more room for improvement of the pedal-assist technology that works for the North American market. We will work with Bafang to make some of these critical changes.
Thanks Rav'
As from our initial discussion on the topic... what would be extremely helpful is a Bafang explanation of the available settings. A comparison between the hacked software and the Bafang official software would be helpful as well.
The details on the sequence of operation in regards to the controller logic would be golden...but that's probably a bridge too far.
 
Last edited:
I gather that there is a lot of more room for improvement of the pedal-assist technology that works for the North American market. We will work with Bafang to make some of these critical changes.
Ravi, my suggestions for specifics to talk with Bafang about are:

1) Understanding what the Pedal tab settings do for the Ultra, if anything. Most seem to have no effect and their naming implies an overlap with similar fields in the Torque Tab that would appear to provide more control per bike speed. My impression is that the Pedal Tab is mostly a left-over from the non-torque sensing BBS series, kept because the first three fields on the tab (Pedal Type, Designated Assist, Speed Limited) were needed, but the other fields don't seem to have an impact on the Ultra.
2) An explanation of what LimitedSpeed(%) on the Basic tab actually means and how it works.
3) On the Torque Tab, the KeepCur(%) values have to be less than MinCur(%), which seems wrong - how could anything be less than the minimum?
4) Some explanation of what KeepCur, CurDecy, and Return in the SPD columns do would be very helpful.
5) Having the SpdXX columns in the Torque Tab be expandable for on road use with a higher speed range. The existing topping out at 12-13 MPH is probably fine for off-road use, but for on-road use even Europe has "speed pedelecs" that go up to 28 MPH, as well as Class 3 in the US of course. Since many displays already have something often called "Off-Road" vs "On-Road" (although other names are used sometimes), perhaps they leverage that and maintain compatibility.
 
Would this work with the Enviolo Automatiq, or is the Ultra just too powerful for it?

I don't have enough data on the durability of the Enviolo Heavy Duty hub with Bafang M620.
There is enough data on the reliability of Rohloff under high-powred mid-drive systems - [Optibike, Nicolai, Utah Trikes]
I don't think the servo motor in the Enviolo Automtiq shifter would be able to handle very high torque from the Bafang M620. It will lead to a lot of calibration issues.
 
Ravi, my suggestions for specifics to talk with Bafang about are:

1) Understanding what the Pedal tab settings do for the Ultra, if anything. Most seem to have no effect and their naming implies an overlap with similar fields in the Torque Tab that would appear to provide more control per bike speed. My impression is that the Pedal Tab is mostly a left-over from the non-torque sensing BBS series, kept because the first three fields on the tab (Pedal Type, Designated Assist, Speed Limited) were needed, but the other fields don't seem to have an impact on the Ultra.
2) An explanation of what LimitedSpeed(%) on the Basic tab actually means and how it works.
3) On the Torque Tab, the KeepCur(%) values have to be less than MinCur(%), which seems wrong - how could anything be less than the minimum?
4) Some explanation of what KeepCur, CurDecy, and Return in the SPD columns do would be very helpful.
5) Having the SpdXX columns in the Torque Tab be expandable for on road use with a higher speed range. The existing topping out at 12-13 MPH is probably fine for off-road use, but for on-road use even Europe has "speed pedelecs" that go up to 28 MPH, as well as Class 3 in the US of course. Since many displays already have something often called "Off-Road" vs "On-Road" (although other names are used sometimes), perhaps they leverage that and maintain compatibility.

Thanks for your excellent suggestion and contribution. I wish Bafang realized the quantum of work enthusiastic riders like yourself have put in.
 
Thanks for your excellent suggestion and contribution. I wish Bafang realized the quantum of work enthusiastic riders like yourself have put in.
Hi Ravi. What is the current status of the Photon Ultra with Rohloff hub? The web site shows an Enviolo hub. Is the Rohloff version still available and is it standard shift or electronic? Thx.
 
I have some question on the different settings available on the Bafang M620 motor. I have built a number of e bikes using the bafang conversion kits in 750 W and 1000W versions. How difficult is it to convert from the Road version to the Off Road version? Besides the difference in available power is there any other difference like speed? I know the kits allowed you to go in at the display and enter a code that allowed certain changes like top speed to be entered (last bike build was over 5 years ago and that might have changed).
 
Back