Pages: [1]   Go Down
Author Topic: Weird issue: Micro won't transmit win8  (Read 1192 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey guys,

Having a weird problem. I bought this micro about 3 days ago and have been playing around with it. Everything's been great, haven't had an issue. Until that is, today.

I can send information to it using the serial monitor, and it responds (Physical Pixel), however, the Micro won't transmit anything to my computer. I added Serial.println("High Received!"); after setting the led high, and the opposite for low. The light on the micro never flashes for transmit. I tried all the sketches in the Communication directory, to no avail. Any sketch that should send serial data, doesn't. The monitor stays blank. The micro refuses to send any information. If I send information in the serial monitor I see the micro's led flash for Rx, but I can't get the Tx to blink for anything.



What am I doing wrong?
Logged

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

Did some more testing. Arduino ERW fails completely. Stock 1.0.2 fails 50%.

None of the examples that send serial data work. I modified Physical Pixel and it DID work. I uploaded the sketch and checked it a few times as well as pressing reset on the board.

When I pressed reset on the board, everything freaked out. I couldn't send sketches to it using either program. I had to physically plug/unplug several times to get it working again.

For some reason, it seems the Micro changes it's com port every time it's connected. Anywhere from 6 to 8, without anything else changing. Weird.
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 309
Posts: 26525
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Feel free at any point to post code, or a schematic.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

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

Hi Awol,

I apologize for not posting it in the correct subforum. My apologizes!

No schematic, no code to post.

Using the Arduino IDE 1.0.2 under Communication, the ascii print out program sends no information to my computer. The Tx led never lights up. I can send to it, and the led of "Rx" flashes, but it never sends any information back to my computer.

In the IDE, File -> Examples -> Communication -> ASCII Table

I upload it fine. Then I open serial monitor and nothing gets printed. I've noticed with other sketches, when the sketch is supposed to wait for the Serial Monitor to open before sending, it doesn't. Prime example is the EEPROM read/write/clear. It does NOT wait for serial monitor. If I use the keyboard shortcut to open the serial monitor, I can sometimes get it at around ~10 entries, (I.e. the first line of text I see is 10-12).

I'm not sure exactly what the problem is. Some times I have to load the sketch multiple times to get it to send anything to my computer.
Logged

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

What model arduino board did you get?

Lefty
Logged

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

I'm sorry. This is an Arduino Micro r3 from Radio Shack. Running Windows 8 64

I found the problem, I think. In all the sketches that aren't working, it says "wait for serial - needed for Leonardo only" which obviously applies to the Micro as well.

The ASCII table serial output program doesn't work because the serial connection opens AFTER it transmitted. If I remove the end of the program

Code:
  // if printed last visible character '~' or 126, stop:
//  if(thisByte == 126) {     // you could also use if (thisByte == '~') {
    // This loop loops forever and does nothing
//    while(true) {
//      continue;
//    }
//  }
  // go on to the next character
  thisByte++; 
}

I commented it all out, so it constantly repeats itself. (Not print it only once) then open serial monitor, it works great.

So it seems for some reason the "wait for serial connection THEN output serial data" part is not working on the Micro correctly. What's the proper way (I know there is at least several) to make a sketch WAIT for a serial connection before outputting data?
Logged

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

Quote
'm sorry. This is an Arduino Micro r3 from Radio Shack. Running Windows 8 64

I found the problem, I think. In all the sketches that aren't working, it says "wait for serial - needed for Leonardo only" which obviously applies to the Micro as well.

That's why I asked as I know the Leonardo is a different animal then the standard 328p based boards, and those of us without experience with the Leonardo have trouble giving advice for it.

Glad you got it figured out.

I guess on a Leonardo you need to use a if(serial) test before attempting to send data out the USB link.

http://arduino.cc/en/Serial/IfSerial



Lefty
« Last Edit: December 17, 2012, 07:23:23 pm by retrolefty » Logged

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

After lots of trial and error, I think I found the problem.

For some reason, my micro does NOT wait for a serial connection to be established before running the code including serial out.

Even sketches with the code to NOT send serial code until the serial connection is open, doesn't wait. If I do it as fast as humanly possible, I can sometimes get the end of it, like a few lines.

If I make the sketch continuously output the serial information (not once) and open the window, I catch it at the end before it repeats.

For some reason, it doesn't wait. I'm not sure exactly what would cause that. I'm running Windows 8 64 bit. I've used the Arduino 1.0.2 as well as the ERW-enhanced IDE. Tried several serial ports as well.

Is there a possibility my micro has a glitched bootloader or something?

I have a Mega 2560 r3 incase I have to do it.

This is really bugging me, I'm trying to finish my girlfriend's Christmas present.

I'm making a MAME/Emulator controller, with a built-in USB hub.

Currently this is how it is:
USB hub with external mounted USB-B connector (figure it would be the strongest: using a trimmed down panel mount usb-B to micro adaptor soldered straight to the USB hub
Micro going to buttons / analog sticks / added a button to switch between gamepad sending keypresses - accelerometer mouse control - analog stick mouse control - usb hub wiring
16gb usb flash disk. For space savings, I'm using a low profile micro-sd to usb adaptor, soldered directly to usb hub. using a class 10 micro-sd. may upgrade to 32gb as I have one laying around.

I'm still playing with different housings. I've completed a SNES controller as well as a PS2 controller. I'm just having issues debugging the code, so I went back to square 1.

Most of the code was done on the Mega, and I bought the Micro since I didn't need that many pins, and needed a small controller to fit within the size constraints.

I just don't know why the Micro won't wait for the serial connection before moving on...

Logged

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

I am having a similar problem with a micro R3, 1.0.3 on a win7 laptop.  

I can run the "AnalogReadSerial" sketch and I get the output in the serial monitor but if I run the ASCIItable sketch I do not see anything in the serial monitor.

Two years ago I had a Teensy2 (same processor as the micro) on this same netbook and I did not have this problem.

Any help would be appreciated.

Thank you,

Paul Hirst
« Last Edit: December 29, 2012, 11:02:48 am by PaulH » Logged

Offline Offline
Full Member
***
Karma: 10
Posts: 118
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
...but if I run the ASCIItable sketch I do not see anything in the serial monitor.
I can repeat the behavior on a leonardo with windows 7 SP1, with linux it works correctly.

I know what happens. After you download the sketch, the IDE touches the serial port to remove the magic baudrate. Touching means it briefly opens the sketch's serial port. As a result, the "while (!Serial);" loop exits and the sketch wants to start sending characters. But the port is closed again briefly after this and your characters get lost.

As a work around you can reset the board with the reset button, after this the while (!Serial); loop has the desired effect and chars end up in the serial monitor.

Another work around (though kludgy) is this:

Code:
while (!Serial);  // <-- detects the touch
delay(200);
while (!Serial);  // <-- waits for the real port opening

Btw. It was me who proposed to touch the port after uploading, maybe it should be rolled back.

Logged

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

I have to admit that I am at times far too impatient.  
The sketch works but once loaded it will not write to the serial monitor.  I must first reset the micro, then reset it a second time, then open up the serial monitor to see the table being printed.  The first rest causes the micro to lose the com port.  The second reset re-establishes the port and allows the serial monitor to be printed to.

I have 0 experience and less knowledge but hopefully what observation I just posted confirms your suspicion that you posted above.

Thank you,

Paul
« Last Edit: December 30, 2012, 04:17:41 pm by PaulH » Logged

Pages: [1]   Go Up
Jump to: