Weird behavior with MSGEQ7

I wired up an MSGEQ7 according to this tutorial:
http://skoba.no-ip.org/msgeq7/
And I connected the line-level output from my computer to it directly.

At first I wasn't getting any results, every frequency band just read ~50 no matter what was playing. At some point I accidentally removed the ground connection between the chip and the Arduino (I had ground on the diagram connected to GND on the Arduino), and it started working perfectly. It seemed strange to me that I could power the circuit using the +5V from the Arduino without using the GND pin, but the numbers I'm getting back match the music really well.

So I have a couple of questions:

  • How is it that it can work this way?
  • What might I be doing wrong such that it doesn't work the way it's shown on the site?
  • Is it ok to keep using it like this, or can I expect unusual behavior?

Thanks so much,
Toby

I would say that your audio source ground is not the same as your power ground and that when you had it wired up correctly you were shorting out your audio input and so it didn't work.

It is not a good idea to have floating ground connections even if it appears to work at the moment. This is because you don't understand what is going on and that is never a good idea.

FYI, fixed now. I flipped the polarity of the line-in and it's working perfectly, with the ground pin. I had no idea that it mattered.

Coaxial connectors are great because you can't connect them backwards and short signals to ground!

CMOS chips often appear to work with a Vcc or Gnd connection missing - what happens is that the input protection diodes carry the supply current! This is bad because its overloading them and if ever all the inputs go to the same state the chip loses power.

CMOS chip work often appear and VCC or GND missing - what is, for the power input protection diode current! This is bad, because it's overloading them, if all the same countries into the chip power outages.