PDA

View Full Version : [Question(s)] Diecimila Qs



metaform3d
09-08-2008, 01:02 AM
I got an Arduino Diecimila a week ago from Trossen, and finally (after fighting off demands from work and then family) got a chance to play with it. I love it! It's my new best friend. Couple of comments/questions:

1) All the connectors are female. How cool is that? It can attach right to a breadboard.

2) When I connect a test servo to a PWM signal (I use Futaba S3003 for prototyping) it buzzes and humms like crazy. I don't get that from RC receivers. What's the reason? Would I have better luck with digital servos?

3) How do I see serial output? I tried the various samples that output serial strings, but I never see it in the IDE. Is there somewhere else to look?

4) I love the image of Italy on the back!

5) How do you pronounce "Diecimila"? I've been saying it like I was talking about a Dual-Screen Nintendo handheld hardened for use in Iraq -- the "dee ess mil" -- but I have always struggled with Italian.

Thanks.

Adrenalynn
09-08-2008, 01:46 AM
2. You are delaying at least 20ms between each PWM pulse, right? If not, I hope you have a LOT of S3003's laying around. ;) Seriously, though, 20-25ms is a good pause.

5. "dee-eh'che'-ME-lah" means "ten thousand" in Italian.

3. Get back to you on that one in a moment. I've only sent serial data out the TTL (2/3) before - I think it should echo to the console, but I haven't looked. Oh - wait, yes I have. My capacitance sensor does. Let me go look at what I figured out. . .

Adrenalynn
09-08-2008, 02:18 AM
This is what I'm using for TTL. Not sure if it works with the USB - my laptop with the software on it went south. I'll have a new machine together tomorrow:



#include <SoftwareSerial.h>
#define txPin 3 //TTL Serial
#define rxPin 2

//Someone set us up the port! [Serial TTL]

SoftwareSerial SerialOne = SoftwareSerial(rxPin, txPin);
byte pinState = 0;

[ripped out some code here]

void setupSerial()
{
pinMode(txPin, OUTPUT); //Set the tx pin to output mode
pinMode(rxPin, INPUT); //Set the tx pin to input mode

SerialOne.begin(38400); //Set the baud rate to 38.4Kbps
}

Then I have in my loop:

void doit()
{

char inbuf = SerialOne.read(); // drop the incoming character from the serial port into a char buffer
SerialOne.print(inbuf); //echo the character I received

}
more junk removed



Obviously that's not going to do compile and be happy, but it gives you an idea.

For more serious talking to the computer, I'm using "processing" language instead of "wiring". Check it out - you'll like it.

Pretty much everything that's just basic communication I've been doing in assembler, though... Processing is cool since it has graphic generation ability. "Wiring" is based on "Processing"... http://processing.org/

And if you haven't checked out "fritzing" - you need to have a peek at it too! http://www.fritzing.org/

lnxfergy
09-08-2008, 08:24 AM
If you are using the HARDWARE serial port on the arduino, then the output should be going back up your USB cable. Did you click on the serial monitor button (last graphic button in the line)? Clicking on the button to open the serial monitor will have the serial data shown in the black box at the bottom of the screen (the same one that compile errors normally come out of...)

-Fergs

metaform3d
09-08-2008, 10:52 AM
Thanks for the quick reply.

Fergs: Serial monitor! Duh.

Adren: I'm not generating the pulses directly, but rather with the analogWrite() command. The servo goes to the correct position, but even with a 50&#37; duty cycle I get buzzing. To tell you any more about the shape of the signal I'd need a scope. Just thought someone here might know off the top of their head.

jes1510
09-08-2008, 10:55 AM
Out of curiosity why are you not using the Servo library?

The buzzing probably comes from your pulses varying a bit and the servo is trying to catch up. Give the hardware servo library a try.

lnxfergy
09-08-2008, 12:55 PM
I'm gonna second Jes's suggestion: use one of the libraries. There are two, the hardware library (does 2 servos if I remember correctly), or the software library (can do several more, but requires that you call a function every so often - like Adr said.)

HW library: http://www.arduino.cc/playground/ComponentLib/Servotimer1
SW library: http://www.arduino.cc/playground/ComponentLib/Servo

