Help with 3-position control of giant servo using external 12v inputs

Hi all, I’m new to electronics but handy with spanners (and hammers) and this is my first time posting on a forum, but I’ve done lots of reading recently… My project is to convert a manual outboard motor gearshift to electric, ironically to retain the 1960 controls! I’ve already discounted linear actuators and solenoids (including rotary) due to concern with limited torque, possible slow operation and need to drive in two directions. I think a servo is best. But now I have failed to work out the best method to control this - I don’t know the technology or the language… I’m used to 12v automotive technology from 60 years ago… My core help request is whether I need to build a controller (if so how) or is there something simple for a 3-position servo controller that already exists that will work with the drive forces and higher voltages/currents required (if so what)?

The shift mechanism requires ~8kg linear push/pull from a central rest (Neutral) position and the throw is 35mm in each direction. No holding force is require in any gear position. I believe I’ll need a 50kg.cm servo to achieve this with a roughly 60-80 degree servo arm movement using a 40mm lever arm. This, and the controller, will be mounted inside the outboard engine cover - so subject to vibration, heat and oil (hopefully not water!). It will connect to the shift linkage by push/pull rod (that once had a handle on it for humanoids to push/pull). The input signal comes from a 1960’s push-button shift mechanisms. Neutral is 0 volts out, Forward and Reverse are 12 to 14.4 volts discrete signals out (originally each one actuated a solenoid clutch pack in the outboards gearbox). The 1960s Evinrude ‘Selectric’ shifter has 3 buttons and each one mechanically disengages the others so it operates effectively as a 3 position switch.

I see the FEETECH FT5335M servo SKU POPOLU-3429 as a starting point. Can I feed a 12v version of this 14.4v from the outboards alternator, or do I need a DC-DC power supply (72W 12 6A SKU-FIT 0145 or is there a 7.2v one?). Integrating a 5v control signal to a 7.2v or 12 (14.4v) servo must be simple but forgive my newness to all this - I can’t work out what to use or how to use it… I have found teeny 5v setups to work with 5v servos and low currents - but how do I upscale the grunt and make it robust? I understand the pulse signal range to control position of the servo but not how that signal is generated or varied. With 0v input want the servo at the central position (Neutral). With discrete 12v inputs I want Pull ie A/CW servo (for FWD gear) or push ie CW servo rotation (for REV gear). I need to have the servo movement/degrees adjustable, and would like the speed adjustable too.

All and any help appreciated, and preferably with outcomes that allow me to buy local…

Cheers & thanks,
Ken

Gday Ken, welcome to the forums!

This sounds like a great little project you’ve got going here. Lets break it down.

The first thing is what actuator to use to control it. The 2 things that spring to mind are a servo in the exact manner you are thinking there, or a linear actuator. This one for example is small, runs on 6v, and has 12kg of push and pull. I wouldn’t opt for that exact one, but they are worth taking a look at as another option. The only issue is that they may be a little slower than a servo. To throw 35mm and change gear it might take 0.5-2 seconds depending on the actuator.

If we are going down the servo route though, the first step is to power it. Power the servo within its reccomended voltage range, but you can over-volt it a little bit. I don’t know if a 12v servo would like 14.4 volts in terms of longevity, but I would happily power it with upto 13v. You may need a dc-dc regulator here.

The other issue is to control the servo. This signal uses something called PWM generation, and the servo reads the gaps in electrical pulses and uses that to set angles. There may be analog solutions out there, but it sounds like using a microcontroller might be the easiest way (I would opt for something like the Pico). They are incredibly easy to use nowadays, and coding up some servo control is a very common beginner project. Here is an intro video to microcontrollers (and an entire course on it that might help you out), and we have a servo guide here that might help.

If you are using a microcontroller to control the servo, it’s really easy to read in a button and write code to move the servo to a certain angle when its pressed. The only issue would be to bring the button voltages down to the microcontrollers voltage logic level range (3.3 volts for the pico). You could bring the voltage down through a voltage divider, or it might be easier to rewire the buttons to provide a 3.3 volt signal.

There are quite a lot of moving parts in this project and I hope this helps you start somewhere.

Best of luck!
-Jaryd

