What's new
Amazing work, and great job! It is a LOT of work for such an average game though! Still, very cool. Maybe there will be a way to retro-fit Afterburner in there when you're done!
 
Amazing work, and great job! It is a LOT of work for such an average game though! Still, very cool. Maybe there will be a way to retro-fit Afterburner in there when you're done!

Super cool stuff man!

I posted a while back about stepper driven afterburner, as seen on this video:
View: https://www.youtube.com/watch?v=0Vuh6hzreDA&t=3s


My deluxe machine is a good candidate for this since I'm missing a motor and they're really hard to come by. Maybe it's time to revisit...
 
I posted a while back about stepper driven afterburner, as seen on this video:
I have AfterBurner Climax Lindbergh, I may fit into GLoc as a swappable board.

In your demo it looks like they're going a little slower than the stock speed? have you had them cranked up as I know steppers can get quite noisy. I started doing something similar with my punch mania (swapping the stock motors for steppers).
That's just a test.
However there would be some challenges with the speed to solve.
AccelStepper library can't do more than 4000 steps/sec on ATMega2560, which is too slow.
Even with motor driver set to 200 pulses per revolution it is 3 times slowe than original motor.

Going without the library - with just controlling pins - I can achieve the speeds of *almost* that original does.
But still a bit slower. Anything with a delay smaller than 250 microseconds seems to cause error.
(That is just 4khz, which tells me it is the same 4000 steps/sec limit that AccelStepper mentions in the docs)
I have yet to check with oscilloscope if it is Arduino that can't produce clean pulses faster or smth else.
The servo drivers are capable of 500kHz.

It also may be caused by Arduino IDE and not pure C.

As GRBL is able to overcome all this limits without problems. Need to do some research.

UPDATE: The problem also might be just a garbage Chinese "arduino", that produces a shitstorm instead of a clean pulse waveform.
I would confirm that later today.
 
Last edited:
I seen a couple of old gloc deluxes running Afterburner climax . One was using a ps3 and the other a lindbergh but obviously neither had motion something you could possibly do with your custom setup.

I was thinking what about changing pulley diameters on the motor/ballscrew. IIRC correctly the motor has a small one and the ballscrew the larger one but now you have the ability to control speed/steps you could change the pulley size to get you in the right ballpark at a reasonable speed and then dial in the difference afterwards. Not sure of the specifications of your motor but pretty sure if you crank the speed too high it starts to lose torque.
 
Well, I can achieve same speed as original motors, but only for 1 drive at a time.
If I use AccelStepper or MobaTools - the calculations for 2 steppers would make AtMega2560 too slow.
If I use my own simple calculations (just to prevent motor stalling from high speed to 0) - i can do both motors, if using digitalWriteFast.

I would do some more research and might be just control them over RS232.
They do support MotionStudio, there is no protocol docs, but who can prevent me from dumping it from the wire.

Another solution would be hight speed MCU, like ESP32, but I wanted to stay in the 5V domain for simplicity.

UPDATE.
For comparsion:

1. Running with just manipulating step/dir pins for both servos in a loop, using digitalWriteFast


2. Running using MobaTools library
I guess calculations make it costly and add unwanted delays between pulses.
(It does not matter if I define servos as separate objects or an array of servos, the top speed would be the same)


3. Same as #1, but has acceleration/deceleration handling, so can squeeze more rpms from the motors.
(you can't expect the motor start from 0 to 2000rpm, it won't)


Running at 60V DC, max draw 7.5A with 90kg me in the chair.
 
Last edited:
I seen a couple of old gloc deluxes running Afterburner climax . One was using a ps3 and the other a lindbergh but obviously neither had motion something you could possibly do with your custom setup.

I was thinking what about changing pulley diameters on the motor/ballscrew. IIRC correctly the motor has a small one and the ballscrew the larger one but now you have the ability to control speed/steps you could change the pulley size to get you in the right ballpark at a reasonable speed and then dial in the difference afterwards. Not sure of the specifications of your motor but pretty sure if you crank the speed too high it starts to lose torque.

The pulley is 14mm shaft diameter, 5x10mm pin, 68mm OD, "Type A" V-Groove belt.
I would say motors have enough juice and they hold very well.
Extra 100kg in the seat make no difference, just 1.5A extra draw (for 2 motors combined)

They are also fast enough, just require some tweaking. Eg. acceleration logic is required.
It would refuse to go from 0 to 2000 rpm with a load. Needs to accelerate, even 0.2sec rampup makes huge difference.

Motors are 12NM NEMA34 steppers, they are supposed to be capable of running at 7 Amps 90VDC.
Judging by running the machine constantly for 40 minutes and motors being not even warm - I'm not pushing them anywhere to what they can do.
 
It looks like RS232 control is the way to go.
The most important feature of it - the motor driver itself is capable of handling Accel/Decel calculations.
I would still run some more tests, like if the speed change is immediate and can be set while the motor is running (why not, but who knows), or it requires it being idle.

Another nice feature - you can reset "Alarm" state, if you are not using RS232 - it requires a powercycle.
 

Attachments

  • 2024-03-17 18.07.50.jpg
    2024-03-17 18.07.50.jpg
    114.4 KB · Views: 59
I cant believe ive only just seen this thread!

Fantastic work, looks like you've had rough time with the motors hopefully you are close to a solution now.

Cheers Justin
 
I'll post this video for reference.
What you see is an Arduino based "position decoder", that reads L and R motors target position and speed from the main CPU, connected instead of the original motion board.


2024-06-16 16.52.52.jpg2024-06-16 16.52.58.jpg

I wouls post source code, if anyone needs it.
 
Pubblicherò questo video come riferimento.
Ciò che vedete è un "decodificatore di posizione" basato su Arduino, che legge la posizione target e la velocità dei motori L e R dalla CPU principale, collegata al posto della scheda di movimento originale.


Se qualcuno ne avesse bisogno, pubblicherei il codice sorgente.
you should open a separate thread where you explain how to make it, it might save several G-Loc Deluxe
 
Back
Top