It's likely that starting and stopping the pwm (using analogWrite) is messing up the waveform - and causing the servos to squeal.

-Fergs

metaform3d
09-08-2008, 01:15 PM
I'll try the servo library; thanks!

Adrenalynn
09-08-2008, 01:36 PM
I'll admit - I've reinvented the wheel, splitting-up the pwm and twiddling my own servos. I don't believe I didn't take the easy way out and use the already existing libraries... [bonks self]

jes1510
09-08-2008, 02:27 PM
That is one of the beauties of that board. The prewritten libraries and documentation make it really easy to blow out a project quickly.

I haven't tried the hardware library library but the software library works reasonably well but it does allow the occasional servo twitch. I have been using the library to move a sonar sensor for a scanning motion and it works great.

Adrenalynn
09-08-2008, 02:57 PM
Mine's all low-level Atmel Assembler - reinventing the wheel as I'm so infamous for. [roll eyes]

metaform3d
09-09-2008, 01:22 AM
Mine's all low-level Atmel Assembler - reinventing the wheel as I'm so infamous for. [roll eyes]So you're an over-achiever; what's wrong with that? I do a lot of the same thing in my own field.

The software servo library works great. Not a hum or a flutter, and I got it to drive an ESC as well which demonstrates all the capabilities I need. This is so awesome it's hard to express.

I spent god knows how many hours writing PIC code 7 years ago to do by brute force less than what I just did in a few hours tonight. The Diecimila is so much more powerful exactly because someone who knew how to do something magic made it accessible to someone like me who can't. To the people who can reinvent the wheel each time because wheel 2.0 is actually better, I'm in awe. To the people who can create a wheel and put it together in a form that I can actually use, I'm grateful.

I may actually be able to finally finish a project that's literally been sitting on my shelf and gathering dust for nearly a decade.

Adrenalynn
09-09-2008, 01:42 AM
I appreciate the sentiment, thanks! I wish it were the case. I'm just too lazy to read the docs. I either get excited or frustrated [or both] and dive off the deep end - even when the pool's been drained. ;)

The Diecimila is an awesome little piece of hardware for basically free. Did you check out fritzing? If you decide later that you want to take your prototype to a custom board - that's definitely the way to get it there with very little pain. It's still painfully young (early alpha) but already is very promising... I'm thinking I'll start using it for documenting tutorials I write here.

metaform3d
09-11-2008, 11:37 AM
Couple more things I've learned, and some questions.

1) The USB serial driver is a bit finicky, but I find that if I plug it in and unplug it when the OS is running so that it's always unplugged when the computer is off or hibernating, it comes up consistently as COM6.

2) The Scorpion HX is *not* a three-channel H-bridge. It's a two-channel H-bridge with a big MOSFET, so the third "aux" channel is forward-only. Of course it says that clearly in the specs, so it's important to have good reading comprehension skills.

3) With the Scorpion attached to the Arduino but the Arduino unpowered, if I apply motor power to the Scorpion the Arduino boots as well. That's pretty cool. Is that what's called BEC? Would there be reasons to disable this in some cases?

4) Is there a limit on the number of times the Diecimila can be programmed? In other words should I send many different iterations of a simple program to fine-tune constants, or should I write a more complex program that lets me tune settings with serial commands?

lnxfergy
09-11-2008, 11:46 AM
3) With the Scorpion attached to the Arduino but the Arduino unpowered, if I apply motor power to the Scorpion the Arduino boots as well. That's pretty cool. Is that what's called BEC? Would there be reasons to disable this in some cases?
That would be BEC (battery elimination circuit) - it powers the Arduino through the signal cable. I would either disable the BEC or the Arduino's onboard power (which it is taking from the USB?). The problem I can see is that if they are at slightly different voltage levels you could get weird results - or worse, break one of the power supplies.



4) Is there a limit on the number of times the Diecimila can be programmed? In other words should I send many different iterations of a simple program to fine-tune constants, or should I write a more complex program that lets me tune settings with serial commands?
The limit is very high - several tens of thousands writes, so don't worry about programming the chip over and over again while debugging.

-Fergs

Adrenalynn
09-11-2008, 11:46 AM
Answering backward since it's handy for my cut-paste-buffer. ;)

