Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

intellibrain · IntelliBrain Forum

The Yahoo! Groups Product Blog

Check it out!

Group Information

  • Members: 216
  • Category: Robotics
  • Founded: Nov 18, 2005
  • Language: English
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Messages

Advanced
Messages Help
Messages 137 - 166 of 525   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#137 From: "garthpaine" <ga.paine@...>
Date: Sun Jan 7, 2007 11:41 pm
Subject: Line Following Example on Intellibrain2Bot
garthpaine
Send Email Send Email
 
Hi all

I am having trouble getting my new Intellibrain2Bot to do the Line Following
trick - it does
not seem to drive the motors at all - I have tried other algorithms and infact
all the Demo's
work except this one - I have looked at the figures for the sensor outputs on
the LCD - they
are around 346-349, so under the 350 recommended in the manual but close - I can
not see
how to move the sensors up without triming the stand-off rods - what are other
peoples
experiences here?

So when I place the bot on the line - nothing happens

Help please - thanks

Garth

#138 From: "RidgeSoft" <rs1@...>
Date: Mon Jan 8, 2007 3:26 am
Subject: Re: Line Following Example on Intellibrain2Bot
ridgesoft
Send Email Send Email
 
Hi Garth,

The sensors should read very high over black - 600 to 900.  It could be
the surface you are using is not opaque or is too reflective, which
would cause the sensors to read lower.  Hold the robot over the line and
observe the values reported by the sensors as you lift the robot
straight up from the black suface.  If the sensor reading does not
increase significantly it is the surface that is the problem, not the
height of the sensors.  If it is indeed a problem that you cannot move
the sensor high enough off the floor, the best solution will probably be
reducing the "THRESHOLD" value in the sample program.

Regards,

RidgeSoft Support


--- In intellibrain@yahoogroups.com, "garthpaine" <ga.paine@...> wrote:
>
> Hi all
>
> I am having trouble getting my new Intellibrain2Bot to do the Line
Following trick - it does
> not seem to drive the motors at all - I have tried other algorithms
and infact all the Demo's
> work except this one - I have looked at the figures for the sensor
outputs on the LCD - they
> are around 346-349, so under the 350 recommended in the manual but
close - I can not see
> how to move the sensors up without triming the stand-off rods - what
are other peoples
> experiences here?
>
> So when I place the bot on the line - nothing happens
>
> Help please - thanks
>
> Garth
>

#139 From: "pingber" <pingber@...>
Date: Sat Jan 13, 2007 1:25 pm
Subject: new to this, but not new to JAVA
pingber
Send Email Send Email
 
Can anyone tell me .... I teach AP COmputer Science and am using JAVA
1.5 with JCreator 3.5.  Can I write my programs in JCreator
using "standard" java along with the Intellibrain specific commands,
compile in JCreator and then move it all to RoboJDE?  If so, do I move
only the source file or the compiled class?  I'd rather have the
students use the IDE they are used to and then use the RoboJDE just
for the robot specific stuff ... is it possible?

BTW, I really like this product ... so far, works as advertised and
fits into my curriculum really well.

Phil Ingber
Nyack HS
Nyack NY

BTW, we are only evaluating right now so I guess I have the
Intellibrain rather than the version 2?

#140 From: "RidgeSoft" <rs1@...>
Date: Sat Jan 13, 2007 3:32 pm
Subject: Re: new to this, but not new to JAVA
ridgesoft
Send Email Send Email
 

Phil,

You should be able to use JCreator to edit and compile and RoboJDE to download and monitor your programs.  Although we have not tried this with JCreator, we have with Eclipse.  Many people use Eclipse with RoboJDE in this way.  The following message describes how to do this with Eclipse.  The process should be very similar for JCreator.

http://tech.groups.yahoo.com/group/intellibrain/message/3

If you are successful, please post the details of how to do it.

RidgeSoft Support


--- In intellibrain@yahoogroups.com, "pingber" <pingber@...> wrote:
>
> Can anyone tell me .... I teach AP COmputer Science and am using JAVA
> 1.5 with JCreator 3.5. Can I write my programs in JCreator
> using "standard" java along with the Intellibrain specific commands,
> compile in JCreator and then move it all to RoboJDE? If so, do I move
> only the source file or the compiled class? I'd rather have the
> students use the IDE they are used to and then use the RoboJDE just
> for the robot specific stuff ... is it possible?
>
> BTW, I really like this product ... so far, works as advertised and
> fits into my curriculum really well.
>
> Phil Ingber
> Nyack HS
> Nyack NY
>
> BTW, we are only evaluating right now so I guess I have the
> Intellibrain rather than the version 2?
>


#141 From: "arturuong" <agarcia@...>
Date: Sun Jan 14, 2007 4:03 am
Subject: Servo speed.
arturuong
Send Email Send Email
 
My apologies if this has been posted before, I did my best to search.
Anyway, I am having trouble controlling the speed of the servos.
According to some of the examples, I should be able to vary the speed
depending of the integer fed into the method.  However, no matter what
the integer in the current direction (i.e. between 51-100 or 49-0) I
get the same speen on the servo.  Am I wrong to say that

leftServo.setPosition(100);

and

leftServo.setPosition(80);

should result in two different speeds?

Thanks
Arturo

#142 From: "RidgeSoft" <rs1@...>
Date: Sun Jan 14, 2007 5:25 am
Subject: Re: Servo speed.
ridgesoft
Send Email Send Email
 

Arturo,

There a discussion of this topic in the navigation tutorial.  See page 6 of the following:

http://www.ridgesoft.com/articles/navigation/ProgrammingYourRobotToNavigate.pdf

RidgeSoft Support

--- In intellibrain@yahoogroups.com, "arturuong" <agarcia@...> wrote:
>
> My apologies if this has been posted before, I did my best to search.
> Anyway, I am having trouble controlling the speed of the servos.
> According to some of the examples, I should be able to vary the speed
> depending of the integer fed into the method. However, no matter what
> the integer in the current direction (i.e. between 51-100 or 49-0) I
> get the same speen on the servo. Am I wrong to say that
>
> leftServo.setPosition(100);
>
> and
>
> leftServo.setPosition(80);
>
> should result in two different speeds?
>
> Thanks
> Arturo
>


#143 From: "arturuong" <agarcia@...>
Date: Sun Jan 14, 2007 4:09 pm
Subject: Re: Servo speed.
arturuong
Send Email Send Email
 
Thank you so much, that helped a lot.

--- In intellibrain@yahoogroups.com, "RidgeSoft" <rs1@...> wrote:
>
>
> Arturo,
>
> There a discussion of this topic in the navigation tutorial.  See
page 6
> of the following:
>
>
http://www.ridgesoft.com/articles/navigation/ProgrammingYourRobotToNa
vig\
> ate.pdf
>
<http://www.ridgesoft.com/articles/navigation/ProgrammingYourRobotToN
avi\
> gate.pdf>
>
> RidgeSoft Support
>
> --- In intellibrain@yahoogroups.com, "arturuong" <agarcia@> wrote:
> >
> > My apologies if this has been posted before, I did my best to
search.
> > Anyway, I am having trouble controlling the speed of the servos.
> > According to some of the examples, I should be able to vary the
speed
> > depending of the integer fed into the method. However, no matter
what
> > the integer in the current direction (i.e. between 51-100 or 49-
0) I
> > get the same speen on the servo. Am I wrong to say that
> >
> > leftServo.setPosition(100);
> >
> > and
> >
> > leftServo.setPosition(80);
> >
> > should result in two different speeds?
> >
> > Thanks
> > Arturo
> >
>

#144 From: "pingber" <pingber@...>
Date: Tue Jan 16, 2007 3:44 pm
Subject: default dir3ectory for saving projects
pingber
Send Email Send Email
 
