======Plans for Raspberry Pi In Car Project====== Original concept notes: MiniCarComputer Pi Pinouts http://pinout.xyz/ =====Progress/Timeline ===== - Found [[https://goo.gl/photos/Vkxzb1F7429FF5YAA|box from neighbour's electrical junk]] - Found spare USB Hub and pulled cover off - Got to play with my dremel... - RPi 1B and Powerboard Board, battery [[https://goo.gl/photos/557hZXdP5od1e4TA7|mounted in the box]] - decided to use my RPi3 instead of pi1. - got a spare USB memory stick to use - booted up raspbian console via HDMI and set up networking & OS updates - Basic i/o [[https://goo.gl/photos/EBsePoqLMcXUVTai9 connected and tested]] - Ordered a [[https://nicegear.co.nz/raspberry-pi/high-precision-real-time-clock-for-raspberry-pi/|RTC]] and [[https://nicegear.co.nz/electronics-gear/adafruit-i2s-3w-class-d-amplifier-breakout-max98357a/|i2S]] amplifier module - Tested Pi power board functionality... - Decided on [[https://goo.gl/photos/yKk6YVA8tEDinBCm8|circuitry for triggers and overrides]] - Obtained additional components, found some swiches, diodes etc - Received RTC and Amp module - Moved the GPIO pins that were planned as the interfered with placing the RTC - Got the RTC working - Scripted the first part of bootup to set the GPIO - Put script in /etc/rc.local - Plugged in the GPS mouse - spent ages getting gpsd to work - installed ntp and got time set with GPS - got gpspipe to dump a logfile continually - got gpspipe to start logging on boot up with /etc/rc.local - played with a [[http://www.ebay.com/itm/For-Smart-Home-5V-USB-Relay-2-Channel-Programmable-Computer-Control-/190950124351|USB relay]] (Mobius camera switching?) - wired the box up with switches for ACC and Trigger inputs etc (ref [[https://goo.gl/photos/NFBVQ3dewDmL2xA17|wiring diagram]]) - Got the i2s sound module working - Installed sox, flite etc and KMWs IVR script, tester IVR - Looks [[https://goo.gl/photos/2JmdqgAG8XYC6X2s5|like this now]] =====Network Notes===== On home network, Static DHCP assigned, hostname koala.foxlan 192.168.1.105 At Paul's, 192.168.1.205 =====Hardware Used===== Project Box Raspberry Pi (v3) PMB Power Board http://rcbeacon.com/blog/?page_id=3946 ++WIFI usb module++ (Not needed with Pi3) 1.2AH SLA Battery ====Hardware Additional Planned==== Camera: Pi Camera, Pi Camera HDMI Extender boards, HDMI Cable GPS: GPS USB Module (puck) Engine Logging: ODBII Bluetooth adaptor, Bluetooth adapter ====Attached Devices==== Direct USB: USB Memory Stick Direct USB: USB Hub USB HUB: Keyboard (then numeric keyboard... or maybe bluetooth?) ++USB HUB: Wifi Dongle++ (Not needed with Pi3) USB HUB: GPS Device ++USB HUB: Bluetooth Dongle++ (Not needed with Pi3) USB HUB: Mobuis Dashcam USB HUB: USB Hard Drive? Pi Cam NFC Shield =====File system read/write===== Need a read only fole system os some sort to allow power off at any stage, and improve lifetime of SD car etc in car environment http://blog.pi3g.com/2014/04/make-raspbian-system-read-only/ http://kurokesu.com/main/2015/12/30/raspberry-pi-setup-for-power-safe-operation/ Set up UnionFS =====Menu Feedback and Selection===== Karl's BASH menuing https://github.com/KarlMW/bash-ivr =====Raspberry Pi GPIO general info and scripts===== GPIO Info http://raspberry.io/projects/view/reading-and-writing-from-gpio-ports-from-python/ File System GPIO activation https://sites.google.com/site/semilleroadt/raspberry-pi-tutorials/gpio WiringPi c Lib http://wiringpi.com/ GPIO info from raspberry pi org https://www.raspberrypi.org/documentation/usage/gpio/ GPIO Benchmarks http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/ inputs and outputs, file method https://www.element14.com/community/docs/DOC-78315/l/raspberry-pi-gpio-explained =====i/o Setup===== Using this reference https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md and https://sites.google.com/site/semilleroadt/raspberry-pi-tutorials/gpio ++Used a 4 pin floppy disk connector on physical pins 7,9,11,13 which equates to IO4,GND,IO17,IO27. The connector has fly leads of yellow (io4), black (gnd), black (IO17), red (IO27). The black was useful as a gnd for first testing IO but both black lead was then snipped.++ Changed to individual pins - GPIO 27 and 17 **GPIO Port 17 for HOLD** (setting as 1 sets GPIO 17 to 3.3v) ##sudo su echo 17 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio17/direction echo 1 > /sys/class/gpio/gpio17/value## notes, this is obviously volatile... on reboot GPIO17 ++is high++ appears high, but is actually floating. It appears to drop low when direction is set to 'out' **GPIO Port 27 for ACC IN** (Set as 3.3V when power is plugged in to the ACC+12V) ##sudo su echo 27 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio27/direction cat /sys/class/gpio/gpio27/value## =====Time and Date===== Decided to get a RTC as may not always have GPS and/or network. Wrong log times are annoying. https://nicegear.co.nz/raspberry-pi/high-precision-real-time-clock-for-raspberry-pi/ Can get similar for <$2 from china but this will do Need to check pinouts - doesn't piggyback so need to make sure we don't need the same i/o pins. Info on how to use https://nicegear.co.nz/blog/using-a-ds3231-i2c-real-time-clock-rtc-with-a-raspberry-pi-updated-for-jessie/ https://thepihut.com/blogs/raspberry-pi-tutorials/17209332-adding-a-real-time-clock-to-your-raspberry-pi i2c device so when plugged in - run this to see if it is there sudo i2cdetect -y 1 set up ntp to set the RTC (I did that with network and GPS time) Run ##sudo hwclock -w## to write the system time to the RTC board. then will need to add the RTC kernel module to the file /etc/modules so it is loaded when the Pi boots. ##sudo nano /etc/modules## add rtc-ds1307 at the end =====GPS Setup===== http://raspberrypi.stackexchange.com/questions/547/how-do-i-attach-a-gps-receiver Just needed to install gpsd and a bunch of stuff that comes with it ##sudo apt-get install gpsd gpsd-clients python-gps## test status with ##cgps -s## http://raspberrypi.stackexchange.com/questions/28483/cgps-gps-timeout Edit /etc/default/gpsd ## # Default settings for the gpsd init script and the hotplug wrapper. # Start the gpsd daemon automatically at boot time START_DAEMON="true" # Use USB hotplugging to add new USB devices automatically to the daemon USBAUTO="true" # Devices gpsd should collect to at boot time. # They need to be read/writeable, either by user gpsd or the group dialout. DEVICES="/dev/ttyUSB0" # Other options you want to pass to gpsd GPSD_OPTIONS="-F /var/run/gpsd.socket" ## **Possible fix needed?** ##Note if you're using the Raspbian Jessie or later release you'll need to disable a systemd (system management daemons) service that gpsd installs. This service has systemd listen on a local socket and run gpsd when clients connect to it, however it will also interfere with other gpsd instances that are manually run (like in this guide). You will need to disable the gpsd systemd service by running the following commands: sudo systemctl stop gpsd.socket sudo systemctl disable gpsd.socket Should you ever want to enable the default gpsd systemd service you can run these commands to restore it (but remember the rest of the steps in this guide won't work):## ## sudo killall gpsd sudo systemctl enable gpsd.socket sudo systemctl start gpsd.socket sudo cgps -s ## then modify ntp to set system time based on ntp https://blog.retep.org/2012/06/18/getting-gps-to-work-on-a-raspberry-pi/ Next you need to edit the file: /etc/ntp.conf and add a few lines to it defining the GPS. This can be either before or after the existing lines beginning with server: # gps ntp server 127.127.28.0 minpoll 4 fudge 127.127.28.0 time1 0.183 refid NMEA server 127.127.28.1 minpoll 4 prefer fudge 127.127.28.1 refid PPS then restart ntp ##pi@raspberrypi:~$ sudo service ntp restart## =====USB Relay===== Used one of these with a USBA cable http://www.ebay.com/itm/For-Smart-Home-5V-USB-Relay-2-Channel-Programmable-Computer-Control-/190950124351 No HID drivers in raspberry pi so need to build them https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=77538 http://matthewcmcmillan.blogspot.co.nz/2013/03/compiling-libhid-for-raspbian-linux-on.html http://www.signal11.us/oss/hidapi/ ##If you've installed your own libraries in /usr/local/lib have you run sudo ldconfig after doing that.## sudo ./usbrelay 2>/dev/null OUGOH_1=1 OUGOH_2=1 $ sudo ./usbrelay PSUIS_2=0 $ sudo ./usbrelay PSUIS_2=1 PSUIS_1=0 $ sudo ./usbrelay PSUIS_2=0 PSUIS_1=1 0U70M_1=0 0U70M_2=1 Software for Linux & Windows that controls these relay modules visually Denkovi Relay Manager (DRM) http://denkovi.com/drm-software =====Audio Output===== HF: Sound output of some sort to a small speaker (I2S?), also 3.5mm audio to car audio input. Hardware switch to turn small speaker off (for music play etc) Ordered one of these... can get cheaper/similar but this should do https://nicegear.co.nz/electronics-gear/adafruit-i2s-3w-class-d-amplifier-breakout-max98357a/ ...need i2S pinouts for Pi3 Notes on this unit https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage Maybe need this? https://support.hifiberry.com/hc/en-us/articles/205377202-Adding-software-volume-control =====ODB2 Engine Logging===== http://www.cowfishstudios.com/blog/obd-pi-raspberry-pi-displaying-car-diagnostics-obd-ii-data-on-an-aftermarket-head-unit =====GPS Logging===== DiscussionsOnGPSLoggingInCar http://hackaday.com/2014/08/14/a-raspberry-pi-helmet-cam-with-gps-logging/ =====Pi Camera Snapshots and Video===== Pi Cam getting started https://www.raspberrypi.org/learning/getting-started-with-picamera/ Pi Cam basics https://thepihut.com/blogs/raspberry-pi-tutorials/16021420-how-to-install-use-the-raspberry-pi-camera More Pi Camera & Python info http://www.makeuseof.com/tag/raspberry-pi-camera-module/ =====Dashcam Video Store===== - Connect dashcam via usb to pi, remove files from dashcam when stationary... upload to server when in wifi range =====Music Server===== - MPD server - sync of music when in wifi range =====Navigation===== Some sort of audio only navigation... i.e. select preset from menu, audio navigation? http://www.gpsdrive.de/features.shtml Other GPS apps: http://tuxmobil.org/linux_gps_navigation_applications.html Getting a json of the current street location http://stackoverflow.com/questions/6582479/finding-nearest-street-given-a-lat-long-location http://maps.googleapis.com/maps/api/geocode/json?latlng=-36.91537505,174.927379794&sensor=true_or_false =====Other Useful Scripts & Links===== Maybe a check for wifi and restarting if needed https://paste.k3a.me/view/449a6f1c reverse ssh and other useful stuff http://k3a.me/how-to-make-raspberrypi-truly-read-only-reliable-and-trouble-free/ {{lastedit show="3"}} -- CategoryHowTos CategoryRaspberryPi CategoryVehicles CategoryLinux