#4: http://www.atmel.com/atmel/acrobat/doc2467.pdf : The ATMEGA128's EEPROM is good for 100,000 cycles.
#3: Depends how much current you're pulling through the Arduino. Yes, the BEC (Battery Eliminator Circuit) is pushing voltage back up the wire. You can sever the red wire on the servo wire to prevent that. At least with the BEC's I've used on RC-class motor controllers (banebots and dimension engineering), I only need signal and ground. The motor controller gets its logic power from the motor power supply in those two instances.
#2: Yeah, my RobotPower is the same way. The Aux channel is handy for powering a "weapon" on combat bots (its primary design), or for tying into a slave controller.
#1: Blame windows for that one, if by "finicky" you mean that it sometimes/usually doesn't wake up the driver from Hibernation and that it jumps around COM ports. You'll find that's pretty universal with any of the FT* driven serial to usb chipsets. I've used drivers from other manufacturers and they behave the same - I believe it's a windows issue because I don't experience it on Linux or NetBSD.

[edit] Sorry Fergs, didn't mean to step on your toes. We were posting at the same-ish time.

metaform3d
09-11-2008, 08:18 PM
Thanks for the quick answers.

3) Aha -- so the +5 on the Scorpion and the +5 on the Arduino are just shorted together, and if the two voltage regulators are incompatible there could be problems. Is this common? In any case breaking the power connection on the servo connector solves the problem on a case by case basis.

4) Good -- I won't worry about reprogramming a lot. If I manage to send 100K programs I'll buy another one.

I'm curious about how the serial works. It doesn't seem to take any extra cycles or programming -- is it interrupt-driven? So can I poll it for serial input and it will maintain a queue, or can input be lost if I fail to poll quickly enough?

Thanks for bearing with me as a stumble around in the dark.

Adrenalynn
09-11-2008, 11:25 PM
The problem with #3 as I see it is that you're on the backside of the regulator of the processor, effectively in parallel - I think. I'd measure my final voltage. Anyway - assuming that, the power should be pretty clean, but the little sawteeth might be out of phase contributing all kinds of funky effects if you're using it to power anything that cares.

I tend to avoid the BECs whenever even marginally possible. They just don't deliver enough power to be useful. Remember, they're only meant to power a little R/C receiver.

#4 Get a hardware programmer and buy a tube of ATMEGA128's - never worry about buying another board again. ;) I've had to run failure testing on various double-e's before and I've never seen them fail at less than +50&#37;. So if it takes you ten seconds to set-up and flash the chip, you'll be flashing continuously for at least ten days or so... :)

You can pretty quickly overrun the buffer, especially on something as small as the '128, in my experience. The library is "buffering you" [no pun intended] from having to think too much about it, but if you're hacking down at the bare metal, you should implement some software flow control if you're not in a fairly tight loop.

I wouldn't call you "stumbling around in the dark"! It's obvious that you know how processors work, you're just moving from one platform to another and asking the platform-specific questions. Moving from PCs down to microcontrollers is deceptively simple - it seems simpler than it really is. You're obviously thinking those questions through and thinking the deeper thoughts. :)

lnxfergy
09-11-2008, 11:43 PM
Just to clarify before anybody gets confused - the Arduino uses an ATmega168 - the 128's little brother.

-Fergs

Adrenalynn
09-11-2008, 11:45 PM
Doh - sorry - right you are. I don't know why I have this penchant for calling it the "128" - I've been doing that a BUNCH in the last couple threads. Can we just all get out our silver-color Sharpies and rename 'em for me? Be a lot less confusing.

metaform3d
09-12-2008, 01:57 AM
The program memory is clearly a concern. Watching the total and proportional usage go up as I add more code (which is nicely displayed by the IDE compiler) I believe that I can do what I need in the available space. It's a rough guess, but I did a lot of 6502 assembly so I kind of have a feeling for how program size should grow with complexity.

Re: BEC. I have to say the servos seemed a little sluggish running off USB power. I might prefer to have a more "ampy" source on the line.