How do you change the default project directory?  My software seems
insistent on saving back to the original directory when the software
was installed.

#145 From: "RidgeSoft" <rs1@...>
Date: Tue Jan 16, 2007 4:13 pm
Subject: Re: default dir3ectory for saving projects
ridgesoft
Send Email Send Email
 
RoboJDE saves the path to the current project in RoboJDE.ini (\Program
Files\RoboJDE\RoboJDE.ini) when it exits.  When you restart RoboJDE it
will open the project you were working on when you exited.  However, if
you do not have permission to write the RoboJDE.ini file, the path will
remain the default.

RidgeSoft Support


--- In intellibrain@yahoogroups.com, "pingber" <pingber@...> wrote:
>
> How do you change the default project directory? My software seems
> insistent on saving back to the original directory when the software
> was installed.
>

#146 From: "kariz75" <kariz75@...>
Date: Sat Feb 3, 2007 7:14 am
Subject: wireless
kariz75
Send Email Send Email
 
Hi i am wondering if there is anyone who knows if it is possible to
incorparate wireless capability to intellibrain robot.

#147 From: "RidgeSoft" <rs1@...>
Date: Sat Feb 3, 2007 1:43 pm
Subject: Re: wireless
ridgesoft
Send Email Send Email
 

Yes, you can use the IntelliBrain-Bot with a Bluetooth wireless adapter attached to either or both of the serial ports.  We have had good results with products from Aircable (www.aircable.net).  The IntelliBrain host port (COM1) will power their serial port adapter via Pin 9 on the DB9 connector, so you don't need an external power supply.  There's a few other messages on this topic.  See http://tech.groups.yahoo.com/group/intellibrain/message/12

RidgeSoft Support

--- In intellibrain@yahoogroups.com, "kariz75" <kariz75@...> wrote:
>
> Hi i am wondering if there is anyone who knows if it is possible to
> incorparate wireless capability to intellibrain robot.
>


#148 From: Don French <DCFrench@...>
Date: Sat Feb 3, 2007 3:19 pm
Subject: Re: wireless
bozito
Send Email Send Email
 
You could always tack on one of these and control it with a UART:
 

-- Don French
 
 
----- Original Message -----
From: kariz75
Sent: Friday, February 02, 2007 11:14 PM
Subject: [intellibrain] wireless

Hi i am wondering if there is anyone who knows if it is possible to
incorparate wireless capability to intellibrain robot.


#149 From: "Don" <DCFrench@...>
Date: Sat Feb 10, 2007 2:49 am
Subject: Display.printChar( )
bozito
Send Email Send Email
 
Can anyone get this method to display characters on the LCD
display?    Try the following code:

static Display lcd = IntelliBrain.getLcdDisplay();
lcd.print(0,"                ");
lcd.print(1,"                ");

for(int i = 0; i < 256; i++){
    Integer j = new Integer(i);
    lcd.print(0, j.toString());
    lcd.printChar(1, 2, (byte)i);
    long time = System.currentTimeMillis();
    while(System.currentTimeMillis() < (time + 1000));
}

This should display the value of the numeric value of the byte, from
0 to 255, on line 0, and the character value of each byte on line 1,
pausing one sec between each.  It does display line 0 correctly, but
nothing on line 1.

Or just try this:  lcd.printChar( 1, 2,(byte)'A');

Nothing.

I hardly ever see any characters being displayed by using this
method.  Interestingly, once in a while a character IS displayed and
never the same character for multiple executions of the same
program.  Is this method broken or am I doing something wrong?

The Display.print( ) method works fine BTW.

-- Don

#150 From: "RidgeSoft" <rs1@...>
Date: Sun Feb 11, 2007 2:12 pm
Subject: Re: Display.printChar( )
ridgesoft
Send Email Send Email
 
Hi Don,

The printChar routine enables the calling thread to attempt to print a
character to the LCD screen without waiting if the LCD hardware is busy.
If the LCD is not busy it will print the character and return true,
otherwise it will return false and the caller will need to try again
later.

Changing the line with the printChar method to the following should
solve the problem:

while (!lcd.printChar(1, 2, (byte)i));


RidgeSoft Support


--- In intellibrain@yahoogroups.com, "Don" <DCFrench@...> wrote:
>
> Can anyone get this method to display characters on the LCD
> display? Try the following code:
>
> static Display lcd = IntelliBrain.getLcdDisplay();
> lcd.print(0," ");
> lcd.print(1," ");
>
> for(int i = 0; i < 256; i++){
> Integer j = new Integer(i);
> lcd.print(0, j.toString());
> lcd.printChar(1, 2, (byte)i);
> long time = System.currentTimeMillis();
> while(System.currentTimeMillis() < (time + 1000));
> }
>
> This should display the value of the numeric value of the byte, from
> 0 to 255, on line 0, and the character value of each byte on line 1,
> pausing one sec between each. It does display line 0 correctly, but
> nothing on line 1.
>
> Or just try this: lcd.printChar( 1, 2,(byte)'A');
>
> Nothing.
>
> I hardly ever see any characters being displayed by using this
> method. Interestingly, once in a while a character IS displayed and
> never the same character for multiple executions of the same
> program. Is this method broken or am I doing something wrong?
>
> The Display.print( ) method works fine BTW.
>
> -- Don
>

#151 From: Don French <DCFrench@...>
Date: Sun Feb 11, 2007 5:32 pm
Subject: Re: Re: Display.printChar( )
bozito
Send Email Send Email
 
Ah!  There it was, right in the Javadoc.  I guess I missed it because all the other LCD display classes I am familiar with do that kind of readiness-checking for you.  This might be a good example of a place to use subclassing to create a more usable class. 
 
On a related note, I am curious as to why, as the Javadoc says, that this method should not be called directly.  Is it just because of this readiness issue, something that really could have and should have been handled in the printChar method in the first place?  The only alternative, if you want to change the contents of a single character position, is to write a string or array of bytes, both of which overwrite whatever precedes the character you want to change.  Therefore, you have to always keep track of the characters currently being displayed, an big nuisance and memory waste.

-- Don French
 
 
----- Original Message -----
From: RidgeSoft
Sent: Sunday, February 11, 2007 6:12 AM
Subject: [intellibrain] Re: Display.printChar( )

Hi Don,

The printChar routine enables the calling thread to attempt to print a
character to the LCD screen without waiting if the LCD hardware is busy.
If the LCD is not busy it will print the character and return true,
otherwise it will return false and the caller will need to try again
later.

Changing the line with the printChar method to the following should
solve the problem:

while (!lcd.printChar(1, 2, (byte)i));

RidgeSoft Support

--- In intellibrain@yahoogroups.com, "Don" <DCFrench@...> wrote:
>
> Can anyone get this method to display characters on the LCD
> display? Try the following code:
>
> static Display lcd = IntelliBrain.getLcdDisplay();
> lcd.print(0," ");
> lcd.print(1," ");
>
> for(int i = 0; i < 256; i++){
> Integer j = new Integer(i);
> lcd.print(0, j.toString());
> lcd.printChar(1, 2, (byte)i);
> long time = System.currentTimeMillis();
> while(System.currentTimeMillis() < (time + 1000));
> }
>
> This should display the value of the numeric value of the byte, from
> 0 to 255, on line 0, and the character value of each byte on line 1,
> pausing one sec between each. It does display line 0 correctly, but
> nothing on line 1.
>
> Or just try this: lcd.printChar( 1, 2,(byte)'A');
>
> Nothing.
>
> I hardly ever see any characters being displayed by using this
> method. Interestingly, once in a while a character IS displayed and
> never the same character for multiple executions of the same
> program. Is this method broken or am I doing something wrong?
>
> The Display.print( ) method works fine BTW.
>
> -- Don
>


