Raspberry Pi support - enables a hard-wired, dedicated dash

Discussion on the RaceCapture App - Windows, Android, OSX and Linux.

Moderators: JeffC, stieg

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post by brentp »

Thanks for the update - glad it's working. So, you're saying the latest build is not working? Would you be able to test it again as an A:B comparison?

I can double check on my end, as well.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

PS14
Posts: 97
Joined: Fri Feb 12, 2016 11:27 pm
Location: NY

Post by PS14 »

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

sirwin71
Posts: 20
Joined: Sun May 21, 2017 6:18 pm

Pi vs kindle fire

Post by sirwin71 »

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]

PS14
Posts: 97
Joined: Fri Feb 12, 2016 11:27 pm
Location: NY

Post by PS14 »

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.

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post by brentp »

Nice job!

Watch out for the touchring, If you see the app lock up unexpectedly, it is likely caused by that.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

psfp
Posts: 49
Joined: Mon Aug 21, 2017 10:40 pm
Location: DF - Brazil

Post by psfp »

Guys, I have zero knowledge on linux/raspberry pi stuff. I managed to install Racecapture on a fresh Rasbian Stretch Lite image, using wifi, but I can't use a mouse to control the app. I'm not using a touchscreen, but regular keyboard and mouse. Can anyone help me?
--Paulo

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post by brentp »

Hi,

It's definitely designed to work with touch screens (the official Rpi display). We haven't designed or tried to get it to work with a mouse input. It may be possible with some research on the Kivy input provider, but we haven't tested or researched it.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

psfp
Posts: 49
Joined: Mon Aug 21, 2017 10:40 pm
Location: DF - Brazil

Post by psfp »

Hi Brent,
Well, I didn't realize that. The idea was to use my current headunit to display the Racecapture info through the HDMI port. I can do that with my cellphone output, but there is some lag from wireless connection. Does it mean there is no way to navigate using the keyboard only?
--Paulo

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post by brentp »

You can do some things with the keyboard. You can use the arrow keys to navigate dashboard pages left and right, and "ESC" exits out from screens.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

psfp
Posts: 49
Joined: Mon Aug 21, 2017 10:40 pm
Location: DF - Brazil

Post by psfp »

Alright, so I have to figure out how to do the initial setup, including gauge settings, etc.
--Paulo

psfp
Posts: 49
Joined: Mon Aug 21, 2017 10:40 pm
Location: DF - Brazil

Post by psfp »

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.
--Paulo

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post by brentp »

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.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

psfp
Posts: 49
Joined: Mon Aug 21, 2017 10:40 pm
Location: DF - Brazil

Post by psfp »

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.
--Paulo

PS14
Posts: 97
Joined: Fri Feb 12, 2016 11:27 pm
Location: NY

Post by PS14 »

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()

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post by brentp »

Awesome, well done figuring that out! What was "unauthorized" about the screen, did you get it from a unrepeatable source?

You should be able to shutdown the app without any concern like you've described.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

Post Reply