How To Setup My Board 
(First Boot)
How To Setup My Board 
(First Boot)

How To Setup My Board (First Boot)

This guide is to walk you through the first-time setup on a known functioning board. If any of your parts are broken or fail, this guide will not help with that; that's an entirely separate realm of troubleshooting. This guide purely touches on the software setup from start to end in order to get your board on the most recent firmware and functioning relatively normally. This guide can also be used to completely start fresh on a previously working board that for one reason or another is now giving you issues or has become unrideable. VESC can be buggy sometimes and it may be better to just start over than try to fix it.

 

What Do I Need?

  1. Some way to elevate your board and keep it somewhat level and allow the motor to be completely free-spinning. (Nothing touching the motor/tire) I personally recommend using a Milk Crate or 2 chairs facing each other.
  1. An Android Device, a Windows device connected over USB, or a Bluetooth-enabled Linux computer. (There are other methods to do this but these are tried and true).
  1. A completely built board, you can’t do this with missing parts unless you want to severely complicate it.
  1. A bubble level with a flat edge.
  1. About 45 minutes to 2 hours of free time depending on how good you are at following instructions.
 

Updating your Firmware (Flashing or ReFlashing Firmware)

  1. Open VESC Tool on your device of choice (Using any device not recommended above poses a threat of bricking your board or making your life miserable in countless other ways.
  1. Scan for BLE (Bluetooth Low Energy) devices nearby.
  1. If this is your only VESC-based device nearby there should only be one option available (possibly 2 depending on your choice of BMS and/or use of an external Bluetooth module).
  1. Connect to your board using the on-board Bluetooth.
  1. You may receive a warning message about old but mostly compatible firmware. This can be ignored. Just press OK if you get this pop-up.
  1. Go to the Firmware tab located at the top of VESC Tool.
  1. Here you should see a Hardware and Firmware drop-down that will hopefully have your controller listed under Hardware and VESC_Default.bin under Firmware. (If your controller requires custom firmware your controller manufacturer will tell you otherwise, and you will not update your controller from the standard menu)
  1. Press upload. (Not Upload All)
  1. You will receive a warning message. Press OK
  1. A progress bar should now be visible. VESC Tool is uploading the most recent available firmware to the memory of your controller. Once that is finished the controller will go through a check and then boot cycle where it will then install the firmware.
  1. When the Upload finishes you will receive a warning message from VESC Tool. The message read that the board will reboot in 10 seconds and DO NOT POWER OFF THE BOARD until it has rebooted.
  1. I generally recommend waiting 20-30 seconds before pressing OK on the warning message and then rescanning for your BLE connection. (same as steps 2-4)
 
Congrats. You officially wiped/updated your board. All your settings have been set to defaults and we can now continue onto programming your board.

Motor Detection Wizard

  1. Let’s return to the Start tab. Located at the top on the same navigation bar as the Firmware tab was located.
  1. Click “Setup Motors” seen in the configuration section of the start tab.
  1. You will see a pop-up asking if you would like to “Load Default Parameters”. Press No
  1. Select EUC as your device and then press Next.
  1. Select Large Outrunner (~2000g). Then select the “Override (Advanced)” option. Then enter the information associated with your motor of choice below.

 
Hypercore
Max Power Loss = 400W
Open Loop ERPD = 700
Sensorless ERPM = 2000
Motor Poles = 30
 
SuperFlux
Max Power Loss = 700W
Open Loop ERPD = 1500
Sensorless ERPM = 2000
Motor Poles = 30
CannonCore
Max Power Loss = 700W
Open Loop ERPD = 700
Sensorless ERPM = 1500
Motor Poles = 30

  1. The next screen will ask you for some basic battery information. This does not affect the motor calibration it only affects what we see in RT Data.
  1. Make sure the Battery Type is set to BATTERY_TYPE_LION_3_0__4_2 (This is referring to a Lithium Ion battery with an empty voltage of 3.0v and a charged voltage of 4.2v. If you are using something aside from this type of battery you will have to refer elsewhere for instructions.
  1. Enter your batteries’ “s” count in the Battery Cells Series Box
  1. Now Enter your battery capacity in Amp Hours in the Battery Capacity Box. This should be specified by your manufacturer
If you are having trouble finding out your Battery Cells Series or Battery capacity or any other options in this menu please refer here.
  1. Select the Advanced (0 = defaults) box. You should now set your Battery Currents as recommended by your manufacturer or in this article.
  1. Now press Next
  1. In the Gear Ratio box select Direct Drive and set your Wheel Diameter to the diameter of your tire. (Usually around 280-290mm but can differ. I highly recommend measuring your tire when inflated to get the most accurate speed readings).
  1. Now Press Run Detection
  1. You will now see a warning pop-up (yes I know there are a lot of them). Make sure “Detect all motors over CAN Bus” is not checked, then press OK.
  1. Your motor will now start moving. make sure nothing impedes the movement of your motor.
  1. You will then see a screen that says Success! This unfortunately does not mean it was successful.
Below are values that you would get for a Superflux, if you are using a different motor, as long as your values are not wildly different, you should be fine (Note: The V1 CannonCore has much Higher R, L, and Lq-Ld values).
Motor Current
Motor R
Motor L
Motor Lq-Ld
Motor Flux Linkage
Average
101.45
29.75
108.96
32.63
24.09
Min
91.72
27.46
106.97
28.14
23.62
Max
130.37
32.77
113.22
38.23
24.71
Median
96.35
29.90
108.56
32.80
23.93
The most important part is that the last line “Sensors” says Hall Sensors. If it does not you will need to check all your connections and start over.
  1. If everything works fine press OK
  1. You will now be faced with a window titled direction and here we will verify your motor is rotating in the correct direction press forward and verify your wheel spins in the forward direction. (the top of your tire should rotate toward the front of your board). If it does not, select the “Inverted” toggle and repeat this step.
  1. Now that your motor rotates in the correct direction press Finish.
Congrats! Your motor has been configured to be run properly by your controller! Now let's tune and optimize that Bad Boy.
 

Motor Configuration

  1. Navigate to the Motor Cfg in the navigation bar at the top of VESC Tool.
  1. In the second drop-down box select Current. You will now enter your Motor Current Max and Motor Current Max Brake. These are dependent on your motor and controller combo. (I personally recommend entering 80% of your controller's max Amp output here for both Current and Braking Max. If you have a HyperCore anything over 120A will not benefit you).
  1. Now below you will find an Absolute Maximum Current box. Here you should enter a value about 50-80% higher than the maximum current you set above.
  1. Press Write seen at the bottom of the screen. (You will have to do this anytime you change any values in the future to actually apply them to your board).

If you do not have a VESC Connected BMS Skip to step 9.

  1. Select BMS in the second drop-down box at the top of this menu
  1. Change the 2 temperature parameters below this to >70°C.
  1. Uncheck SOC and uncheck Overtemp. Then scroll down to “SOC Limit Start” and change it to 0%.
  1. Press Write.

  1. In the second drop-down box select “Voltage”
  1. In battery Voltage Cutoff Start, enter the value associated with your battery. (I recommend it to be 2.6v multiplied by the s count of your battery).
  1. In the battery Voltage Cutoff End, enter the value associated with your battery. (I recommend it to be 2.3v multiplied by the s count of your battery).
Note: Nico Aleman recommends 2.7v per cell for the Cutoff start and 2.5v per cell for the Cutoff End. On the other hand, Mario (The Board Garage) recommends 2.3v for Start and 2.0v for End. Realistically any of these values are fine in practice as you should get tiltback long before you hit your cutoffs.

  1. Press Write.
  1. Now on the top drop-down box select FOC and make sure the second drop-down is set to General. Here we are going to optimize your motor.
 

HyperCore users

Motor Resistance (R): 100mΩ
Motor Inductance (L): ~200 µH
Motor Inductance Difference (Ld - Lq): Don’t Touch
Motor Flux Linkage (λ): Don’t Touch
Current KP: Don’t Touch
Current KI: Don’t Touch
Observer Gain (x1M): 0.75

SuperFlux users

Note: If your values are similar you do not need to change these. When your values are similar enough I recommend only changing Motor Resistance (R) and Observer Gain (x1M).
Motor Resistance (R): 36.20 mΩ
Motor Inductance (L): 108.56 µH
Motor Inductance Difference (Ld - Lq): 32.80 µH
Motor Flux Linkage (λ): 23.93 mWb
Current KP: Don’t Touch
Current KI: Don’t Touch
Observer Gain (x1M): 0.84

CannonCore users

Note: If your values are similar you do not need to change these, if they are not I would recommend redoing your Motor Detection.
Motor Resistance (R): 55-75 mΩ
Motor Inductance (L): ~135 μH
Motor Inductance Difference (Ld - Lq): ~20 μH
Motor Flux Linkage (λ): ~30 μH
Current KP: Don’t Touch
Current KI: Don’t Touch
Observer Gain (x1M): Don’t Touch
  1. Press Write.
  1. In the second drop-down select Hall Sensors. Hall Interpolation ERPM should be changed to 200 for HyperCore and Superflux, and 250 for CannonCore (Note: This value can be changed to 250 later on for SuperFlux users if you have any motor issues).
  1. Press Write.
  1. Under the second drop-down navigate to Advanced. Zero Vector Frequency should be set to 25-30 kHz, I recommend starting with 27 kHz and you can tune this later on if you have lightsabering or ringing sounds coming from your board. (Never above 30 kHz)
  1. If you have a HyperCore Scroll down to “Observer Type” and change this drop-down to “FOC_OBSERVER_ORTEGA_ORIGINAL”. SuperFlux and CannonCore users do not do this.
  1. Press Write.
  1. In the second drop-down go to Field Weakening. In this tab change the Field Weakening Current Max to 35.00 A and the Field Weakening Duty Start to 65.0%.
  1. Change Field Weakening Ramp Time to 400-600 ms.
  1. Press Write.
  1. Go back to the Start Tab in the top navigation bar and select controls. Test your motor and make sure it still functions after all these changes. (Note: SuperFlux users may need to up the I value to > 5.0 A for the motor to move).
Congrats! Your Motor is Tuned to Perfection (Hopefully).
 

IMU Calibration Wizard

  1. In the Start tab in the configurations window, press Setup IMU.
  1. Now press IMU Configurator. At the top, you will see an IMU Detector Window. This should say IMU Detected: True. If it does not press Search for IMU. If it still does not say true, power-cycle your board and try again.
  1. Underneath IMU Profile Selector choose Balance Skateboard, then press Save.
  1. Make sure your board is on a stable surface and is not being moved, vibrated, or affected by movement in any way.
  1. Now Press Gyroscope Calibration. Watch the X, Y, and Z Offset values, and wait until they somewhat stabilize. (These most likely will not be zero, they just need to not be fluctuating by large amounts).
  1. Press Save.
  1. Press Accelerometer Calibration. You will now see an X and Max X values. this step requires being gentle and fluid with the movement of your board. so do not jolt your board around during these steps. (If you accidentally drop, kick, or jolt your board don’t worry. you can press “Clear Max” to reset the values.
  1. Now the next few steps require a little bit of trial and error. Tilt your board gently front and back, side to side, and sometimes you may have to flip the board entirely over. until you see the X value start to rise. (Remember if you accidentally jolt or bump your board you can press “Clear Max” to reset any wild values)
  1. Your value should rise to be somewhere around 1, not negative 1, not 2, it should be 1. (I have seen values from .854-1.23 so don’t worry if it isn't exactly 1. Just get it as close as possible).
  1. Once your values start to rise, very carefully and slowly continue to move it around, (tilt it more or less or bring it more level) until the “Max” value gets as high as you can get it to. (remember you don't want large values from jolting or bumping).
  1. Once you’ve gotten your “Max” value, press Save.
  1. Repeat steps 7-11 for Y-Axis and Z-Axis. (X-Axis is usually side to side, Y-Axis is usually nose to tail, and Z-Axis is usually level, sometimes level upside down depending on your mounting orientation.) I emphasized usually here because this won’t always be the case, but for the most common mounting orientation with the most common controller, this is the case.
  1. Now get your milkcrate, box, chairs, or whatever you plan to use to get your board level.
  1. Use your bubble level to verify your board is 100% level both nose to tail and side to side. (A lot of people forget that part).
  1. Now press Orientation Calibration. If you are satisfied with how level your board is, press save.
  1. Press save again. You will now see a Yaw Angle Offset Value that is jumping around by increments of 15. You now need to take your board and set it on the ground with the nose up. (Normal resting position).
  1. Now lift your nose until your board is at approximately 45°. Your Yaw Offset value should be some multiple of 90. (-180, -90, 0, 90, 180). If so press Save. If not set your board down, verify you are in fact lifting the nose, and try again. (Some Steeply angled rails may require you to lift your nose higher or lower so try different angles if you have issues.) (Note: If your VESC has a weird mounting orientation your Yaw Offset may not be a multiple of 90°)
  1. After the IMU calibration, go to your RT Data screen in the navigation bar at the top and verify that the Model of the IMU on the 3rd screen down mimics the movements of your board when you move it.
  1. If it does not, continue reading. If it does, skip to step 23.

  1. Navigate to the App Cfg Tab in the navigation bar and select IMU in the top dropdown.
  1. Tap on the 3 dots found near the Read and Write Buttons and press Read Default Settings.
  1. Now Press Write and return to step 1.

  1. Now Navigate to the App Cfg Tab in the navigation bar and select IMU in the top dropdown.
  1. Verify that your sample rate is correct to the controller you have. (Little FOCcer should be 832 Hz, FloatWheel should be 800, etc.). This should have automatically been set during IMU Calibration but sometimes VESC Tool does not pick up on it.
  1. Now Press Write.
Congrats! You now have a board that knows its orientation in 3d space.

Installing Float Package and Setting Some Basic Settings.

  1. Navigate to Packages in the navigation bar. You should see a couple of packages available here. We are going to use the package labeled “Float”. If you do not see this package, press Update Archive in the bottom left and look for it again.
  1. Once you have located Float Package press install. (It may take some time to download and install).
  1. You should now see a pop-up that says the installation is done. Press OK.
  1. Navigate back to the Start menu in the navigation bar and press disconnect.
  1. Now reconnect to your board. (Like steps 2-4 of “Updating your Firmware (Flashing or ReFlashing Firmware)”, (This is to update the UI so that Float Package is visible).
  1. Now navigate to a new tab in your navigation bar titled “Float Cfg”
  1. Now we are going to set all the appropriate values for your specific battery. In the drop-down menu select Specs and find the Voltage Tiltbacks Section.
  1. Your high Voltage Threshold should be set to 1.2v-1.6v above your charged voltage. (4.2 multiplied by your battery’s “s” count).
  1. Your Low Voltage Threshold should be set to 3v multiplied by your battery’s “s” count.
  1. Press Write.
Note: If you just can’t wait any longer and just have to get on your board, your board is as of this point rideable. From here on out I will only be telling you to input some of my recommended settings to start at, but you can read about your Float Cfg parameters and what they do here. I do recommend before you jump on and take off, you should use your hands to activate your board on the ground and verify it seems to function properly. (i.e. doesn't shoot off in some direction for no reason).
  1. In the drop-down menu select Tune. Set Angle P to 35, Rate P to 0.6, Angle I to 0.05, and Mahony KP to 1.7. (Note: If you accidentally press a Plus or Minus while scrolling and don't remember the default value you can always press Read at the bottom to read what the board is currently set to).
  1. Press Write. (Note: From now on if you ever want to change any parameters make sure to press Write before navigating away from that specific menu).
  1. In the drop-down menu select ATR and set ATR Uphill Strength to 0.3 and ATR Downhill Strength to 0.2. (This, in my opinion, mimics Future Motion OneWheels the best).

Now go my youngling. Go. Be free, and ride.

For questions on how to adjust your tune read here.
 
  1. Press Next, and you will see another warning pop-up. Press Yes.