#152 From: "Don" <DCFrench@...>
Date: Sun Feb 11, 2007 7:53 pm
Subject: Re: Display.printChar( )
bozito
Send Email Send Email
 
Oops, it is not going to be that easy to subclass Display. The
problem is that you can't subclass Display without implementing
printChar( ) because for some reason it was made an abstract method.
And you can't implement printChar( ) because Intellibrain does not
permit native methods.  Grrr!

Ok, so the alternative is to encapsulate the Display object in
another class.  This is the one I created:

import com.ridgesoft.intellibrain.IntelliBrain;
import com.ridgesoft.io.*;

public class LCD {
        Display myLCD;
        public LCD(){
                myLCD =IntelliBrain.getLcdDisplay();
        }

public void printChar(int line, int col, char ch){
                while(!myLCD.printChar(line, col , (byte)ch));
        }

public void printByte(int line, int col, byte ch){
        while(!myLCD.printChar(line, col , ch));
}

public void printString(int line, String str){
        myLCD.print(line, str);
}

public void printByteArray(int line, byte[] array){
        myLCD.print(line, array);
}

public void print(int line, String str){
        myLCD.print(line, str);
}

public void print(int line, byte[] array){
        myLCD.print(line, array);
}

public boolean printChar(int line, int col, byte ch){
        return myLCD.printChar(line, col, ch);
}

public int getHeight(){
         return myLCD.getHeight();
}

public int getWidth(){
          return myLCD.getWidth();
}
}

It is uglier than subclassing, but it works.  This class has the
advantage of having a real printChar method that takes a char instead
of a misnamed method whose argument is actually byte.  But not to
shortchange those who need a printByte method, I added that too.  I
also preserved all the original Display method signatures.
printString and printByteArray are not really needed, but some people
prefer method names that clearly describe the methods, so they are
just dups of two other print methods.

I wonder what the rationale was for making printChar an abstract
method and suggesting that we not use it.

-- Don French


--- In intellibrain@yahoogroups.com, Don French <DCFrench@...> wrote:
>
> Ah!  There it was, right in the Javadoc.  I guess I missed it
because all the other LCD display classes I am familiar with do that
kind of readiness-checking for you.  This might be a good example of
a place to use subclassing to create a more usable class.
>
> On a related note, I am curious as to why, as the Javadoc says,
that this method should not be called directly.  Is it just because
of this readiness issue, something that really could have and should
have been handled in the printChar method in the first place?  The
only alternative, if you want to change the contents of a single
character position, is to write a string or array of bytes, both of
which overwrite whatever precedes the character you want to change.
Therefore, you have to always keep track of the characters currently
being displayed, an big nuisance and memory waste.
>
> -- Don French
>
>
>   ----- Original Message -----
>   From: RidgeSoft
>   To: intellibrain@yahoogroups.com
>   Sent: Sunday, February 11, 2007 6:12 AM
>   Subject: [intellibrain] Re: Display.printChar( )
>
>
>   Hi Don,
>
>   The printChar routine enables the calling thread to attempt to
print a
>   character to the LCD screen without waiting if the LCD hardware
is busy.
>   If the LCD is not busy it will print the character and return
true,
>   otherwise it will return false and the caller will need to try
again
>   later.
>
>   Changing the line with the printChar method to the following
should
>   solve the problem:
>
>   while (!lcd.printChar(1, 2, (byte)i));
>
>   RidgeSoft Support
>
>   --- In intellibrain@yahoogroups.com, "Don" <DCFrench@> wrote:
>   >
>   > Can anyone get this method to display characters on the LCD
>   > display? Try the following code:
>   >
>   > static Display lcd = IntelliBrain.getLcdDisplay();
>   > lcd.print(0," ");
>   > lcd.print(1," ");
>   >
>   > for(int i = 0; i < 256; i++){
>   > Integer j = new Integer(i);
>   > lcd.print(0, j.toString());
>   > lcd.printChar(1, 2, (byte)i);
>   > long time = System.currentTimeMillis();
>   > while(System.currentTimeMillis() < (time + 1000));
>   > }
>   >
>   > This should display the value of the numeric value of the byte,
from
>   > 0 to 255, on line 0, and the character value of each byte on
line 1,
>   > pausing one sec between each. It does display line 0 correctly,
but
>   > nothing on line 1.
>   >
>   > Or just try this: lcd.printChar( 1, 2,(byte)'A');
>   >
>   > Nothing.
>   >
>   > I hardly ever see any characters being displayed by using this
>   > method. Interestingly, once in a while a character IS displayed
and
>   > never the same character for multiple executions of the same
>   > program. Is this method broken or am I doing something wrong?
>   >
>   > The Display.print( ) method works fine BTW.
>   >
>   > -- Don
>   >
>

#153 From: "kariz75" <kariz75@...>
Date: Sun Feb 11, 2007 10:18 pm
Subject: semantic errors
kariz75
Send Email Send Email
 
Hi everyone. i keep getting these semantic errors and i have tried to
fix them in vain can anyone tell me what is wrong.

Found 1 semantic error compiling "C:/Documents and
Settings/xxxx/Desktop/robotfiles/xxxxbot.java":

                         <--------------------------

     43.                 new ScreenManager( display,

    . . .

     47.                                                         500);

         ----------------------------------------------------------->

*** Semantic Error: No applicable overload was found for a
constructor of type "ScreenManager". Perhaps you wanted the
overloaded version "ScreenManager(com.ridgesoft.io.Display display,
Screen[] screens, int threadPriority, int period);" instead?

Found 1 semantic error compiling "C:/Documents and
Settings/xxxx/Desktop/robotfiles/ScreenManager.java":

     16.                         mUserInput = scrollDevice;

                                              ^----------^

*** Semantic Error: No field named "scrollDevice" was found in
type "ScreenManager".

Exception compiling:  java.lang.Exception: Compilation failed

Compile failed

I copied the code that is in the documantations and i have checked
the code it is the same

#154 From: "Don" <DCFrench@...>
Date: Tue Feb 13, 2007 5:07 pm
Subject: Help!
bozito
Send Email Send Email
 
I downloaded a program to flash for the first time and now I can't
download a new version of the program!  RoboJDE never sees the
Intellibrain (Load is grayed out).  My program is set to run
automatically and grabs COM1 right off the bat which, when I was
running in RAM seemed to force me to power off and back on before it
would allow Load.  So, I tried holding down Start when powering up,
and the LCD displays:

RoboJDE v1.5 2r1
Ready - Flash

but Load is still grayed out.  I then tried pressing Stop and the
display showed:

IntelliBrain 2
Boot:   9.6K

I see in the manual that this is how you set the baud rate that the
Intellibrain uses to communicate with the host computer so I press
Stop several time until it is the same as it is in the JDE, 115K.
Then I press Start and what do you know, the Load icon is un-grayed.
So I click it and it begins to download my new program.  But only for
a few seconds because my program starts running and seizes the COM1
port and I get an error message in the JDE saying:

Board not responding

Finally, I try changing the baud rate on both the JDE and the
Intellibrain to 9600 to give it a better chance to overwrite my
program before it grabs COM1, but alas, that doesn't help.

So, now I am stumped.  Please, Ridgesoft, tell me what do I have to
do to reprogram my Intellibrain, because the program that is in flash
now is not what I want to use for the rest of time.

#155 From: "RidgeSoft" <rs1@...>
Date: Tue Feb 13, 2007 5:50 pm
Subject: Re: Help!
ridgesoft
Send Email Send Email
 
Don,

Try the following:

1. Turn the robot off and disconnect the serial cable.

2. Close and restart RoboJDE.