Adrenalynn
09-12-2008, 02:28 AM
Probably also want another good volt there too. The difference in speed and torque between 5v and 6v is pretty substantial (~20&#37;).

There's always the option of moving data off onto external memory - pretty simple to add some additional memory. And if you run short, there's dozens of ATMEGA options with more memory... The downside to using Wiring instead of C/C++ is that you limit your future expansion to other chips in the line. Wiring is easy to learn, but it's just too limiting to me. If I need to move from the little 168 up to a 640 or 2500 series, it's just a recompile (or sometimes not even that) and reflash when I'm in C/C++.

gr33nhorn
09-13-2008, 02:33 PM
hi
i have read through a couple of website regarding TTL half duplex uart connection.which is the most reliable method? as i'm comfused with the one using ic or pnp transistor or connect jumper and just alter the uart.
i research for this info for months thus

pls advise......

Adrenalynn
09-13-2008, 05:57 PM
Hi, Welcome to the forum!

For what purpose?

gr33nhorn
09-14-2008, 12:13 AM
i wan to control ax-12 servo.i know it's heavily documented in some forums , threads and the manual but i just not so sure .i'm not asking for direct solution for it.i just need some guidance..please advise.thanks

jes1510
09-15-2008, 12:56 PM
I assume that you mean to use an Arduino here. I have never used these servos but according to this (http://www.antratek.nl/pdf/Understanding-AX12.pdf) pdf it needs to communicate at 1Mb and the author does not recommend that the baud rate be changed due to the servo becoming unresponsive. The Arduino can't handle those baud rates.

Adrenalynn
09-15-2008, 01:13 PM
Jon has documented the process on other sites. I was going to link them here, but since he was asking over there too, there wasn't really any compelling reason.

gr33nhorn
09-16-2008, 11:59 AM
hi jes,
thanks for your reply. so u mean that arduino will not be a compatible MCU for ax-12?i thought it is using the same atmega168 as the cm5?please advise as i also searching from other sites too..thanks in advance.

lnxfergy
09-16-2008, 02:15 PM
hi jes,
thanks for your reply. so u mean that arduino will not be a compatible MCU for ax-12?i thought it is using the same atmega168 as the cm5?please advise as i also searching from other sites too..thanks in advance.

The mega168 is capable of doing 1MBps, but it is likely that the Arduino software will not be able to compute the correct register values for that speed (1MBps at 16MHz requires the double speed bit to be set, which I do not believe the Arduino library takes into account). This isn't a big problem, it just means you have to write your own serial driver, or easier, overwrite the values of the specific registers after calling serial.begin() with some dummy speed, like 19200.

Dive into the Mega168 data sheet, it is your friend...

-Fergs

BillSlugg
09-17-2008, 12:35 PM
I got my Diecimilla board yesterday, and I have it hooked up and functional. I am working my way through the examples. I have a question: What is the correct wire gauge to insert into the input/output sockets? I miked the male pins on the ICSP plug and they are square .025 across the flats and .035 across the corners. I have used some #24 copper wire (.020") and it seems a bit loose.

Adrenalynn
09-17-2008, 12:43 PM
.025 is typical. They feel loose but pulling back a little on the wire "sets" the connection. They're pinch-pins internally so they kinda grab the wire when you pull back a little. The 20 AWG junk I buy at radioshaft and use frequently varies from 0.0247 to 0.0262 according to my trusty digital mic. (sampled six rolls)

[edit] Just noticed you were using 24 gauge - yeah, that's a little small. 20 is just right.

Just checked the table: 20 is listed as ~.032 - man, Radioshack is running a little light on their copper... Regardless, 20 is what I've always used for breadboards since the beginning of time, and they're designed to mate-up, so I'd say go for 20 AWG

Adrenalynn
09-17-2008, 01:18 PM
I had to run the numbers about fifty freaking times to get some consistent results, but it appears radioshaft's 20 AWG is really about 22 AWG...

BillSlugg
09-17-2008, 10:23 PM
it appears radioshaft's 20 AWG is really about 22 AWG...

I am shocked, shocked that Radio Shack would skimp on something.

I note that the Diecimilla board is sold as a kit. Two questions:
1) How does one go about holding a surface mount component in place while soldering it?
2) How in the world do you solder the tiny leads on the FTDI chip? The spacing between them is
about .015". Do they make soldering irons and solder the diameter of sewing needles?

