Starting from a stop without stuttering seems tough for many controllers I try out.
A separate output for a brake resistor would be a nice plus that I see on servo controllers, but not ebike ones.
Every connector the Spitend add-on board adds would be nice too:
In upgrade to V3.1 process The Aadapter is compatible with normal ESC and all other VESC. All in one function adapter for diy Electric skateboar Escooter with VESC : Horn, Head light, Turn Signal light, Brake and rear light, and reverse light support. High, middle, low, 3 level throttle...
spintend.com
And all the stuff Grin does, like bidirectional throttle for proportional regen, virtual electronic freewheeling to make DD motors act like geared, supporting third party displays, etc..
@Inanek Great points — let me go through each one.
Smooth start from standstill:
I hear you — this is a common frustration with VESC-based controllers specifically, not just cheap sensorless ones. The stuttering usually comes from noisy current measurement at low duty cycle, poor hall sensor signal integrity, or a rough handoff from hall-based commutation to the sensorless observer.
We can’t claim sensorless startup from zero RPM — nobody can do that cleanly on a real vehicle load. What we focused on is making sure the sensor-based startup and the transition to sensorless are clean. That comes down to hardware — the current sensing has a dedicated precision voltage reference (not bus-derived, which drifts under load), analog and digital grounds are physically separated in the PCB stackup, and the hall sensor inputs have proper filtering and a clean 5V supply rail with bulk capacitance behind it. The result is that the FOC loop gets clean data from the first commutation step, so there’s no hunting or jerking at low speed.
We support hall sensors, SIN/COS analog encoder, and ABI quadrature — all of which give solid low-speed performance. The sensorless observer takes over once there’s enough back-EMF to track reliably. In our testing the transition is seamless, but I’d rather have builders confirm that on their own motors than make claims we haven’t validated across every motor type yet. Happy to share startup behavior once we have more motor test data.
Brake resistor output:
Honest answer — there’s no dedicated brake resistor output on this version. The two AUX outputs are open-drain rated at 2A, so you could drive a relay to switch a brake resistor through one of those using a LispBM script that monitors bus voltage during regen. It’s not the same as a dedicated high-current brake resistor FET, but it works for most builds. Noted as a feature request for the next hardware revision though — it’s a valid gap, especially for builds where the battery can’t absorb full regen current.
Spintend Ewheel adapter features:
This is actually where I think you’ll find the 12FET interesting — almost everything that Spintend sells as a $36 add-on board is already built into our controller natively:
• Horn / headlight / accessory outputs — 2x AUX open-drain outputs, 2A each. Wire a horn or light relay directly, no add-on board needed.
• Brake light trigger — dedicated brake switch input on the main connector. When brake is active, you can drive a brake light from an AUX output or through the RGB strip — configurable in firmware.
• Reverse light — direction state is tracked in firmware. Reverse engagement triggers the buzzer for audible confirmation and sets an internal flag that can drive an AUX output or change the WS2812 strip color (we already do a red tinge overlay on the RGB strip in reverse).
• 3-level throttle / riding modes — ECO / SPORT / MANIAC modes via a physical analog switch on the harness. No app needed, instant switching, smooth ramped transitions mid-ride.
• Motor reverse — built-in with a full safety interlock (speed below threshold + throttle idle + 500ms hold). Not just a direction flip — it’s a proper EV-grade reverse system with audible confirmation.
• Cruise control — this is a native VESC ADC app feature and works through VESC Tool configuration. No add-on needed.
• WS2812 RGB strip output — up to 8 LEDs, driven natively from the controller. Status, mode indication, fault alerts, reverse state — all built into the firmware state machine.
So where Spintend requires a VESC + their adapter board + wiring between both, the 12FET does it all from one connector with zero add-ons.
Grin features:
Bidirectional throttle with proportional regen is supported through VESC’s ADC app configuration — you can set it up in VESC Tool so one direction of the throttle is forward and the other is regen braking, proportional to how far you push it. Works out of the box.
Virtual electronic freewheeling to make direct-drive motors feel geared is a Grin-specific firmware feature that isn’t part of standard VESC. We don’t have that currently, but it’s an interesting idea worth looking into.
Third party display support — we have both CAN bus and UART broken out on the main connector. Protocol compatibility depends on which display you’re targeting, but the hardware interface is there for displays that speak VESC CAN protocol or serial.
The short version: most of what you’d need an add-on board for on other VESC controllers is already integrated into the 12FET. One board, one connector, one firmware. That was the design goal from the start.