3. Adjust the baud rate of the robot to match the setting in RoboJDE by
holding the STOP button down while turning power on.  Press the STOP
button until you see the baud rate you want, then press START.

4. Turn the robot off and reconnect the serial cable.

5. Uncheck run automatically in your project's properties.

6. Set the load target drop down to flash.

7. Click the build and load button.

8. When prompted, switch the power off, hold the STOP button down while
switching power back on.  The display should show "IntelliBrain"
followed by "Boot: " and the baud rate you set.  If it shows a different
baud rate or the red LED is blinking rapidly, repeat this step.

9. Click Okay.  The program should load to flash.

10.  When prompted, press START and click Okay.

RidgeSoft Support


--- In intellibrain@yahoogroups.com, "Don" <DCFrench@...> wrote:
>
> I downloaded a program to flash for the first time and now I can't
> download a new version of the program! RoboJDE never sees the
> Intellibrain (Load is grayed out). My program is set to run
> automatically and grabs COM1 right off the bat which, when I was
> running in RAM seemed to force me to power off and back on before it
> would allow Load. So, I tried holding down Start when powering up,
> and the LCD displays:
>
> RoboJDE v1.5 2r1
> Ready - Flash
>
> but Load is still grayed out. I then tried pressing Stop and the
> display showed:
>
> IntelliBrain 2
> Boot: 9.6K
>
> I see in the manual that this is how you set the baud rate that the
> Intellibrain uses to communicate with the host computer so I press
> Stop several time until it is the same as it is in the JDE, 115K.
> Then I press Start and what do you know, the Load icon is un-grayed.
> So I click it and it begins to download my new program. But only for
> a few seconds because my program starts running and seizes the COM1
> port and I get an error message in the JDE saying:
>
> Board not responding
>
> Finally, I try changing the baud rate on both the JDE and the
> Intellibrain to 9600 to give it a better chance to overwrite my
> program before it grabs COM1, but alas, that doesn't help.
>
> So, now I am stumped. Please, Ridgesoft, tell me what do I have to
> do to reprogram my Intellibrain, because the program that is in flash
> now is not what I want to use for the rest of time.
>

#156 From: Don French <DCFrench@...>
Date: Tue Feb 13, 2007 9:28 pm
Subject: Re: Re: Help!
bozito
Send Email Send Email
 
You must have missed a step because after step 4, the robot is off and never turned back on before step 8 when you say to turn it off. And the Load button (there is no Build and Load button) is grayed out for step 6, of course.  So, I tried just turning it back on after step 5, and it immediately ran the program in flash (the one that uses COM1) and the Load button remains grayed out.  So, I tried turning the robot off and turning it back on while holding the Start button this time. This time the Load button is not grayed out, but when I clicked it, I got a Intellibrain Download dialog telling me to start the robot while holding the Stop button, which I did, followed by closing the dialog box.  This brought me to Downloading... only there was no progress on the progress bar and after a short while, I got a Unable to Synchronize message.  Sigh!
 
I started over and I always get the same thing as before. The only way I can get a usable Load button is to power up the robot with the start button pressed, but when I begin downloading my program in Flash starts within a second or two and I get a Board not responding message.  Double sigh!
 
It appears that downloading an autostart program that uses the COM 1 port into Flash is a fatal design flaw in the product.  At least nothing I have tried allows me to change the program. Do you have any other ideas?

-- Don French
 
 
----- Original Message -----
From: RidgeSoft
Sent: Tuesday, February 13, 2007 9:50 AM
Subject: [intellibrain] Re: Help!


Don,

Try the following:

1. Turn the robot off and disconnect the serial cable.

2. Close and restart RoboJDE.

3. Adjust the baud rate of the robot to match the setting in RoboJDE by
holding the STOP button down while turning power on. Press the STOP
button until you see the baud rate you want, then press START.

4. Turn the robot off and reconnect the serial cable.

5. Uncheck run automatically in your project's properties.

6. Set the load target drop down to flash.

7. Click the build and load button.

8. When prompted, switch the power off, hold the STOP button down while
switching power back on. The display should show "IntelliBrain"
followed by "Boot: " and the baud rate you set. If it shows a different
baud rate or the red LED is blinking rapidly, repeat this step.

9. Click Okay. The program should load to flash.

10. When prompted, press START and click Okay.

RidgeSoft Support

--- In intellibrain@yahoogroups.com, "Don" <DCFrench@...> wrote:
>
> I downloaded a program to flash for the first time and now I can't
> download a new version of the program! RoboJDE never sees the
> Intellibrain (Load is grayed out). My program is set to run
> automatically and grabs COM1 right off the bat which, when I was
> running in RAM seemed to force me to power off and back on before it
> would allow Load. So, I tried holding down Start when powering up,
> and the LCD displays:
>
> RoboJDE v1.5 2r1
> Ready - Flash
>
> but Load is still grayed out. I then tried pressing Stop and the
> display showed:
>
> IntelliBrain 2
> Boot: 9.6K
>
> I see in the manual that this is how you set the baud rate that the
> Intellibrain uses to communicate with the host computer so I press
> Stop several time until it is the same as it is in the JDE, 115K.
> Then I press Start and what do you know, the Load icon is un-grayed.
> So I click it and it begins to download my new program. But only for
> a few seconds because my program starts running and seizes the COM1
> port and I get an error message in the JDE saying:
>
> Board not responding
>
> Finally, I try changing the baud rate on both the JDE and the
> Intellibrain to 9600 to give it a better chance to overwrite my
> program before it grabs COM1, but alas, that doesn't help.
>
> So, now I am stumped. Please, Ridgesoft, tell me what do I have to
> do to reprogram my Intellibrain, because the program that is in flash
> now is not what I want to use for the rest of time.
>


#157 From: "RidgeSoft" <rs1@...>
Date: Wed Feb 14, 2007 4:30 am
Subject: Re: Help!
ridgesoft
Send Email Send Email
 
Don,

I just loaded a board with a program that grabs COM1 and was set to
automatically run.  The previous test I tried was without the COM1
twist.  I am able to get a new program to load to flash and clear the
autorun setting.  The trick is to get the controller to display the
RoboJDE message.  When it is at this point it should communicate with
the RoboJDE GUI on the host.  The load button is greyed when the RoboJDE
GUI isn't able to communicate with the RoboJDE virtual machine on the
IntelliBrain controller.

Hopefully inserting one step will get you going:

6a.  Hold the START button down and switch power on.  You should see
"RoboJDE" on the LCD and the load button should be ungreyed.

7. Click the load button.  The controller will reset and start running
your program again.  Ignore this and continue with step 8.  Also, note
the prompt suggests two ways of entering flash loading mode.  Use the
method in step 8, which is the one that will ensure your program doesn't
get a chance to run.

Hopefully this will get you going again.  This worked for me.

If you still have trouble it might be your program is transmitting
characters that get the loader into a bad state.  I think this is
unlikely.  If the above doesn't work for you,  modify step 8 to: switch
power off, hold down START, switch power on (should bring up RoboJDE
prompt), then press STOP to get to the IntelliBrain prompt.  If that
doesn't work, start over and try holding the START button down while you
do step 7.

RidgeSoft Support

