Larry vs Harry Bullitt Hill Hauler, Back-to-Front Part 2

This continues the walk-through of my hill-climber Bullitt, starting with the mid drive motor installation and taking a close look at its BBSHD configuration.

Bullit II Build Series
Part 1
Part 2 (you are here)
Part 3
Part 4

So lets continue…

I’ll jump straight into the physical motor installation.

Mounting The BBSHD To The Frame

The install on this motor was almost exactly as I have already described for the Lizzard King. Its the same bike frame, after all. There were, however, some minor differences.

frame fitment was different

This frame just flat out did not want the BBSHD to fit. The cable boss under the bottom bracket was not quite in the same spot perhaps. Or dimensions on the frame were subtly different somehow. Either way, that cable boss blocked the motor. The proper solution to fixing this on this frame would have been to go to the motor and file back the forward bolt mounting ‘ear’ until the motor fits. Restated: sacrifice the mounting plate’s forward attachment point. Then give yourself the exact same motor attachment method that Bafang themselves use for the M625 – the upgrade to the BBSHD. It doesn’t have a forward bolt position either. What does it have? They do the Hose Clamp Trick (although not as well).

Above: What the Hose Clamp Trick looks like on a Bullitt if you glance down. Its been awhile since I built the bike so its a little grimy. 5 minutes with a toothbrush and some detergent would clean it right up.

This link goes straight to the motor clamping section of How To Build An Ebike From Scratch. While the description of the motor mounting and that Hose Clamp Trick is not on a Bullitt, the background info given, plus the detailed description of how to lock a BBSHD down permanently, so it can never shift whether it wants to or not, makes using that link and companion article the best way to describe what I did.

Based on other owner reports that came thru when I was building mine, there is variance from frame to frame that can yield an easier fitment, or a harder one. Naturally I got the harder one.

Shorter Crankarms

My Lizzard King used forged 175mm (Shimano Steps) crankarms. I had a spare set of the same arms on a shelf, in 170mm length. So I just used those. If I had to buy a set of crankarms, I would have tried to get hold of some 165’s.

Wire Tunnel

Once again I used a length of PVC for a protective wire tunnel on the top of the frame to run motor wiring forward. I used white furniture-grade PVC. Furniture grade PVC is more expensive than standard white Schedule 40 from the hardware store. But its shiny, pretty and a perfect match to the Milk Plus color and gloss finish.

The tube is held on with two industrial, giant-sized white zip ties. They’re overkill but don’t have that ‘zip tie’ look, because they are so physically large. The PVC is sitting on a bed of adhesive white foam to help hold it in place as bumps and bruises accumulate over time..

And that was it. Everything else was a carbon copy of the Lizzard King motor install.

The original Box Two 9s drivetrain, on a new and shiny fresh bike build. It will never be this clean again. The pedals are Funn Rippers with spring-loaded cleat engagement and yes, I do ride cleated in.

Motor Configuration (BBSHD Settings)

The BBSHD settings differences are not many versus my flat-land Bullitt, but the differences in performance are profound. On the Lizzard King, BBSHD pedal assist on level 9 – the maximum – peaks at a sustained 400-450 watts. That is a considerable power reduction that makes sense on flat land.

But in steep hills where the slope can go from zero to Uh Oh in about 30 feet, you are well-served to take it up a notch. I’ll cover all three screens here, but the changes that matter are almost all on the last one: The Pedal Assist Screen.

The Throttle Screen

This screen is almost my default. The only change is an evolutionary one: Start Current is reduced to 2%, so the throttle rolls on even more gently to the drivetrain. You hear a lot about how Bafang motors bang and jerk on the chain. 2% on Start Current completely smooths out that behavior. Also setting End Voltage to 4.2v creates a smooth throttle curve that makes it easy to modulate power output in very fine increments – the opposite of the default behavior.

The Basic Screen

