Pages: [1] 2 3   Go Down
Author Topic: Arduino 0013 released.  (Read 4717 times)
0 Members and 1 Guest are viewing this topic.
Forum Administrator
Cambridge, MA
Offline Offline
Faraday Member
*****
Karma: 12
Posts: 3538
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I just uploaded Arduino 0013.  Get it from the download page.

Changes include:

[documentation / examples]
* Adding examples for Parallax Ping Sensor and Memsic 2125 accelerometer.

[core / libraries]
* Adding support for printing floats to Print class (meaning that it works
  in the Serial, Ethernet, and LiquidCrystal classes too).  Includes two
  decimal places.
* Added word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(),
  lowByte(), and highByte(); see reference for details.
* Working around problem that caused PWM output on pins 5 and 6 to never go
  to 0 (causing, for example, an LED to continue to glow faintly).
* Removing cast macros, since function-style casts are a feature of C++.  This
  should fix contributed libraries that broke in Arduino 0012.
* Modifying pulseIn() to wait for a transition to start timing (i.e. ignoring
  any pulse that had already started when the function was called).
* Fixing bug in random() that limited the ranges of values generated.  Thanks
  to Mikal Hart.
* Modifying delay() to pause for at least the given number of milliseconds.
* Fixing bug in Ethernet library that interfered with use of pins 8 and 9.
* Originating each outgoing network connection from a different port (in the
  Client class of the Ethernet library).  Thanks to Paul and joquer.
* Updating ATmega168 bootloader to work with standard distributions of avrdude
  (responding to signature requests made with the universal SPI command) and
  correctly store EEPROM data.  Thanks to ladyada.
* Adding support for the ATmega328.  The upload speed is 57600 baud, so you
  may need to edit boards.txt or reburn your bootloader if you bought an
  ATmega328 w/ bootloader from adafruit or other supplier.

[environment]
* Omitting unused functions from compiled sketches, reducing their size.
* Changing compilation process to allow for use of EEMEM directive (although
  not yet uploading EEPROM data).
Logged

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17294
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you for all your effort in this project, I'm sure it's a labor of love, but a labor still  smiley-wink

I editied the board.txt to change for my 328 to 19200 baud rate and it came right up. Now I've got to figure out if it's possible to make the changes that my version 12 has to support my Sanguino chip, but that may be beyond my ablities. I was using a modified version 11 IDE when working with my 328 and version 12 IDE when working with the Sanguino. I was hoping that I could work all in one IDE version when 13 was released but we will have to see. At least I can leave version 11 now.

Thanks again

EDIT: Well I made the changes to 13, adding Sanguino stuff and it works! Finally I can use 168, 328 & 644 all in one version. I'm happy!

Lefty
« Last Edit: February 07, 2009, 04:45:06 am by retrolefty » Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the great work.

Waiting patiently for AMD64 :-)
Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Denver
Offline Offline
God Member
*****
Karma: 20
Posts: 779
Inactive - PM
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks to all who brought us this new release.   smiley

A few preliminary findings when compiling one of my biggest sketches:

I got the dreaded "byte does not name . . ." when I compiled with 0013.

So I included "WProgram.h" in the main tab and it compiled fine.

