The Start: What Is VESC?
It all starts here, with the first video in the series. Here, I lay out a primer on what VESC is, and explain a bit about ESCs, what they’re about, and why the Vedder Electronic Speed Controller is an important part of the PEV community.
*Many of the links and pages that you will find in this article, themselves have linked pages with more information for reference. If you are a new builder, then it is in your best interest to just go down the rabbit hole of DIY PEV building. There are many dangerous aspects to it, but learning to build and make things yourself is a rewarding hobby, and is worth learning to do properly.
I tend to now publish media and writings on my projects, not as “how to” guides, but as logs of “what happened” when I went through a project. The knowledge gained for these projects was acquired through countless hours of reading, asking questions, and trying and failing.
Part 1: Going Over Parts
In the next video installment, I explain what parts I will be using.
There has been a change since this parts video, and I am no longer using the V1 Little FOCer for the build. I am instead using a V3.1 Little FOCer, and most of the parts from the DIY kit which can be found at:
https://www.makerspev.com/products/flowglider-diy-bundle
^Please note that this product page also has refernce links that would be useful.
It is because of this change to the V3, that a lot of the tedious rework on the FOCer could be skipped, and the ESC enclosure box being used was no longer the original black Impact PLA print, but a transparent print from MakersPEV.
The rest of shown parts here are still planned to go into the build. Please see the video description for more information.
Part 2: Assembling the Controller (Front) Enclosure Box
Aside from the above video, there are parts of this assembly that I’d like to mention in more detail with some photos.
As was mentioned, I did indeed change out the motor phase wires. The initial idea was to just angle one so that it would clear the inner support post of the enclosure box, but that proved a bit more difficult than I thought. I HATE lead free solder. Hate it. It melts inconsistently, crystalizes like crazy even near an iron, and makes for poor joint reflowing unless you dump excessive heat into it. And it takes a lot of flux (or more corrosive flux) to keep it pooled properly.
I understand why it’s used, but if I ever get the chance to remove it, I usually do it. So in this case, working with the lead free solder gave me a hard time, I ended up wicking some more solder up the strands of the wire, and it left a 1/4” length of the wire a bit stiffer than I wanted it to be. So, that was my opportunity to just replace the phase wires with longer ones.
Having done it, I do believe the phase wires should be a bit longer than they were stock, and that’s because the included adapter that goes from 4mm bullet connectors to the 6-pin Molex for the motor, is very short and entirely rigid. I’m sure it could technically fit, but I wasn’t really keen on forcing anything or having extra pull stress on any wiring or connections. So, along with the longer phase wires off the FOCer, I added length to the adapter.
After all that, of course, was more bench testing.
The other modifications to the wiring I did was mostly around the power connector. The stock 16-pin Molex coming from the plug, has the power connection shared between the discharge path and the charge path. This is fine if you are using JUST the retrofit box, and a stock Onewheel battery box, battery, BMS and harness. In THAT case, the power going to the ESC, and the power going into the BMS from the charge port, follow the same path.
IF YOU ARE USING A CHARGE ONLY BMS, such as an ENNOID, or a ZBMS, or something like that, then you can’t use the power connector plug like this.
You will have to separate the charge and discharge circuits entirely.
What you will see below is how I did it, and you will notice another connector next to the charge circuit. That is a 2 pin JST-PH (2.0mm pitch) connector, for using the CAN BUS connector on the ESC, for data input from the BMS I’m going to use. I will be installing the ENNOID XLITE 24S V1 BMS which you can find here:
That is a smart BMS, that connects via CAN BUS to the VESC, and so you can read BMS data through VESC tool.
I will cover that more in detail in the next installment, focusing on the battery build and setup I do.
Apart from that, I redid the charge port connector, adding a 10 amp inline fuse on the positive wire, and segmenting it off with an XT30 connector. I also cut the excess Molex pins shorter, and added some heat shrink to them to help guard them from the other wiring in the enclosure. They are still available, and not totally cut short, in the even that I need to add other pins inside the controller box.
The rest of the wiring stayed the same, but I also added an external Bluetooth module. It’s a Flipsky VESC BT module that you can find here:Amazon.com
It is already programmed to work with a VESC based controller, and so you don’t have to do any software setup. The connector however, does have to be re-pinned. You can use a fine pick or tweezer to lift the wings of the JST connector, and slide the crimps out, and then replace them into an appropriate JST-PH connector following the pin out of the Little FOCer V3/V3.1.
Note the required pins for the UART connection that the module uses, specifically the 5v, Ground, TX, and RX pins. They are visible on the module, and the pin out is below.
As another small modification, I added a touch of hot glue around the JST connector wires, for a bit of strain relief. I usually do this for wiring that ends up getting bent and pressed down, since it can help to relieve stress at the crimp and connection failure.
Once all that was done, I began to actually place the connectors and wiring into the box. It’s mostly straightforward, and everything goes where it fits.
It’s important to note that when it comes to tightening down the retention rings on some of the connectors, that you may need some narrow nose pliers in order to navigate their spots.
Also, note that there are 2 Switchcraft connectors that look similar, but have different wiring.
-
The plug containing 3 wires goes to the dedicated ADC input on the left side of the pin out diagram above. This is for the foot sensor, and should be placed closer to the smaller 6-pin Molex connector for the motor.
-
The plug containing 6 wires goes to the motor sensor input next to the UART port that the Bluetooth module was plugged into. This is the port with pins marked for 5v, Temp, Hall1, Hall2, Hall3, and Ground. These are the motor sensor wires, and that plug should be placed closer to the larger 16-pin Molex for the power wiring harness.
Moving on from there, I connected the charge port to the XT30 on the Molex connector, and set about to connect everything to the Little FOCer. Please note the bullet points above, regarding pinout. Especially for the foot sensor.
Also, the kit includes some screws that work fine for the Molex connectors. I used different ones, specifically M4.5 (metric) screws for plastic that I ordered from McMaster-Carr. They have a coarser thread, but I don’t know what the benefit would be in practice. They also use a different drive, specifically Torx Plus, and I also like to get away from Phillips screws whenever I can. Note that I also used M4 sized nylon washers under the screw heads to further buffer the pressure on the 3D printed box walls.
Once everything is actually in the box and secured, the rest is both simple and tricky. You do have to do a lot of very careful wire management and folding, taking care not to pinch wires or create pressure points where a sharp edge or PCB component can short out after vibrating through a wire’s insulation after a few hundred miles of riding. This is why I tend to redo wiring, as I try to anticipate compressive forces and abrasion that happens from pressure and vibration from riding. It’s an eskate thing.
Pressure + Vibration = Abrasion.
As can be seen above, I also added a strip of fish paper insulation over the solder points where the power inputs enter the PCB, and a strip of Tesa harness tape over the other end of the PCB. This is just for some extra caution, as the lid is aluminum, serving as the heat sink for the FOCer’s MOSFETs, and I don’t want to risk a large impact leading to a short against the lid.
In pressing the FOCer down onto the support posts, you should be able to feel and see if the wires are clearing, and reach in and adjust the power wires and phase wires as the FOCer is further seated.
There is a lip in the box where the PCB itself should sit, and if it sits there with some pressure, then it is probably decently cleared for the final pressure from the lid.
There is an included thermal pad in the kit, and so you can just cut that to size to lay over the MOSFETs. Make sure that you do not damage this , as these particular MOSFETs have a metal face, and they are conductive. Without insulation, those will short circuit the motor phases, and the ESC will explode.
Regarding the lid, the kit did include hardware, screws, etc. As mentioned in the video, I found that the M3 countersunk screws were too long, and stood too proud of the edge of the M3 nuts on the top of the lid. Having a selection of screws, I replaced them with a size that was 2mm shorter, and they ended up pretty trued up with the edge. Again, I don’t know if that would have been a clearance issue, but I would prefer a more flush result with those screws.
The smaller screws appear to be wood screws, and they seemed to hold fine in the printed plastic box. What I did myself, was use a specific type of resin-based thread locker, Vibratite VC-3. You can find it here:
https://amzn.to/3U2DJlz
or
https://amzn.to/3LdbvAz
This stuff is a bit annoying to work with sometimes, but when you are fastening into plastic, it’s one of the few options there are. It’s a resin, and so it doesn’t “cure” like a regular Loctite would. Instead, you apply it to a screw’s threads, wait for it to dry, and it acts like a friction patch. It’s also repositionable, so you can adjust a screw and it will still hold.
As you can see in the video, mine was starting to dry up a bit. I transfered it from the brush bottle a while ago because the lid was becoming sealed shut from drying resin.
Anyway, it can help to hold a screw into a material, such as these small wood screws into the printed plastic.
For further reference, the hex size for the M3 screws is a 2mm driver, and the nuts required a 5.5mm hex socket driver.
Part 3: The Battery - 20s2p (84v, 5.6Ah) Custom Battery Build
This particular battery pack for this board is a 20s2p configuration, using the Molicel P28A cell. The details, video, and build log can be found below, as it has its own video entry in the series, as well as its own article on this blog.
Part 4: The Wiring Harness
This is likely the most complicated and involved physical part of this build, and I will try to cover it in as much detail as I can.
Please keep in mind, that as mentioned above, this build (and any build using the same battery and BMS setup) is using separate charge and discharge circuits. That means that the Little FOCer ESC (motor controller) uses a circuit with thicker wiring to accommodate the higher current it will be drawing from the battery, and that the charge port has its own, smaller, wiring that goes from the XLR charge port directly through the Molex connector plug to the battery box, to plug into the BMS. This applies for any build that is using a charge-only BMS like the ENNOID XLITE or the ZBMS.
The ZBMS does not need the small data wires for CAN connectivity. It would only need the 18AWG charge circuit wires mentioned below.
There is also an important note for how I did the wiring harness here. The battery I made uses a larger XT90S connector for the discharge. This connector is too large to fit through the cable gland parts that cover the battery box’s exit hole. What I did, as can be seen below, is to just thread all of the wiring through the cable gland and into the battery box, and then solder the connectors on after they were through the cable gland.
If you are going to do that, give yourself an extra inch or two of wiring for the larger 14awg wires, so that they aren’t as much of a pain to solder. I often make things harder for myself, but there is enough room for some extra wire in the box at that location, so the extra slack is doable.
Parts List:
- 16-Pin Molex Female Connector Housing; Part #0194180030
0194180030 Molex | Connectors, Interconnects | DigiKey - Molex Connector Socket Crimps for 14-16 AWG Wire, Gold Plated, Part #0194200003
0194200003 Molex | Connectors, Interconnects | DigiKey - Molex Connector Socket Crimps for 14-16 AWG Wire, Regular, Part #0194200001
0194200001 Molex | Connectors, Interconnects | DigiKey - Molex Connector Socket Crimps for 18-22 AWG Wire, Regular, Part #0194200002
0194200002 Molex | Connectors, Interconnects | DigiKey - JST-PH 2.0mm pitch Connector/Crimp Kit
Amazon.com - Crimping Tool for Molex Connector Pins/Crimps
Amazon.com - Crimping Tool for JST Connector Pins/Crimps (3rd slot for 2.0mm sized crimps)
Amazon.com - 14AWG Silicone Wire (Discharge Wires, for Gold Plated Molex Crimps)
Amazon.com - 18AWG Silicone Wire (Charge Wires, for Regular Molex Crimps)
https://amzn.to/3WVJZwT - 20AWG Silicone Wire (CAN & Other Data Wires, for Smaller Crimps)
https://amzn.to/3Gb9nZo - 24AWG PVC Hookup Wire (Soldered to 20AWG wire after entering battery box)
Amazon.com - XT30 Connectors (Charge Circuit)
Amazon.com - Nylon Braided Sleeve
https://amzn.to/3GaMKnV - 3:1 Glue Lined Heat Shrink Tubing (Ends of Nylon Braid)
https://amzn.to/3hBleWF - 2:1 Regular Heat Shrink Tubing (Everything else, as needed)
https://amzn.to/3WVT2h2
I realize that this parts list is….extensive, for just a wiring harness. The truth is that these are mostly parts I have around the shop anyway, and so having to collect it all into a list is a bit overwhelming for anyone who may not be doing DIY work to begin with.
The wiring choices above mostly relate to being able to comfortable make the Molex connector happen. The crimps are relatively large, and so the smaller wires I used for CAN data were done with 20AWG wire for the sake of the crimp connections being easier. Once those color coded data wires entered the battery box, I soldered them to smaller 24AWG hookup wire, so that those would be easier to crimp into the usual JST-PH connector housing that goes into the BMS connectors. As seen below.
The wiring in this particular harness is as follows:
- 4 x 14AWG wires for discharge power into the ESC; 2 black (negative) and 2 red (positive)
*2 wires are run in parallel from the battery to the ESC, and they meet together again inside the controller box. This spreads current across 2 Molex pins each, to handle higher current.
20” Pieces (I used 19.5”, but I should have used 21” pieces so I had more slack for soldering in the box) - 2 x 18AWG wires for the charging circuit; 1 black, 1 red
32” Pieces - 2 x 20AWG wires for CAN data
18” Pieces (These are short, because I then soldered them to the 24AWG hookup wire)
Technically, the ENNOID BMS uses 4 wires for the CAN connection. 2 for data, and 2 for wake up power. I personally did not use the power wake wiring, only the data. My reasoning for this, is that I only need to see battery information when I’m charging, and so the BMS will wake up while plugged in, and I can check then. I don’t need the ESC to wake up the BMS, and I would rather not deal with connection order and risk blowing up a CAN chip on the BMS. So I’m only connecting 2 wires for CAN Hi and CAN Lo. - 2 x 24AWG hookup wires
The length of these doesn’t really matter. I made them about 6” long, but then cut them shorter after I did a placement check in the box to where they were going to connect.
Crimping the wires isn’t particularly difficult. I do recommend doing some test crimps to make sure you’re getting it right, as it’s most important to not deform the barrel itself, as that is what makes the connection and also clicks into the housing.
The crimper tool I use has different sizes, and the way it’s done with these barrel connectors, is to first crimp the stripped bare wire strongly into place, and then use a larger slot in the tool to crimp the wings around the insulation jacket for support and strain relief.
Smaller wires like the 20AWG should fit fine in their appropriate crimp connectors, but sometimes I fold the strands over before crimping to give the crimp wings a bit more meat to bite onto.
It is important to know what pin location each wire has to go to. Always make reference and triple check where the wires are going. A builder should be able to trace where each wire is going from the source to the destination. Otherwise, things will become dangerous.
Inserting the connectors into the Molex housing can be tricky for people who are unfamiliar with them. They’re fairly simple though, and work very much the same as JST connectors. There’s a lip/wing on the metal crimp, and a corresponding plastic tab that clicks into it so it can be held securely. Below is an unlisted video I made for a customer who was having some trouble, and it may be helpful.
When I was done checking the wire location, and setting the pins, this is what I had.
In checking the length of the wire harness, I mocked up the assembly with the rails and controller box, to make sure I had the length needed to reach the connectors and BMS inside the battery box. As mentioned above, I would probably have given myself another inch or so of wire for the 14AWG power wires, since I would have a bit of extra space to place it when closing the box, and I would have had an easier time.
After trying a couple of different jacketing options, I settled on the nylon braided sleeve listed above in the parts list. This is actually very common in electric skateboard motor wiring, and so I already had it laying around. I used the adhesive lined heat shrink tubing to seal the ends off and hold it together.
THIS WIRING HARNESS AND THE ENTIRE BUILD IS NOT WATER PROOF, OR EVEN WATER RESISTANT. IT PROBABLY WILL RESIST SPLASHES, BUT THIS IS NOT A SEALED UP BUILD. I MAKE MY BUILDS DUST RESISTANT FOR DRY PAVEMENT RIDING. IF YOU WANT WATERPROOF, YOU WILL HAVE TO ACCOMMODATE SUCH NEEDS YOURSELF.
The only real tricky part of this was soldering the XT90 connector to the wires inside the box. Specifically, because I had to solder two wires per cup. Using a 3rd Hand type of holder, along with a connector holder (and mating connector inserted to prevent the barrels from melting the plastic housing of the connector) made is easier. These are tools I really recommend.
Helping Hands holder:
XT Connector Soldering Jig:
https://amzn.to/3UpRfPM
There is likely a better way to do this, such as having the parallel split 14AWG wires meet back together to a 12AWG wire before getting to the solder cups of the XT90 connector.
OR, having an assembly where the harness wires connect in the box to an XT90 assembly with bullet connectors.
I also used heat shrink rather than the click on wire shroud, since the 2 wires per cup ended up being much wider.
Part 5: Battery Box Modification
If this build were using the ZBMS, then there aren’t really any modifications needed for the stock XR battery box. That BMS simply fits in the diagonal tray.
The following is a log of how I modified the battery box to accommodate the ENNOID XLITE V1 24S BMS unit.
Quite simply, I removed the entire rear vertical wall of the stock XR battery box. This allowed the ENNOID XLITE to sit farther into the box, leaving good clearance for the USB port, and space for wiring.
I used a mix of end nippers, a Dremel, a file, high leverage diagonal cutters, and some coarse 80 grit sandpaper to finish the cut area’s edges.
Part 6: Configuring the ENNOID XLITE V1 24S BMS
This section was done in the setup video below. Tools and materials are described in the video as well.
Power supply I used for higher voltage applications:
https://amzn.to/3tofT7s
Part 7: Battery Box Assembly
Below is the log of how I fitted the battery, BMS, and wiring into the battery box.
By this time, the Molex connector is fully connected to the controller box, and the power button is in the OFF position. This is to avoid the arc/spark that happens when plugging in power to the ESC, as the capacitance in the ESC causes an inrush of current. I use the XT90S connector to avoid this, and so it has to be plugged in after the Molex is connected. Once that’s all plugged in, I left the assembly as is.
Also, if you are connecting CAN wires, especially all 4 for power and data, that CAN JST connector needs to be connected LAST. After all power wiring is connected.
If you are using the CAN connection on an ENNOID XLITE, make sure you are setting the following to 0, to disable it until this setting can be implemented properly with a fully CAN connected BMS. Default is 5%, change it to 0%.
Note that below I use various insulation and tapes to shield and secure wiring in the box. This comes from habits I have from building DIY and custom electric skateboards, since those often have compression around wiring and are subject to great amounts of vibration and impact. There are some areas in an assembly where I don’t feel comfortable leaving wires to sit on or touch edges of JST connectors, or compress into other wires, and so I will use any of the following to insulate those looms.
TESA Harness Cloth Tape
Spiral Cable Wrap
https://amzn.to/3Er0olL
The battery itself fits neatly, with room for cushioning foam underneath. The foam I used is this one:
https://amzn.to/3UJS2Le
To seat the BMS, I added a strip of fish paper on the rear face of the battery for it to rest against, and also added the foam to the part of the BMS that will rest on the ribs of the battery box floor. Before all this, I added silicone modified conformal coating to the entire bottom of the BMS, just as an extra layer of protection during handling, especially since when it’s plugged in, the 84 volts can bite your hand if you touch it.
After the padding, it sat nicely against the battery.
Above, you may notice that the charge wires and the thinner CAN data wires were wrapped in the spiral wrap, and then the CAN wires exited the wrap to reach the JST connector. I did this so that the wires wouldn’t be sitting on the bare PCB of the BMS, since there’s no covering on it. I also put a small piece of TESA tape on the temp sensor connectors, since I was not using these.
After checking fit with wire length, I seated everything where I wanted it to go to avoid compression of wiring and any wire pinching, and then began to set the wiring and the BMS where it would go.
I used hot glue to adhere the BMS down into the box. Specifically, Gorilla hot glue, through a small Arrow dual temp gun, set to high heat. I usually add a blob of the hot glue under the edge where the item would sit in the enclosure, and then pick a couple of spots to build up a layer of glue to reach over the edge and onto the item.
I try not to slather it everywhere, and have a plan of removal just in case I need to remove things to fix them. So there was an application on either side of the BMS, and I held it down in place while a fan was blowing cooling air to solidify the hot glue. I think this is important, because letting go of the BMS would let its padding foam push it back up all the way, before the glue actually hardened.
The wiring sat in a couple of natural channels, both over the BMS and along the rear lip of the box.
The balance wiring folded neatly toward the battery, and sat on top of the charge circuit wires that were wrapped in the spiral wrap from earlier. So there was no compression, and no bare wire sitting on the PCB.
The large discharge wires sat in the lip and everything was held in place with some Kapton tape to keep it in place while seating the lid. On the right, I used a dab of the hot glue to secure the spiral wrap and XT90 connector in that area.
Part 8: Final Assembly
Assembling the rest of the board was essentially the same as reassembling a standard non-modified Onewheel XR. So it was a bit of a pain in the rear.
A friend of mine, Nick, had this badge cut for the rail to replace the existing one. A sloop is a type of ship, specifically a small fast one, and I felt it was a fun name for this build. I did the surface finish by sanding from 220 grit all the way up to 1500 grit.
The rest of the assembly was mostly recorded for the video, but some of the steps were photographed.