Once again, this is pretty much my standard settings on this screen. It retains my speed limit graduations, which are meant to help cut power when my cadence gets high. Essentially what I did with the Speed Limit percentages was start at 100% on Level 9, and then work my way back in simple 5% increments down to the bottom Level 1.

The Assist 0 limits of 1 and 1 are there to preserve the normal function of throttle when you set the screen to Level 0, which disables Pedal Assist. This lets you pedal with no motor support without turning the motor off. Throttle remains available in case of an unexpected need.

I have strongly reduced the effect of the Speed Limit cutbacks via separate settings on the Pedal Assist screen. Since leaving these alone doesn’t hurt anything, and the fewer changes the better, I left my generic settings in place.

The Pedal Assist Screen

This is where the magic happens. The Hill Climber settings are based on my Surly Big Fat Dummy’s settings, which was my former ride in this area. I took what worked on that single-motor cargo bike, copied them to the Bullitt and then experimented a bit.

Since Bafang does not tell anyone anything about how these settings interact, we have to guess on some things. There is no way to set a specific power output level that is reliably sussed or documented.

The settings on this screen move the maximum steady output of pedal assist power to 900-950 watts. Thats a lot, and enables me to select assist level 6 or 7 and still get up the worst hills, with a safety margin available in 8 or 9. This turned out to be especially handy when I was hauling several 50kg loads of gravel for a landscaping project.

ABOVE RIGHT: the new Hill Climber. LEFT: The flat-land Lizzard King. Only Current Decay and Keep Current are changed. Small differences, big results.

NOTE: Version 2.2b of the open source BafangConfigTool has a graph that does a decent job of trying to explain how the settings interact and affect performance.

Start Current is very low at 2% for the same reason it is at 2% on the throttle screen: Eliminating jerky initial engagement (5% is what I used to use).

Slow Start Mode is as gentle as is confirmed to be safe for the motor’s controller. Lower numbers here = slower starting and 3 gives me the gentlest motor-safe slope to that curve.

Start Degree Signal is a fairly prompt 4. Once again the problem to beat is starting from a stop at an intersection while on a steep hill. Specifying a lower number of pedal assist signals to accept before the motor kicks in makes it start power delivery sooner, but I have also set Start Current and Slow-Start Mode so low this relatively fast engagement doesn’t cause any concerns with drivetrain strain.

Stop Delay remains as small as is safely possible to preserve the motor controller.

Current Decay (one of only two changed settings) has been set to the maximum of 8, which either minimizes Current Decay, or eliminates it entirely (Bafang isn’t giving anyone any help figuring out which, or when). Having high cadence reduce power assist makes a lot of sense on flat, paved ground, but when you are set in a granny gear and pedaling like mad to crawl your way up an excruciatingly steep hill, the last thing you need is for the motor to cut back power thanks to high cadence. It also looks as if this one setting is primarily responsible for the increase in peak sustained power.

Stop Decay remains at zero. The idea is if you stop pedaling, you want the motor to stop. I ran some experiments recently as part of an internet discussion. I found a suggested setting of a whopping 1100 ms (i.e. set it to 110) produced nothing negative. The cutoff still happened so fast I couldn’t argue it hurt anything. In steep hills, a long setting like 1100ms could actually smooth things out a bit if crawling up a hill and perhaps your cadence stutters accidentally. Not a setting I kept, but its worth noting.

Keep Current (the second of two changed settings) is kicked up just a bit to 40% from the Lizzard King’s 30%. Frankly both settings are aggressive. The Current Decay of 8 is preventing this setting from engaging at all unless I am on flat ground, moving relatively fast (i.e. not crawling at 6 km/h up a hillside) and spinning my crankarms at high cadence.

Version 2.2b of the BafangConfigTool can be downloaded (entirely at your own risk) at the author’s web site. I make no representation of any kind as to its quality, lack thereof, your ability to avoid totally destroying your motor or cause a horrific accident of some kind as a consequence of using it.

Saddle and Seatpost

I used the same Ergon ST Core Prime saddle that I know my butt prefers. However, since the Kinekt post on the other Bullitt has a pogo stick effect at fast cadence, and I know the Thudbuster LT doesn’t: I put the Thud on this time.

That cable is a seat leash to add a few moments delay to a theft attempt. I covered the rear camera in the dashcam series.

Stuff In The Frame ‘Triangle’

I used a Blackburn frame bag just as on Godzilla. However, this one does not hold the front motor controller. It does hold the batteries for the front fork lights and COB LED strips. It also holds the mains power cord for the onboard charger, as well as the charger’s 15-foot/4.5 meter power cord extension. There is also a secondary charger connection to the battery in case I want to plug in an external Satiator charger or similar (we’ll get to the charger stuff in a future installment). Beyond that, there is space for wallet, sunglasses, phone and keys.

The zipper on the other side of this bag holds the power banks for the headlights, side light strips and a dashcam.

At the back of the cargo bulkhead are Velution’s Large bag solution, that uses Ortlieb large dry bags. These are much bigger than the Fahrer bags on Godzilla, and I like the Ortliebs a lot better. They hold all of my routine tools, spare inner tubes, patch kits, pump and so on. Because I need to routinely empty these bags when I go inside of a shop and leave the bike outside, I keep the contents in easily-removed cloth zippered pouches (two each side). That makes it easy to pull out the pouches and toss them into a carry bag.


For handlebars, this time I chose the Ergotec Space handlebar. Think of it as a Jones Bar in Junior size. Its backsweep is less than the Jones 45 degrees, but still comfortable. I installed short Ergon grips hoping to extend them longer than normal with segments from a Wolf Tooth Fat Paw grip, but I needed so much room to fit the shifter, I couldn’t. I ended up with a normal grip size.

Cockpit Version 1.0: At the shop on the night assembly was completed. Dual independent throttles, dual independent PAS settings … and dual displays. Not subtle.

Everything is in easy reach on the bars and – originally, at least, is a carbon copy of what I had already done on the Lizzard King.

Cockpit Version 2.0

A few months went by, and I decided to clean up the bars at the expense of information display, which I am not a fan of anyway (we got along riding bikes just fine for more than a century without all this data reporting).

Pretty clean handlebars – as far as 2wd bikes with a big dashcam go. Also Cockpit v 1.0 had the grips upside-down.
The DM03 Bafang Display

The DM03 is made by VeloFox for Bafang BBSxx motors. It is a small monochrome OLED screen. Sales ads describe it as an improved version of the SW102 display. The SW102 is most commonly known as what the EggRider v2 display/programmer uses. I only wanted an ultra-small, discreet display, not the extra EggRider functionality.

A big selling point of the DM03 was it supported 9 levels of PAS. An SW102 gives only 5. Additionally, the DM03 has larger buttons than the SW102. Since I also have an EggRider v2 on my Cyc X1-powered 29er, I can compare the two displays look-and-feel directly.

Knowing how visible my EggRider was in bright sunlight, I was under no illusions: The DM03 display is only just barely visible in bright sunlight. But I was after compact size, and I can do without a display. This is a perfectly functional PAS control unit for people who do not feel a need for an ever-present data readout.

If its foggy, in the shade or overcast, then the display is easily visible. You can also shade it with your hand and squint at it in the sun, but you’d better not do that while in motion. I only look at the thing to remind myself which PAS level I am in.

The DM03 Advanced Settings Code

Just like other Bafang-compatible displays, the DM03 display for Bafang motors has an Advanced setting, where you can edit things like wheel diameter, and make the all-important selection to support 9 PAS levels. The code to get into the DM03 display’s Advanced Settings screen is1657. I purchased two of them from two different vendors. Neither provided the code with the display, but both promptly gave it to me when I asked so I could finish setting up my bike.

Cockpit Version 3.0

As seen in both cockpit versions above, I used a KT-LCD3 display to pair with my KT front motor controller. I have used both for years and its a tried and true combination.

