A programmable multichannel microstimulator with bi-directional telemetry.