Show Posts
Pages: [1]
1  Using Arduino / Networking, Protocols, and Devices / Solomon or Telit MG10 GPRS USB Modem can be interfaced with Arduino and Win 7 !! on: November 23, 2013, 11:38:02 am
I found that this modem has Motorola driver compatability. Windows XP shows it needs Motorola i250-000 driver. With the Motorola All model OS 64-Bit Driver for my 64 bit Windows 7 PC I managed to get this modem working!! smiley With the drivers shown here: http://www.roundsolutions.com/gsm-usb-modem/ it does not work with Vista and 7. After having installed the Motorola driver the modem was recognized and the other software at http://www.roundsolutions.com/gsm-usb-modem/ works! Neat!

I thought this would be interesting with regards to this post: http://forum.arduino.cc/index.php/topic,22198.0.html

It means that this modem can now be interfaced with Arduino according to this setup:

http://www.circuitsathome.com/mcu/programming/interfacing-arduino-to-a-cellular-phone

For testing available AT commands this link can be handy: http://m2msupport.net/m2msupport/module-tester/

It thought this will be good news for anybody having problems to get it to work with Windows 7 and/or Arduino. Unfortunately I have not found a way (yet) to have it communicate with an Arduino like this: http://finch.am/projects/arduinogsm/

Best wishes,
3dotter

Is there anybody who could try the same kind of hack with this Solomon or Telit MG10 GPRS USB Modem?
2  Using Arduino / Project Guidance / Re: wildlife radio collar reciever on: September 01, 2013, 02:33:18 pm
Hi Mousedude,

We managed with python code running on an OLinuXino (similar to Raspberry Pi) and a rtl-sdr dongle to build an automatic VHF signal logger. The VHF frequencies to look for can be put in a config file and the OLinuXino with the dongle keeps on scanning for these frequencies. When the proper frequencies are detected these are logged on a uSD card with RSSI.

An Arduino could not do such. Hope this helps.

Best wishes,
3dotter
3  Using Arduino / Networking, Protocols, and Devices / trying to connect an Arduino mini pro (3.3 V) to the SIM908 break out board on: April 01, 2013, 11:07:30 am
Hi,

