SparkFun will be closed Nov 26th and 27th for the Thanksgiving holiday. Orders placed after 2:00pm MT on the 25th will ship out Monday the 30th.


Member Since: March 18, 2010

Country: United States

  • Good discussion. I’m surprised the TimedAction library hasn’t come up in this or last week’s post. Definitely not an RTOS solution, but it’s insanely simple and ‘good enough’ for many timed task scenarios. It basically abstracts the execution of tasks on a regular period (ms) using only a handful of simple methods.

    #include <TimedAction.h>
    TimedAction actionLED1 = TimedAction( 1000, blinkLED1 );        // Execute every 1000ms
    TimedAction actionLED2 = TimedAction( 1200, blinkLED2 );        // Execute every 1200ms
    #define pinLED1 12
    #define pinLED2 13
    boolean stateLED1 = false;
    boolean stateLED2 = false;
    void setup( )
      pinMode( pinLED1, OUTPUT );
      pinMode( pinLED2, OUTPUT );
      digitalWrite( pinLED1, stateLED1 );
      digitalWrite( pinLED2, stateLED2 );
    void loop( )
      actionLED1.check( );
      actionLED2.check( );
      // Do other stuff
    void blinkLED1( )
      stateLED1 = stateLED1 ? false : true;        // Toggle LED1 state
      digitalWrite( pinLED1, stateLED1 );
    void blinkLED2( )
      stateLED2 = stateLED2 ? false : true;        // Toggle LED2 state
      digitalWrite( pinLED2, stateLED2 );
  • Here’s a picture - http://www.janspace.com/b2evolution/blogs/media/Arduino/CELL-1.jpg
    Hope you can see it well enough. The center signal wire is soldered to the small pad in the corner, and the shield is soldered to the larger L shaped pad. Might want to use a DVM to ensure they’re not shorted together and that they make it to the connector end ok. Also make sure you have an antenna (CEL-00675) attached to the connector.
    Other than that, if you have a valid SIM card and it’s set to use the proper band, should be good to go.

  • The antenna connection looked a little ratty so I removed it, cleaned up the contacts, re-stripped the wires, soldered it back on. Immediately got ‘11’ instead of ‘8’ when powered up.
    Then found the Arduino serial monitor does not send a carriage return. Modified the example as follows:
    if( Serial.available( ) > 0)
    incoming_char = Serial.read( ); // Get the character coming from the terminal
    if( incoming_char == ‘~’ ) // If it’s a tilde…
    incoming_char = 0x0D; // …convert to a carriage return
    else if( incoming_char == ‘^’ ) // If it’s an up caret…
    incoming_char = 0x1A; // …convert to ctrl-Z
    cell.print( incoming_char ); // Send the character to the cellular module.
    Serial.print( incoming_char ); // Echo it back to the terminal
    Swaps a tilde coming in from Arduino for a carriage return, and swaps an up caret for ctrl-Z. Also echos the characters back to the serial monitor.
    Works perfectly - I can make calls and send text msgs with no problem. Hope this helps.

  • …stripped out some of my post above. Referring to termination with a “carriage return”.

  • I’m also having this problem. Sent AT+SBAND=7 to set the GSM bands for the US, still no change.
    The comment in the example sketch says…“*Unless otherwise noted AT commands are ended by pressing the ‘enter’ key.” I assume this means that the AT commands are terminated by a . Does hitting the enter key in the Send box of the Arduino Serial Monitor append a to the entry?
    Seems a lot are seeing this problem…it’s just a very expensive coaster right now. Anybody have any suggestions? Sparkfun? Mr. Owens?

No public wish lists :(