So, I've been reading the Dragon docs, and I've been reading threads, and I clearly don't know *something* but I don't know what it is that I don't know.
I found an AVR Dragon lying around and thought "hey i could use that". Well, sort of. If I power an Arduino externally, and connect the dragon's ISP header to it, it works -- I can use avrdude with the "dragon_isp" programmer, and it can see the atmega328p and confirm the chip bits.
I have other boards, plural, with ISP headers and sockets for various atmel chips. All of them have been successfully used with those chips and the ISP headers from my sparkfun usbtiny-alike programmer. If I connect the dragon to them, it fails weirdly -- it reports a chip ID of either 0x000000 or occasionally 0x003f00, and fails. Yes, I am aware that the VCC pin is actually a VTG pin, and I'm supposed to be supplying power to the target directly. The documentation seems to suggest that I want to do one of several things:
1. Power external board directly through something else. Connect the VCC pin of its header to the VTG pin on the Dragon so the dragon's level shifters can do their magic.
2. Power external board from dragon. Connect one VCC pin from dragon to VTG pin on dragon, and another VCC pin on dragon to some voltage input on target board.
Neither of these works, with any of the several boards in question. In each case, if I use the same board with a different programmer's ISP headers (which usually just provide power directly from VCC), it seems to work fine.
What obvious things might I be missing? Everything involved is 5V. (attiny84, attiny85, atmega328p.) The other programmers I've tried are the built-in one on the Arduino Uno, and a sparkfun USB tiny clone.