--- In intellibrain@yahoogroups.com, Don French <DCFrench@...> wrote:
>
> You must have missed a step because after step 4, the robot is off and
never turned back on before step 8 when you say to turn it off. And the
Load button (there is no Build and Load button) is grayed out for step
6, of course. So, I tried just turning it back on after step 5, and it
immediately ran the program in flash (the one that uses COM1) and the
Load button remains grayed out. So, I tried turning the robot off and
turning it back on while holding the Start button this time. This time
the Load button is not grayed out, but when I clicked it, I got a
Intellibrain Download dialog telling me to start the robot while holding
the Stop button, which I did, followed by closing the dialog box. This
brought me to Downloading... only there was no progress on the progress
bar and after a short while, I got a Unable to Synchronize message.
Sigh!
>
> I started over and I always get the same thing as before. The only way
I can get a usable Load button is to power up the robot with the start
button pressed, but when I begin downloading my program in Flash starts
within a second or two and I get a Board not responding message. Double
sigh!
>
> It appears that downloading an autostart program that uses the COM 1
port into Flash is a fatal design flaw in the product. At least nothing
I have tried allows me to change the program. Do you have any other
ideas?
>
> -- Don French
>
>
> ----- Original Message -----
> From: RidgeSoft
> To: intellibrain@yahoogroups.com
> Sent: Tuesday, February 13, 2007 9:50 AM
> Subject: [intellibrain] Re: Help!
>
>
>
> Don,
>
> Try the following:
>
> 1. Turn the robot off and disconnect the serial cable.
>
> 2. Close and restart RoboJDE.
>
> 3. Adjust the baud rate of the robot to match the setting in RoboJDE
by
> holding the STOP button down while turning power on. Press the STOP
> button until you see the baud rate you want, then press START.
>
> 4. Turn the robot off and reconnect the serial cable.
>
> 5. Uncheck run automatically in your project's properties.
>
> 6. Set the load target drop down to flash.
>
> 7. Click the build and load button.
>
> 8. When prompted, switch the power off, hold the STOP button down
while
> switching power back on. The display should show "IntelliBrain"
> followed by "Boot: " and the baud rate you set. If it shows a
different
> baud rate or the red LED is blinking rapidly, repeat this step.
>
> 9. Click Okay. The program should load to flash.
>
> 10. When prompted, press START and click Okay.
>
> RidgeSoft Support
>
> --- In intellibrain@yahoogroups.com, "Don" DCFrench@ wrote:
> >
> > I downloaded a program to flash for the first time and now I can't
> > download a new version of the program! RoboJDE never sees the
> > Intellibrain (Load is grayed out). My program is set to run
> > automatically and grabs COM1 right off the bat which, when I was
> > running in RAM seemed to force me to power off and back on before it
> > would allow Load. So, I tried holding down Start when powering up,
> > and the LCD displays:
> >
> > RoboJDE v1.5 2r1
> > Ready - Flash
> >
> > but Load is still grayed out. I then tried pressing Stop and the
> > display showed:
> >
> > IntelliBrain 2
> > Boot: 9.6K
> >
> > I see in the manual that this is how you set the baud rate that the
> > Intellibrain uses to communicate with the host computer so I press
> > Stop several time until it is the same as it is in the JDE, 115K.
> > Then I press Start and what do you know, the Load icon is un-grayed.
> > So I click it and it begins to download my new program. But only for
> > a few seconds because my program starts running and seizes the COM1
> > port and I get an error message in the JDE saying:
> >
> > Board not responding
> >
> > Finally, I try changing the baud rate on both the JDE and the
> > Intellibrain to 9600 to give it a better chance to overwrite my
> > program before it grabs COM1, but alas, that doesn't help.
> >
> > So, now I am stumped. Please, Ridgesoft, tell me what do I have to
> > do to reprogram my Intellibrain, because the program that is in
flash
> > now is not what I want to use for the rest of time.
> >
>

#158 From: Don French <DCFrench@...>
Date: Wed Feb 14, 2007 5:33 pm
Subject: Re: Re: Help!
bozito
Send Email Send Email
 
Sorry, this does not work for me.  Let me step you through exactly what happens.
 
After step 6a, I do see the message:
 
RoboJDE v1.2.2r1
Ready - Flash
 
and the Load icon is ungrayed.  Immediately upon clicking the Load button, my program in flash executes, a Load progress dialog window in the JDE, and withing a fraction of a second,a "Board not responding" message displays on top of the Load window.  I ignore the Board not responding message and turn the Intellibrain off and back on while holding down the Stop button, I get:
 
Intellibrain 2
Boot: 115.2K
 
which is the same baud rate I have set in the JDE.  So, I press Start and get:
 
RoboJDE v1.2.2r1
Ready - Flash
 
again.  The Board not responding message is still showing in the JDE, on top of the Load progress dialog.  I click OK on the "Board not responding" message and my program in Flash runs and both the "Board not responding" dialog and the Load dialog disappear, the Load button is grayed and we are back where we were when we began.  The download does not proceed, the old program remains in flash, and I cannot change it.
 
This is basically the program in Flash, or an abbreviated version of it up to the point that failure occurs:
 
 
import com.ridgesoft.intellibrain.IntelliBrain;
import com.ridgesoft.io.*;
import java.io.*;
import javax.comm.UnsupportedCommOperationException;

public class IntelliBrainSerialToController {


       static InputStream serialIn;
       static OutputStream serialOut;
  
       public static void main(String[] args) {

        static Display lcd = IntelliBrain.getcdDisplay();
        static SerialPort com1= IntelliBrain.getCom1();

               try {
                       com1.setSerialPortParams(9600,
                                       javax.comm.SerialPort.DATABITS_8,
                                       javax.comm.SerialPort.STOPBITS_1,
                                       javax.comm.SerialPort.PARITY_NONE);
               } catch (UnsupportedCommOperationExcep tion e1) {
               }


               try {
                       serialIn = com1.getInputStream();
                       serialOut = com1.getOutputStream();
               } catch (IOException e) {
               }
               lcd.printString(0,"Hello world");
               delay_ms(20000);  // pause
                while(true);
}
private static void delay_ms(int val){
 
    long time = System.currentTimeMillis();
    while (System.currentTimeMIllis() < (time + val)){}
}
}
 
One thing that I just noticed is that I change the serial port to 9600 baud in the code and the JDE downloads at 115K.  So I just tried changing both the JDE and the board to 9600 with no improvement.

-- Don French
 
 
----- Original Message -----
From: RidgeSoft
Sent: Tuesday, February 13, 2007 8:30 PM
Subject: [intellibrain] Re: Help!


Don,

I just loaded a board with a program that grabs COM1 and was set to
automatically run. The previous test I tried was without the COM1
twist. I am able to get a new program to load to flash and clear the
autorun setting. The trick is to get the controller to display the
RoboJDE message. When it is at this point it should communicate with
the RoboJDE GUI on the host. The load button is greyed when the RoboJDE
GUI isn't able to communicate with the RoboJDE virtual machine on the
IntelliBrain controller.

Hopefully inserting one step will get you going:

6a. Hold the START button down and switch power on. You should see
"RoboJDE" on the LCD and the load button should be ungreyed.

7. Click the load button. The controller will reset and start running
your program again. Ignore this and continue with step 8. Also, note
the prompt suggests two ways of entering flash loading mode. Use the
method in step 8, which is the one that will ensure your program doesn't
get a chance to run.

Hopefully this will get you going again. This worked for me.

If you still have trouble it might be your program is transmitting
characters that get the loader into a bad state. I think this is
unlikely. If the above doesn't work for you, modify step 8 to: switch
power off, hold down START, switch power on (should bring up RoboJDE
prompt), then press STOP to get to the IntelliBrain prompt. If that
doesn't work, start over and try holding the START button down while you
do step 7.

RidgeSoft Support