EDIT: I found some answers!
1) If you put solder paste on the pad, you can hold the component with tweezers and touch each pad with the iron.

2) There are three methods that I found:
a) Tweezers, a stereo microscope, a soldering iron with an SMD tip, .3mm solder and a steady hand.
b) Run a heavy bead down the contacts then remove the excess with solder braid.
c) Solder paste and an air flow iron.

A SSOP chip is oriented by soldering pin #1 until centered on the pad, then the last pin on the other side, then the remainder of the pins.

lnxfergy
09-17-2008, 11:23 PM
I note that the Diecimilla board is sold as a kit. Two questions:


Huh? I'm pretty certain every Diecimilla board out there is sold fully assembled and for only $34.95

http://www.trossenrobotics.com/arduino-diecimila-usb-io-board.aspx

There are some other knock-offs that may be harder to use, but the original is still fully assembled.

-Fergs

Adrenalynn
09-18-2008, 01:25 AM
I think Bill just misspoke. The Diecimila comes preassembled, but there are a lot of kits/clones out there. The "original" wasn't the Diecimila - it was the serial version. I haven't seen any kits requiring surface-mount assembly - but they may exist.

There are numerous ways of soldering surface-mount chips. JonHylands has a tutorial in the tutorials section here using a modified toaster oven for masking and reflow. For small jobs, I use a hot air rework gun (the Aoyue 2702) and solder paste. If you have just a temp controlled pencil, the method is to tack down one pin, then lay a bead of solder shorting all the pins across the pads. Then lay down solder wick (copper braid) to suck up all the solder. Surface tension will hold the solder under the pins to the pads and only the free floating solder will lift onto the wick. But an ESD-safe temp controlled iron is an imperative.

After using that method, I throw the board under an Orion/Imaginova (familiar, Bill? ;)) digital microscope and look to make sure I haven't left any pins shorted.

I could write a tutorial on that - after I finish all the multitude of crud on my plate - and I'm a good three or four months behind right now...

I think there was a pretty good tutorial over on SparkFun, let me see if I can find it:

Yeah - check this out: http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=36

BillSlugg
09-18-2008, 01:49 PM
Yes, you are correct. Diecimilla clones run about $24. The FS232 chip is already soldered on there. Then there are roughly 30 through hole components to deal with. For a $10 savings it hardly seems worth it.

Adrenalynn
09-18-2008, 02:42 PM
Don't let that discourage you though... You can build circuits around the ATMEGA 168 with no more than two or three components, none surface-mount. You can even get the '232-USB chip in socketed through-hole. And if you're not trying to communicate with the outside world, you can ignore the serial entirely.

Rudolph
09-18-2008, 05:59 PM
There's also the clones that use the usb/serial chip on a seperate board, thus saving space/power on the main board. Some use a special usb-ttl cable that has the FTDI (I think) chip embedded in it. See LadyAda's Boarduino (http://ladyada.net/make/boarduino/index.html), RBBB (http://www.moderndevice.com/RBBB_revB.shtml), and the Sanguino (http://sanguino.cc/).

The cable thingus costs twenty bucks, but you only need to get one, since it's not built into the board. The Boarduino is $17.5, unassembled, and doesn't have any surface mount stuff to it. The RBBB is similar but can be trimmed down even further if you don't need the power jack and regulator on it too, and costs $12/kit.

For real jollies check out this instructable (http://www.instructables.com/id/uDuino-Very-Low-Cost-Arduino-Compatible-Developme/). Like Adrenalynn said, just a small amount of components are needed to make an "arduino". If you get/have the usb-ttl cable mentioned above, you've still got your serial connection as-needed.

edit = Would a homemade one be a pseuduino?

metaform3d
09-21-2008, 03:45 PM
I've run into an odd situation with the Wiring software servo library. I had been testing with S3003 servos which had worked fine, but when I swap in a Futaba S9405 it starts behaving strangely. It will turn a little in response to changing the pulse width, but then it stops responding. If I wait it will twitch a few times, and then become responsive briefly, but then will fail again in the same way. When I test the same servo on an RC receiver it works fine.

I've never seen this behavior before. Anyone know what it means?

metaform3d
09-22-2008, 03:10 AM
I've never seen this behavior before. Anyone know what it means?I think I can answer my own question. It looks like the voltage was too low. It's spec'ed to run at 4.8v, but it was much happier at 6v. At 5v it had weird dropouts, but at 6-6.5v it performed without problems.

Again if anyone has any other info it would be welcome.

Adrenalynn
09-22-2008, 03:16 AM
Did you measure your voltage under load? 4.8 under no load is nowhere near 4.8 under load...

BillSlugg
09-22-2008, 07:32 AM
I think I can answer my own question. It looks like the voltage was too low. It's spec'ed to run at 4.8v, but it was much happier at 6v. At 5v it had weird dropouts, but at 6-6.5v it performed without problems.

Again if anyone has any other info it would be welcome.

Looking at the specs on the Futaba web site, the S3003 is rated at 33 oz-in at 4.8V while the S9405 is rated at 80 oz-in at 4.8V.

In other words, the S9405 takes about 3 times the power to move. If your driver was marginal with the S3003, then it would not quite be able to drive the bigger one unless you went on up to 6V.

BillSlugg
09-24-2008, 10:01 PM
I cannot upload a new sketch to my Diecimila board.
Everything was working fine on Sunday and I was successfully changing the on/off periods
of the blinking light. On Monday I reformatted my computer and reinstalled XP and AVG.
I downloaded the Arduino environment, installed the drivers, connected the board, set Tools:Board
to Arduino Diecimila, checked in device manager and set Tools:Serial Port to com4 just like before,
and then tried to upload a bliking light example with a slightly different on/off timing. Now
I get a 20 sec delay, the RX light blinks a few times, and I get an error message:

Problem uploading to board, see:
http://arduino.cc/en/Guide/Troublshooting#upload
for suggestions.

avrdude:stk500_getsync() = not in sync: resp = 0x00
avrdude:stk500_disable(): protocol error, expect = 0x14, resp = 0x51

I followed the instructions:
- made sure there was power to the board
- proper port is selected
- hit reset and saw that led blinks once
- digital pins 0 and 1 are disconnected just as before
- nothing but USB cable is connected to the board
- board is not touching anything metallic
- I disabled AVG in the start menu and rebooted (In case firewall was blocking the port)

Nothing helps. Any ideas out there?

Adrenalynn
09-24-2008, 10:42 PM
Alas, that's the most generic error message that exists. Can't do any more than stab at it.

Did you check the device mangler - errr - Windows Device Manager and CONFIRM that it's on Com4 still? Windows has a nasty habit of moving the com-ports around for USB->232 virtual ports.

There should be an option for verbose errors, I'm not in front of a machine with the software at the moment.

Did you try it on another machine?

If you confirm that the com-port and baud-rate are correct, I'd uninstall and reinstall the device drivers. That'd be my number-2 suspect.

Hmm, maybe disabling the WinXP firewall too? I always disable it first thing, so I don't know if it's unhappy about it or not.

metaform3d
09-25-2008, 02:37 AM
OK, I'm getting pissed.

The Arduino was on COM6 -- it was there consistently even if it required some finesse. Now it's just gone. It never shows up as a port at all. I didn't do anything like Bill; I didn't update the OS, install new drivers, I didn't do anything. I downloaded a program that read some analog inputs and wrote to the serial port every 0.5 seconds. That worked OK, but then the COM port disappeared and nothing will bring it back.

The amber RX and TX leds on the Arduino are constantly lit as soon as power is applied, not even flickering as I would expect from sending data every half second. Is there any way to reset it to a default state? Or failing that any way at all to debug or interpret what has happened?

This is why I hate hardware.

BillSlugg
09-25-2008, 03:01 PM
Did you check the device mangler? Yes. A-OK

There should be an option for verbose errors. Tried that, ran into a brick wall. Could not do it.

Did you try it on another machine? Took it to my office but I cannot even unzip the files in Vista.
I get the error: "Windows explorer must shut down now."

Confirm that the com-port and baud-rate are correct. YES, OK

I'd uninstall and reinstall the device drivers. As soon as I get home tonight.

Hmm, maybe disabling the WinXP firewall too? Also will try tonight.

jes1510
09-25-2008, 03:55 PM
OK, I'm getting pissed.

The Arduino was on COM6 -- it was there consistently even if it required some finesse. Now it's just gone. It never shows up as a port at all. I didn't do anything like Bill; I didn't update the OS, install new drivers, I didn't do anything. I downloaded a program that read some analog inputs and wrote to the serial port every 0.5 seconds. That worked OK, but then the COM port disappeared and nothing will bring it back.

The amber RX and TX leds on the Arduino are constantly lit as soon as power is applied, not even flickering as I would expect from sending data every half second. Is there any way to reset it to a default state? Or failing that any way at all to debug or interpret what has happened?

This is why I hate hardware.

If both LED's are lit then the FTDI chip may have been blown. The RX LED should only light when data is sent from the computer to the Arduino. Of course I am assuming that there isn't something sending a butt load of data to the Arduino.

I am also assuming that you have rebooted Windows.

metaform3d
09-25-2008, 07:55 PM
I am also assuming that you have rebooted Windows.About 20 times under different conditions (USB plugged in, USB unplugged, holding reset on board, etc.). When in doubt, reboot.

I'll try reinstalling the device driver later. If the board is blown already then I'm not so happy with my new best friend.

jes1510
09-25-2008, 09:41 PM
Looking at the schematic the only way that the RX LED can light when it isn't connected is if the FTDI chip is blown. Is it lit when it is not connected to the computer (powered from another source)? Here is a link to the schematic.
http://arduino.cc/en/uploads/Main/Arduino-Diecimila-schematic.pdf

metaform3d
09-26-2008, 01:19 AM
Is it lit when it is not connected to the computer (powered from another source)?OK, it's a complicated story.

In all cases if I power the board from an external source the TX/RX leds are dark.

I started by uninstalling the FTDI drivers. After rebooting I plugged it in and the TX/RX leds were also off. However Windows didn't recognize new USB hardware and didn't ask for drivers to be installed.

After uninstalling I have repeated the reboot & plug-in cycle several times. In each case Windows did some disk activity when the device was plugged in, but never gave me the "new hardware" dialog. One time the TX/RX leds glowed for reasons that remain mysterious. Every other time they remained dark except for brief flashes.

Any other thoughts? I'm basically dead in the water. This is Vista BTW, if that means anything.

jes1510
09-26-2008, 07:56 AM
Ok this sounds less like a blown board and more like a Vista malfunction. I assume that the COM port is not appearing at all in the device manager. Is this correct?

Edit: Do you have another computer you can test the board on?

metaform3d
09-26-2008, 10:02 AM
Do you have another computer you can test the board on?Yeah I finally thought of that this morning as well. Plugged it into my XP machine and the new hardware dialog popped up right away. So it's Vista, not the board.

The COM port used to show up in the device manager, but not at all once the problem started.

jes1510
09-26-2008, 10:45 AM
The only thing I can think of is to try connecting it to Vista as an Administrator.

Adrenalynn
09-26-2008, 10:51 AM
The Arduino support forum seems to have a "sucks to be you" consensus where Vista is concerned. I've found the FTDI drivers to be horrendously unpredictable with Vista - fortunately, I don't have a Vista machine anymore - I formatted that box to put another Linux server on... ;)

metaform3d
09-26-2008, 12:15 PM
Thanks for the help, everyone. At least I now know what kind of solutions I need to be looking for.

Adrenalynn
09-26-2008, 12:43 PM
I think if you consider the build environment to be like your work build environment, it helps. For me, unless I was doing DX10 development (as you might well be), I would be very hard-pressed to leave XP. It took years for me to leave Win2k behind as a build environment - just because of the work it'd take to prove-out the new OS. I highly suspect Vista will be long dead and buried [can you say "Millennium Edition", Bob? ;)] before I look at it seriously again for anything that isn't a gaming/rendering (dx10) machine.

metaform3d
09-28-2008, 11:59 AM
After many, many hours reinstalling and configuring device drivers and trying different Wiring programs, I found the problem. Bad USB cable. Replaced the cable and everything works great now.

Note to self: if it looks like a hardware problem, swap out all the components.

jes1510
09-28-2008, 08:09 PM
I'm glad you got it working! Be sure to throw out that cable or at least cut off the ends and throw them away.