And if you switch the tty from "cooked" to "raw" mode then it doesn't do the conversion, and a CR just moves the cursor back to the start of the line and a LF just moves the cursor one line down.
spin='/-\|'
while true; do
i=$(( (i+1) % 4 ))
printf "\r${spin:$i:1} Working..."
sleep 0.1
done