--- In intellibrain@yahoogroups.com, Don French <DCFrench@...> wrote:
>
> You must have missed a step because after step 4, the robot is off and
never turned back on before step 8 when you say to turn it off. And the
Load button (there is no Build and Load button) is grayed out for step
6, of course. So, I tried just turning it back on after step 5, and it
immediately ran the program in flash (the one that uses COM1) and the
Load button remains grayed out. So, I tried turning the robot off and
turning it back on while holding the Start button this time. This time
the Load button is not grayed out, but when I clicked it, I got a
Intellibrain Download dialog telling me to start the robot while holding
the Stop button, which I did, followed by closing the dialog box. This
brought me to Downloading... only there was no progress on the progress
bar and after a short while, I got a Unable to Synchronize message.
Sigh!
>
> I started over and I always get the same thing as before. The only way
I can get a usable Load button is to power up the robot with the start
button pressed, but when I begin downloading my program in Flash starts
within a second or two and I get a Board not responding message. Double
sigh!
>
> It appears that downloading an autostart program that uses the COM 1
port into Flash is a fatal design flaw in the product. At least nothing
I have tried allows me to change the program. Do you have any other
ideas?
>
> -- Don French
>
>
> ----- Original Message -----
> From: RidgeSoft
> To: intellibrain@yahoogroups.com
> Sent: Tuesday, February 13, 2007 9:50 AM
> Subject: [intellibrain] Re: Help!
>
>
>
> Don,
>
> Try the following:
>
> 1. Turn the robot off and disconnect the serial cable.
>
> 2. Close and restart RoboJDE.
>
> 3. Adjust the baud rate of the robot to match the setting in RoboJDE
by
> holding the STOP button down while turning power on. Press the STOP
> button until you see the baud rate you want, then press START.
>
> 4. Turn the robot off and reconnect the serial cable.
>
> 5. Uncheck run automatically in your project's properties.
>
> 6. Set the load target drop down to flash.
>
> 7. Click the build and load button.
>
> 8. When prompted, switch the power off, hold the STOP button down
while
> switching power back on. The display should show "IntelliBrain"
> followed by "Boot: " and the baud rate you set. If it shows a
different
> baud rate or the red LED is blinking rapidly, repeat this step.
>
> 9. Click Okay. The program should load to flash.
>
> 10. When prompted, press START and click Okay.
>
> RidgeSoft Support
>
> --- In intellibrain@yahoogroups.com, "Don" DCFrench@ wrote:
> >
> > I downloaded a program to flash for the first time and now I can't
> > download a new version of the program! RoboJDE never sees the
> > Intellibrain (Load is grayed out). My program is set to run
> > automatically and grabs COM1 right off the bat which, when I was
> > running in RAM seemed to force me to power off and back on before it
> > would allow Load. So, I tried holding down Start when powering up,
> > and the LCD displays:
> >
> > RoboJDE v1.5 2r1
> > Ready - Flash
> >
> > but Load is still grayed out. I then tried pressing Stop and the
> > display showed:
> >
> > IntelliBrain 2
> > Boot: 9.6K
> >
> > I see in the manual that this is how you set the baud rate that the
> > Intellibrain uses to communicate with the host computer so I press
> > Stop several time until it is the same as it is in the JDE, 115K.
> > Then I press Start and what do you know, the Load icon is un-grayed.
> > So I click it and it begins to download my new program. But only for
> > a few seconds because my program starts running and seizes the COM1
> > port and I get an error message in the JDE saying:
> >
> > Board not responding
> >
> > Finally, I try changing the baud rate on both the JDE and the
> > Intellibrain to 9600 to give it a better chance to overwrite my
> > program before it grabs COM1, but alas, that doesn't help.
> >
> > So, now I am stumped. Please, Ridgesoft, tell me what do I have to
> > do to reprogram my Intellibrain, because the program that is in
flash
> > now is not what I want to use for the rest of time.
> >
>


#159 From: "RidgeSoft" <rs1@...>
Date: Wed Feb 14, 2007 5:51 pm
Subject: Re: Help!
ridgesoft
Send Email Send Email
 
Don,

Your description makes it sound as though it is attempting to load to
RAM, not flash.  Please make sure you have set the load target to flash
(step 6).  Do both steps 6 and 6a.  The fact that it is going right to
the download progress bar without the reset-the-board prompt dialog
displaying indicates the load target is set to RAM.

RidgeSoft Support


