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).
Thank you for all your effort in this project, I'm sure it's a labor of love, but a labor still
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!
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! (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.
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.)
// 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
}
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.
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.
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.
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.
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.
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.
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:
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...".
Hi ,
The referece pages in the linux tarball are obsolete, it does not include the new functions and types ( word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(), lowByte(), and highByte() ) .
"* Adding support for printing floats to Print class (meaning that it works
in the Serial, Ethernet, and LiquidCrystal classes too). Includes two
decimal places."
means something different than I thought since Serial.print(); still gives an error. What DOES it mean?