I am trying to hook on an Arduino mini pro (3.3 V) to the SIM908 break out board (see http://store.open-electronics.org/Small_Breakout_SIM908, but I run into difficulties.

I managed to start the SIM908 modem from within the example SMS Arduino code from this link: http://code.google.com/p/gsm-shield-arduino/. I also followed the schematics shown here: http://www.open-electronics.org/gsm-gps-shield-for-arduino/ for my connections from the Arduino mini pro (3.3 V) to the SIM908 break out board. Currently I have connected: D2 and D3 for the SoftwareSerial Tx and Rx connections (PIN 12 & 14 break out), D8 for ON/OFF (PIN 1 break out), D12 to DTR (PIN 10) and D9 to STATUS (PIN 16). I guess with these I should be able to get the modem registered to the network, but it does not. I see in the Arduino IDE's serial monitor the following output: "GSM Shield testing status=IDLE".

The modem has its power through the raw pin from the Arduino, which has its power from a 3.7 Volt 2600 mAh Lipo battery. That must be able to give a 2 A boost to the modem, when it needs it. Level converting does not seem to be necessary, with the Arduino PINS at 3.3 Volt.

Who can help here?

Thanks in advance!
4  Using Arduino / Programming Questions / Re: softi2c master library error on: December 28, 2012, 03:49:04 pm
Hi,

Thanks for the answer.

It compiles now for me too with Arduino 1.03. I have made a mistake by naming the folder in which Arduino resides Arduino-103. Because of this, the code could not find Arduino.h, but after changing the folder's name from Arduino-103 into plain: Arduino, it worked  smiley

Thanks,
3dotter
5  Using Arduino / Programming Questions / softi2c master library error on: December 27, 2012, 05:19:26 pm
Hi there,

In Arduino 022 I am trying to compile the code below with todbot's softi2c master library (https://github.com/todbot/SoftI2CMaster). It is my intention to get data from a uBlox GPS receiver using softi2c with an atmega32u2 (Teensy 1.0 compatible) with DFU bootloader. Codes like blink.hex can be compiled and run easily on this atmega.

However I get the following errors (and some more) compiling the code below: "DigitalPinToPort was not declared in this scope and "PortInputRegister" was not declared in this scope.

What might be wrong here?

Code:
#include "SoftI2CMaster.h"
const byte sdaPin = 0;
const byte sclPin = 1;
SoftI2CMaster i2c = SoftI2CMaster( sdaPin,sclPin );
 
#define BUFFER_LENGTH 10//buffer size
 
int GPSAddress = 0x42;//GPS address
 
double Datatransfer(char *data_buf,char num)//transfer:char to float
 
{                                           //*data_buf:char need to be converted;num:scalar
 
  double temp=0.0;
 
  unsigned char i,j;
 
  if(data_buf[0]=='-')//negative number
 
  {
 
    i=1;
 
    //char to int and accumulation
    while(data_buf[i]!='.')
 
      temp=temp*10+(data_buf[i++]-0x30);
 
    for(j=0;j<num;j++)
 
      temp=temp*10+(data_buf[++i]-0x30);
 
    //int to float
    for(j=0;j<num;j++)
 
      temp=temp/10;
 
    //convert to negetive number
    temp=0-temp;
 
  }
 
  else//positive number
 
  {
 
    i=0;
 
    while(data_buf[i]!='.')
 
      temp=temp*10+(data_buf[i++]-0x30);
 
    for(j=0;j<num;j++)
 
      temp=temp*10+(data_buf[++i]-0x30);
 
    for(j=0;j<num;j++)
 
      temp=temp/10 ;
 
  }
 
  return temp;
 
}
 
void rec_init()//receive initialization
 
{
 
  i2c.beginTransmission(GPSAddress);
 
  i2c.send(0xff);//load address of the bytes   
 
  i2c.endTransmission();
 
  i2c.beginTransmission(GPSAddress);
 
  i2c.requestFrom(GPSAddress);//require 10 byte from GPA
 
}
 
char ID()//info ID
 
{
 
  char i = 0;
 
  char value[7]={
 
    '$','G','P','G','G','A',','      };//the info ID
 
  char buff[7]={
 
    '0','0','0','0','0','0','0'      };
 
  while(1)
 
  {
 
    rec_init();//receive initialize
 
   // while(i2c.available())
 
   // {
 
      buff[i] = i2c.receive();//get I2C data
 
      if(buff[i]==value[i])//compare
 
      {
 
        i++;
 
        if(i==7)
 
        {
 
          i2c.endTransmission();//end of transmission
 
          return 1;//if end return 1
 
        }
 
      }
 
      else
 
        i=0;
 
   // }
 
    i2c.endTransmission();//end of transmission
 
  }
 
}
 
void UTC()//get time info
 
{
 
  char i = 0,flag=0;
 
  char value[7]={
 
    '$','G','P','G','G','A',','   };
 
  char buff[7]={
 
    '0','0','0','0','0','0','0'       };
 
  char time[9]={
 
    '0','0','0','0','0','0','0','0','0'    };//time buffer
 
  double t=0.0;
 
  while(1)
 
  {
 
    rec_init(); 
 
   //  while(i2c.available())
 
   // {
 
      if(!flag)
 
      {
 
        buff[i] = i2c.receive();
 
        if(buff[i]==value[i])
 
        {
 
          i++;
 
          if(i==7)
 
          {
 
            i=0;
 
            flag=1;
 
          }
 
        }
 
        else
 
          i=0;
 
      }
 
      else
 
      {
 
        time[i] = i2c.receive();
 
        i++;
 
        if(i==9)
 
        {
 
          t=Datatransfer(time,2);//convert to float
 
          t=t+80000.00;//change to BeiJing time
 
          Serial.println(t);//print time
 
          i2c.endTransmission();
 
          return;
 
        }
 
      }
 
   // }
 
    i2c.endTransmission();
 
  }
 
}
 
void rec_data(char *buff,char num1,char num2)//receive data
 
{                                            //*buff:receive buffer;num1:num of comma;num2:size of buff。
 
  char i=0,count=0;
 
  if(ID())
 
  {
 
    while(1)
 
    {
 
      rec_init(); 
 
     // while(i2c.available())
 
     // {
 
        buff[i] = i2c.receive();
 
        if(count!=num1)
 
        {
 
          if(buff[i]==',')
 
            count++;
 
        }
 
        else
 
        {
 
          i++;
 
          if(i==num2)
 
          {
 
            i2c.endTransmission();
 
            return;
 
          }
 
        }
 
    //  }
 
      i2c.endTransmission();
 
    }
 
  }
 
}
 
void latitude()//get latitude info
 
{
 
  char lat[10]={
 
    '0','0','0','0','0','0','0','0','0','0' };//latitude buffer
 
  rec_data(lat,1 ,10);//get latitude data
 
  Serial.println(Datatransfer(lat,5),5);//convert to float
 
}
 
void lat_dir()//get latitude direction info
 
{
 
  char dir[1]={'0'};//latitude direction buffer
 
  rec_data(dir,2,1);//get direction data
 
  Serial.println(dir[0],BYTE);//print the data
 
}
 
void  longitude()//get longtitude info
 
{
 
  char lon[11]={
 
    '0','0','0','0','0','0','0','0','0','0','0' };//longtitude buffer
 
  rec_data(lon,3,11);//get longitude data
 
  Serial.println(Datatransfer(lon,5),5);//convert data to float
 
}
 
void lon_dir()//get longitude direction info
 
{
 
  char dir[1]={'0'};
 
  rec_data(dir,4,1);
 
  Serial.println(dir[0],BYTE);
 
}
 
void altitude()//get altitude info
 
{
 
  char i=0,count=0;
 
  char alt[8]={
 
    '0','0','0','0','0','0','0','0' };
 
  if(ID())
 
  {
 
    while(1)
 
    {
 
      rec_init(); 
 
    //  while(i2c.available())
 
    //  {
 
        alt[i] = i2c.receive();
 
        if(count!=8)
 
        {
 
          if(alt[i]==',')
 
            count++;
 
        }
 
        else
 
        {
 
          if(alt[i]==',')
 
          {
 
            Serial.println(Datatransfer(alt,1),1);
 
            i2c.endTransmission();
 
            return;
 
          }
 
          else
 
            i++;
 
        }
 
    //  }
 
      i2c.endTransmission();
 
    }
 
  }
 
}
 
void setup()
 
{
 
 // i2c.begin();//I2C initialize
 
  Serial.begin(9600);//set baudrate
 
  Serial.println("GOF GPS Shield v1.0");
 
  Serial.println("$GPGGA statement information: ");
 
}
 
void loop()
 
{
 
  while(1)
 
  {
 
    Serial.print("UTC:");
 
    UTC();
 
    Serial.print("Lat:");
 
    latitude();
 
    Serial.print("Dir:");
 
    lat_dir();
 
    Serial.print("Lon:");
 
    longitude();
 
    Serial.print("Dir:");
 
    lon_dir();
 
    Serial.print("Alt:");
 
    altitude();
 
    Serial.println(' ');
 
    Serial.println(' ');
 
  }
 
}

Pages: [1]