Ability to serial communicate data over single wire, and change direction

There needs to be a way to do the following:

(a) assign ANY pin (digital 0 to 13, or even the analog pins) as a serial I/O port. Not separate RX/TX pins, 1 SINGLE RX-TX line, that can be
changed on the fly. (such as the ability to change a digital line from output to input, as done with the parallax PING))) range finder

(b) Ability to change type on ALL I/O pins, to Digital, PWM, Analog, Serial data, or even I2C. Not limit them to specific duty.

the IDE is just a converter from the C++ derivative, to native machine code for the ATMel chips, just as the Parallax PBASIC compiler is just that, a compiler, that converts the written PBASIC program to the native machine level code of the chip. Not locking itself down to "Do Only This" specific tasks. (unleash up to 18 digital I/O's, or serial devices, or analog monitors, or several I2C devices.

It depends on the performance one requires. All you asked for can be done using software 'bit bang' emulation of serial, I2C, PWM. But if you want or need maximum performance then you would need to take advantage of the built in hardware peripherals in the AVR chip and so you have to deal with dedicated pins for certain functions and work with the hardware features as they were designed.

So off you go designing software functions to work as you want.

Lefty

Certain functions, including PWM, A/D conversion, I2C, SPI, serial are only implemented for certain pins by the MCU hardware. Some of these could be implemented on other pins with software bit-banging (e.g. SoftSerial).

But I'm curious. Why is this needed? The single RX/TX line concept, not sure I'm familiar with it, is there some sort of standard for it?

I2C is a bus, so while I can certainly conceive of scenarios that require multiple busses, in general, I2C can address multiple devices on the bus.