Raspberry Pi support - enables a hard-wired, dedicated dash
Brent, would you mind looking at this log, and see if anything jumps out at you. im getting closer to making this touchscreen work, i was able to modify the kivy/config.ini and add a touchring. which works, so now at least i know where im clicking when i touch (still working on swaping xy). i am having an issue with the connection dropping and freezing. sometimes it unfreezes and reconnects, sometimes not. i am on the older PI RCPapp. i appreciate it, Dave
[INFO ] Logger: Record log in /home/pi/.kivy/logs/kivy_17-09-04_0.txt
[INFO ] Image: Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO ] Kivy: v1.10.0
[INFO ] Python: v2.7.9 (default, Sep 17 2016, 20:55:23)
[GCC 4.9.2]
[INFO ] Factory: 194 symbols loaded
[INFO ] Window: Provider: egl_rpi
[INFO ] GL: Using the "OpenGL ES 2" graphics system
[INFO ] GL: Backend used <gl>
[INFO ] GL: OpenGL version <OpenGL ES 2.0>
[INFO ] GL: OpenGL vendor <Broadcom>
[INFO ] GL: OpenGL renderer <VideoCore IV HW>
[INFO ] GL: OpenGL parsed version: 2, 0
[INFO ] GL: Shading version <OpenGL ES GLSL ES 1.00>
[INFO ] GL: Texture max size <2048>
[INFO ] GL: Texture max units <8>
[INFO ] Shader: fragment shader: <Compiled>
[INFO ] Shader: vertex shader: <Compiled>
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Clipboard: Provider: xclip(['clipboard_dbusklipper', 'clipboard_gtk3'] ignored)
[INFO ] CutBuffer: cut buffer support enabled
[INFO ] Text: Provider: sdl2
[INFO ] UserPrefs: Data Dir is: /home/pi/.config/racecapture
[INFO ] AppConfig: using user storage directory: /home/pi/.config/racecapture
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_ltor.png
[INFO ] OSC: using <multiprocessing> for socket
[INFO ] HIDInput: Read event from </dev/input/event3>
[INFO ] HIDInput: Set custom invert_y to 1
[INFO ] HIDInput: Set custom invert_x to 1
[INFO ] Base: Start application main loop
[INFO ] HIDMotionEvent: using <ADS7846 Touchscreen>
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS X position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS Y position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS pressure is 0 - 65535
[INFO ] GL: NPOT texture support is available
[INFO ] Main: Datastore Path:/home/pi/.config/racecapture/datastore.sq3
[INFO ] Main: initializing datastore...
[INFO ] RacecaptureApp: initializing rc comms with, conn type: Serial
[INFO ] RCPAPI: msg_rx_worker starting
[INFO ] RCPAPI: cmd_sequence_worker starting
[INFO ] RCPAPI: auto_detect_worker starting
[INFO ] DataStore: Applying db migrations: []
[INFO ] DataStore: db migrations complete
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] StatusPump: status_worker starting
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] DataBusPump: device supports streaming
[INFO ] DataBusPump: Sample Meta is stale, requesting meta
[INFO ] SessionRecorder: ChannelMeta changed - stop recording
[INFO ] SessionRecorder: starting new session
[WARNING] RCPAPI: Read message timeout waiting for capabilities
[WARNING] RCPAPI: POKE
[WARNING] RCPAPI: Read message timeout waiting for capabilities
[WARNING] RCPAPI: POKE
[WARNING] RCPAPI: Level 2 retry for (0) capabilities
[INFO ] DataStore: Created session with ID: 10
[WARNING] RCPAPI: Read message timeout waiting for capabilities
[WARNING] RCPAPI: POKE
[ERROR ] RCPAPI: Command sequence exception: caused by 'Port Closed'
[INFO ] SessionRecorder: session recorder worker starting
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 361, in cmd_sequence_worker
File "autosportlabs/racecapture/api/rcpapi.py", line 283, in recoverTimeout
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[WARNING] RCPAPI: Message rx worker exception: u'etry":{"rc":1}}' | No JSON object could be decoded
[ERROR ] Main: Error reading configuration: caused by 'Port Closed'
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DataBusPump: device supports streaming
[INFO ] RcpConfig: Config version 2.11.0 Loaded
[INFO ] TelemetryManager: Got new device id
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] SessionRecorder: queue backlog: 83
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] DataBusPump: device supports streaming
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[ERROR ] RCPAPI: sendCommand exception
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 174, in write_message
File "multiprocessing/queues.py", line 102, in put
Full
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] DataBusPump: device supports streaming
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[WARNING] SessionRecorder: dropping sample; queue full
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] DataBusPump: device supports streaming
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[WARNING] SessionRecorder: dropping sample; queue full
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[INFO ] StatusPump: status_worker exited
[INFO ] RCPAPI: msg_rx_worker exiting
[INFO ] RCPAPI: cmd_sequence_worker exiting
[INFO ] Base: Leaving application in progress...
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] Logger: Record log in /home/pi/.kivy/logs/kivy_17-09-04_0.txt
[INFO ] Image: Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO ] Kivy: v1.10.0
[INFO ] Python: v2.7.9 (default, Sep 17 2016, 20:55:23)
[GCC 4.9.2]
[INFO ] Factory: 194 symbols loaded
[INFO ] Window: Provider: egl_rpi
[INFO ] GL: Using the "OpenGL ES 2" graphics system
[INFO ] GL: Backend used <gl>
[INFO ] GL: OpenGL version <OpenGL ES 2.0>
[INFO ] GL: OpenGL vendor <Broadcom>
[INFO ] GL: OpenGL renderer <VideoCore IV HW>
[INFO ] GL: OpenGL parsed version: 2, 0
[INFO ] GL: Shading version <OpenGL ES GLSL ES 1.00>
[INFO ] GL: Texture max size <2048>
[INFO ] GL: Texture max units <8>
[INFO ] Shader: fragment shader: <Compiled>
[INFO ] Shader: vertex shader: <Compiled>
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Clipboard: Provider: xclip(['clipboard_dbusklipper', 'clipboard_gtk3'] ignored)
[INFO ] CutBuffer: cut buffer support enabled
[INFO ] Text: Provider: sdl2
[INFO ] UserPrefs: Data Dir is: /home/pi/.config/racecapture
[INFO ] AppConfig: using user storage directory: /home/pi/.config/racecapture
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_ltor.png
[INFO ] OSC: using <multiprocessing> for socket
[INFO ] HIDInput: Read event from </dev/input/event3>
[INFO ] HIDInput: Set custom invert_y to 1
[INFO ] HIDInput: Set custom invert_x to 1
[INFO ] Base: Start application main loop
[INFO ] HIDMotionEvent: using <ADS7846 Touchscreen>
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS X position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS Y position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS pressure is 0 - 65535
[INFO ] GL: NPOT texture support is available
[INFO ] Main: Datastore Path:/home/pi/.config/racecapture/datastore.sq3
[INFO ] Main: initializing datastore...
[INFO ] RacecaptureApp: initializing rc comms with, conn type: Serial
[INFO ] RCPAPI: msg_rx_worker starting
[INFO ] RCPAPI: cmd_sequence_worker starting
[INFO ] RCPAPI: auto_detect_worker starting
[INFO ] DataStore: Applying db migrations: []
[INFO ] DataStore: db migrations complete
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] StatusPump: status_worker starting
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] DataBusPump: device supports streaming
[INFO ] DataBusPump: Sample Meta is stale, requesting meta
[INFO ] SessionRecorder: ChannelMeta changed - stop recording
[INFO ] SessionRecorder: starting new session
[WARNING] RCPAPI: Read message timeout waiting for capabilities
[WARNING] RCPAPI: POKE
[WARNING] RCPAPI: Read message timeout waiting for capabilities
[WARNING] RCPAPI: POKE
[WARNING] RCPAPI: Level 2 retry for (0) capabilities
[INFO ] DataStore: Created session with ID: 10
[WARNING] RCPAPI: Read message timeout waiting for capabilities
[WARNING] RCPAPI: POKE
[ERROR ] RCPAPI: Command sequence exception: caused by 'Port Closed'
[INFO ] SessionRecorder: session recorder worker starting
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 361, in cmd_sequence_worker
File "autosportlabs/racecapture/api/rcpapi.py", line 283, in recoverTimeout
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[WARNING] RCPAPI: Message rx worker exception: u'etry":{"rc":1}}' | No JSON object could be decoded
[ERROR ] Main: Error reading configuration: caused by 'Port Closed'
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DataBusPump: device supports streaming
[INFO ] RcpConfig: Config version 2.11.0 Loaded
[INFO ] TelemetryManager: Got new device id
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] SessionRecorder: queue backlog: 83
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] DataBusPump: device supports streaming
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[ERROR ] RCPAPI: sendCommand exception
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 174, in write_message
File "multiprocessing/queues.py", line 102, in put
Full
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] DataBusPump: device supports streaming
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[WARNING] SessionRecorder: dropping sample; queue full
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[INFO ] DataBusPump: device supports streaming
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[WARNING] SessionRecorder: dropping sample; queue full
[INFO ] StatusPump: Already running
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] SessionRecorder: cancelling stop timer
[INFO ] DashboardView: Still near the same location where the user last cancelled track configuration. Not pestering again
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[WARNING] SessionRecorder: dropping sample; queue full
[INFO ] StatusPump: status_worker exited
[INFO ] RCPAPI: msg_rx_worker exiting
[INFO ] RCPAPI: cmd_sequence_worker exiting
[INFO ] Base: Leaving application in progress...
[ERROR ] RCPAPI: sendCommand exception caused by 'Port Closed'
[ERROR ] Traceback (most recent call last):
File "autosportlabs/racecapture/api/rcpapi.py", line 432, in sendCommand
File "autosportlabs/comms/comms.py", line 173, in write_message
PortNotOpenException: caused by 'Port Closed'
[INFO ] TelemetryManager: on_data_connected: False
[INFO ] SessionRecorder: scheduling session stop
Pi vs kindle fire
Hi Brent, what are the advantages and disadvantages of usin pi vs a kindle fire 7 with the android RaceCapture app for about $50. Thanks! Scott[/list]
Finally, got my 10.1 Waveshare touch screen to work! what I ended up doing was removing the "check for" other screens in the run_racecapture.sh file. then changed the .Kivy/config.ini to the following; (the invert & rotation is what got it right).
[input]
mouse = mouse
ads7846 = hidinput,/dev/input/event3,invert_y=1,rotation=270
I also added a touchring while I was debugging, which help see where the screen was recording a touch.
[module]
touchring = show_cursor=true
So, hope that helps someone else. Now I have crashing issues. I have updated the firmware in the MK2 and installed the latest RCP-Pi app. the app freezes and most times comes back to life and re-connects to the MK2. sometimes just freezes permanently. so I have to power cycle. I've attached a log, maybe you see something in it? I also noticed some of these errors are listed in the GitHub, so maybe your already working on fixes.
[INFO ] Logger: Record log in /home/pi/.kivy/logs/kivy_17-09-09_0.txt
[INFO ] Kivy: v1.10.0
[INFO ] Python: v2.7.9 (default, Sep 17 2016, 20:55:23)
[GCC 4.9.2]
[INFO ] Factory: 194 symbols loaded
[INFO ] Image: Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO ] Window: Provider: egl_rpi
[INFO ] GL: Using the "OpenGL ES 2" graphics system
[INFO ] GL: Backend used <gl>
[INFO ] GL: OpenGL version <OpenGL ES 2.0>
[INFO ] GL: OpenGL vendor <Broadcom>
[INFO ] GL: OpenGL renderer <VideoCore IV HW>
[INFO ] GL: OpenGL parsed version: 2, 0
[INFO ] GL: Shading version <OpenGL ES GLSL ES 1.00>
[INFO ] GL: Texture max size <2048>
[INFO ] GL: Texture max units <8>
[INFO ] Shader: fragment shader: <Compiled>
[INFO ] Shader: vertex shader: <Compiled>
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Clipboard: Provider: xclip(['clipboard_dbusklipper', 'clipboard_gtk3'] ignored)
[INFO ] CutBuffer: cut buffer support enabled
[INFO ] Text: Provider: sdl2
[INFO ] UserPrefs: Data Dir is: /home/pi/.config/racecapture
[INFO ] AppConfig: using user storage directory: /home/pi/.config/racecapture
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_ltor.png
[INFO ] OSC: using <multiprocessing> for socket
[INFO ] HIDInput: Read event from </dev/input/event3>
[INFO ] HIDInput: Set custom invert_y to 1
[INFO ] HIDInput: Set custom rotation to 270
[INFO ] Base: Start application main loop
[INFO ] HIDMotionEvent: using <ADS7846 Touchscreen>
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS X position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS Y position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS pressure is 0 - 65535
[INFO ] GL: NPOT texture support is available
[INFO ] Main: Datastore Path:/home/pi/.config/racecapture/datastore.sq3
[INFO ] Main: initializing datastore...
[INFO ] RacecaptureApp: initializing rc comms with, conn type: Serial
[INFO ] RCPAPI: msg_rx_worker starting
[INFO ] RCPAPI: cmd_sequence_worker starting
[INFO ] RCPAPI: auto_detect_worker starting
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] StatusPump: status_worker starting
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] DataBusPump: device supports streaming
[INFO ] DataBusPump: Sample Meta is stale, requesting meta
[INFO ] SessionRecorder: ChannelMeta changed - stop recording
[INFO ] SessionRecorder: starting new session
[CRITICAL] CrashHandler: Caught exception in Kivy loop: 'NoneType' object has no attribute 'cursor'
[CRITICAL] Traceback (most recent call last):
File "kivy/core/window/window_egl_rpi.py", line 90, in mainloop
File "kivy/core/window/window_egl_rpi.py", line 85, in _mainloop
File "kivy/base.py", line 339, in idle
File "kivy/clock.py", line 581, in tick
File "kivy/_clock.pyx", line 367, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7700)
File "kivy/_clock.pyx", line 397, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7577)
File "kivy/_clock.pyx", line 395, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7498)
File "kivy/_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:3490)
File "autosportlabs/racecapture/databus/databus.py", line 140, in notify_listeners
File "autosportlabs/racecapture/databus/databus.py", line 160, in notify_meta_listeners
File "autosportlabs/racecapture/data/sessionrecorder.py", line 265, in _on_meta
File "autosportlabs/racecapture/data/sessionrecorder.py", line 176, in _check_should_record
File "autosportlabs/racecapture/data/sessionrecorder.py", line 117, in start
File "autosportlabs/racecapture/data/sessionrecorder.py", line 188, in _create_session_name
File "autosportlabs/racecapture/datastore/datastore.py", line 1098, in get_sessions
AttributeError: 'NoneType' object has no attribute 'cursor'
[INFO ] SessionRecorder: starting new session
[CRITICAL] CrashHandler: Caught exception in Kivy loop: 'NoneType' object has no attribute 'cursor'
[CRITICAL] Traceback (most recent call last):
File "kivy/core/window/window_egl_rpi.py", line 90, in mainloop
File "kivy/core/window/window_egl_rpi.py", line 85, in _mainloop
File "kivy/base.py", line 339, in idle
File "kivy/clock.py", line 581, in tick
File "kivy/_clock.pyx", line 367, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7700)
File "kivy/_clock.pyx", line 397, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7577)
File "kivy/_clock.pyx", line 395, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7498)
File "kivy/_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:3490)
File "autosportlabs/racecapture/databus/databus.py", line 140, in notify_listeners
File "autosportlabs/racecapture/databus/databus.py", line 160, in notify_meta_listeners
File "autosportlabs/racecapture/data/sessionrecorder.py", line 265, in _on_meta
File "autosportlabs/racecapture/data/sessionrecorder.py", line 176, in _check_should_record
File "autosportlabs/racecapture/data/sessionrecorder.py", line 117, in start
File "autosportlabs/racecapture/data/sessionrecorder.py", line 188, in _create_session_name
File "autosportlabs/racecapture/datastore/datastore.py", line 1098, in get_sessions
AttributeError: 'NoneType' object has no attribute 'cursor'
[INFO ] SessionRecorder: starting new session
[CRITICAL] CrashHandler: Caught exception in Kivy loop: 'NoneType' object has no attribute 'cursor'
goes on and on the same from here until I shutdown.
[input]
mouse = mouse
ads7846 = hidinput,/dev/input/event3,invert_y=1,rotation=270
I also added a touchring while I was debugging, which help see where the screen was recording a touch.
[module]
touchring = show_cursor=true
So, hope that helps someone else. Now I have crashing issues. I have updated the firmware in the MK2 and installed the latest RCP-Pi app. the app freezes and most times comes back to life and re-connects to the MK2. sometimes just freezes permanently. so I have to power cycle. I've attached a log, maybe you see something in it? I also noticed some of these errors are listed in the GitHub, so maybe your already working on fixes.
[INFO ] Logger: Record log in /home/pi/.kivy/logs/kivy_17-09-09_0.txt
[INFO ] Kivy: v1.10.0
[INFO ] Python: v2.7.9 (default, Sep 17 2016, 20:55:23)
[GCC 4.9.2]
[INFO ] Factory: 194 symbols loaded
[INFO ] Image: Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO ] Window: Provider: egl_rpi
[INFO ] GL: Using the "OpenGL ES 2" graphics system
[INFO ] GL: Backend used <gl>
[INFO ] GL: OpenGL version <OpenGL ES 2.0>
[INFO ] GL: OpenGL vendor <Broadcom>
[INFO ] GL: OpenGL renderer <VideoCore IV HW>
[INFO ] GL: OpenGL parsed version: 2, 0
[INFO ] GL: Shading version <OpenGL ES GLSL ES 1.00>
[INFO ] GL: Texture max size <2048>
[INFO ] GL: Texture max units <8>
[INFO ] Shader: fragment shader: <Compiled>
[INFO ] Shader: vertex shader: <Compiled>
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Clipboard: Provider: xclip(['clipboard_dbusklipper', 'clipboard_gtk3'] ignored)
[INFO ] CutBuffer: cut buffer support enabled
[INFO ] Text: Provider: sdl2
[INFO ] UserPrefs: Data Dir is: /home/pi/.config/racecapture
[INFO ] AppConfig: using user storage directory: /home/pi/.config/racecapture
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_rtol.png
[ERROR ] Image: Error reading file installfix_garden_navigationdrawer/navigationdrawer_gradient_ltor.png
[INFO ] OSC: using <multiprocessing> for socket
[INFO ] HIDInput: Read event from </dev/input/event3>
[INFO ] HIDInput: Set custom invert_y to 1
[INFO ] HIDInput: Set custom rotation to 270
[INFO ] Base: Start application main loop
[INFO ] HIDMotionEvent: using <ADS7846 Touchscreen>
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS X position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS Y position is 0 - 4095
[INFO ] HIDMotionEvent: <ADS7846 Touchscreen> range ABS pressure is 0 - 65535
[INFO ] GL: NPOT texture support is available
[INFO ] Main: Datastore Path:/home/pi/.config/racecapture/datastore.sq3
[INFO ] Main: initializing datastore...
[INFO ] RacecaptureApp: initializing rc comms with, conn type: Serial
[INFO ] RCPAPI: msg_rx_worker starting
[INFO ] RCPAPI: cmd_sequence_worker starting
[INFO ] RCPAPI: auto_detect_worker starting
[INFO ] RCPAPI: trying last known device first: /dev/ttyACM0
[INFO ] DataBusPump: Checking for streaming API support
[INFO ] TelemetryManager: on_data_connected: True
[INFO ] StatusPump: status_worker starting
[INFO ] TelemetryManager: start() telemetry_enabled: False cell_enabled: False
[WARNING] TelemetryManager: self._should_connect is false, not connecting
[INFO ] DataBusPump: device supports streaming
[INFO ] DataBusPump: Sample Meta is stale, requesting meta
[INFO ] SessionRecorder: ChannelMeta changed - stop recording
[INFO ] SessionRecorder: starting new session
[CRITICAL] CrashHandler: Caught exception in Kivy loop: 'NoneType' object has no attribute 'cursor'
[CRITICAL] Traceback (most recent call last):
File "kivy/core/window/window_egl_rpi.py", line 90, in mainloop
File "kivy/core/window/window_egl_rpi.py", line 85, in _mainloop
File "kivy/base.py", line 339, in idle
File "kivy/clock.py", line 581, in tick
File "kivy/_clock.pyx", line 367, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7700)
File "kivy/_clock.pyx", line 397, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7577)
File "kivy/_clock.pyx", line 395, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7498)
File "kivy/_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:3490)
File "autosportlabs/racecapture/databus/databus.py", line 140, in notify_listeners
File "autosportlabs/racecapture/databus/databus.py", line 160, in notify_meta_listeners
File "autosportlabs/racecapture/data/sessionrecorder.py", line 265, in _on_meta
File "autosportlabs/racecapture/data/sessionrecorder.py", line 176, in _check_should_record
File "autosportlabs/racecapture/data/sessionrecorder.py", line 117, in start
File "autosportlabs/racecapture/data/sessionrecorder.py", line 188, in _create_session_name
File "autosportlabs/racecapture/datastore/datastore.py", line 1098, in get_sessions
AttributeError: 'NoneType' object has no attribute 'cursor'
[INFO ] SessionRecorder: starting new session
[CRITICAL] CrashHandler: Caught exception in Kivy loop: 'NoneType' object has no attribute 'cursor'
[CRITICAL] Traceback (most recent call last):
File "kivy/core/window/window_egl_rpi.py", line 90, in mainloop
File "kivy/core/window/window_egl_rpi.py", line 85, in _mainloop
File "kivy/base.py", line 339, in idle
File "kivy/clock.py", line 581, in tick
File "kivy/_clock.pyx", line 367, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7700)
File "kivy/_clock.pyx", line 397, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7577)
File "kivy/_clock.pyx", line 395, in kivy._clock.CyClockBase._process_events (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:7498)
File "kivy/_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (/tmp/pip-build-pPcuz2/kivy/kivy/_clock.c:3490)
File "autosportlabs/racecapture/databus/databus.py", line 140, in notify_listeners
File "autosportlabs/racecapture/databus/databus.py", line 160, in notify_meta_listeners
File "autosportlabs/racecapture/data/sessionrecorder.py", line 265, in _on_meta
File "autosportlabs/racecapture/data/sessionrecorder.py", line 176, in _check_should_record
File "autosportlabs/racecapture/data/sessionrecorder.py", line 117, in start
File "autosportlabs/racecapture/data/sessionrecorder.py", line 188, in _create_session_name
File "autosportlabs/racecapture/datastore/datastore.py", line 1098, in get_sessions
AttributeError: 'NoneType' object has no attribute 'cursor'
[INFO ] SessionRecorder: starting new session
[CRITICAL] CrashHandler: Caught exception in Kivy loop: 'NoneType' object has no attribute 'cursor'
goes on and on the same from here until I shutdown.
Brent, is there any way to show mouse cursor in the App? Perhaps some initialization config. I'm doing some tests with Raspbian full and VNC, but the App in only shown in the HDMI screen, not in VNC viewer. However, the mouse is working in the APP, but I have to guess his position.
Edit: I managed to make the mouse cursor visible by adding a "cursor = 1" line to kivy config.ini file. It works, but sometimes I lose it, as it is not limited by screen boundaries. I need to check if it will work on a Lite installation as well. Other than that, it seems to be perfect.
Edit: I managed to make the mouse cursor visible by adding a "cursor = 1" line to kivy config.ini file. It works, but sometimes I lose it, as it is not limited by screen boundaries. I need to check if it will work on a Lite installation as well. Other than that, it seems to be perfect.
--Paulo
There is a way to do it via editing the Kivy settings - you will have to dig in and research the docs to set the value.
However, we did not enable it because we have found it causes intermittent app freezes / lockups that seems to be a bug in the current framework. No word on when that might be resolved.
However, we did not enable it because we have found it causes intermittent app freezes / lockups that seems to be a bug in the current framework. No word on when that might be resolved.
Ok, I will be able to do more tests on the weekend. So far, it is stable when running the app not connected to RCP after I included the "cursor = 1" line in Kivy's config.ini file. I noticed it freezes if I click the mouse buttons several times in a short interval, but it doesn't bother me at this time. Mouse responsiveness is good enough.
I think it is a option for those who already have a headunit or screen with HMDI or RCA input and don't want (or don't have space) to add another screen to the car.
I may use the mouse for initial settings only and the hide it back again and use keyboard to navigate through dash screens, not sure yet. A shortcut to exit the app would be nice if I need to reactivate mouse cursor, though. I started another thread about it.
And it works also in Raspbian Lite version.
I think it is a option for those who already have a headunit or screen with HMDI or RCA input and don't want (or don't have space) to add another screen to the car.
I may use the mouse for initial settings only and the hide it back again and use keyboard to navigate through dash screens, not sure yet. A shortcut to exit the app would be nice if I need to reactivate mouse cursor, though. I started another thread about it.
And it works also in Raspbian Lite version.
--Paulo
Brent, I finally have my "unauthorized" touch screen working with a full stretch img. for some reason I had problems with the RC app crashing. but after 7 image redo's it now appears to be stable. (I do have many errors in the log, but it works just fine)
so now onto car installation, my question is concerning shutting the Pi/RC app off. I need to keep it simple for the driver. so I was going to have a "Dash" on toggle connecting my 12v to 5v power supply. for shutting it off, I was thinking using a momentary switch with the code below. question is can I/ should I add something to this code to exit the RC app, then power off the PI? or will powering off the PI with the app running be ok?
this code seemed good because pins 39 & 40 are easily accessable from the pi. Dave
#!/bin/python
import RPi.GPIO as GPIO
import os
gpio_pin_number=40
GPIO.setmode(GPIO.BCM)
GPIO.setup(40, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
GPIO.wait_for_edge(gpio_pin_number, GPIO.FALLING)
os.system("sudo shutdown -h now")
except:
pass
GPIO.cleanup()
so now onto car installation, my question is concerning shutting the Pi/RC app off. I need to keep it simple for the driver. so I was going to have a "Dash" on toggle connecting my 12v to 5v power supply. for shutting it off, I was thinking using a momentary switch with the code below. question is can I/ should I add something to this code to exit the RC app, then power off the PI? or will powering off the PI with the app running be ok?
this code seemed good because pins 39 & 40 are easily accessable from the pi. Dave
#!/bin/python
import RPi.GPIO as GPIO
import os
gpio_pin_number=40
GPIO.setmode(GPIO.BCM)
GPIO.setup(40, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
GPIO.wait_for_edge(gpio_pin_number, GPIO.FALLING)
os.system("sudo shutdown -h now")
except:
pass
GPIO.cleanup()