Arduino IDE like serial monitor in the Raspberry Pi shell
If you want to be able to use the Serial Port of the Raspberry Pi you will have to disable the Linux serial console first.
sudo nano /boot/cmdline.txt
Remove references to console=ttyAMA0,115200 and kgdboc=ttyAMA0,115200.
sudo nano /etc/inittab
Remove or comment the line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100. Reboot the system. Source:[1]
Then I run the serial.sh script (you need all three for this to work)
serial.sh
- !/bin/bash
stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts sleep 1 tmux new-session -d './serial-in.sh' tmux split-window -v './serial-out.sh' tmux attach-session -d
serial-out.sh
#!/bin/bash while true do read a echo "$a" > /dev/ttyAMA0 done
serial-in.sh
#!/bin/bash while true do cat -A /dev/ttyAMA0|tr "^M$" " " done
For serial communication with an Arduino I wanted a Arduino IDE like serial monitor in the Raspberry Pi shell. Since I could not a find a terminal that did support “line mode” I found another workaround.
It’s a quite simplistic approach.
stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Source:[2]
I use
cat -A /dev/ttyAMA0
to listen to the serial port. Unfortunately there are some unwanted characters at the end of a line. I’m not sure why, but I just replaced them with a space. (That way they just do not any me anymore)
To get data to the Serial port I use:
echo "$a" > /dev/ttyAMA0
I use tmux split screen to be able to see both at the same time.