Screen goes black as soon as Picframe starts
Closed this issue · 1 comments
WouterB92 commented
Hello,
I’m trying to instal a pictureframe with this software on a PI4. I’ve followed the steps precisely from [https://www.thedigitalpictureframe.com/how-to-add-crossfading-slide-transitions-to-your-digital-picture-frame-using-pi3d/].
But once I try to test it with: sudo xinit /usr/bin/python3 /home/pi/picframe_data/run_start.py /home/pi/picframe_data/config/configuration.yaml
or start it with pictures in the right folder.
The screen goes black. And as soon as I stop picframe with sudo systemctl stop picframe.service
I can see the same the SSH lines as in my terminal window.
Hoping you can help!
From the test I get this result:
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.15.0-48-generic armv8l Raspbian
Current Operating System: Linux pi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l
Kernel command line: coherent_pool=1M 8250.nr_uarts=0 cma=64M cma=256M cma=256M video=HDMI-A-1:1920x1080M@60,margin_left=0,margin_right=0,margin_top=0,margin_bottom=0 smsc95xx.macaddr=DC:A6:32:C9:00:1A vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
Build Date: 05 June 2019 12:49:54PM
xorg-server 2:1.20.4-1+rpt1 (https://www.debian.org/support)
Current version of pixman: 0.36.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Oct 16 22:00:23 2023
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
INFO:start.py:starting ['/home/pi/picframe_data/run_start.py', '/home/pi/picframe_data/config/configuration.yaml']
INFO:model.Model:Open config file: /home/pi/picframe_data/config/configuration.yaml:
ERROR:model.Model:error trying to set locale to en_US.UTF-8
Traceback (most recent call last):
File "/home/pi/picframe_data/run_start.py", line 2, in <module>
start.main()
File "/usr/local/lib/python3.7/dist-packages/picframe/start.py", line 133, in main
v = viewer_display.ViewerDisplay(m.get_viewer_config())
File "/usr/local/lib/python3.7/dist-packages/picframe/viewer_display.py", line 59, in __init__
self.__show_text = parse_show_text(config['show_text'])
File "/usr/local/lib/python3.7/dist-packages/picframe/viewer_display.py", line 25, in parse_show_text
txt = txt.lower()
AttributeError: 'NoneType' object has no attribute ‘lower'
````````````````````````````````
````````````````````````````````
Configuration File
viewer:
blur_amount: 12 # default=12, larger values than 12 will increase processing load quite a bit
blur_zoom: 1.0 # default=1.0, must be >= 1.0 which expands the backgorund to just fill the space around the image
blur_edges: False # default=False, use blurred version of image to fill edges - will override FIT = False
edge_alpha: 0.5 # default=0.5, background colour at edge. 1.0 would show reflection of image
fps: 20.0 # default=20.0
background: [0.2, 0.2, 0.3, 1.0] # default=[0.2, 0.2, 0.3, 1.0], RGBA to fill edges when fitting
blend_type: "blend" # default="blend", choices={"blend", "burn", "bump"}, type of blend the shader can do
font_file: "/home/pi/picframe_data/data/fonts/NotoSans-Regular.ttf"
shader: "/home/pi/picframe_data/data/shaders/blend_new"
show_text_fm: "%b %d, %Y" # default "%b %d, %Y", format to show date over the image
show_text_tm: 20.0 # default=20.0, time to show text over image with file name
show_text_sz: 40 # default=40, text character size
show_text: # "title caption name date folder location" # default="title caption name date folder location", show text, include combination of words: title, caption name, date, location, folder
text_justify: "L" # text justification L, C or R
text_bkg_hgt: 0.25 # default=0.25 (0.0-1.0), percentage of screen height for text background texture
text_opacity: 1.0 # default=1.0 (0.0-1.0), alpha value of text overlay
fit: False # default=False, True => scale image so all visible and leave 'gaps'
# False => crop image so no 'gaps'
kenburns: False # default=False, will set fit->False and blur_edges->False
display_x: 0 # offset from left of screen (can be negative)
display_y: 0 # offset from top of screen (can be negative)
display_w: null # width of display surface (null->None will use max returned by hardware)
display_h: null # height of display surface
display_power: 0 # default=0. choices={0, 1}, 0 will use legacy `vcgencmd` and 1 will use `xset` to blank the display
use_glx: False # default=False. Set to True on linux with xserver running
mat_images: 0.01 # default=0.01, True, automatically mat all images. False, don't automatically mat any images. Real value, auto-mat all images with aspect ratio difference > than value
mat_type: null # default=null, A string containing the mat types to choose from when matting images. It can consist of any or
# all of 'float float_polaroid float_color_wrap single_bevel double_bevel double_flat' (null or '' will use all mat types)
outer_mat_color: null # default=null, Color of the outer mat as an RGB list. null will auto-select a reasonable color based on the image.
inner_mat_color: null # default=null, Color of the inner mat as an RGB list. null will auto-select a reasonable color based on the image.
outer_mat_border: 75 # default=75, Minimum outer mat border in pixels
inner_mat_border: 40 # default=40, Minimum inner mat border in pixels (for styles that use it)
outer_mat_use_texture: True # default=True, True uses a texture for the outer mat. False creates a solid-color outer mat.
inner_mat_use_texture: False # default=False, True uses a texture for the inner mat. False creates a solid-color inner mat.
mat_resource_folder: "/home/pi/picframe_data/data/mat" # Folder containing mat image files
show_clock: False # default=False, True shows clock overlay. False does not show clock overlay
clock_justify: "R" # default="R", clock justification L, C, or R
clock_text_sz: 120 # default=120, clock character size
clock_format: "%I:%M" # default="%I:%M", strftime format for clock string
clock_opacity: 1.0 # default=1.0 (0.0-1.0), alpha value of clock overlay
menu_text_sz: 40 # default=40, menu character size
menu_autohide_tm: 10.0 # default=10.0, time in seconds to show menu before auto hiding (0 disables auto hiding)
geo_suppress_list: [] # default=None, substrings to remove from the location text
model:
pic_dir: "/home/pi/Pictures" # default="/home/pi/Pictures", root folder for images
deleted_pictures: "/home/pi/DeletedPictures" # move deleted pictures here
follow_links: False # default=False, By default, picframe will not walk down into symbolic links that resolve to directories. Set follow_links to True to visit directories pointed to by symlinks, on systems that support them.
no_files_img: "/home/pi/picframe_data/data/no_pictures.jpg" # default="PictureFrame2020img.jpg", image to show if none selected
subdirectory: "" # default="", subdir of pic_dir - can be changed by MQTT"
recent_n: 7 # default=7 (days), when shuffling file change date more recent than this number of days play before the rest
reshuffle_num: 1 # default=1, times through before reshuffling
time_delay: 200.0 # default=200.0, time between consecutive slide starts - can be changed by MQTT
fade_time: 10.0 # default=10.0, change time during which slides overlap - can be changed by MQTT"
shuffle: True # default=True, shuffle on reloading image files - can be changed by MQTT"
sort_cols: 'fname ASC' # default='fname ASC' can be any columns in the table with optional ASC or DESC separated by commas
# fname, last_modified, file_id, orientation, exif_datetime, f_number,
# exposure_time, iso, focal_length, make, model, lens, rating,
# latitude, longitude, width, height, title, caption, tags,
# is_portrait, location
image_attr: [ # image attributes send by MQTT, Keys are taken from exifread library, "PICFRAME GPS" is special to retrieve GPS lon/lat, "PICFRAME LOCATION" is special to retrieve geo reverse (load_geoloc hast to be True)
"PICFRAME GPS",
"PICFRAME LOCATION",
"EXIF FNumber",
"EXIF ExposureTime",
"EXIF ISOSpeedRatings",
"EXIF FocalLength",
"EXIF DateTimeOriginal",
"Image Model",
"Image Make",
"IPTC Caption/Abstract",
"IPTC Object Name",
"IPTC Keywords"]
load_geoloc: False # get location information from open street map NB if you switch this on (recommended)
geo_key: "this_needs_to@be_changed" # then you **MUST** change the geo_key to something unique to you
# i.e. use your email address
locale: "en_US.UTF-8" # "locale -a" shows the installed locales which could used
key_list: [
["tourism","amenity","isolated_dwelling"],
["suburb","village"],
["city","county"],
["region","state","province"],
["country"]]
db_file: "/home/pi/picframe_data/data/pictureframe.db3" # database used by PictureFrame
portrait_pairs: False
log_level: "WARNING" # default=WARNING, could beDEBUG, INFO, WARNING, ERROR, CRITICAL
log_file: "" # default="" for debugging set this to the path to a file. NB logging messages will
# appended indefinitely so don't forget this. You will need to tidy it up later
mqtt:
use_mqtt: False # default=False. Set True true, to enable mqtt
server: "192.168.68.101" # No defaults for server
port: 1883 # default=8883 for tls, 1883 else (tls must be "" then !!!!!)
login: "" # your mqtt user
password: "" # password for mqtt user
tls: "/path/to/your/ca.crt" # filename including path to your ca.crt. If not used, must be set to "" !!!!
device_id: "picframe" # default="picframe" unique id of device. change if there is more than one PictureFrame
device_url: "" # if use_http==True, set url to picframe config page. Must be a valid url, or "" otherwise home assistant runs in an error.
http:
use_http: False # default=False. Set True to enable http NB THIS SERVER IS FOR LOCAL NETWORK AND SHOULD NOT BE EXPOSED TO EXTERNAL ACCESS
path: "/home/pi/picframe_data/html" # path to where html files are located
port: 9000 # port used to serve pages by http server < 1024 requires root which is *bad* idea
use_ssl: False
keyfile: "path/to/key.pem" # private-key
certfile: "path/to/cert.pem" # server certificate
peripherals:
input_type: null # default=null, valid options: {null, "keyboard", "touch", "mouse"}
buttons:
pause: # pause/unpause the show
enable: True # default=True
label: "Pause" # default="Pause"
shortcut: " " # default=" "
display_off: # turn off the display (when off, any input from selected peripheral will turn it back on)
enable: True # default=True
label: "Display off" # default="Display off"
shortcut: "o" # default="o"
location: # shows or hides location information
enable: False # default=False
label: "Location" # default="Location"
shortcut: "l" # default="l"
exit: # exit PictureFrame
enable: False # default=False
label: "Exit" # default="Exit"
shortcut: "e" # default="e"
power_down: # power down the device, uses sudo
enable: False # default=False
label: "Power down" # default="Power down"
shortcut: "p" # default="p"
````````````````````````
WouterB92 commented
Other times I get this response
pi@pi:~ $ sudo xinit /usr/bin/python3 /home/pi/picframe_data/run_start.py /home/pi/picframe_data/config/configuration.yaml
(EE)
Fatal server error:
(EE) Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.
(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE)
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
after 7 requests (7 known processed) with 0 events remaining.`