Since our last update we've been working towards dialing in our board's firmware. Previously we were expecting to finalize this firmware in early April and though it has improved considerably, it unfortunately was not ready on time. Below we will explain in some detail the challenges we’re navigating.
Speed Controller and Firmware Testing
The firmware is now in the final stretch. There are two main types of improvements we are working on since our last update: parameter optimization and deep code changes.
Basic States of Operation:
1) Acceleration: Your speed increases (either from stopped or moving forward) as you are pressing the front footpad. This is the most common state.
2) Coasting: When you are pressing neither footpad and the board is in a clutchless roll.
3) Regenerative Braking: When you are moving forward above a certain speed and you are pressing the rear footpad to slow down
4) Active Braking: When you are moving forward below a certain speed and you are pressing the rear footpad to slow down further or come to a complete stop.
5) Reverse Acceleration: When you are stopped or moving backwards and you are pressing the rear footpad to increase speed in the reverse direction.
6) Reverse Regenerative Braking: Identical to Regenerative Braking, but when moving in reverse and pressing the front footpad.
7) Reverse Active Braking: Identical to Active Braking, except when moving in reverse and pressing the front footpad.
The ZBoard's performance in each of these states and the transitions between them are determined by one or more of these parameters:
Ramp: The time it takes for the board's speed to match the input signal from footpad pressure. For example, too fast of an acceleration ramp would lead to a board that is very jerky, while a too low ramp would feel unnatural and be slow to respond to input.
Power: Different pressure signals are mapped to different levels of power. A certain footpad pressure dictates a certain power level to the motor, and the "Ramp" parameter above determines how long it takes to get there. Actual power output and braking strength are a function of PWM (Pulse Width Modulation) and duty cycle, which is the ratio between the length of time of power is being sent to the motor versus not being sent in each PWM pulse. This is by far the most complicated aspect of controlling a brushless motor, and the high-speed, high-torque outrunner needed for the performance we want in an electric skateboard
Instant Power: The Ramp parameter works well but we've found through testing that it's very important to get instant feedback from both footpads when pressed and released, but not affect the Ramp slope once that feedback is felt. This is essentially the activation energy required for haptic feedback response. - aka the footpads need react immediately (though likely not with full power) upon a footpad press. We've found in testing that a certain amount of "Instant Power" helps the board react quicker reduces reaction delay by boosting the bottom end of the ramp curve.
This is a summary of over a dozen separate and inter-connected Ramp and Power parameters, in addition to nearly 150 other parameters that together control all aspects of operation.
Changing parameters can be done quickly with a customized serial programming cord plugged into the controller board, as seen above. We make parameter changes after every test ride, discuss what impact we expect the changes to have, go ride again, document our findings, then rinse and repeat the testing process, and we’ve been doing this daily for several months now, making continuous improvement.
In order to make the programming chip and speed controller easy to access, we've built a special board as seen below:
Listed above are just a subset of parameters we had when we wrote the last update and made the projection to begin shipping by early April. Unfortunately, while we have been able to get the board to ride well with these parameters, we still needed to make it better.
Parameters can only adjust variables that we’ve already built into the base code. So In order to do make additional improvements, we needed to make some large code changes and add more specific tuning parameters.
Adding a new parameter requires a deep dive into the more than 25,000 lines of the code, and bench testing to ensure that changes are compatible with and don't "break" existing elements of the code. These new parameters can each take hours or days to add.
The first step in testing new code changes occurs on our dynamometer, which drives the ZBoard's motor against a high torque e-bike motor, allowing us to simulate acceleration and deceleration with heavy, variable loads on the bench before installing onto the ZBoard.
Since the last update, we have installed dozens of new parameters. For one simple example, previously the "Ramp" parameter determined both ramp up and ramp down for certain board inputs. We separated these into discrete "Ramp Up" and "Ramp Down" parameters. A more complex example is a complete revision we made last month of the braking control paradigm that meant completely rewriting more than 1,000 lines of code. We’ve also re-built many of the previous parameters to be speed dependent, meaning we’ve mapped them to perform differently depending on the speed, direction, and state of the board, to improve the ride experience at all times.
We've continued making code changes and adding parameters when needed, as we tweak the current parameters and test ride the results.
This video shows and handful of test riding along with a few timelapses that include how we change the hardware on the controller (0:31), how we flash new firmware onto a previously blank controller (0:51), and the steps remaining to complete the board once the controller is flashed (1:03).
Note that while this video is edited to be exciting, most of these test rides are very short and focused, with the goal being to determine the next round of parameter or code changes.
Our goal is to deliver a board where you don't have to think about or notice any of the things laid out above. The board will do what you want it to do, smoothly, when you want it to.
When we wrote the last update we had what we believed to be, the highest resolution, most finely tune-able firmware we needed. But after extensive testing over the past month we learned that additional parameters were needed. We've built in many new ones, but have a few more to go before we can begin shipping.
Around the Shop
Earlier this month we changed the grip material we're using for the footpads. The previous footpad grips would peel from temperatures changes. The new footpad covers stay nice and flat, and have better grip. We also sent our footpad cover mold back to the machine shop to improve its contours for a better aesthetic and rider experience.
Since the new outrunner motor is far more powerful than previous motors, it puts more stress on our drivetrain, most importantly the pulleys and belt. With this in mind we've made two slight improvements to our pulleys.
First as seen above, we've adjusted the geometry of our pulley tooth. This makes a big difference in preventing the belt from slipping on the pulley.
Second, we've increased the diameters of our set screws to ensure the pulley doesn't loosen on the motor shaft.
We've continued completing sub-assemblies including wiring decks and battery boxes. This pre-production work will allow us to ramp up production quickly once the firmware is finalized.
Final Production Parts Arriving:
Our first batch of production speed controllers is scheduled to arrive tomorrow and our second batch of batteries are both scheduled to arrive next week.
If you have any questions, our Founder Ben Forman will be on our website chatting tomorrow, Wednesday 4/20, from 3:00 - 5:00PM PST.
Shipping Schedule Moving Forward
We project that the additional firmware revisions will be complete by mid May and we’ll begin shipping the Pre-Production Batch of boards as soon as they’re finalized and tested. We are aiming to ramp up to at least 100 boards per week or more soon after the first batch is complete. Once production does begin we'll be sure to share photos and pictures of boards coming off the line and keep everyone in the loop with their projected delivery date. Unfortunately at this time we cannot state those projected delivery dates but we’ll inform you as this timeline becomes more clear.
Overall, the Z2 is truly exceeding our performance expectations and only small corner cases need further tuning. We're confident that once those are in the rear view mirror we'll be able to quickly ship boards. On your first ride you'll know that it was worth the wait.
We deeply apologize for the delays and we thank you for your patience and support - without you there would be no ZBoard.