Here are some examples of a manual controller.
(https://www.aliexpress.com/item/1005006357613659.html)
(https://www.aliexpress.com/item/1005005393025149.html)
There are several variations of this type of device commonly available. A three-button unit would be much harder to find.

1 Like

Jeff is on the ball here, getting a 3 button unit is going to be difficult and will probably be a custom board made from scratch.

I also forgot to mention that this is just the electronics and signals side of it, water proofing and protecting these from the elements is its own challenge as well.

Hi Jeff,

For vibrations, some sort of rubber bushing will help, you might not be able to get something off the shelf specifically for a servo motor, but you could look at non slip rubber feet as a starting point.

Heat and oil could be managed with a heatshield, just something so that its not taking the full force of an exhaust or engine block, the servo you’re looking at has an operating temp of up to 70C.

Water is actually a nice easy one to address, waterproof servos are available (hopefully its not needed)

To make sure that the servo has enough current available when you go to make the move putting a capacitor in parallel with your + and ground will give you some more oomp.

Looking forward to seeing how this project progresses

1 Like

Thanks Jaryd & others for the input! I’ve ordered a Pico and will prototype first… The workshop videos have been great to get me started. I’ve seen diagrams for using a 555 Timer & capacitors/resistors to build a (solid state??) position controller and will explore that too. If I can get the functionality I want with the 1960 shift buttons, then I will treat going to higher voltage as step 2…
Cheers to all!
Ken

The servo is rated to 7.2V, it will DIE if you use 12V.
So YES, you will need a power supply and one that can deliver a lot of Amps.

(I killed a 5V servo by connecting it to 7V, it worked to start with but soon stopped)

Note: This servo can draw bursts of current in excess of 9 A at 7.4 V, so please make sure you have an appropriate power supply.

The output of a microcontroller PWM signal 3.3V or 5V could drive a mosfet to connect the signal to the servo. This will isolate the servo volts from the microcontroller. As far as microcontrollers go, the ATMega328P would be better for an industrial environment. The Pico is a great micro and easy to program using Micropython and the Thonny PC application. I have used them in many situations.

You will need a way of sealing the electronics from the environment. Water Oil dust is no good for them. There are some really good cases Jaycar have to do this. The following case I used with a Pico for a watering system.

https://www.jaycar.com.au/ip65-sealed-polycarbonate-enclosure-with-mounting-flange-115-w-x-65-d-x-40-h-mm/p/HB6249

All the best
Jim

Hi James

Why the Mosfet???
The PWM from the micro is the servo data. It need have nothing to do with the actual servo inrush or running current which should be a separate supply . As long as the Grounds (-Ve) are connected all should be OK in this regard.
Cheers Bob

2 Likes

Hi Ken

Looking at the FEETCH web site I don’t think there is a 12V version. But there should be others.
Cheers Bob

Hi ll
Jeff advises

But Ken has stated

And

So it would seem that he already has the 3 button unit.
Cheers Bob

But it will be simply three on-off contacts. To drive a servo it needs to generate a PWM signal at a suitable frequency with the three different mark-space ratios corresponding to the three different positions of the servo that are required. There is no unit that I can find that will do that. There are two-position units available. If a three-position device does exist then it might be possible to use the existing switch assembly to operate it, but if it can’t be found then the point is moot. The devices that are operated with a potentiometer could be pressed into service by replacing the pot with a set of three resistors wired through to the existing switch, but building a unit using a small MCU might be just as easy as modifying one of those devices.

Thanks for the options - I’m learning there may be a few ways to do this… I’ve just watched the tutorial for using a MOSFET and will add that into my planned ‘breadboard learning’, along with simply common earth. I am presuming I will be able to take the 12v-0v-12v (Fwd-N-Rev) output from the 1960’s gear-shift and reduce the voltage for each using voltage 3.3V regulator, eg LD117 series 3.3V SKU: COM-00526 ?) as input signal to the microcontroller… If there’s no signal from F and R then Neutral (0v or no signal inputs) the controller output defaults to the mid servo position 1.5ms pulse. So Fwd would be if input pin 1=active, 1ms. If input pin 2=active, 2ms pulse. I should never get input 1 and 2 both active, unless there’s a failure of the mechanical push-button unit or a wiring short, but could code a default position if both are active. I could also convert the 12v from the push-button unit to simply act as a switch between pins on the microcontroller - but its about 3m cable length away and I presume that could be a problem.
Meanwhile I’ve ordered a wee servo to experiment…
This is proving a fantastic way to learn and I really appreciate everyone’s knowledge sharing. Have attached a couple of pics of my motivation to learn some electrickery!

2 Likes

It will be much simpler if you can reconfigure the switch so that it switches to ground rather than 12V.
The MCU input pins will either have an internal pullup resistor, or you can easily add one, so that an open button will default to a logic high and a closed button will be firmly wired as a logic low. No need for a voltage conversion. Your description implies that the cable is wired so that there is one wire installed for F and one wire installed for R, plus the common. Wiring F to one pin and R to another would work, but if the N position is also a switch (rather than just no connection) and if it is possible to run a third wire then using a third pin for N would make the system more reliable.

Hi Bob,

Doesn’t have to be a mosfet. But the Pico pins need some form of protection.
The default setting for the output drive on a Pico pin is 4mA. I tend to design around 1mA. The voltage on the pin should not exceed 3.3V.

If I was doing this I would do some testing on the servo to see what volts is on the data pin (if any) and what voltage and current is required to make the data line drive the servo. The data sheet provides no information as to what is needed for the data line and only says the servo operates from 6 to 7.4V. So I assume the data line would need the same but may work with a PWM of 5V. The servo may also operate at 5V but with less torque.

I would use a Arduino UNO to do this testing. The ATMega328P pins are good up to 20mA and operate at 5V. I would use a current limiting resistor in series to protect the Arduino pin.

@Ken270132 Hope all this is not too confusing. When designing any electronics circuit there are many things to consider. Sometimes there is not enough information in the manufacturers data sheet so testing is needed.

Regards
JIm

Hi James

That being the case a Mosfet or opto drive for the Servo data might not be a bad idea. I had not gone into that detail re Pico but that drive capability seems pretty light. I have a couple of picos but to date haven’t got motivated enough to play with them. All seems too iffy but will get around to it one day.

The best solution of course is to use something else. Something that is more robust and will do the job. Saves a lot of extra circuitry.

You may note that this is apparently to be used on an boat which looks like a fishing leisure vessel.

If you are going to use Pico or any other iffy bits (most RPi products I think) you would have buckleys chance of getting me on that boat. Not my idea of fun being stuck off shore with a southerly coming up all because of an unreliable bit of electronics. If perchance there is some mechanical over ride then this risk would be minimised.
Cheers Bob

1 Like

@Robert93820 The following is from the Arduino-Pico documentation (C++ programing). I don’t know if this has been implemented in Micropython. I just stick with something less than 4mA.

Output Modes (Pad Strength)

The Raspberry Pi Pico has the ability to set the current that a pin (actually the pad associated with it) is capable of supplying. The current can be set to values of 2mA, 4mA, 8mA and 12mA. By default, on a reset, the setting is 4mA. A pinMode(x, OUTPUT), where x is the pin number, is also the default setting. 4 settings have been added for use with pinMode: OUTPUT_2MA, OUTPUT_4MA, which has the same behavior as OUTPUT, OUTPUT_8MA and OUTPUT_12MA.

While Raspberry Pi’s have been used successfully in commercial applications, in my opinion they should be aimed at the hobbyist market. Something the corporation has forgotten recently. If this was my boat project I would most likely use a ATMega328P with a high temperature tolerance. They are more robust than the RP2040 (Pico), can deliver more current and work at a higher voltage. I have found it pretty hard to kill an ATMega328P when a wiring mistake is made. On the other hand I have killed a Pico due to wiring error.

Regards
Jim

1 Like

Hi james

Exactly what I was getting at. Something like a tried and proven thing like Arduino UNO R3 or a device that uses that chip. Another thing I would do which you did not mention. It is I think worth purchasing a genuine device or one of a known and trusted brand. In my opinion if you use one of the cheap and cheerful Chinese knock offs in this sort of thing you deserve what you get. In an application of this sort I (and I hope you) would prefer to spend a few more dollars for a bit of quality and better reliability.

Of course you could use anything you have on hand for development but get serious for the real thing. That includes not using breadboards in the final build.
Cheers Bob

2 Likes

Hi Bob

This question got me interested in how these push buttons worked. I found this on a boating forum:

The first electric shift Johnsons and Evinrudes came out in 1962 and used an electo-magnet and a spring-clutch to engage forward and reverse electrically. In 1968 OMC came out with the electro-hydraulic shifted gearcase that had thru-hub exhaust that was spring-loaded into forward gear.and used through '72. The 1973 Boat Safety Act required neutral starting and safety switches which was signaled the end of the spring-loaded clutch dog gearcases. Those gearcases had a hydraulic pump and a piston that moved the clutch dog into neutral and reverse. There were 2 valve systems.designs that were actuated by solenoids and redirected the pressurized oil flow to shift out of forward. The green wire when activated had the clutch dog move to the neutral position and for reverse both the green and the blue wires had to be energized to build up additional pressure for reverse. Those gearcases required a special oil now called Premium Blend but originally known as Type C.

So it defaults to forward gear, so you can make to back to shore.

Cheers, Steve

1 Like

Thanks @Stephen202603, good intel, thanks! The mechanism I have is 1968 and while I’ve not been able to run the outboard to test defaults, this has made me think more on safety and interlocks… I envisage a limit/position switch when the throttle is at minimum. That can then be used to enable the electric starter motor, and also to enable/power the Solenoid for the gear shift - which must only be done at minimum throttle (potentially both of these by relay independent to the controller).
Once its off minimum throttle, that limit switch & relay would disable both the starter motor signal and the gear shift servo. I presume I can do that by simply cutting the power supply but leaving the controller powered on and signal active. My concern is if I lose the Fwd input signal (even briefly) when at high engine RPM the controller may shift into neutral. I’d like to do all this electrically rather than relying on the controller.
I will also have a mechanical over-ride so if the electric shift fails for whatever reason I can still shift gears mechanically (and start the engine with the rope pull-chord).
James46717 & Robert93820 I’ve looked at listings for ATMega328P - I have much to learn here but note larger current capacities and supply/operating voltage ranges all of which interests me. It’s a harbour/river boat only but I still want to avoid getting stuck!
Cheers, Ken

2 Likes

Losing the signal should not be a concern: a servo stays where it is last set at, and if it is highly geared then there is considerable force required to make it move when the power is lost.

Sending an improper signal when the engine is at high revs could be a problem. If the control unit is properly shielded and the PS is properly filtered and protected then I would guess that an incorrect position command would be unlikely.

2 Likes