What does your modified sketch do to make it simpler and would it allow me to program the external micro and still get serial data without changing the connections every time?

The sketch provides a "serial relay" which has two on-wire options... the standard TTL-serial and something I call Knock-Bang. The Knock-Bang protocol is designed specifically for debugging a tiny processor when using an Arduino as a programmer. It's more robust and faster than TTL-serial.

In either case, you don't need to fiddle with the wiring. MISO (one of the programming lines) is used for serial communications.

Ok, I couldn't wait for the zif socket;) Once I removed the Arduino and plugged the Serial cable into the TX(not RX as before) pin on the Arduino board, everything worked just fine! So it seems as if the Arduino blocks the communication if its inserted and your library should be able to solve my problem.

The latest version of the sketch (TinyISP) can be downloaded from here...https://github.com/Coding-Badly/TinyISP/zipball/master

Or, the source can be browsed here...https://github.com/Coding-Badly/TinyISP

As published, it is a drop-in replacement for the ArduinoISP sketch. Please download it and try it. At this point, the only noticeable difference should be shorter upload times. I will add more instructions later (probably tonight).

In file included from TinyISP.cpp:43:TinyISP_SanityChecks.h:45:6: error: #error The Knock-Bang Relay and Serial Relay are mutually exclusive for this processor. Enable one or the other but not both. See the <TinyISP_BuildOptions.h> file.TinyISP_SanityChecks.h:51:10: error: #error Ensure the "#include <SoftwareSerial.h>" line in the sketch is not commented-out or set RELAY_SERIAL_ENABLED to 0 in the <TinyISP_BuildOptions.h> file.

I can remove the 2nd error by removing the comment from the "//#include <SoftwareSerial.h>" line but once I changed the "#define RELAY_KNOCK_BANG_ENABLED 1" to "#define RELAY_KNOCK_BANG_ENABLED 0" in "TinyISP_BuildOptions.h" a whole bunch of compile errors appear.

TinyISP_RelaySoftSerial.h:45: error: 'SoftwareSerial' does not name a typeTinyISP_RelaySoftSerial.h:51: error: 'SerialRelay' does not name a type/Users/daniel/Dropbox/Code/Arduino/libraries/TinyISP/TinyISP_Monitor.cpp: In function 'bool monitor_run(uint8_t&)':TinyISP_Monitor.cpp:130: error: 'RelaySerial' was not declared in this scope

Didn't I disable the serial relay by setting the setting to 0, because that's what I need in the end

• After opening Serial Monitor (or another terminal application), send a single exclamation mark (!) to activate the Monitor (which also activates the Serial Relay)

• When finished, send a second single exclamation mark (!) to return to Programming

• The Monitor supports three other commands...

[font=Courier New] @ [/font]Toggle between holding the target in reset after programming and allowing the target to run immediately[font=Courier New] # [/font]Reset the target now or allow the target to run if it is held in reset[font=Courier New] $ [/font]Hold the target in reset