Page 2 of 2

Re: Rotary engine OMP Stepper control?

PostPosted: Mon Oct 26, 2015 8:45 am
by shadowplane676
Ok, so where do we need to go from here? Prototype and custom .ini/MS2 code? I have access to a spare MS2 set up for an RX7 FC (Zeal board) and at least one S5 OMP and an RX8 OMP which I can set up and do bench testing with.

Additionally, would this be easier to connect to the MS and/or code for via the TinyIOX/CAN rather than using the IAC outputs?

Re: Rotary engine OMP Stepper control?

PostPosted: Wed Feb 10, 2016 6:06 am
by slyrye
shadowplane676 wrote:I haven't looked at a PWM -> stepper possibility yet. Would a 3rd party stepper driver such as this one from sparkfun run the OMP? I haven't found the spcs on what sort of current the OMP draws, but this board can handle 750mA/Phase and up to 30V from what I can tell. It also takes a 0v to 5v digital input, plus it is cheap at $15...

If you need more current put one A3967 on top of another if you need more triple it...!! this will work and control your OMP via generic PWM...!

Re: Rotary engine OMP Stepper control?

PostPosted: Sun Apr 10, 2016 11:52 am
by JET
has anybody gotten anywhere with this? lack of a even basic functioning omp is getting to be a bit frustrating...can we at least get this code added even if we need a hardware solution to drive it? thanks

Re: Rotary engine OMP Stepper control?

PostPosted: Tue Dec 26, 2017 1:27 pm
by shadowplane676
I know this thread is fairly dated, however as I don't believe a workable solution has yet been developed, I think the following update is worth reviving this thread.

In the last couple years, I have spent some time learning more about electronics and have produced the beginnings of a possible workable solution. The plan is to use a microcontroller, stepper controller and CAN interface to control the OMP. The plan is to take the standard MS dash CAN broadcast data, do a lookup on a load/RPM table resulting in an adjustment to the OMP stepper position while using the position sensor for stepper location verification.

In my research, the stepper motor has coils that are approx. 24 ohms each and have 4 coils with center taps. Initially I was looking at driving the stepper with all 4 coils separately, which when driven with 14.5 volts (average running voltage on a car), would calculate out to a max power draw of .6 amps per coil. After looking for a more powerful stepper controller than the built-in MS2 controller, I came across the A4988 controller. Per the listed specs, it is rated at 1A without active cooling and 2A with heatsink and active air cooling. Believing this could be adequate, I acquired a few stepper controllers (just in case I let the magic smoke out of one or three...) along with a CAN/SPI interface to go along with an Arduino controller I had.

After some trial and error, research and reconfig, I was able to control the OMP stepper motor with the Arduino and A4988. Initially, I was thinking of running the stepper as originally wired (center tapped, 4 coils), however the A4988 controller was not set up to do that as it provides coil power rather than grounding it from what I can tell. This lead me to run the coils in pairs while leaving the center tap wires disconnected. This increased the per "coil" resistance to ~48 ohms and approximately .3A per coil. Now that I was able to actually get the stepper to respond, I was able to verify that current draw on the VMOT input (power supply to the stepper driver coil circuits) came close to .6A but never went higher than that. Granted that is no resistance and free-movement, but my hope is that even with full load, the current draw won't be that much more. possibly even coming in under the MS2's built-in controller .750A limit. As this is current draw is nowhere near the A4988's current limit, the stepper controller registered no heat change that I was able to feel.

Regarding the step response time, some fine tuning on the state change delay timing (delay between going high and going low) resulted in a tested time of 15ms/state (30ms total delay/step). Conversely a state delay of .5ms resulted in no movement at all. I will test 10ms per state change as I believe it will be a good compromise but still result in stepper movement.

Next steps: I will be working on reading in the stepper position sensor to the microcontroller so I can verify if the stepper moves to the commanded location. After that, I believe it will be setting up the CAN data receipt followed by a lookup table of requested OMP flow and associated calculations for adjusting the stepper based on CAN data.

Data summary:
Individual coil resistance: ~24 ohms
Tied coil resistance: ~48 ohms
Minimum delay per "step": 30ms (15ms per state change)
roughly measured min to max steps in tied config: 128 steps
additional A4988 settings : microstepping enabled

P.S. - video of actuation forthcoming...

P.S.S - If we are super lucky and the stepper doesn't exceed .750A loaded, maybe the general stepper feature will work on MS2? #WishfulThinking

Re: Rotary engine OMP Stepper control?

PostPosted: Wed Dec 27, 2017 7:01 am
by shadowplane676
video of working actuation at 15ms/state delay

Re: Rotary engine OMP Stepper control?

PostPosted: Tue Jan 02, 2018 4:41 pm
by shadowplane676
a quick update:

I had good success this past weekend in reading in the position sensor to the Arduino. Once I verified the sensor was working as expected, I reassembled the stepper motor onto the OMP along with the position sensor. This led to the discovery that once assembled, the stepper motor maxes out at right around 65 steps rather than the un-assembled step count of 128. After some testing, the system now retracts on boot and steps out a few steps to get into the sensor range to start at a known position. A fully retracted stepper had ~3 steps past what the position sensor would read so advancing it 5 steps puts it within the near perfect OEM spec range. I adjusted the controls and now it fully sweeps between 4.2v and .98v, almost exactly the factory listed voltage min./max values and aligning with the 0 to 60 step OMP tables I have found from a stock RX8 ECU.

Testing on a step delay of 10ms resulted in no movement, so it appears max step speed is ~15ms but might be a couple ms faster with some more testing. 15ms step timing ends up with a 0 to max step sweep complete in just under a second, fast enough for our purposes as far as I have been able to determine. Power draw was also checked with an inline DVM rather than the power supply's sweep gauge. This verified that I never saw any power draw greater than .6A. A faster step iteration (>150ms to 15ms) actually decreased the power draw from ~.56A to .42A +-.01A. Stepper controller remained no hotter than ambient from what I can tell (touch temperature measuring). I am planning to get an IR thermometer to get more accurate stepper temperatures.

Next on the agenda is getting CAN set up and reading in/decoding the CAN data for RPM, MAP and CLT.

Re: Rotary engine OMP Stepper control?

PostPosted: Tue Jan 02, 2018 6:05 pm
by JET
special thanks for working on this and sharing.would be nice to have a emop solution..was considering going to a ms3x as the only solution was this one from the rx-7club megasquirt sub-forum. ... p-1084801/
not sure but i don't think it was added in the ms3 beta yet.

Re: Rotary engine OMP Stepper control?

PostPosted: Wed Jan 03, 2018 12:22 pm
by shadowplane676
I don't believe there is much if any development going on officially for the MS2 code. The user on the RX7 forum used an interesting method for stepper driving. Electronically (from what I have found) a center tapped stepper can be run with or without the center taps being used. This is of course dependent on the hardware used to drive it. As I am going to be rewiring most of the car when the MS is installed, I didn't see any issues with going from a 6 wire setup to a 4 wire setup.