1

I got some questions about uart in raspberry pi 4 model b. I used to run my program in rpi 3 model b+, but everything went wrong when I tried to do the same thing on pi 4.

First of all, each time I reboot the pi, the uart privilege need to be set again like using

sudo chmod 777 /dev/ttyS0

to make it possible to run my python code, which is quite annoying since I'm going to let my student to run the code on their own pi, and somehow quite dangerous.

Second is that after privious settings, after starting the program, through the output I can tell that my serial port didn't let me to write (read is okay), that is, their's nothing shown on the connected device, in python:

ser.write('something')

So there's two things I am trying to deal with, to remain the privilege of accessing '/dev/ttyS0', and write to device successfully.

Here's my config.txt and cmdline.txt, let me know if I need to show to make my question more clear.

cmdline.txt

console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles

config.txt

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
enable_uart=1

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
#dtoverlay=miniuart-bt
黃政鈺
  • 21
  • 1
  • Hi @黃政鈺, Welcome and nice to meet you. I am using Rpi3/4 and have no problems in using on board and USB serial. You might like to read some of my my answers to similar Rpi UART/serial problems: Rpi python serial demo programs (1) https://raspberrypi.stackexchange.com/questions/96184/rpi3-to-arduino-serial-uart-communication-tutorial, (2) https://raspberrypi.stackexchange.com/questions/96534/serial-communication-from-raspbian-using-python-to-arduino/96535#96535, (3) https://raspberrypi.stackexchange.com/questions/96343/error-while-using-wiringserial. Happy Rpi python programming. Cheers. – tlfong01 Apr 13 '20 at 08:34
  • 2
    Why are you using `/dev/ttyS0`? Perhaps your problems will disappear if you use the correct `/dev/serial0`. – joan Apr 13 '20 at 18:06
  • 1
    @tlfong01 Thanks for your answer, I'll try to figuer out how it works now :D – 黃政鈺 Apr 15 '20 at 01:15
  • 1
    Hey @joan, I've tried to use both /dev/ttyS0 and /dev/serial0 to access since I check the raspberry pi document and it said that both of them are same if i didn't misunderstood, that is, both of them failed. Or there's other way to solve this problem? – 黃政鈺 Apr 15 '20 at 01:19
  • 1
    @tlfong01 I think the main problem is I failed to access the serial port due to the permission denied. There's slightly different between our code include baudrate setting, but this is not the problem with first priority to me, but anyway, thanks for your help. – 黃政鈺 Apr 15 '20 at 02:25
  • @黃政鈺, Yes, I found it weird when hearing your permission denial problem. Of course you can somehow permanently chmod 777 to it. But I think the root cause is that you might have used some very old config method which no longer works for Rpi4B buster. That is why instead of debugging your /boot/config.txt file. Moreover, the cmdline.txt thing seems very old, only for wheezy or jessy. I seems not using cmdline.txt since the stretch days. So one possible cause is the somehow your cmdline.txt and config.txt clashes, but I am only 20% sure. Good luck, cheers. – tlfong01 Apr 15 '20 at 02:53

0 Answers0