--- In intellibrain@yahoogroups.com, Don French <DCFrench@...> wrote:
>
> Sorry, this does not work for me. Let me step you through exactly what
happens.
>
> After step 6a, I do see the message:
>
> RoboJDE v1.2.2r1
> Ready - Flash
>
> and the Load icon is ungrayed. Immediately upon clicking the Load
button, my program in flash executes, a Load progress dialog window in
the JDE, and withing a fraction of a second,a "Board not responding"
message displays on top of the Load window. I ignore the Board not
responding message and turn the Intellibrain off and back on while
holding down the Stop button, I get:
>
> Intellibrain 2
> Boot: 115.2K
>
> which is the same baud rate I have set in the JDE. So, I press Start
and get:
>
> RoboJDE v1.2.2r1
> Ready - Flash
>
> again. The Board not responding message is still showing in the JDE,
on top of the Load progress dialog. I click OK on the "Board not
responding" message and my program in Flash runs and both the "Board not
responding" dialog and the Load dialog disappear, the Load button is
grayed and we are back where we were when we began. The download does
not proceed, the old program remains in flash, and I cannot change it.
>
> This is basically the program in Flash, or an abbreviated version of
it up to the point that failure occurs:
>
>
> import com.ridgesoft.intellibrain.IntelliBrain;
> import com.ridgesoft.io.*;
> import java.io.*;
> import javax.comm.UnsupportedCommOperationException;
>
> public class IntelliBrainSerialToController {
>
>
> static InputStream serialIn;
> static OutputStream serialOut;
>
> public static void main(String[] args) {
>
> static Display lcd = IntelliBrain.getcdDisplay();
> static SerialPort com1= IntelliBrain.getCom1();
>
> try {
> com1.setSerialPortParams(9600,
> javax.comm.SerialPort.DATABITS_8,
> javax.comm.SerialPort.STOPBITS_1,
> javax.comm.SerialPort.PARITY_NONE);
> } catch (UnsupportedCommOperationException e1) {
> }
>
>
> try {
> serialIn = com1.getInputStream();
> serialOut = com1.getOutputStream();
> } catch (IOException e) {
> }
> lcd.printString(0,"Hello world");
> delay_ms(20000); // pause
> while(true);
> }
> private static void delay_ms(int val){
>
> long time = System.currentTimeMillis();
> while (System.currentTimeMIllis() < (time + val)){}
> }
> }
>
> One thing that I just noticed is that I change the serial port to 9600
baud in the code and the JDE downloads at 115K. So I just tried changing
both the JDE and the board to 9600 with no improvement.
>
> -- Don French
>
>
> ----- Original Message -----
> From: RidgeSoft
> To: intellibrain@yahoogroups.com
> Sent: Tuesday, February 13, 2007 8:30 PM
> Subject: [intellibrain] Re: Help!
>
>
>
> Don,
>
> I just loaded a board with a program that grabs COM1 and was set to
> automatically run. The previous test I tried was without the COM1
> twist. I am able to get a new program to load to flash and clear the
> autorun setting. The trick is to get the controller to display the
> RoboJDE message. When it is at this point it should communicate with
> the RoboJDE GUI on the host. The load button is greyed when the
RoboJDE
> GUI isn't able to communicate with the RoboJDE virtual machine on the
> IntelliBrain controller.
>
> Hopefully inserting one step will get you going:
>
> 6a. Hold the START button down and switch power on. You should see
> "RoboJDE" on the LCD and the load button should be ungreyed.
>
> 7. Click the load button. The controller will reset and start running
> your program again. Ignore this and continue with step 8. Also, note
> the prompt suggests two ways of entering flash loading mode. Use the
> method in step 8, which is the one that will ensure your program
doesn't
> get a chance to run.
>
> Hopefully this will get you going again. This worked for me.
>
> If you still have trouble it might be your program is transmitting
> characters that get the loader into a bad state. I think this is
> unlikely. If the above doesn't work for you, modify step 8 to: switch
> power off, hold down START, switch power on (should bring up RoboJDE
> prompt), then press STOP to get to the IntelliBrain prompt. If that
> doesn't work, start over and try holding the START button down while
you
> do step 7.
>
> RidgeSoft Support
>
> --- In intellibrain@yahoogroups.com, Don French DCFrench@ wrote:
> >
> > You must have missed a step because after step 4, the robot is off
and
> never turned back on before step 8 when you say to turn it off. And
the
> Load button (there is no Build and Load button) is grayed out for step
> 6, of course. So, I tried just turning it back on after step 5, and it
> immediately ran the program in flash (the one that uses COM1) and the
> Load button remains grayed out. So, I tried turning the robot off and
> turning it back on while holding the Start button this time. This time
> the Load button is not grayed out, but when I clicked it, I got a
> Intellibrain Download dialog telling me to start the robot while
holding
> the Stop button, which I did, followed by closing the dialog box. This
> brought me to Downloading... only there was no progress on the
progress
> bar and after a short while, I got a Unable to Synchronize message.
> Sigh!
> >
> > I started over and I always get the same thing as before. The only
way
> I can get a usable Load button is to power up the robot with the start
> button pressed, but when I begin downloading my program in Flash
starts
> within a second or two and I get a Board not responding message.
Double
> sigh!
> >
> > It appears that downloading an autostart program that uses the COM 1
> port into Flash is a fatal design flaw in the product. At least
nothing
> I have tried allows me to change the program. Do you have any other
> ideas?
> >
> > -- Don French
> >
> >
> > ----- Original Message -----
> > From: RidgeSoft
> > To: intellibrain@yahoogroups.com
> > Sent: Tuesday, February 13, 2007 9:50 AM
> > Subject: [intellibrain] Re: Help!
> >
> >
> >
> > Don,
> >
> > Try the following:
> >
> > 1. Turn the robot off and disconnect the serial cable.
> >
> > 2. Close and restart RoboJDE.
> >
> > 3. Adjust the baud rate of the robot to match the setting in RoboJDE
> by
> > holding the STOP button down while turning power on. Press the STOP
> > button until you see the baud rate you want, then press START.
> >
> > 4. Turn the robot off and reconnect the serial cable.
> >
> > 5. Uncheck run automatically in your project's properties.
> >
> > 6. Set the load target drop down to flash.
> >
> > 7. Click the build and load button.
> >
> > 8. When prompted, switch the power off, hold the STOP button down
> while
> > switching power back on. The display should show "IntelliBrain"
> > followed by "Boot: " and the baud rate you set. If it shows a
> different
> > baud rate or the red LED is blinking rapidly, repeat this step.
> >
> > 9. Click Okay. The program should load to flash.
> >
> > 10. When prompted, press START and click Okay.
> >
> > RidgeSoft Support
> >
> > --- In intellibrain@yahoogroups.com, "Don" DCFrench@ wrote:
> > >
> > > I downloaded a program to flash for the first time and now I can't
> > > download a new version of the program! RoboJDE never sees the
> > > Intellibrain (Load is grayed out). My program is set to run
> > > automatically and grabs COM1 right off the bat which, when I was
> > > running in RAM seemed to force me to power off and back on before
it
> > > would allow Load. So, I tried holding down Start when powering up,
> > > and the LCD displays:
> > >
> > > RoboJDE v1.5 2r1
> > > Ready - Flash
> > >
> > > but Load is still grayed out. I then tried pressing Stop and the
> > > display showed:
> > >
> > > IntelliBrain 2
> > > Boot: 9.6K
> > >
> > > I see in the manual that this is how you set the baud rate that
the
> > > Intellibrain uses to communicate with the host computer so I press
> > > Stop several time until it is the same as it is in the JDE, 115K.
> > > Then I press Start and what do you know, the Load icon is
un-grayed.
> > > So I click it and it begins to download my new program. But only
for
> > > a few seconds because my program starts running and seizes the
COM1
> > > port and I get an error message in the JDE saying:
> > >
> > > Board not responding
> > >
> > > Finally, I try changing the baud rate on both the JDE and the
> > > Intellibrain to 9600 to give it a better chance to overwrite my
> > > program before it grabs COM1, but alas, that doesn't help.
> > >
> > > So, now I am stumped. Please, Ridgesoft, tell me what do I have to
> > > do to reprogram my Intellibrain, because the program that is in
> flash
> > > now is not what I want to use for the rest of time.
> > >
> >
>

#160 From: "arturuong" <agarcia@...>
Date: Thu Feb 15, 2007 2:31 am
Subject: Problems with RoboJDE
arturuong
Send Email Send Email
 
Recently my students and I have been having quite a bit of trouble
with the RoboJDE software.  Two main issues.  One, I often get
errors like the following

Compiling...
Compilation succeeded
Linking...
Class not found:  SirenLight
Build failed

Compiling...
Compilation succeeded
Linking...
Class not found:  java/lang/StringBuilder
Build failed

My main class is PoliceCar.java which creates a few objects one
being of type Siren.  Siren in turn creates two objects, 1 of
SirenSound and 1 of SirenLight.  All files are in the same
directory.

Another problem we've been having is compiling.  It will compile
files but the .class file will be of a previous version.  I know
this because I put System.out.println("running Light"); then I
switched it to System.out.println("running Lite"); and the program
displayed the first message no matter how many times I recompiled
and tried re-linking.  To comfirm even further, I put random letters
in the code to make it "incompilable" and regardless it still
compiled so I know it's not compiling the current file.

Usually I have to restart a new project to solve the issue.
Needless to say, this can get a bit tedious.  Any suggestions?

Arturo

#161 From: "RidgeSoft" <rs1@...>
Date: Thu Feb 15, 2007 6:21 am
Subject: Re: Problems with RoboJDE
ridgesoft
Send Email Send Email
 

Arturo,

This sounds like the "Compile when building and loading" setting in the project's properties has been unchecked.  If you see the problem again, please make sure this item is checked.

If this doesn't solve it, please send a zip file containing the project folder and all subdirectories to support@....  Include a screen shot (Alt-Print Screen with the RoboJDE window in the foreground, then paste) showing the build output.  Expand the lower window in RoboJDE if necessary to show all of the output.

RidgeSoft Support

--- In intellibrain@yahoogroups.com, "arturuong" <agarcia@...> wrote:
>
> Recently my students and I have been having quite a bit of trouble
> with the RoboJDE software. Two main issues. One, I often get
> errors like the following
>
> Compiling...
> Compilation succeeded
> Linking...
> Class not found: SirenLight
> Build failed
>
> Compiling...
> Compilation succeeded
> Linking...
> Class not found: java/lang/StringBuilder
> Build failed
>
> My main class is PoliceCar.java which creates a few objects one
> being of type Siren. Siren in turn creates two objects, 1 of
> SirenSound and 1 of SirenLight. All files are in the same
> directory.
>
> Another problem we've been having is compiling. It will compile
> files but the .class file will be of a previous version. I know
> this because I put System.out.println("running Light"); then I
> switched it to System.out.println("running Lite"); and the program
> displayed the first message no matter how many times I recompiled
> and tried re-linking. To comfirm even further, I put random letters
> in the code to make it "incompilable" and regardless it still
> compiled so I know it's not compiling the current file.
>
> Usually I have to restart a new project to solve the issue.
> Needless to say, this can get a bit tedious. Any suggestions?
>
> Arturo
>


#162 From: "aokjoey" <joe@...>
Date: Fri Feb 16, 2007 12:39 am
Subject: Serial Oddity
aokjoey
Send Email Send Email
 
