BeagleBoard Blue: FEETECH SCServo

Hi,

I would like to drive FeeTech SCServos: [1]
unfortunately, the documentation is not very good. more here: [2]

As far as I understand, it is controlled via half-duplex uart.

so, without having to buy the mentioned TTLinker board, I think it needs at least 6v on the V pin.
but looking at the pinouts [3], all the UART pins only have 3.3 or 5v.

Looking at the schematic, I think that the servo pins have regulated 6v.

so my question:

  • do you think it’s possible to create an UART port using the PWM pins?
  • or can I take the 6v from a servo pin, and the tx+gnd from the UART DSM?

Thanks.
Regards, Toby

[1] http://www.feetechrc.com/product/digital-servo/feetech-scservo-multi-purpose-uart-bus-robot-servo-for-arduino-diy/
[2] https://ecksteinimg.de/Datasheet/MO01016/SCS15.pdf
[3] https://github.com/beagleboard/beaglebone-blue/wiki/Pinouts

As far as I understand, it is controlled via half-duplex uart.
so, without having to buy the mentioned TTLinker board, I think it needs at
least 6v on the *V* pin.

  The servo needs between 6V and 8.4V to provide power TO the servo(s) on
the chain. That power can come from anywhere, it does not have to be a
Beaglebone pin (and probably can't be -- I don't think any Beaglebone
provides more than 5V).

but looking at the pinouts [3], all the UART pins only have 3.3 or 5v.

Looking at the schematic, I think that the servo pins have regulated 6v.

so my question:
- do you think it's possible to create an UART port using the PWM pins?

  Only if you bit-bang the entire protocol (IE: treat the PWM as plain
GPIO).

- or can I take the 6v from a servo pin, and the tx+gnd from the UART DSM?

  You need to provide 6+V from some external circuit to power the servo.
The DSM UART appears to be a receive only port.

  You biggest concern is that all I/O pins on a Beaglebone are limited to
3.3V (ADC limit is 1.8V), while the servo likely is using 5V signals
(compatible with AVR based Arduino -- the Uno and Mega models). That means
you will have to incorporate some sort of level shifter on the Tx/Rx to
convert between the servo 5V and Beaglebone 3.3V signals.

  Furthermore, the servo uses a single signal line for both command (in)
and status (out) -- hence that "TTLink" circuit.

  There seems to be an ambiguity in the circuit shown -- they are using
TxD for both the direction control AND the output data; I'm fairly certain
those should be separate signals TxDIR and TxDATA. Setting TxDIR HIGH turns
off the RxData buffer, and after being inverted turns on the TxData output
(which has a 5V pull-up applied). After sending a command to a servo, one
has to pull TxDIR LOW to turn off the TxData output and enable the RxData
input, in order to read the status from the servo.

  Note also that the protocol of command/status is NOT defined in those
documents. You will need to download the Arduino specific servo library and
hope that it is in source that you can read...

WARNING! I tried to find it, but I get "website unavailable" when looking
for the download (and that's from FeeTech's own link to the library!).

  FYI: Looking at the TTLink shield, you provide the 6+V on the GREEN
connector, and the board then provides 5V and 3.3V power to the Arduino it
is meant to be riding on. "U3" and whatever is next to it are voltage
regulators. The pin rows marked SVG are for regular servos (on pins with
PWM output) and/or sensors (GPIO or Analog pins)

Hello,

I have some servo stuff to add, too. http://emanual.robotis.com/docs/en/dxl/ax/ax-12a/

That link brings you to a servo that I purchased a while back. It handles different voltages, as some servos do.

I noticed that 11.2v is the recommended voltage. Also, if you look around on their github.com site, that page, and
other pages associated w/ their tools and hardware, you will find some “more-than-regular” ideas listed.

For instance, look here: http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/sample_code/c_read_write_protocol_1_0/#c-read-write-protocol-10

That source can be installed via git and if you have particular motors from their company, you can use the source
to read, write, etc.

I just cloned via git their source and used make and sudo make install to compile their source on the BBB.

I have a BBB w/ a RelayCape on it. Now, I know I have a 12v battery, an AnyVolt Micro which can be here
https://www.dimensionengineering.com/datasheets/AnyVoltMicro.pdf, and some ideas from reading.

I am not trying to sell these ideas or have you purchase new servos. I just wanted to add in and add context.

I will try to put together an AnyVolt Micro circuit w/ a 12v battery, the RelayCape, and the BBB. It may take awhile
from now. I state that b/c I do not want to ruin my Cape, the BBB, or the work I have put in so far to make things
work.

Seth

P.S. If anyone gets bored or sees an issue I may have overlooked, do not hesitate to jump in and tell me the truth.