Arduino IDE like serial monitor in the Raspberry Pi shell

Aus Hackerspace Ffm
Version vom 8. April 2014, 19:01 Uhr von Tut (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

For serial communication with an Arduino I wanted an 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.

Don't forget the levelshifter when your Arduino runs on 5V!!!


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: github.com/watterott/RPi-ShieldBridge

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


Explanation

stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

Source: playground.arduino.cc/Interfacing/LinuxTTY This one i basicaly copy and pasted it, without understanding it. It gets the serial interface in the right mode to talk to an Arduino (with 115200 baud)


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.


All of this is probably not a clean or nice solution, but it does what I wanted it to do.