Moderators: roger, 99jonathan, imaqine
skoehler wrote:Can you try RobotC or nxjc or any other programming language?
skoehler wrote:Can you try to call forward() of the motor every 20 seconds.
skoehler wrote:If that doesn't work, can you try to find what makes the motor in one direction longer than 33 seconds?
zbuhman wrote:skoehler wrote:Can you try RobotC or nxjc or any other programming language?
Works fine for me in LabView + Lego/Tetrix extensions.
zbuhman wrote:skoehler wrote:Can you try to call forward() of the motor every 20 seconds.
Absolutely. http://sprunge.us/HYNH?java It still reverses every 33 seconds.
skoehler wrote:If that doesn't work, can you try to find what makes the motor in one direction longer than 33 seconds?
skoehler wrote:LabView wasn't part in my list for a reason: I'm not whether we can actually have a look at the source code of the Tetrix extension. The Tetrix extension is a black box, of which I'd like to know what it is actually doing.
skoehler wrote:(Kirks wrote the Tetrix driver)
skoehler wrote:will not send forward() commands to the controller if the motor is already turning forward(). I'm afraid, you have to modify the Tetrix driver to properly test what I suggested.
skoehler wrote:What happens, if you do the backward() call after 30 seconds instead of 33 seconds?
I wonder if I can manage to disable that check on my own... All I'd need to do to test changes would be to make a new classes.jar, or would I need to rebuild the firmware too?
...
if (motorState[channel]==STATE_RUNNING_FWD) break;
...
if (motorState[channel]==STATE_RUNNING_BKWD) break;
I thought we already established several months ago that the Tetrix driver was supposed to automagically keep sending keep-alives; does that also involve re-sending the state that the controller is supposed to be in?
kirkpthompson wrote:Yes, the code is in lejos.nxt.addon.tetrix.TetrixMotorController, method: synchronized int doCommand(int command, int operand, int channel), lInes 408 and 412:
- Code: Select all
...
if (motorState[channel]==STATE_RUNNING_FWD) break;
...
if (motorState[channel]==STATE_RUNNING_BKWD) break;
kirkpthompson wrote:Have you sent an email to HiTechnic with a description of your problem? They may be able to shed some light on it.
kirkpthompson wrote:I will try to acquire another controller and motor to see if I can duplicate the problem given the conditions you describe. It may be a few weeks though since my Professor is out of town for awhile and he has the controllers.
kirkpthompson wrote:If you want to take a go at it, my plan is to create a class that just sets up the i2c sensor and sends the forward command (and any other prerequisites) to see if the 33 sec reversal still manifests.
My understanding is if NTO is set, the controller should never turn off so that behavior to me seems weird.NXT turns itself off from idling too long. Is that supposed to happen?
Users browsing this forum: No registered users and 2 guests