[Solved] Leonardo, Serial Issues (OS: Linux Mint)

OS: Linux Mint Maya 13
Board: Leonardo
IDE (ver 1.0.5)

Earlier today my leonardo was working fine. Was uploading, was talking over the serial port all on /dev/ACM0. Was really happy, things were going fine! Now... I may have updated something, or not sure but something changed (aside from a few lines of code not sure exactly what) but now I am getting several errors. The code I changed was adding a boolean variable and changing a double to an int if that matters... Namely when I try to upload a script I get,

Binary sketch size: 8,786 bytes (of a 28,672 byte maximum)
processing.app.debug.RunnerException: Couldn’t find a Leonardo on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload.
at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:153)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
at processing.app.Sketch.upload(Sketch.java:1671)
at processing.app.Sketch.exportApplet(Sketch.java:1627)
at processing.app.Sketch.exportApplet(Sketch.java:1599)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
at java.lang.Thread.run(Thread.java:701)

Which is annoying. Apparently the Arduino IDE (1.0.5)is recognizing a ttyS0 serial port. Which seemed fine and wonderful I was uploading too it, and there were no errors. Buuuut, it was a fascade, the port appears to do, well - nothing. There is no communication on it, I can't Serial.print too it, I'm not sure it even exists or is an artifact of this 'error'. Am still getting no response on my Serial output or input for that matter with /dev/ttyS0. Actually with the board unplugged I can apparently upload to this port (not good?).

Apparently, I can upload to the board(using /dev/ACM0) if I hold the reset button in a very tricky way while it is uploading. Really, really, impractical for my project (being 10 feet from a computer kind of by design).

So I did some googling around and apparently this was a pretty common issue with Ubuntu based OS's in the past(1-2 years ago). I tried some 'fixes' and nothing has worked. Here's what I have tried:

Purging modem-manager,
Purging brltty,
Setting udev rules (did I use the right ones not sure?)
Changing permissions to dialout and tty groups.
Running the IDE as super user.
Tons of reboots, shutdowns, restarts, even checked my USB connection on the motherboard.

Does anyone have any alternative ideas? I'm willing to run some tests and even try some superstitious things. Seriously if you want me to throw salt over my shoulder, just say the word. Kind of at a loss and need some help.

I really hope I didn't waste my money on a Leonardo board before I even got a week into my first project(bought the board last year haven't had time/money to tinker until now)... If that's the case, are there any more 'linux' friendly microcontrollers? I don't think I should have to do UDF programming to use this product with my computer. Atleast, I didn't think that was implied when I bought it.

I hate to bump a brand spanking new thread but I did just figure something peculiar out...

After plugging in the cord to the arduino and spamming my terminal I found that ACM0 disappears after a brief period of time.

-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 May 15 21:50 /dev/ttyACM0
-desktop ~ $ ls -l /dev/ttyACM*
ls: cannot access /dev/ttyACM*: No such file or directory
-desktop ~ $ ls -l /dev/ttyACM*
ls: cannot access /dev/ttyACM*: No such file or directory

Seems like as soon as the board loads it drops.

Found a temporary fix... I assumed that perhaps I over-loaded the serial connection with an error maybe? So I tried uploading a much simpler script doing the reset button holding down thing without any serial communication after symlinking the ACM0 to a ttyS101 . Yuck. Um, I'll report back after I do a bit more testing. I don't blame the board now, but

I will say this is resolved because I believe that it now is. I think the biggest issue was the symlink and I likely over-loaded my board with too large of an integer array or by passing too much into a never ending serial loop.

Here's the terminal script I use for symlinking.

sudo ln -s /dev/ttyACM0 /dev/ttyS101

Your mileage may and likely will vary depending on your OS, and computer hard-ware.

Hopefully this helps someone else.