kylegordon / cardisplay

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

USB GPS reciever always present at /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0
USB LCD display always present at /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

LICENCE
-------
GPL3, Kyle Gordon kyle@lodge.glasgownet.com

NETWORK
-------

Static address on eth0:1 - 192.168.1.240, netmask 255.255.255.0
DHCP on eth0

REQUIREMENTS
------------
pylcd
python-pip
python-gps
python-dateutil
python-ftdi
curl
python-bluez
python-serial

INSTALLING LCDPROC
------------------
sudo apt-get install python-pip
sudo pip install lcdproc

CONFIGURE LCDPROC
-----------------
Ensure the following is in the [Server] section
ServerScreen=no
AutoRotate=no

INSTALLING CARTRACKER
---------------------
Copy it into somewhere sensible. ie /usr/local/cartracker/
Owned as the user that will be providing the schedule SVN pulls
Take the cartracker.cfg.example file and edit to suit, then save as cartracker.cfg
Copy cardisplay.service to /etc/systemd/system/, run systemctl daemon-reload and then systemctl start cardisplay.service

GPSD
----
Make sure GPSD is installed and running.
You probably want to ensure at the very least START_DAEMON is set to true in /etc/default/gpsd (on Debian systems)
Also in /etc/default/gpsd USBAUTO has been known to work too... although this may interfere with LCD on USB
Included /dev/serial/by-path/pci-0000:00:0a.1-usb-0:1.2:1.0-port0 in the DEVICES parameters. Theres's a 64 character limit here, so /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 fails, sadly

On the Bifferboard Debian install GPSD dropped privs to nobody as expected, but was then unable to read /dev/ttyUSB* even though they were mode 777
Compiling gpsd-3.3 caused an internal error crash when run, but 2.95 works fine. 2.95 was configured with ./configure --enable-gpsd-user=root
The /etc/init.d/gpsd script and /etc/default/gpsd was taken from a working debian install, and modified to suit the location of the gpsd binaries
The /etc/default/gpsd script was taken from a working debian install, and modified as above

ONBOARD TIME
------------
The board has no RTC, so an external time source must be provided. GPS acts as a stratum 0 source, so can be fed through to GPSD for Stratum 1 clients.
Use the -n switch to update the system clock even when no clients are connected - http://gpsd.berlios.de/gpsd.html

INSTALLING BLUETOOTH & PAIRING UP
---------------------------------
apt-get install bluetooth python-gobject python-dbus
Find the device with 'hcitool scan'
In a separate terminal, start a simple passkey agent
/usr/share/doc/bluez/examples/simple-agent
Open a new terminal, and pair with the device with
hcitool cc 00:21:BA:DB:32:19 ; hcitool auth 00:21:BA:DB:32:19
Simple-agent will now be prompting for a PIN. Enter a PIN, and then enter it on the phone when prompted.
All being well, hcitool auth won't fail with i/o error
Devices are now paired

SETTING UP PAND NETWORKING
--------------------------
modprobe bnep
edit /etc/default/bluetooth
change PAND_ENABLED=0 to PAND_ENABLED=1

=======
Need ncurses.h for curses lcdproc driver

-----------------------------
Related notes, bookmarks, etc

Various Python apps, including Bluetooth detection and Planet.osm location
http://gagravarr.org/code/

IMPROVEMENTS
------------

A journey log that can be generated after 10 minutes of no movement. Include data such as start time & location, end time & location, distance travelled, average speed, and maybe attach the GPX file.
Cartracker could also keep track of maintenance intervals, tasks needing done, etc. Send out email when service is required, UJs need greased, etc
USB Accelerometer to measure road smoothness averaged over 50m segments
Use the Wireless RS232 for rudimentary geofencing?
Use DLP-IO8G coupled to a ACS712ELC-30A (http://www.ebay.co.uk/itm/290645654975) for current sensing
RED-TMC support? http://windytan.blogspot.fi/2013/05/a-determined-hacker-decrypts-rds-tmc.html?r44b=no

About


Languages

Language:Python 92.9%Language:Shell 7.1%