My robot has a separate editor that creates a behavior profile and downloads to
the
EEPROM. When the robot starts it loads this data from the EEPROM. This has been
working
well, but I noticed that while I was sending a 55 byte buffer I was getting 63
bytes! Since it
worked, I worried about other things, but now I added some more behaviors and am
sending 77 bytes. Well, I only receive 63 so the problem is more serious now.

On the remote end I have used both OutputStream and BufferedOutputStream's
write(byte
[] buffer) command with the same results, so I don't think it's there. I also
change the
Bluetooth link for hardwire and that's not it.

When I want to receive a new behavior profile, I start by waiting for some
input:

           while (this.inputStream.available() == 0){
                 try {
                     Thread.sleep(50);
                 } catch (InterruptedException ex) {
                     ex.printStackTrace();
                 }
             }

Then I proceed reading each byte and putting it into the EEPROM.

                 while(this.inputStream.available() > 0) {
                     cpuEEPROM.write(addr,this.inputStream.read());
                     addr += 4;
                     count++;
                 }

Count is always equal to 62.

Anything obvious or some additional clues???
Thanks!
Joe

#163 From: "RidgeSoft" <rs1@...>
Date: Fri Feb 16, 2007 4:04 am
Subject: Re: Serial Oddity
ridgesoft
Send Email Send Email
 

Joe,

The problem is most likely that you are overruning the receive buffering on the serial port.  Both serial ports on the IntelliBrain have 64 bytes of receive buffer to hold data between the time the characters arrive and the time your program reads them.  In other words, if your program on the robot doesn't read characters from the COM port faster than they arrive at the serial port, you have to implement a flow control mechanism that ensures that the maximum number of bytes in transit will never exceed the receive buffer size (64 bytes), otherwise, data will be lost.  In your program below, you wait up to 50 milliseconds for data.  At 115,200 baud a serial port can transmit roughly 550 bytes.  Or, a burst of 64 bytes can arrive in approximately 5.5 milliseconds.  A host PC should be able to drive a serial port at the maximum rate.  If your host program transmits a 77 byte block, it will overrun the receive buffer if your sleep time in the wait loop is too long.  Also, Bluetooth batches characters up in frames over the air, so even if you try to pace the transmission, your Bluetooth adapters will likely add burstiness.   Additionally, your program is writing characters to a very slow device, the EEPROM as it receives them.   The EEPROM probably cannot write the data as fast as it arrives over the serial port.  It would be better to receive the message into a byte array and store the whole array in the EEPROM.  Finally, the extra characters you were seeing could be characters sitting in the buffer from previous activity.

Here are some ways you could solve the problem:

1. Break your data in messages that are less than 64 bytes.

2. Reduce the sleep time at the receiver to much less than the time it takes to fill the 64 byte buffer.

3. Use a protocol over the serial port which provide flow control.  The MS Robotics Studio example posted on the RidgeSoft web site has example code for a Mailbox class which provides reliable transmission of messages over an unreliable serial link.  See http://www.ridgesoft.com/msroboticsstudio.htm

4. Recieve data into a byte array and write it in blocks to the EEPROM.

RidgeSoft Support


--- In intellibrain@yahoogroups.com, "aokjoey" <joe@...> wrote:
>
> My robot has a separate editor that creates a behavior profile and downloads to the
> EEPROM. When the robot starts it loads this data from the EEPROM. This has been working
> well, but I noticed that while I was sending a 55 byte buffer I was getting 63 bytes! Since it
> worked, I worried about other things, but now I added some more behaviors and am
> sending 77 bytes. Well, I only receive 63 so the problem is more serious now.
>
> On the remote end I have used both OutputStream and BufferedOutputStream's write(byte
> [] buffer) command with the same results, so I don't think it's there. I also change the
> Bluetooth link for hardwire and that's not it.
>
> When I want to receive a new behavior profile, I start by waiting for some input:
>
> while (this.inputStream.available() == 0){
> try {
> Thread.sleep(50);
> } catch (InterruptedException ex) {
> ex.printStackTrace();
> }
> }
>
> Then I proceed reading each byte and putting it into the EEPROM.
>
> while(this.inputStream.available() > 0) {
> cpuEEPROM.write(addr,this.inputStream.read());
> addr += 4;
> count++;
> }
>
> Count is always equal to 62.
>
> Anything obvious or some additional clues???
> Thanks!
> Joe
>


#164 From: "aokjoey" <joe@...>
Date: Sat Feb 17, 2007 11:37 am
Subject: Re: Serial Oddity
aokjoey
Send Email Send Email
 
>   Both serial ports on the IntelliBrain have 64 bytes
> of receive buffer to hold data between the time the characters arrive
> and the time your program reads them.

That's what I wanted to confirm!

> 1. Break your data in messages that are less than 64 bytes.

This is what I'll do since the data stream very rarely changes in size.

> 3.  RidgeSoft web site has example
> code for a Mailbox class which provides reliable transmission of
> messages over an unreliable serial link.

A bit overkill for this, BUT it is a nice solution for a more general purpose
link. Thanks for
the pointer.

>
> 4. Recieve data into a byte array and write it in blocks to the EEPROM.

Actually, at one point I did do this, but changed it back when it didn't help.
However, it is a
better practice to buffer it, so back that code goes.

Thanks for this great support. The board and VM are absolutely great to work
with!
Joe

#165 From: "arturuong" <agarcia@...>
Date: Wed Feb 21, 2007 5:55 am
Subject: Polymorphism question
arturuong
Send Email Send Email
 
I'm trying to determine if the RoboJDE compiler is particular about
polymorphism or I'm just missing something.  I'm guessing it's the
latter.  Basically what is the difference between

A.
      SeaCreature creatures = new SeaCreature[2];
      creatures[0] = new Fish(...);
      creatures[1] = new Mermaid(...);
      ...
      creature[currentCreature].swim();

Fish and Mermaid extend SeaCreature;


B.
      Thread siren[] ;
      siren = new Thread[] { new SirenLight(),
			 new SirenSound()};
      siren[0].toggle();

SirenLight and SirenSound extend Thread

Example A is ok, example B yeilds the following error...


Found 2 semantic errors compiling "D:/MyDocs/Saint/Robot/Siren.java":
     11.                 siren[0].toggle();
                         ^---------------^
*** Semantic Error: No method named "toggle" was found in
type "java.lang.Thread".


I think I know what the problem may be but I want to hear but people
say.

Thanks
Arturo

#166 From: Don French <DCFrench@...>
Date: Wed Feb 21, 2007 4:06 pm
Subject: Re: Polymorphism question
bozito
Send Email Send Email
 
The problem is exactly what the error message told you.  Thread has no method named toggle. 

 
 
 
----- Original Message -----
From: arturuong
Sent: Tuesday, February 20, 2007 9:55 PM
Subject: [intellibrain] Polymorphism question

I'm trying to determine if the RoboJDE compiler is particular about
polymorphism or I'm just missing something. I'm guessing it's the
latter. Basically what is the difference between

A.
SeaCreature creatures = new SeaCreature[2];
creatures[0] = new Fish(...);
creatures[1] = new Mermaid(...);
...
creature[currentCreature].swim();

Fish and Mermaid extend SeaCreature;

B.
Thread siren[] ;
siren = new Thread[] { new SirenLight(),
new SirenSound()};
siren[0].toggle();

SirenLight and SirenSound extend Thread

Example A is ok, example B yeilds the following error...

Found 2 semantic errors compiling "D:/MyDocs/Saint/Robot/Siren.java":
11. siren[0].toggle();
^---------------^
*** Semantic Error: No method named "toggle" was found in
type "java.lang.Thread".

I think I know what the problem may be but I want to hear but people
say.

Thanks
Arturo


Messages 137 - 166 of 525   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

Copyright © 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines NEW - Help