You will want to run motor detection for the VESC BLDC Tool to detect your settings for your motor and then apply those settings to the VESC. Make sure you've done the following. 6S-12S Battery Source is connected to VESC. VESC is connected by USB to your computer. Start by downloading the free Vesc tool from here. Then turn on your skateboard and connect an Micro-usb cable to the speed controller and into your computer. 1) Click on 'Connection' 2) Connect your VESC to your computer with an usb cable and choose the right port in vesc tool. Then press the connection symbol to the right.
Post updated 2016-01-22
I have made many updates to my custom motor controller recently and the old post is getting confusing with notes and updates, I decided to write a new post about it that hopefully is more clear, more complete and easier to follow. This might sound a bit ambitions, but my goal is to make the best ESC available. I really enjoy sharing knowledge, so I want to keep all the hardware and software open.
This is an overview of the schematic (download a complete PDF here):
This is the front of the PCB:
The back:
3D render from KiCad:
Some screenshots of the configuration GUI (BLDC Tool):
All files are on github to keep them up to date, so check these links on a regular basis:
Because information about the VESC is scattered all over the internet and a lot of information is in email conversations with me, I have created a forum dedicated to the VESC here.
I have created an IRC channel on freenode where you can live chat with me and other users about VESC and my other projects. Feel free to join: http://webchat.freenode.net/?channels=vedder
- The hardware and software is open source. Since there are plenty of CPU-resources left, the customization possibilities are almost endless.
- STM32F4 microcontroller.
- DRV8302 MOSFET driver / buck converter / current shunt amplifier.
- IRFS7530 MOEFETs (other FETs in the same package also fit).
- 5V 1A output for external electronics from the buck converter integrated on the DRV8302.
- Voltage: 8V – 60V (Safe for 3S to 12S LiPo).
- Current: Up to 240A for a couple of seconds or about 50A continuous depending on the temperature and air circulation around the PCB.
- Sensored and sensorless FOC wich auto-detection of all motor parameters is implemented since FW 2.3.
- Firmware based on ChibiOS/RT.
- PCB size: slightly less than 40mm x 60mm.
- Current and voltage measurement on all phases.
- Regenerative braking.
- DC motors are also supported.
- Sensored or sensorless operation.
- A GUI with lots of configuration parameters
- Adaptive PWM frequency to get as good ADC measurements as possible.
- RPM-based phase advance (or timing/field weakening).
- Good start-up torque in the sensorless mode (and obviously in the sensored mode as well).
- The motor is used as a tachometer, which is good for odometry on modified RC cars.
- Duty-cycle control, speed control or current control.
- Seamless 4-quadrant operation.
- Interface to control the motor: PPM signal (RC servo), analog, UART, I2C, USB or CAN-bus.
- Wireless wii nunchuk (Nyko Kama) control through the I2C port. This is convenient for electric skateboards.
- Consumed and regenerated amp-hour and watt-hour counting.
- Optional PPM signal output. Useful when e.g. controlling an RC car from a raspberry pi or an android device.
- The USB port uses the modem profile, so an Android device can be connected to the motor controller without rooting. Because of the servo output, the odometry and the extra ADC inputs (that can be used for sensors), this is perfect for modifying an RC car to be controlled from Android (or raspberry pi).
- Adjustable protection against
- Low input voltage
- High input voltage
- High motor current
- High input current
- High regenerative braking current (separate limits for the motor and the input)
- Rapid duty cycle changes (ramping)
- High RPM (separate limits for each direction).
- When the current limits are hit, a soft back-off strategy is used while the motor keeps running. If the current becomes way too high, the motor is switched off completely.
- The RPM limit also has a soft back-off strategy.
- Commutation works perfectly even when the speed of the motor changes rapidly. This is due to the fact that the magnetic flux is integrated after the zero crossing instead of adding a delay based on the previous speed.
- When the motor is rotating while the controller is off, the commutations and the direction are tracked. The duty-cycle to get the same speed is also calculated. This is to get a smooth start when the motor is already spinning.
- All of the hardware is ready for sensorless field-oriented control (FOC). Writing the software is the remaining part. However, I’m not sure if FOC will have many benefits for low inductance high-speed motors besides running a bit quieter. Sensored and sensorless FOC is fully implemented since FW 2.3.
The is the ESC mounted on my electric longboard:
Sensorless startup and low-speed performance:
A short tutorial/demonstration on how to upload the firmware and get your motor running:
My electric longboard:
Video overlay logging (see a post about that here):
The PCB is designed using KiCad. Have a look at the links under the Resources heading at the top of this page to find all files. Currently I have no assembled PCBs or kits to sell, but you can order bare PCBs from hackvana with these gerber files. Since hackvana got so many orders for my ESC, Mitch wrote a wiki page about how to order VESC boards from him. That makes it super easy to order the PCBs from him.
The components in the BOM can be ordered from mouser.com. Mouser numbers are included in the BOM as well. Make sure to order a bit extra of small capacitors and resistors in case you drop some of them and since the price doesn’t change much at all. Last I ordered, ordering 10 MOSFETs was cheaper than ordering 6 because there is a price break at 10, so have a look at the price breaks as well.
For assembling the PCBs, the following pictures are useful (the latest versions can be found on github):
Remember to put an electrolytic capacitor close to the ESC on the supply cable. How large it has to be depends on the length and inductance of the battery cables, but I usually use a 2200uF 63V capacitor.
Soldering Tips
This is the best tutorial I have seen so far. It really is as easy as it looks when done right.
- Flux is essential. Without flux, it won’t work. I use a flux pen.
- Lead-free solder is no good. It has more poisonous flux, requires more heat, gives lower quality and is difficult to handle. Don’t use lead-free solder.
- Use a flat, screwdriver-shaped tip. Don’t use a cone tip, because putting solder on the top of it is almost impossible.
- If you get bridges between smd pins, removing them is easy with a soldering wick.
- Make sure to get the alignment right for the microcontroller when soldering the first corner. If you solder multiple corners and the chip is misaligned, you have to use hot air and remove it, then clean the pads and start over.
Here is a video on the technique I use to solder the pad under the DRV8302:
I just put solder on the pad and use a hot air soldering station. Again, using leaded solder makes it easier. When soldering the DRV8302, I first solder the pad using hot air and then I solder the pins with a soldering iron. Notice that the pad under the DRV8302 must be connected for it to work, since it is the ground connection.
VESC Hardware by Benjamin Vedder is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
This a brief tutorial on how to get everything running using a fresh install of Ubuntu 14.04. Here is a video where I do everything live to demonstrate that it isn’t that difficult. Please read all the instructions carefully to avoid most problems.
So let’s open up a terminal and get started…
Preparations
Install a toolchain to compile the firmware (for more details, have a look at this page):
Install other dependencies
Add yourself to the dialout group to access the USB port of the ESC without being root:
Uninstall modemmanager (unless you use it) to avoid a delay every time the ESC is plugged in to the USB port:
Add udev rules to access the programmer without being root:
Log out and log back in. You should now be ready to compile the firmware, upload the firmware, compile BLDC Tool and run BLDC tool.
Download, Compile and Upload the Firmware
First, connect a programmer as described in this post. Then, download the latest firmware from github, compile and upload it:
Note: before running the make upload command, you should open conf_general.h and select which hardware version you are using. It is printed on the PCB. Also, 2015-01-22 I changed the voltage divider resistors to allow up to 60V to be measured by the ADC, so in that case you also have to override VIN_R1 to 39000.0 in conf_general.h.
Download, Compile and Upload the Bootloader
Again, connect a programmer as described in this post. Then, download the latest bootloader from github, compile and upload it:
With the bootloader, BLDC Tool can be used to upgrade the firmware later.
Download, Compile and Start BLDC Tool
From the BLDC directory that you created in the previous step, type:
You should see the following screen:
Connect the ESC to the USB port of your computer and click “Connect” in BLDC Tool. The lower right corner should now say “Connected”. If you have gotten this far, you should be ready to connect a motor and configure the ESC from BLDC Tool.
Note: If you have more than one usb-modem device in your computer (laptops often have built-in 3g modems), then you have to change ttyACM0 to the port of the ESC. To figure out which ttyACMx port the ESC got, open a terminal and type the following command right after plugging the USB cable in:
BLDC Tool can also be started by going to the bldc-tool directory with a file browser and double-clicking on “BLDC_Tool”.
Updating to the Latest Firmware
Updating to the latest firmware and the latest version of BLDC Tool is rather simple. From the bldc-firmware directory, type the following commands while the programming cable is connected to the ESC:
Note: Updating the firmware will delete the configuration of the ESC. To save it from BLDC Tool, use the “Read configuration” button and then “Save XML”. After updating the firmware, you can restore it with “Load XML” and “Write configuration”.
Also updating BLDC Tool is important and recommended at the same time as updating the firmware. In order to do that, go to the bldc-tool directory and type:
Now you have the latest version of the firmware and BLDC Tool. Remember to reconfigure the ESC after these changes.
Note: During the configuration, it is assumed that the USB cable is connected to the ESC and that the lower right corner of BLDC Tool says “Connected”.
The first thing to do in the “Motor Configuration” tab is to click “Read configuration” while the ESC is connected to get the current configuration. After that, click “Load XML” and look for a configuration that is the same as or similar to your motor in the “mc_configurations” folder included with BLDC Tool. If you find exactly your motor, you don’t have to change anything unless you want to tweak some parameters for your application.
Note: Even if you load an XML configuration file, use “Read configuration” first anyway because the XML might not contain all parameters. The missing parameters will become blank and can mess with things. Soon I will make sure that sane default parameters are loaded, but I haven’t done that yet.
Sensorless Motor Parameters
Since this ESC uses uncommon techniques to commutate the motor in order to get good low-speed performance without sensors, it is important to set correct motor-dependent parameters in the sensor(less) tab. Otherwise, the motor will run poorly or not at all.
This is what the Sensor(less) configuration page currently looks like (I will probably add more auto-detect options soon):
The important motor-dependent parameters are “Integrator limit” and “BEMF Coupling”, and they can be measured with the detection part. I will make a video showing this for several different motors soon, but until then you can try to follow these instructions:
- Connect the motor without any load and make sure that it can spin up freely.
- Make sure that no other input such as PPM is used. If it is, it will stop the motor immediately when the detection tries to start it and the detection will fail.
- Click the “Start detection” button. The motor should spin up, release throttle and then run slowly for a moment.
- If the motor doesn’t spin up properly, Adjust “Current” and “Min ERPM” until it does. In general, small motors should have lower current and higher ERPM and larger motors the other way around. Current usually is in the range 1A to 6A and min ERPM usually is in the range 300 to 1200.
- If spinning up works but running slowly afterwards doesn’t (the motor just stutters), try increasing “Low duty” to 0.1 or so. Increasing low duty will make it easier for the motor to run slowly during the test, but the result will become less accurate.
- Manually put the obtained values into the boxes. I usually round “integrator limit” down to the closest multiple of 5 and “BEMF Coupling” down to the closest multiple of 50. Having them slightly lower than the detection result is good in most cases, so that’s why I round them downwards like that. Getting these parameters perfectly right is not too critical though.
- The next parameters to adjust are “Min ERPM” and “Min ERPM for integrator limit”.
- What they should be depends on the application and is in most cases not too important, but in general lowering them will work better if the load has much inertia. I have Min ERPM around 200 and Min ERPM for integrator limit around 1000 for all my applications.
- You can probably keep the same parameters I have, but if you want to tweak your startup you can experiment with them.
- It is important that “Min ERPM” always is lower than “Max ERPM at full brake” and “Max ERPM at full brake in current control mode” on the “Limits” page.
- Commutation mode should always be “Integrate”.
- The other parameters are for RPM-based timing advance and some other things that aren’t necessary to adjust in the normal case, so I won’t explain them here yet.
For small low-inductance high-speed motors, the delay commutation mode can be used in case the integrate mode does not work. It does not require many parameters, just the minimum RPM which usually can be around 1500. I haven’t tested this mode much, but it is more or less how most hobby ESCs work (which is why it doesn’t require so many motor-specific parameters). Currently it does not support adjustable timing, but I will implement that in a few days since it is quite easy.
Phase advance (other terms: timing adjustment, field weakening)
To compensate for the current lagging behind the voltage at high speeds because of inductance or to get a bit higher top speed at the expense of some efficiency and torque, phase advance can be used. It is implemented in a speed-dependent way so that the motor gets more phase advance the faster it spins. It is implemented this way because having phase advance at low speeds does not give any improvements at all as far as I know, so the best way is to increase the effect as the motor increases its speed. BR ERPM is the electrical RPM of the motor at which the set phase advance is used, and Integrator limit scale at BR ERPM (will rename this option soon…) is the amount of phase advance to use. Setting it to 1.0 gives no phase advance and setting it to 0.0 gives 30 degrees (maximum) phase advance. The set phase advance will be mapped linearly between 0 ERPM and BR ERPM. If you don’t know what this is, you can leave the default options since it is not that important.
Motor
Current, temperature, RPM and voltage-limits can be configured depending on your application.
Note: These limits are not foolproof. If you set them too high, you can damage the ESC and/or the motor.
- Current
- Separate limits for acceleration and braking current.
- Separate limits for motor and battery currents.
- “Absolute max” is checked in every PWM switching cycle and used in case the soft back-off strategy for the other limits doesn’t work. I usually set it way higher than the other limits because soft back-off is preferred rather than switching off the motor with a fault code, but it should never be higher than 150A.
- The “Slow absolute max” box will make sure that a filtered version of the maximum current limit is used. This is useful if there is much noise and that fault code kicks in all the time. I usually have it ticked.
- Temperature
- At the “Start” temperature, the current will become more and more limited linearly until the “End” temperature, where the output is switched off completely. Setting them about 20 degrees apart will make the ESC slowly decrease the maximum output current as it gets too warm instead of abruptly switching everything off.
- MOSFET temps (on the ESC) are implemented and working, but motor temps are not implemented yet. They will require an external temperature sensor in the motor. The software implementation is rather simple since I can just copy most of the MOSFET temperature limit code.
- RPM
- Max and Min ERPM are hard RPM limits. It is preferable to use the soft application RPM limits instead if possible.
- “Max ERPM at full brake” (should change the name…) is the highest opposing RPM at which a direction change is allowed. Setting this too high will cause cogging when moving in one direction and giving high throttle in the other direction. On my longboard I have it at 300 and my RC car has it a bit higher.
- “Max ERPM at full brake in CC mode” is the highest RPM at which applying full brake by shorting all the motor windings is allowed. Setting this value too high can cause much mechanical stress in some circumstances. I have it at 1500 for all my applications.
- Voltage
- The minimum and maximum input voltage.
- NOTE: I changed the voltage dividers in hardware 2015-01-22. If you have built the PCB before that, the maximum voltage can’t be more than 52V. The difference is whether the PCB has 33k or 39k resistors. 33k means that maximum 52V can be measured. The latest PCBs (with 39k resistors) can measure 60V, but you should have some margin on your supply voltage to be safe. You can of course replace all 33k resistors with 39k and measure up to 60V.
Once the ESC is configured for your motor, you can use the up and down arrow keys to run the motor forwards or reverse in current control mote, or the right and left arrow keys to run the motor forwards and reverse in duty cycle mode. The buttons in the right-hand side of the GUI can also be used.
Misc
Here are the rest of the motor configuration parameters. You probably want to experiment with Startup boost if you are using current control. The rest of the parameters can be left as their default values unless you have some specific reason to change them.
- PWM mode
- Synchronous is recommended and the best choice for a majority of all motors. If you have some weird motor, Bipolar could work better, but it probably won’t. Nonsynchronous is only for experimentation and can kill the ESC if you are unlucky.
- Current control
- Startup boost is the minimum duty cycle to use when using current control. If the motor is to weak when you are just starting, you can increase this parameter a bit until it feels right. The range is 0.0 to 1.0, where 1.0 is full throttle (which you shouldn’t use.). A sane range is up to 0.15 or so.
- Min current is the minimum allowed current. There should be no reason to change this, so leave it at the default value.
- Control gain is the gain used by the current controller. Increasing it makes the current response faster, but also increases the risk of getting an unstable system where the ESC can get damaged. Only change this if you know what you are doing.
- Speed control
- The PID parameters for the speed controller. Only change them if you know what you are doing.
- Timeouts
- Fault stop time is the amount of milliseconds that the ESC should be completely switched of when a fault code arises. After that time, it will switch on and try to listen for commands again.
First, click “Read configuration” to get the current configuration from the ESC. After that, select which application to use and configure that application.
- Controller ID is the ID of this VESC. If multiple VESCs are connected over CAN-bus, they must have different IDs.
- Send status over CAN has to be enabled to make other VESCs aware of this VESC and some of its current state. It should be enabled for all slave VESCs when connecting multiple VESCs over CAN-bus.
- Changing application requires a reboot. There is a button for that. After a reboot, you have to click connect again.
- Timeout is the amount of milliseconds after which the motor should be shut off in case the control signal is missing.
- “Brake current to use…” can be set to make the motor brake with a certain current when a timeout occurs instead of just releasing it.
PPM
The signal that a normal RC receiver outputs is a PPM signal, so this can be used when connecting an RC receiver to the servo port.
- Control mode
- Disabled: Nothing at all, motor is off.
- Current: Torque control. This is what I prefer since it feels most natural. I haven’t seen hobby ESCs that have current control.
- Current no reverse: Save as above, but no reverse function. Note that centring the now will give half throttle.
- Current no reverse with brake: No reverse, but centre is zero torque. Reversing will brake, but not change motor direction.
- Duty cycle: Duty cycle or voltage control. What most hobby ESCs use.
- PID speed control: The throttle command is intepreted as a speed set command and closed-loop control is used to maintain that speed. “PID max ERPM” sets what max throttle should be interpreted as.
- Settings
- Deadband: how much span in the centre of the throttle should be ignored.
- Minimum and maximum pulsewidth: The timing interpretation of the PPM signal can be adjusted in case your receiver doesn’t follow the specification or it you have some other reason to change it. Setting “Control mode” to “Disabled” and ticking display decoded PPM value is useful when adjusting these.
- Use Median Filter enables a filter that is very useful when there are glitches on the PPM signal. If you have a quadcopter application, you should disable the filter and make sure that there are no glitches since a filter introduces some delay.
- Soft RPM limit.
- Speed limit that can be used in current control mode. Setting the start and end limits a bit apart will result in a soft torque decay when approaching the speed limit.
- Multiple ESCs over CAN can be enabled to connect several VESCs over CAN bus. All VESCs must have different Controller ID and the slave VESCs must have Send status over CAN enabled (see the general tab under app configuration). The slave VESCs don’t need to have any application enabled since they will just be listening for CAN commands. Traction control can also be enabled, which reduces the torque on motors that spin faster than the slowest motor proportional to their speed difference. To connect VESCs over CAN-bus, connect the CANH and CANL signals between them. DO NOT connect 5v and GND because that is likely to cause ground loops which can reset and/or kill the VESCs.
Nunchuk
The Nyko Kama wireless nunchuk can also be used to control the ESC. Note that not all nunchuks for the nintendo wii will work, because they slightly differently.
- Control mode
- Disabled or current control with or without reverse. If reverse is used, the Z button is used to toggle a direction change.
- Settings
- Deadband: The span in the centre of the throttle that should be ignored.
- RPM limits: Limit the electrical RPM of the motor. The start value is the point where the torque should start decreasing and the end value is the point where the output will be switched off. Setting them slightly apart will give a soft RPM limit. Setting them very high will disable the RPM limit.
- Ramping time constants: How fast the throttle command should be followed, in seconds.
- Multiple ESCs over CAN can be enabled to connect several VESCs over CAN bus. All VESCs must have different Controller ID and the slave VESCs must have Send status over CAN enabled (see the general tab under app configuration). The slave VESCs don’t need to have any application enabled since they will just be listening for CAN commands. Traction control can also be enabled, which reduces the torque on motors that spin faster than the slowest motor proportional to their speed difference. To connect VESCs over CAN-bus, connect the CANH and CANL signals between them. DO NOT connect 5v and GND because that is likely to cause ground loops which can reset and/or kill the VESCs.
A video where I test this:
Use the “Realtime Data” tab to display realtime information from the ESC. Make sure that the “Activate sampling” box is checked.
As I encounter different problems, I will put them here together with possible solutions for reference.
Uploading the firmware does not work.
- Make sure that you have followed all steps in the tutorial, including adding udev rules to access the programmer without being root.
- Don’t use a too long cable for the SWD connector.
- Make sure that you have a working programmer. I got one from ebay that didn’t work at all and one that died quickly. Otherwise they have been reliable though.
A DRV8302 fault code appears as soon as the motor starts.
- Make sure that R16 is not mounted (see the comment in the schematic).
Connecting to VESC via BLDC Tool does not work.
- Run dmesg to see which ttyACMx port gets assigned to VESC when plugging in the mini-usb cable.
- Make sure that the mini-usb cable is plugged in and that power is connected to VESC. Connecting BLDC Tool is not done via the SWD programmer, but via the mini-usb port.
- If you are using a different usb-connector than the one from the BOM, make sure that the order of the pins is correct. The connector in the BOM is upside-down, so a connector that isn’t will have all the pins mirrored.
My motor is not running properly.
- Make sure that you have configured VESC for your motor as described above. VESC is not plug-and-play and needs an individual configuration for each motor. Without the configuration, the motor will run poorly or not at all. Read the instructions carefully.
Is there a way to “boost” the startup of my motor when using current control?
Vesc Tool Mac
- Yes, the Startup boost option under Motor Configuration > Misc tab in BLDC Tool can be adjusted as described above.
Update about this update: There are no assembled ESCs left. However, If you are interested in assembled VESCs you can still send me an email as described below so that I can put you on my extra list. If someone changes their mind or if there are other problems, I can send you VESCs that get left.
I have ordered 100 assembled VESCs and they will arrive this or next week. I don’t need all of them, so I will sell some of them for 115€ + shipping. Worldwide shipping with tracking is 20€ per order (which can contain more than one VESC). Shipping within Sweden is less expensive and I will update this post as soon as I know the price. You can contact me by email if you are interested (benjamin at vedder.se). Tell me how many VESCs you’d like and your address, and I will reply with an email that confirms that I have put you in my list. Later, when I have figured out how to accept payments, I will send another email with information about how to do that. As soon as I receive your payment, I will ship the VESC(s) to you and send an email with tracking information
I will update this information in the coming days, so make sure to check if there are updates.
VESC is very hot in electric skateboard world. Actually it's an amazing product that can be used in many application field. Let's explore more information about it. The topic includes:
- What is VESC?
- What’s vesc
- Vesc version
- Compare VESC with normal ESC
- How to use VESC
What is VESC?
VESC is an open source ESC (electric speed controller), it’s named by its creator , Benjamin Vedder, Vedder’s ESC. It’s published in 2016. Vedder tested it in his electric skateboard, due to its strong compatibility and programming feature. It’s quickly become popular among the electric skateboard community.
The Electronic Speed Controller (ESC) is the brain of your electric skateboard. It tells your motor how hard to push or how strong to brake. It’s the CPU of the board. You can do an instruction, like increasing the speed and the VESC will relay the instructions to the motors. One of the most significant benefits is that you will be able to set parameters that ensure that the motor operates safely. For example, you can set the maximum power that the engine can use, which will prevent the engine from burning out too early. By controlling these functions, you will be able to protect all the electrical components of your skateboard from getting overworked, ensuring that your electric skateboards will last for longer. There are a few critical factors that you need to understand when setting the safe parameters.
To make sure that you set the controls correctly, you need to understand the difference between voltage and amps. The voltage describes how powerful each component is, while the amp describes how much electricity it is receiving. For example, if you are going up a hill, you will need to increase the number of amps sent to the wheels. The VESC will be able to help you set how high these limits can go, ensuring that a steep incline doesn’t cause you to send too many amps to the wheels, overloading the electrical circuits. Now that we know a little more about this fantastic technology, let’s look at how it was initially discovered.
Versions of VESC
Vesc 4 and VESC6
Over time there have been multiple versions of VESC, each one incorporating suggestions from the online community. For example, between version 4.0 and version 4.5, various changes occurred, including re-designing the product and adding a temperature sensor to protect the engine from overheating. And the version of VESC developed keeps updated. The most significant improvement was changing how the Analog to Digital Converter (ADC) worked with the Serial Peripheral Interface (SPI), allowing users to gather more relevant data, giving them more control of their electric skateboards. Finally, version 4.12, new tracers and capacitors were added. It’s commercially widely produced in market.
VESC 6 is up-grated version based on VESC4.
The difference between VESC4 and VESC6 is mainly as:
VESC4 :
- Do not suggest to use FOC function, can only use under low voltage (3-4S).
- 2 Shunts design (Means ESC only measure the 2 cable’s working current of the motor, and calculate the third one in theory)
- handle lower current : can only handle continuous less than 30A safely. The Max current spec is : 50A as marked in Vedder’s original design.
VESC6:
- Has great FOC function, quite, low consumption.
- Three shunts design (means the ESC can measure each motor cable’s working current, ESC can work more precisely and has better working performance)
- Can handle higher continuous current than VESC4. The max current is 60A as marked by Vedder.
Comparing VESC with other ESC
VESC is a more advanced ESC that is used with Electric Skateboards but is also being used for ebikes, drones/quads, etc.
It's one of the latest BLDC ESCs which give you full control over how your ESC operates. Much better than typical RC ESCs. It's got amazing features.
All-electric vehicles must have an ESC(electric speed controller), it is the brain of your electric vehicles, It tells your motor how to move or brake in correct way. However, there are many different Electric Skateboard Controllers (ESC) available on the market, it’s difficult for user to choose the right one. Often, we’re looking at the pros and cons of each ESC.
- Cheap ESC:
For this reason, these cheap ESCs usually don’t last for a long time. Also, they typically don’t have any built-in safety features, meaning that they can place the rider’s safety at risk. Also, because they don’t have any protection for the electronic components in the skateboard, they might damage your electric skateboards. For these reasons, it’s recommended that you don’t use these types of ESCs.
- Normal ESC used in electric scooter / street skateboard:
these ESC is also range in 15-30USD. All BLDC mode, not the trending FOC mode. And its output current is usually less than 30A. not programmable, no firmware protection for the electric parts in board.
There is a advantage for cheap and normal ESC: set up easily, just hook it up with motors and battery, use it directly. Very simple. No complex firmware programming process.
Bothe ESC and VESC can be either ‘single’ – which controls a single motor, or ‘dual,’ meaning one ESC controlling both motors. It depends on your actual need
Now let’s see the pros and cons of a VESC
(1) VESC pros1
One of the biggest reasons why people like VESC is because it allows tons of customization, It allows you to control the torque of the board by adjusting the current output to the motor and current input from the battery. It allows you to customize the acceleration and braking curve so that the board behaves exactly as you want it to while braking and accelerating. If choosing another type of ESC, though, you will be limited in how much you can control. eg, it will limit the use of the battery spec and the motor spec.
Eg. Please refer to this setting page, you can choose different types of motor.
You can set the cells q’ty of your battery on hand.
While the VESC will allow you to add as many cells as you want, other ESCs will limit the number of cells that they can support. Look for the amount of amps it can supply, which will determine how long you can travel and will determine the type of skateboard you purchase. Usually, this number is provided in ampere-hours (Ah). For example, if you get a 10Ah skateboard, you need a ten-amp battery to travel for an hour. The distance you can travel varies depending on the number of amps you use. You might also want to consider the amount of noise produced. It can be irritating to skate with a loud ESC. While many VESCs are silent, some other types of ESC will produce an annoying sound. Now that we know the factors to consider when using a store-bought ESC let’s look at some of the benefits of using a VESC.
(2) VESC Pros 2
Another significant benefit is the protection it provides, ensuring you don’t damage your electric components. For example, it has temperature control built-in, preventing it from getting too hot. The VESC is known for these high-tech features. For example, many models feature regenerative braking and the ability to program acceleration curves. Finally, the braking systems are highly effective. They will stop the skateboard quickly, without a sudden jerking motion that can send some riders off the board. However, there are some disadvantages to using this system.
Set the output working current, so you don’t need to worry the max peak current may hurt the parts in board.
(3) VESC Cons1 :
due to its design needs to use many expensive chipsets and components, that the vesc price is multi times of the normal ESC.
(4) VESC Cons2
VESC is very widely compatibility , it has many functions that users still need to explore. Although now the vesc programming set up is quite easier than its older versions.
However still many new beginners may feel confused on how to use it correctly.
Vesc Tool Windows 10
So how to use a VESC?
Firstly, you need to download a VESC programming tool , it supports Linux , windows, and android.
Vesc Tool Pc
- You can download the VESC Tool from VESC Project website. Recommended to download from the main website for the latest version
- The source code can be found here.
- VESC-Tool is licensed under the GPL V3 License.
Secondly, if it’s your first time to use the VESC tool in your PC, you need to download a driver. Get it here: https://bit.ly/3cxpzlk
Thirdly, Connect the ESC with PC, then do parameter settings in PC. For new beginners, we suggest to follow the wizard step by step to do motor auto-detection.
Vesc Software
And here is detail tutorial videos in Vedder’s youtube channel. You can learn more. https://www.youtube.com/watch?v=TFKGRyOmhWY