(I also found I couldn't include "WProgram.h" and compile with 0011.

The big news for me was, contrary to everything I know about the software word, my sketch was smaller under the new version!  smiley-grin (It went from 13934 to 13394 - 540 bytes less! Yahoo!)

Thanks again for the new release. Now I don't have to feel guilty about skipping 0012.
Logged

"Data is not information, information is not knowledge, knowledge is not understanding, understanding is not wisdom."
~ Clifford Stoll

London
Offline Offline
Sr. Member
****
Karma: 1
Posts: 330
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Nice one!

Ive just tried the linux version on Ubuntu 8.10.

One bug.
The only problem I found was that /hardware/tools/avrdude.conf didnt contain the 328p stuff.
Once I added that it worked a treat.

Now I can get on with it without having to use the dreaded windows.

Gordon
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Having trouble opening a second connection to the same server on Arduino 0013. Exact same code works fine in Arduino 0012 with the updated Ethernet library.

(Lots of comments because this code was intended as an example for students.)

Code:
// TEST PROGRAM FOR DEBUGGING CONNECTION PROBLEM
// by Rob Faludi, www.faludi.com

#include <Ethernet.h> // import the Ethernet library for Arduino

byte mac[] = {
  0x02, 0xAA, 0xBB, 0xCC, 0xDD, 0x01 }; // unique id for your network interface device
  // (mac addresses starting with hex 2 indicate locally administered address)
  // http://en.wikipedia.org/wiki/MAC_address#Address_details
byte ip[] = {
  192,168,1,20 }; // local ip address, set for your network
byte server[] = {
  216,38,50,214 }; // Arduino.cc address
int port = 25; // port to connect to (SMTP)

Client client(server, port); // initializes your client object

#define CONNECT_BUTTON 2 // *** switch connects to _ground_, no pull-up required ***
#define CONNECT_LED 3 // lights up when you are connected to the server

boolean lastPress = HIGH; // remembers the state of the connect button


void setup() {
  pinMode(CONNECT_LED,OUTPUT);
  
  // Activate an internal pull-up resistor for the switch. For more info see:
  // http://www.arduino.cc/en/Tutorial/DigitalPins
  pinMode(CONNECT_BUTTON,INPUT);
  digitalWrite(CONNECT_BUTTON,HIGH);

  Serial.begin(9600); // the serial port is used for debugging information
  Serial.println("Connect Disconnect Test v1.00");
  Ethernet.begin(mac, ip); // initialize everything needed to use Ethernet
}


void loop(){

  Serial.println(client.status(),HEX); // this shows the Wiznet status information, useful for debugging
  delay(100); // don't show the status information too often

  // CONNECTING AND DISCONNECTING
  if (digitalRead(CONNECT_BUTTON)==LOW && lastPress==HIGH) { // if the button switches states
    if (client.connected()==false) {
      connect(); // connect if we weren't connected before
    }
    else if (client.connected()==true) {
      disconnect(); // stop the client process and attempt a disconnect
    }
    lastPress = LOW; // remember the button state
  }
  if (digitalRead(CONNECT_BUTTON)==HIGH && lastPress==LOW) { // if the button switches states
    lastPress = HIGH; // remember the button state
  }

}



// CONNECT TO THE SERVER
void connect() {
  Serial.println("connecting...");
  if (client.connect()) { // try to open a connection and see if it worked
    Serial.println("connected"); // ...and let us know if it worked
    digitalWrite(CONNECT_LED,HIGH);
  }
  else {
    Serial.println("connection failed"); // let us know if the connection fails
    disconnect(); // ...and disconnect if it does
    }
  
}

// DISCONNECT FROM THE SERVER
void disconnect() {
  Serial.println("disconnecting...");
  client.stop();

  Serial.println("\ndisconnected");
 // Serial.println(client.status(),HEX);
  digitalWrite(CONNECT_LED,LOW); // douse the lights

}

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is it possible the avrdude.conf in the 0013 Linux package has not been upgraded to include the Atmega328p?  I get avrdude errors when I try to use it.  I'm using Ubuntu Intrepid.
Update - I checked the avrdude.conf in arduino-0013/hardware/tools and it doesn't have a m328p section.  the same file in the windows package does have it.  I got my system to work by replacing avrdude.conf with the one from the Windows package.
My system had copies of avrdude.conf in /etc; in the arduino-0013 directory set; and in /usr/local/etc, so I had to make sure all of the them were replaced, since I wasn't sure which one was being used.
« Last Edit: February 07, 2009, 12:37:36 am by cliff52 » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Some questions about this release.
  • Why are there two tarballs for linux 0013 (-linux and -linux2)?
  • Why do both linux tarballs differ from SVN? (No build subdirectory, for example)
  • Why is there no 0013 tag in SVN?
I am writing an updated ebuild for Gentoo Linux and these issues are preventing me from referencing an authoritative stable and full-featured source tree for this release.

Perhaps these are just oversights, in which case I would like to politely request they be addressed asap.  Alternatively, I would welcome corrections of any misunderstandings I might be experiencing.

Thanks!
« Last Edit: February 08, 2009, 01:45:56 am by RazzleDazzle » Logged

Forum Administrator
Cambridge, MA
Offline Offline
Faraday Member
*****
Karma: 12
Posts: 3538
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The linux2 version is an updated release in which the ATmega328p definition has been added to avrdude.conf (as with the Windows and Mac OS X releases).  The linux release is a "binary" release, so it doesn't include much of the SVN directory.  I'll tag the release in a second.
Logged

U of A, Tucson, AZ
Offline Offline
Full Member
***
Karma: 0
Posts: 164
Hello World
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is really minor, but the announcement on the arduino homepage lists the release date from 2008 still:

Quote
2008.02.06 Arduino 0013 is now available (release notes): Windows, Mac OS X, Linux (32bit).
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The linux release is a "binary" release, so it doesn't include much of the SVN directory.
Would you please consider uploading a full source tarball for the release as well, to help source-based distros fetch more easily when installing?

I could specify the SVN tag URL in the ebuild (and I'll have to otherwise), but that would unnecessarily add a subversion dependency to the package.

Quote
The linux2 version is an updated release in which the ATmega328p definition has been added to avrdude.conf (as with the Windows and Mac OS X releases).
Could updated releases have a minor version bump and be called something like "0013.1" for all platforms instead?

I could wrangle with the "2" as a special case designation (and I'll have to otherwise), but the process is cleaner if minor version designations are consistent.

Quote
I'll tag the release in a second.
I see that you have.  Thanks!

I really appreciate all that has gone into this release, and I'm eager to help get it into the hands of lots of Gentoo users in the easiest way possible for them.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello!

The release notes for 0013 says:
* Added word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(),
  lowByte(), and highByte(); see reference for details.

Searching the included and online versions of reference doesn't have these commands.  Could that be posted here?


Also, any chance of having a bootloader for the Arduino Mini Pro 16mhz added next time around?

Thanks
Paul Garcia
Logged

Connecticut, US
Offline Offline
Edison Member
*
Karma: 2
Posts: 1036
Whatduino
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

As far as I can tell, the Arduino Pro Mini 16MHz is identical to a Diecimilia or Duemilanove in all fuses and speed parameters in the boards.txt file.

The only difference is that you need an FTDI attachment to do the sketch upload.  If you need 5V support from the SparkFun FTDI Basic Breakout, modify it this way:

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ed -

Would you by chance know of any villages looking for a new idiot? It would appear that I just qualified.

Here I've been studying the Mini Pro home page and the getting started material. Based on your suggestion under the FAQ, I had tried the decimille selection, and got the "AVR Dude doesn't recognize" message. So I keep digging, and asking....

Never even occured to me that the FTDI basic breakout was only putting out 3.3 volts! Use 5V, and guess what? Works just fine. And you know what? On the product description page for the 5V 16 mhz Pro mini, you know what the second sentence is? "...select 'Arduino Diecimila' within the Arduino software...".

Dumb, dumb, dumb!

Thanks for your patience.
Paul Garcia  
Logged

Birmingham, AL
Offline Offline
Jr. Member
**
Karma: 2
Posts: 91
Arduino, disobey me.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Any ETA on Arduino 0013 for Linux AMD64 ?

Thanks,

-transfinite
Logged

Pages: [1] 2 3   Go Up
Jump to: