4
\$\begingroup\$

I was working on a program with an LED 5 X 7 dot matrix for my Arduino pro micro. There was a program that worked on the dot matrix and I was just making it simpler using arrays and such.

I just finished the setup and added one command in the loop just to turn on one led for testing. So I uploaded the code and I got a error stating "Serial port on COM 5 not found" even though just before I uploaded a different code.

So I did the usual... restarted Arduino, and I still got the same error.

Then I realized windows 8 was giving a bubble at the bottom right side of the screen saying "USB device not Recognized" so I figured maybe the drivers got messed up. I went to the device manager and saw unknown device (figuring that was Arduino) so I tried to update drivers with the copy of the pro micro drivers I already had. It said that the drivers were up to date. Just to make sure I uninstalled the drivers completely and downloaded a fresh copy from the Arduino website. Still it didn't work.

By this point I thought that my computer was having issues, so I tried it on my friends windows 7 computer, it still didn't work. Me and my friend figured we should move on. So my friend, who has been programming his pro micro on his own laptop with a different cable, uploaded my led dot matrix program to his pro micro when it wasn't attached to anything (it wasn't on a breadboard, so it wasn't an issue with wiring on the breadboard) and the SAME thing started happening to his Arduino pro micro.

I have NO idea what the problem is, maybe, somehow, it is some weird issue with the code... Here is the code that I uploaded:

//rows
const int dotr1 = 5;
const int dotr2 = 4;
const int dotr3 = 6;
const int dotr4 = 7;
const int dotr5 = 15;
const int dotr6 = 3;
const int dotr7 = 2;
//columns
const int dotc1 = 9;
const int dotc2 = 8;
const int dotc3 = 10;
const int dotc4 = 16;
const int dotc5 = 14;
//extra
const int dt = 1;//for scrolls
const int timeDelay2 = 20000;//micsec//for weave
const int repetitions = 2;//scrolls
const int repetitions2 = 20;//weaves
const int scrollRate = 1;//timedelay2*scroll= duration of weave

int currentStep = 0;
const int frame1r[] = {4,0};
const int frame1c[] = {3,0};
const int frame2r[] = {3,3,3,4,4,5,5,5,0};
const int frame2c[] = {2,3,4,2,4,4,3,4,0};
const int frame3r[] = {2,2,2,3,3,4,4,5,5,6,6,6,0};
const int frame3c[] = {2,3,4,1,5,1,5,1,5,2,3,4,0};
const int frame4r[] = {1,1,1,2,2,6,6,7,7,7,0};
const int frame4c[] = {2,3,4,1,5,1,5,2,3,4,0};

const int high = LOW;
const int low = HIGH;
void setup()
{
  for(int i = 2; i < 11; i++)
  {
    pinMode(i, OUTPUT);
  }
   pinMode(15, OUTPUT);
   pinMode(14, OUTPUT);
   pinMode(16, OUTPUT);
   //for rows
   digitalWrite(dotr1,high);
   digitalWrite(dotr2,high);
   digitalWrite(dotr3,high);
   digitalWrite(dotr4,high);
   digitalWrite(dotr5,high);
   digitalWrite(dotr6,high);
   digitalWrite(dotr7,high);
   //for columns
   digitalWrite(dotc1,low);
   digitalWrite(dotc2,low);
   digitalWrite(dotc3,low);
   digitalWrite(dotc4,low);
   digitalWrite(dotc5,low);
}




void loop(){
for(int i = 0; i < scrollRate; i++){
  digitalWrite(frame1r[currentStep], low);
  digitalWrite(frame1c[currentStep], high);
  delay(dt);

}
}

If someone has had this issue or knows a possible way to fix it please help.

\$\endgroup\$
  • \$\begingroup\$ Sorry Anindo Ghosh, when I first posted the question it posted weird, all fixed :) \$\endgroup\$ – capacitor99 Jul 19 '13 at 17:46
  • \$\begingroup\$ Is this with JUST the arduino connected and NO EXTERNAL circuitry (such as your 5x7 matrix) ? Could be trying to draw to much current from the usb port if you have the external stuff connected and powered from the +5v \$\endgroup\$ – efox29 Jul 19 '13 at 17:48
  • \$\begingroup\$ Yes, I stated in my post that I uploaded when the arduino was connected to NO circuitry. \$\endgroup\$ – capacitor99 Jul 19 '13 at 17:50
1
\$\begingroup\$

You're not the only one having this problem. I think this is the post that you can read to solve this problem.

Try doing this :

First install drivers for Arduino ( This is for Windows 8 or 7 ) :

  1. Plugin your Arduino Board

  2. Go to Control Panel ---> System and Security ---> System ---> On the left pane Device Manger

  3. Expand Other Devices.

  4. Under Other Devices you will notice a icon with a small yellow warning. (Unplug all your other devices attached to any Serial Port)

  5. Right Click on that device : Update Driver Software

  6. Select Browse my computer for Driver Software

  7. Click on Browse : Browse for the folder of Arduino Environment which you have downloaded from Arduino website. If not downloaded then http://arduino.cc/en/Main/Software

  8. After Browsing mark 'include' subfolder.

  9. Click next ---> Your driver will be installed.

  10. Go to device manager Expand Port ( its under the other devices )

You will see Arduino Written ---> Look for its COM PORT (close device manager)

  • Go to Arduino Environment ---> Tools ---> Serial Port ---> Select the COM PORT as you just saw in PORT in device manager. (If you are using any other Arduino Board instead of UNO then select the same in boards )

Thats it btw. these instructions are by @Divye Bhutani in his original post. . .

\$\endgroup\$
1
\$\begingroup\$

An ancient post, but seemingly never answered.

I had a similar problem recently, and it seems to just spontaneously happen with Pro Micros sometimes that they stop enumerating properly to the OS.

For me, on OSX, the signature error from dmesg was:

       0        0 dgmdmcontrol: start - Failed to find the CDC driver
     0 [Level 5] [com.apple.message.domain com.apple.commssw.cdc.device] [com.apple.message.signature AppleUSBCDCACMData] [com.apple.message.signature2 0x2341] [com.apple.message.signature3 0x8036]

and as far as I could tell, the board was bricked - it never showed up as a device in /dev. I also verified that Linux couldn't enumerate this device either, but never got as far as trying Windows - I expect the behaviour would be the same.

Anyway, somewhat surprisingly, the Arduino IDE will still attempt to upload to the device, even if it hasn't enumerated properly as the device you have set in 'Tools > Serial Port'. The trick is to start the upload, and while it is still compiling, briefly short the RST pin to GND. This causes the bootloader to restart, just in time for the upload phase.

So far I've revived 2 Pro Micros that were heading for the trash - I hope this post will also save someone else's hardware.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.