Java api for Basic ESC?

Hi! Just used our rov in a tournament, LOVE the T200s and ESCs. Wondering if there is an API for Java for coding them? Open to C++ as well, but AP CS classes are Java so looking to make an easier jump for students.

Hi Michael, welcome to the forum!

Awesome to hear you’re enjoying the T200s and ESCs - they’re a pretty great combo :slight_smile:

Not certain what you’re asking for/about here. Mostly the ESCs are just run as-is, and controlled by a PWM signal between 1100-1900us, which you can do with any programming language that’s running on hardware with a suitable PWM output (e.g. this arduino example). If you’re instead talking about changing how the ESC runs instead of just controlling it then you’ll need to look into modifying the ESC firmware, which there’s some info on here. There’s no API access to modify the control parameters/limits because they’re hardcoded in the firmware, and the only communication signal you input while they’re running is the PWM signal.

Hope that answers your question :slight_smile:

Thanks for the response. Coaching FIRST robotics I’m used to a choice of controllers which I guess have a bit more to them, and have unique constructors for access (check out CTRE ). I will try out some of the examples that I’ve seen on the site, thanks!

Interesting stuff - definitely looks like fun to play with!

Since the T200 thrusters are designed as a low-cost high-performance way of creating thrust in water there’s much less benefit to providing things like precise angle control and similar, so only a simple speed controller is used. They’re also designed to work within the ArduSub ecosystem, which uses a consistent PWM control interface for easy swapping of components, so the Basic ESC is all that’s really required for that use-case.

If you’re not using ArduSub and are interested in more advanced control then you’re able to use any controller you choose, provided it can provide the required three-phase output with enough power. Other controllers may well be set up by default to allow a broader variety of control options.

I personally haven’t looked into the hardware of the Basic ESC, so it might even be possible to make a firmware modification that allows more sophisticated control using the existing wires, but that would likely be quite an involved project to get working.