Just wanted to drop this idea in here as well… it’s more expensive than the buffer solution, but this device is a nice device to have in your skill set.
Low current, low voltage, dual coil, latching DPDT relay (fits in a breadboard):
You tie the (+) of each coil to 3.3V, and hook the (-) of each coil up to the collector of a NPN transitor (such as a 2N4401). Emitter of the NPN to GND. Base of NPN to a Digital Output through a 1k ohm resistor (say D0 and D1). The NPN is required because the relay coil will draw about 50mA, too much for the I/O of the Spark Core.
Because it’s a DPDT (Dual Pole Double Throw), you would hook the Common pins (4 & 9) to the two signals (TX & RX) you are trying to Switch between two devices, and the Normally Closed pair (3 & 10) to device 1, and Normally Open pair (5 & 8) to device 2.
Then you just Pulse D0 high for 15ms to latch the relay to the normally open state, or D1 high for 15ms to latch the relay to the normally closed state. After it’s latched, it draws no power.
I realize in the face of “it’s just software” this may seem like overkill, a waste of time, etc… but the more solutions you have up your sleeve, the easier it will be to solve your future problems.