Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for feetech motors FTS3215 #66

Open
pierre-rouanet opened this issue Feb 6, 2025 · 4 comments
Open

Support for feetech motors FTS3215 #66

pierre-rouanet opened this issue Feb 6, 2025 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@pierre-rouanet
Copy link
Member

pierre-rouanet commented Feb 6, 2025

Feetech motors used protocol v1 for communication, but the answer to a sync read is v2 (n status packet instead of a big one).

@pierre-rouanet pierre-rouanet added the enhancement New feature or request label Feb 6, 2025
@pierre-rouanet pierre-rouanet self-assigned this Feb 6, 2025
@alsuren
Copy link

alsuren commented Mar 3, 2025

Hi. I have started a rust implementation of a feetech ST3215 controller over at https://github.com/hoverkite/hoverkite/pull/235/files#diff-2e422280bb1ca0f843b45f13775a4b7fa48af32d06e49b934fdde2324b4bb124

I am currently targeting embassy on ESP32 (so that I can put a box in the sky to control a kite). The core of the library is mostly sans-io though, and I have an example that uses the underlying structs/enums with the blocking serialport crate if that's useful to you.

I was just going to do a bit of tidy-up and then merge my PR and release a st3215 0.0.1 version on crates.io, so people can try it out. Is there any re-structuring that I could do to make it easier to share code, or would it be easier for you to start from scratch anyway?

@pierre-rouanet
Copy link
Member Author

pierre-rouanet commented Mar 4, 2025

Hi @alsuren,

Really nice!
I wanted to have a no-std version of Rustypot for a long time. I was also considering async as well. As we are also developing some firmware for embassy I would love to use the same code base for our different projects.

I had not much time to do that properly those last few months but hopefully this will change soon.
I'm actually starting investigating using a low level controller based on Rustypot and Tokio for this project https://github.com/apirrone/Open_Duck_Mini
Let me know if you would be interested in participating!

(pinging @SteveNguyen @apirrone and @etienne-besancon for information)

@alsuren
Copy link

alsuren commented Mar 4, 2025

In the end, I realised that our approaches are too different for any of my code to be useful, so I just published it as-is (https://crates.io/crates/st3215).

I have a bit of time this month, so if I manage to get my kite project working and there is no wind, I might be interested in giving it a stab.

My approach would be:

  • make some bindings using your existing macro system (maybe using my existing codegen from https://github.com/hoverkite/hoverkite/blob/main/st3215/build.rs, or maybe not)
  • test against my usb waveshare bus servo adapters that I bought for the SO-100 arms
  • hack your existing macros to optionally produce embassy-compatible code (behind an embassy feature that defaults to off)
  • make a std feature that defaults to on, which enables the serialport dependency etc.
  • test by porting my hoverkite kitebox embassy firmware to use rustypot
  • deprecate my st3215 crate and point people to yours

Does that sound like a reasonable plan?

I think that I will realistically only start this work if I think that I can get all of the way through it by the end of March. If you've not heard anything from me by the end of month then assume I'm snowed under and not going to do it.

@pierre-rouanet
Copy link
Member Author

Yes that sounds perfect! And yes of course, if there is some good wind go flight your kite! Really nice project btw!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants