Show Posts
Pages: 1 2 3 [4] 5
46  Using Arduino / Installation & Troubleshooting / where is the "elf" and "cpp" files ? on: November 24, 2011, 10:39:54 pm
Dear All ...

I suspect that I have RAM Overflow problem.
To make sure of the problem .. I read http://www.designer2k2.at/home/arduino/49-arduino-ram-overflow.html

There said that I will need the "*.elf" file
I tried to search for it in my ubuntu station ... but couldn't found one.

My Arduino IDE is 0023.
and my ubuntu is Maverick.

Kindly please tell me how to get that *.elf file

Sincerely
-bino-
47  Using Arduino / Networking, Protocols, and Devices / Re: Using GSM_Shield library with WaveCom modem on: November 18, 2011, 07:56:38 am
bump
48  Using Arduino / Networking, Protocols, and Devices / Using GSM_Shield library with WaveCom modem on: November 17, 2011, 09:42:02 am
Dear All.

First, Thankyou for the "GSM Shield" Team for the great library.

I tried to use GSM_Shield library with WaveCom modem.
It works as expected, well with some commenting at init part for lines that I "think" not a mandatory.

By default this library use a pooling methode to check for new SMS, using AT+CMGL.

Wavecom modem can send +CMTI if there is a new msg come, without first requested by application (It's simply Modem initiated).

Is there a way to catch this using GSM_Shield library ?.

I tried to add methode to GSM Class, name it as -> IsCMTIPresent


In GSM_Shield.cpp
Code:
/**********************************************************
Method checks if there is +CMTI available
It's just adapted from CheckRegistration
return values:
      CMTI_NOT_AVAILABLE  - There is no new msg announced by modem
      CMTI_AVAILABLE      - Modem said there is New Mesg
      CMTI_TIMEOUT        - Timeout
**********************************************************/
byte GSM::IsCMTIPresent(void)
{
  byte status;
  byte ret_val = CMTI_NOT_AVAILABLE;
  SetCommLineStatus(CLS_FREE);
  // 1 sec. for initial comm tmout
  // 50 msec. for inter character timeout
  Serial.print("Just Check mySerial ... ");
  status = WaitResp(5000, 50);
  Serial.print("Status is : ");
  Serial.println(status, DEC);
  if (status == RX_FINISHED) {
    Serial.println("Finish Checking");
    // something was received but what was received?
    // ---------------------------------------------
    if(IsStringReceived("+CMTI")){
      // it means There is New Mesg Received
      // ----------------------------
      Serial.println("There is New Msg");
      ret_val = CMTI_AVAILABLE;     
    }
    else {
      Serial.println("There is NO NEW Msg");
      ret_val = CMTI_NOT_AVAILABLE;
    }
  }
  else {
    // nothing was received
    // --------------------
    Serial.println("Ouuchhh ... mySerial not responding");
    ret_val = CMTI_TIMEOUT;
  }

  return (ret_val);
}


In GSM_Shield.h (The "enum" Part)
Code:
enum cmti_ret_val_enum
{
  CMTI_NOT_AVAILABLE = 0,
  CMTI_AVAILABLE,
  CMTI_TIMEOUT,
   
  CMTI_LAST_ITEM
};

In GSM_Shield.h (Inside "GSM class" Part)
Code:
    byte IsCMTIPresent(void);


I Used this line inside my sketch
Code:

    if (gsm.IsCMTIPresent()== 1){
      Check_SMS();  //Check if there is SMS
    }


But it didn't work

I think there is something wrong with the way I call 

WaitResp(5000, 50)

It always retval with --> RX_TMOUT_ERR,

So , kindly please tell me how to catch that "+CMTI".

Sincerely
-bino-
49  Using Arduino / Networking, Protocols, and Devices / Max232 problem on: November 16, 2011, 12:17:14 am
Dear All

I build RS232 level shifter using max232, and use it wih NewSoftSerial at pin 4,5
My arduino is Arduino 2009

And here is my test script
Code:
#include <NewSoftSerial.h>  //Include library newsoftserial
#include <string.h>
char incoming_char=0;      //incoming char
char incoming_char_buff[300] ; //Incoming char buffer
int  incoming_char_idx = -1 ;  // Incoming char index
NewSoftSerial cell(4,5);
bool isprintline = 1;
 
void setup(){
  Serial.begin(19200);
  cell.begin(4800);
  delay(2000);
  Serial.println("Get Ready");
  delay(2000);
}
long myint = 0 ;
void loop(){
  /*
  cell.print("This is line number : ");
  cell.println(myint);
  Serial.print("This is line number : ");
  Serial.println(myint);
  myint++;
  delay(1000);
  */
  myint++;
  Serial.print("Loop Number : ");
  cell.print("Loop Number : ");
  Serial.println(myint);
  cell.println(myint);
 
  Serial.println("Let's check all lines");
  Serial.println("Check Cell Line");
  if(cell.available() >0){
    do_cell();
  }
  Serial.println("Check Serial Line");
  if(Serial.available() >0){
    do_ser();
  }
  delay(1000);
  if (isprintline){
    Serial.print("-----NO Thing Happen----------");
    cell.print("-----NO Thing Happen----------");
  }
  isprintline = 1 ;
}

void do_cell(){
  Serial.println("Reading Cell line");
  delay(100);
  incoming_char_idx=-1;
  while (cell.available()){
    incoming_char_idx++ ;
    incoming_char=cell.read();
    incoming_char_buff[incoming_char_idx]=incoming_char ;
  }
  if ( incoming_char_idx > -1){
    incoming_char_idx++;
    incoming_char_buff[incoming_char_idx]='\0';
    Serial.print("Cell Said : ");
    Serial.println(incoming_char_buff);
  }
  cell.flush();
  isprintline = 0 ;
}
void do_ser(){
  Serial.println("Reading Serial line");
  delay(100);
  incoming_char_idx= -1;
  while (Serial.available()){
    incoming_char_idx++ ;
    incoming_char=Serial.read();
    incoming_char_buff[incoming_char_idx]=incoming_char ;
  }
  if ( incoming_char_idx > -1){
    incoming_char_idx++;
    incoming_char_buff[incoming_char_idx]='\0';
    Serial.print("You type : ");
    Serial.println(incoming_char_buff);
    cell.println(incoming_char_buff);
    delay(1000);
  }
  isprintline = 0 ;
}


1. First, I test it to connect to my other PC via it's Com Port, and the result is :
a. When at the PC side I do not do monitor (i.e cat /dev/ttyS0) , the script output (at serial monitor window) just fine.
I can send text from PC to arduino and vise versa.
Arduino only detect any input on NewSoftSerial pin only if PC send text

b. When I do monitoring at PC side using --> cat /dev/ttyS0 ... the script output (at serial monitor window) start showing a "garbage"
Arduino always see there is "something" on NewSoftSerial pin ...

2. Second ... I change NewSoftSerial speed to 4800 , and attached my GPS (using cross cable), and the result is : Arduino start getting "garbage".

Attached is screen capture of my serial_monitor when GPS attached.

Kindly please give me your enlightment on how to fix it.

Sincerely
-bino-

50  Using Arduino / Sensors / Re: Incremental rotary encoder knob? on: June 07, 2011, 09:03:44 am
The cheapest way you can achieve is using encoder wheel.

First, go --> http://www.mindspring.com/~tom2000/Delphi/Codewheel.html
You can find a link to the basic knowledge of encoder wheel.

There is also a software that will generate a wheel patern for you to cut.

But for that resolution you want .. you'll need to go to the laser cut shop .. and they can not accept the bitmap format generated by the software above.

Here it come the help for that situation
Go --> http://www.thingiverse.com/thing:1527
It have a poscript file that you can edit with text editor , preview it in gimp, and bring to laser cut shop.


Now , the limit is your ability to align the optical parts.

Have a nice hack (errrgghh .. alignment)

Sincerely
-bino-
51  Development / Other Hardware Development / Pin Header Location (Botto vs Top layer) on: March 01, 2011, 04:16:46 am
Dear All

I start to try to design simple shield.
It' a shield with shift register on it.

I try to use an Eagle library for the shield, from Adafruit and Sparkfun ... to make sure that the pinheader is at the right place.

Any thing went good until I realize that all the pin-header pad is located at the bottom layer.
It means that all pin header will facing "UP".

As a shield, the male pin-header need to be faced "DOWN", and it means that the pads will have to be at the Top-layer.

My question , how to move the pads to TOP-Layer ?
Alternatively , how to make the pads exist in both layer ?

Sincerely
-bino-
52  Using Arduino / LEDs and Multiplexing / help me to understand LED Matrix on: February 27, 2011, 09:06:58 pm
Hi,

I just read and try to understand how LED matrix work from
http://www.earthshineelectronics.com/files/ASKManualRev4.pdf
(Project# 16)

At Page 97, to me it's like that if we want more then 1 led to ON all the time ... we have to do multiplexing.
and it mean that we produce POV phenomenon.

Is it true that the fact is the LEDs blink in very fast frequency rather then "actualy" ON ?

If it is true, is there any way to build a LED matrix that kan turn on multiple led in actualy-ON mode ?

My purpose is to build a matrix of opto-isolators, each in turn (via relay) will drive AC device.

Sincerely
-bino-
53  Community / Bar Sport / Re: Arduino Project sharing site - We need your projects for the BETA version on: February 14, 2011, 02:36:00 am
Project stealing?

Since there is a bold line between opensource and commercial,
I thing duinop.com need great preparation to handle it.
just like how Getacoder did.

-bino-
54  Topics / Home Automation and Networked Objects / Re: ENC28J60 Web Server on: February 13, 2011, 08:14:48 pm
Again, I realy appreciate your reply

Basically the buffer is defined in the sketch and you are passing pointers to this buffer into the ip_arp_udp.c code. Due to memory limitations, the same buffer is used for both received and transmitted packets, but obviously not at the same time.


So ... (I hope you still have spare time to continue this "course").

In your Library, you wrap client_browse_url as :

Code:
void EtherShield::ES_client_browse_url(char *urlbuf, char *urlbuf_varpart, char *hoststr,

void (*callback)(uint8_t,uint16_t)) {

client_browse_url(urlbuf, urlbuf_varpart, hoststr, callback);

}
While in turn (in ip_arp_udp.c) .. client_browse_url call for 2 other function, via single call to  client_tcp_req:

Code:
www_fd=client_tcp_req(&www_client_internal_result_callback,&www_client_internal_datafill_callback,80);

Kindly please cmiiw : www_client_internal_datafill_callback is the one that do buffer filling. and we can do it in sketch.

If So , while :
1. Inside your library there is a wrapper for client_tcp_req as :
Code:
uint8_t EtherShield::ES_client_tcp_req(uint8_t (*result_callback)(uint8_t fd,uint8_t statuscode,uint16_t data_start_pos_in_buf, uint16_t len_of_data),uint16_t (*datafill_callback)(uint8_t fd),uint16_t port ) {

return client_tcp_req( result_callback, datafill_callback, port );

}


2. we Have (i.e) browserresult_callback() as our result_callback handler, and
3. we have "buf" as our buffer,

Is it mean that we can call --> ES_client_tcp_req(&browserresult_callback, buf,80)   ?

(Ah ... while waiting for your further enlightment, I'll try it my self. May God bless my lame brain)

Edit : This is my dirty try:

I'm pretty sure that the error is at the part I call --> es.ES_client_tcp_req
sincerely
-bino-
55  Using Arduino / Programming Questions / Re: Need help with LED ethernet project on: February 12, 2011, 10:37:25 pm
Hi PC.

Just incase you still in this project.
Do you use andrewdlindsay' library ? ( http://blog.thiseldo.co.uk/?p=504 )
If so .. take a look at the DNS lookup included example.

It's about html form and how to search for a key in request.

If you still need some other basic example, let me know .. i'll post my code.
I use this code to provide web based configuration interface for my Arduino Project.

Sincerely
-bino-
56  Topics / Home Automation and Networked Objects / Re: ENC28J60 Web Server on: February 12, 2011, 10:21:12 pm
Dear Andy.
I really appreciate your reply

Hi,

The work I've done on the ENC28J60 library for the nuelectronics ethershield has really been driven by things I've needed for my own applications. However, feedback and comments are most welcome. Plus if you have any changes/updates that you have done, these can be fed back into the main code by myself or you can release your own version!
 
In answer to your questions:

1. Is something I'm looking at, to provide alternative methods that dont use flash memory for the strings.

Ah ... I'm not that good to realease my own version.

I just replace some "prog char" to "char", and some "fill_tcp_data_p" with "fill_tcp_data" in www_client_internal_datafill_callback, and in client_browse_url part.

Question :
There is "buf" that created/declared inside the sketch.
Is it the same "buf" that used inside "ip_arp_udp_tcp.c" ?

If so, since the final process is :
client_tcp_req(&www_client_internal_result_callback,&www_client_internal_datafill_callback,80)
I'm thinking of doing www_client_internal_datafill_callback inside the sketch and just call www_client_internal_result_callback after it.

Is it doable ?



2. The library is set up for single packet send and receive so its a trade off between available memory and a usable packet size. If you need more flexibility in this area then a hardware solution such as a shield with the alternative chips may be the correct way to go for your needs. The ENC28J60 is a cheap solution because it provides just the basic packet framing, the IP and TCP layers are done in software, but it is exactly this reason that makes it very flexible too.

The library I have produced can still be classed as a work in progress, there are things I'd like to see in there for my own use but as yet havnt got round to them. To many other distractions I'm afraid.

well ... for www-server part ...
I'm thinking of just send out some java script with xmlhttprequest in it.
I think the server can throw it at once ... and let the browser auto-request for other part of the doc. I found some where in internet the guy that write about dinamic table creation using xmlhttprequest.
I think with this approach, we can make our sketch to send as much data as we wish.

I really appreciate your library.

Sincerely
-bino-
57  Topics / Home Automation and Networked Objects / ENC28J60 Web Server on: February 09, 2011, 09:20:23 pm
Dear All.

This chip is a cheap alternative to the WIZ one.
I Realize that it'll also mean need alot of work to use it.
I realy Appreciate andrewdlindsay for his great work at http://blog.thiseldo.co.uk/?p=504
There is two main problem that I have using this library :
1. Client mode : AFAIK this library need us to hardcoded the server name. I did a work around by make a small change in the library.
2. Web Server mode :
This library need us to fill the buffer first , and send it in one shoot.
The problem with this approach is limited RAM we have in Arduino.
If we want to show a lot of data in one page, we'll eat alot of RAM (Most of it for HTML tag to make it neat).

So , is there any way to send the web-page line by line ?
I realy attracted by how the WIZ's library using "client.print" and "client.stop" approach.

Sincerely
-bino-
58  Using Arduino / Programming Questions / Re: Need Help : Basic Web Form example for ENC28J60 EthernetShield on: February 09, 2011, 08:30:26 pm
Dear Andy.
Thx allot.

I Made it by read and cut your DNS lookup sample.

I have another problem / request about your library, I post it in another thread (http://arduino.cc/forum/index.php/topic,51739.0.html)

I really appreciate your help

Sincerely
-bino-
59  Using Arduino / Programming Questions / Need Help : Basic Web Form example for ENC28J60 EthernetShield on: February 05, 2011, 03:00:27 am
Dear All ..

I Lost my USB connection eachtime I Plug my ENC28J60 EthernetShield.
So I can not use the USB port for Configuration Interface in my project http://arduino.cc/forum/index.php/topic,51137.0.html.

I Think my only option is to use the same arduino to also act as web-server that serve a web-form as configuration interface.

I Tried to read and understand included example of Andy's library (http://blog.thiseldo.co.uk/?p=504).
But my lame brain didn't make it.

So, Kindly please give me more basic web-form sample that do not mixed with other function (DNS, Web Client, etc etc)
Just a simple web-form that wait for input and display the given input as result page.

Sincerely
-bino-
60  Community / Exhibition / Gallery / Re: Basic Analog Pin reporting using ENCENC28J60 EthernetShield on: February 04, 2011, 10:27:45 pm
C. Configuration menu Bussiness.
Code:
void printmenu()
{
  Serial.println("Configuration");
  Serial.println("---------------");

  Serial.print("1. MAC Address ");
    Serial.print("[");
    for (int i=0; i<6; i++)
    {
      Serial.print(mac[i],HEX);
      if (i<5)
      {
        Serial.print(".");
      }
    }
    Serial.println("]");
   
  Serial.print("2. IP Address [");
    for (int i=0; i<4; i++)
    {
      Serial.print(ip[i],DEC);
      if (i<3)
      {
        Serial.print(".");
      }
    }
    Serial.println("]");

  Serial.print("3. Gateway [");
    for (int i=0; i<4; i++)
    {
      Serial.print(gw[i],DEC);
      if (i<3)
      {
        Serial.print(".");
      }
    }
    Serial.println("]");

  Serial.print("4. Server IP [");
    for (int i=0; i<4; i++)
    {
      Serial.print(srv[i],DEC);
      if (i<3)
      {
        Serial.print(".");
      }
    }
    Serial.println("]");

  Serial.print("5. Server Name [");
    Serial.print(host);
    Serial.println("]");

  Serial.print("6. File to Call[");
    Serial.print(callfile);
    Serial.println("]");

  Serial.print("7. Node ID [");
    Serial.print(nodeid);
    Serial.println("]");

  Serial.print("8. Node PIN [");
    Serial.print(nodepin);
    Serial.println("]");

  Serial.println("s. Save");

  Serial.println("x. Exit ");

  Serial.println("---------------");

  Serial.print("Option : ");
 
  inmenu = true;
}

void domenu()
{
  switch (Serial.read())
  {
    case '1':
      domenu1();
      break;
    case '2':
      domenu2();
      break;
    case '3':
      domenu3();
      break;
    case '4':
      domenu4();
      break;
    case '5':
      domenu5();
      break;
    case '6':
      domenu6();
      break;
    case '7':
      domenu7();
      break;
    case '8':
      domenu8();
      break;
    case 's' :
      domenu_save();
      break;
    case 'x' :
      domenu_exit();
      break;
  }
  if (inmenu)
  {
    printmenu();
  }
}
void domenu1()
{
  Serial.println("1");
  Serial.print("Enter MAC Address : ");
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(10);
      for (int x=0 ; x<6; x++)
      {
        int i = 0;
        char inchar[3]="";
        while (Serial.available() && i<3)
        {
          char serchar = Serial.read();
          Serial.print(serchar);
          if (serchar == 13 || serchar == '.')
          {
            delay(10);
            break;
          }
          else
          {
            inchar[i]=serchar;
            i++;
          }
        }
        mac[x] = ( htoi(inchar[0]) * 16 ) + htoi(inchar[1]);
      }
      Serial.println();
      waitentry = false;
    }
  } 
}
int htoi (char c) {  //does not check that input is valid
/*
By : mspguy
at : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1292893820
*/
    if (c<='9')
        return c-'0';
    if (c<='F')
        return c-'A'+10;
    if (c<='f')
        return c-'a'+10;
    return 0;
}
void domenu2()
{
  Serial.println("2");
  Serial.print("Enter IP Address : ");
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(10);
      for (int x=0 ; x<4; x++)
      {
        int i = 0;
        char inchar[4]="";
        while (Serial.available() && i<4)
        {
          char serchar = Serial.read();
          Serial.print(serchar);
          if (serchar == 13 || serchar == '.')
          {
            delay(10);
            break;
          }
          else
          {
            inchar[i]=serchar;
            i++;
          }
        }
        ip[x] = atoi(inchar);
      }
      Serial.println();
      waitentry = false;
    }
  } 
}
void domenu3()
{
  Serial.println("3");
  Serial.print("Enter  Gateway IP Address : ");
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(10);
      for (int x=0 ; x<4; x++)
      {
        int i = 0;
        char inchar[4]="";
        while (Serial.available() && i<4)
        {
          char serchar = Serial.read();
          Serial.print(serchar);
          if (serchar == 13 || serchar == '.')
          {
            delay(10);
            break;
          }
          else
          {
            inchar[i]=serchar;
            i++;
          }
        }
        gw[x] = atoi(inchar);
      }
      Serial.println();
      waitentry = false;
    }
  } 
}
void domenu4()
{
  Serial.println("4");
  Serial.print("Enter Server IP Address : ");
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(10);
      for (int x=0 ; x<4; x++)
      {
        int i = 0;
        char inchar[4]="";
        while (Serial.available() && i<4)
        {
          char serchar = Serial.read();
          Serial.print(serchar);
          if (serchar == 13 || serchar == '.')
          {
            delay(10);
            break;
          }
          else
          {
            inchar[i]=serchar;
            i++;
          }
        }
        srv[x] = atoi(inchar);
      }
      Serial.println();
      waitentry = false;
    }
  } 
}


void domenu5()
{
  Serial.println("5");
  Serial.print("Enter Server Hostname :");
  int i = 0;
  char commandbuffer[40];
  delay(30);
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(30);
      while (Serial.available() && i<40)
      {
        commandbuffer[i++] = Serial.read();
      }
      if (i>0)
      {
        memset(host, '\0', sizeof(host));

        commandbuffer[i++]='\0';
        strcpy(host, commandbuffer);
        Serial.println(host);
      }
      waitentry = false;
    }
  } 
}
void domenu6()
{
  Serial.println("6");
  Serial.print("Enter File to call :");
  int i = 0;
  char commandbuffer[20];
  delay(30);
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(30);
      while (Serial.available() && i<20)
      {
        commandbuffer[i++] = Serial.read();
      }
      if (i>0)
      {
        memset(callfile, '\0', sizeof(callfile));

        commandbuffer[i++]='\0';
        strcpy(callfile, commandbuffer);
        Serial.println(callfile);
      }
      waitentry = false;
    }
  } 
}
void domenu7()
{
  Serial.println("7");
  Serial.print("Enter Our Node ID : ");
  int i = 0;
  char commandbuffer[10];
  delay(30);
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(30);
      while (Serial.available() && i<10)
      {
        commandbuffer[i++] = Serial.read();
      }
      if (i>0)
      {
        memset(nodeid, '\0', sizeof(nodeid));

        commandbuffer[i++]='\0';
        strcpy(nodeid, commandbuffer);
        Serial.println(nodeid);
      }
      waitentry = false;
    }
  } 
}
void domenu8()
{
  Serial.println("8");
  Serial.print("Enter Our Node PIN : ");
  int i = 0;
  char commandbuffer[10];
  delay(30);
  waitentry=true;
  while (waitentry)
  {
    if (Serial.available()>0)
    {
      delay(30);
      while (Serial.available() && i<10)
      {
        commandbuffer[i++] = Serial.read();
      }
      if (i>0)
      {
        memset(nodepin, '\0', sizeof(nodepin));

        commandbuffer[i++]='\0';
        strcpy(nodepin, commandbuffer);
        Serial.println(nodepin);
      }
      waitentry = false;
    }
  } 
}



void domenu_save()
{
  Serial.println("SAVE");
  saveall();
}
void domenu_exit()
{
  Serial.println("EXIT !!");
  Serial.println();
  Serial.println();
  inmenu = false;
  Serial.flush();
}

void saveall()
{
  eeprom_write(magic, magic);
  eeprom_write_from(mac, mac,6);
  eeprom_write_from(ip, ip,4);
  eeprom_write_from(gw, gw,4);
  eeprom_write_from(srv, srv,4);
  eeprom_write_from(host, host,strlen(host)+1);
  conflen[0]=strlen(host);
  eeprom_write_from(callfile, callfile,strlen(callfile)+1);
  conflen[1]=strlen(callfile);
 
  eeprom_write_from(nodeid,nodeid,strlen(nodeid)+1);
  conflen[2]=strlen(nodeid);
 
  eeprom_write_from(nodepin,nodepin,strlen(nodepin)+1);
  conflen[3]=strlen(nodepin);



  eeprom_write_from(conflen, conflen,10);

}
void readall()
{
  eeprom_read_to(conflen, conflen,10);
  eeprom_read(magic, magic);
  eeprom_read_to(mac, mac,6);
  eeprom_read_to(ip, ip,4);
  eeprom_read_to(gw, gw,4);
  eeprom_read_to(srv, srv,4);
  memset(host, '\0', sizeof(host));
  eeprom_read_to(host, host,conflen[0]);
  memset(callfile, '\0', sizeof(callfile));
  eeprom_read_to(callfile, callfile,conflen[1]);
 
  memset(nodeid, '\0', sizeof(nodeid));
  eeprom_read_to(nodeid, nodeid,conflen[2]);

  memset(nodepin, '\0', sizeof(nodepin));
  eeprom_read_to(nodepin, nodepin,conflen[3]);

}

Thats all.

Now I need to learn on WebServer feature of Andy's library.
My USB port always dead when I Plug my EthernetShield.
So I think it'll be better if the configuration is using web based configuration form.
Hopefully I don't crack my lame brain down.

Sincerely
-bino-
Pages: 1 2 3 [4] 5