The KT-LCD4 is dirt cheap on Amazon with 1-day delivery for about US$35. If you want to wait a month you can save eight or nine bucks buying it on AliExpress.

As part of my de-cluttering efforts, I subbed in the KT-LCD4, which has the same features stuffed into a tiny package. KT used a backlit LCD so unlike the DM03’s OLED, this one is visible just fine in bright sunlight or black of night.

No big displays. DM03 on the left and LCD4 on the right. I also changed the grips (swiped from another bike in The Pacific Fleet).

If it weren’t for the dashcam and the front headlight, the bars would almost be considered clean. And considering this is a 2wd bike, the difference is amazing.

Carbon Fiber Steering Tube

I used the Velution one-piece carbon fiber steering tube. I found with the Lizzard King I moved the handlebars once to find my optimal height … and never moved them again. The Velution tube is a small fraction of the weight of the steel factory model plus the weight of the EasyUp is gone. You also get a MUCH cleaner look with the included smooth alloy spacer.

Heads-Up: If buying the Velution steering tube, be aware it does not come with a crown race (not their fault; they never said it did). Source one yourself. I used a steel Cane Creek 40.

Kinekt Suspension Stem

After going to all that trouble to lose weight on the steering tube assembly, I gave some back with this Sherman tank of a bicycle stem. For me it is worth it. My wrists have never been the same after a car hit me in 2017, and between the swept back bars and a suspension stem, this is what I need to be able to ride without pain getting the better of me.

I upgraded the internal spring to the extra-firm Orange version, which is not available unless you buy an orange 1.5″ upper seat spring directly from Kinekt. I also installed the damper upgrade kit. That gives you a stem so firm you can’t move it by hand. It only moves when installed. So I can use it with a full lean-over seating position and it will not bottom out on me.

The Cargo Bay

Here’s where all the work is, and this is where the build actually gets interesting. But given how long this post is at this point, its time to put a sock in it and save that topic for Part 3.

Author: m@Robertson

I'm responsible for the day-to-day operations at my place of business: Leland-West Insurance Brokers, Inc. We do classic and exotic car insurance all across these United States. I'm also an avid auto enthusiast, a born again cyclist (i.e. an ebiker) and participate in medium and long range CMP and NRA sanctioned rifle competitions.

9 thoughts on “Larry vs Harry Bullitt Hill Hauler, Back-to-Front Part 2”

  1. Hi. Very interested in your motor configuration. When you put 60% speed in assist 1 label, for example, what is the top speed you had configured in the display?


    1. Top speed is the max my DZ40 display is able to select, which is 61 km/h (38 mph). That is way more than the bike is capable of. I prefer to have no limiter stick its nose in so I routinely set them to maximum so they do not get in the way. In my local jurisdiction the bike is never capable of going faster than is legally allowed, and on top of that there are slower speed limits for different routes I consciously adhere to. Riding on Assist Level 1, that is a flat land setting I typically use on shared use paths in my home area, and I’ll shut the front motor completely off sometimes, or set it to ‘1’ as well, so the front is not putting out more than about 50 watts, and the rear is 150-200. EU-legal power levels like this even with two motors. On shared use paths in my neighborhood there is a posted 12 mph / 19 km/h speed limit as there are a lot of tourist pedestrians paying no attention whatsoever to their surroundings.

      For much more detail on the motor config check out the 2023 update for BBSHD programming on this site.

      1. Yes. I have read all your posts on Bafang programming but then I have a question. If the display limit is 61 km/h then the speed limit for assistance level 1 is 60% of 61 = 36.6 km/h. Such a high speed that it’s practically as if you put all the levels at 100% speed, right?

      2. Sorry I missed replying to this when you posted it. Speed % refers to the speed of the motor rpms. It is not ground speed, which is what you are thinking it is.

  2. It’s ok. You can reply the questions when you can do it. This life is demanding enough to attend weird questions from any random internet guy. Anyway many thanks for your help. Your blog is very exhaustive with the ebikes including cargo… So great!!! Thanks for share your passion.

Leave a Reply