# HG changeset patch # User Christophe Lincoln # Date 1399725090 -7200 # Node ID 1bf7d711c88d3c19541f8edc07f0158e9e841fd0 # Parent d45f922abf21a04b616399aa3485fb829bbcdac5 Add raspicomm utility for RaspiComm board support diff -r d45f922abf21 -r 1bf7d711c88d rpi/cgi-adm/plugins/rpi_gpio/rpi_gpio.cgi --- a/rpi/cgi-adm/plugins/rpi_gpio/rpi_gpio.cgi Thu May 08 19:03:10 2014 +0200 +++ b/rpi/cgi-adm/plugins/rpi_gpio/rpi_gpio.cgi Sat May 10 14:31:30 2014 +0200 @@ -69,7 +69,7 @@

Export GPIO pin

EOT -for pin in 0 1 4 7 8 9 10 11 14 15 17 18 21 22 23 24 25 +for pin in 0 1 4 7 8 9 10 11 14 15 17 18 21 22 23 24 25 27 do echo -n "${pin} " done diff -r d45f922abf21 -r 1bf7d711c88d rpi/raspicomm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rpi/raspicomm Sat May 10 14:31:30 2014 +0200 @@ -0,0 +1,109 @@ +#!/bin/sh +# +# rapicomm: A tiny utility to play with RaspiComm board and SliTaz +# It can be used to initialize the board from cmdline or at boot time. +# RaspiComm can also be used to run a testsuite to check the board. +# Read the official RaspiComm user manual to found the GPIO pins map. +# the utility is compatibel with Busybox Ash and sould be usable on +# any GNU/Linux OS. +# +# (C) 2014 SliTaz Raspberry Pi - BSD License +# AUTHORS: Christophe Lincoln +# +. /lib/libtaz.sh +check_root + +gpio="/sys/class/gpio" + +# +# TODO: RS-232 serial port + RS-485 motors control +# + +# RTC initialization +init_rtc() { + i2c="/sys/class/i2c-adapter/i2c-1" + new_device="$i2c/new_device" + if [ ! -d "$i2c/1-0068" ]; then + echo -n "Configuring real time clock..." + echo ds1307 0x68 > ${new_device}; status + fi + hwclock --hctosys +} + +# Usage: read_pin_value pinNB +read_pin_value() { + local pin="$1" + while true; do + value=$(cat ${gpio}/gpio${pin}/value) + usleep 500000 + if [ "$value" == "1" ]; then + status && break + fi + done +} + +load_modules() { + modprobe i2c-bcm2708 + modprobe i2c-dev +} + +case "$1" in + init) + # Initialize all componments + colorize 35 "Initializing RaspiComm board..." + load_modules + + # Real Time Clock + init_rtc + + # Joystick gpio pins + echo -n "Activing the joystick..." + for pi in 4 22 23 24 25 + do + echo ${pi} > ${gpio}/export + echo in > ${gpio}/gpio${pi}/direction + done; status + + # Output LEDs + echo -n "Configuring LEDs..." + for pi in 18 27 + do + echo ${pi} > ${gpio}/export + echo out > ${gpio}/gpio${pi}/direction + done; status ;; + + init-rtc) + # Init only the RTC: boot time alternative to init + load_modules + init_rtc ;; + + testsuite) + colorize 35 "Testing RaspiComm board..." + + # Clock + echo -n "Hardware clock: "; hwclock -r + + # LEDs + echo -n "Turning on LED1..." + echo 1 > ${gpio}/gpio18/value; status + sleep 2 + echo -n "Turning on LED2..." + echo 1 > ${gpio}/gpio27/value; status + sleep 2 + echo -n "Turning off LED1..." + echo 0 > ${gpio}/gpio18/value; status + sleep 2 + echo -n "Turning off LED2..." + echo 0 > ${gpio}/gpio27/value; status + + # Joystick + echo -n "Move joystick left (towards audio) " + read_pin_value 24 + echo -n "Move joystick top (towards usb) " + read_pin_value 25 ;; + + *) + echo "Usage: $(basename $0) [init|init-rtc|testsuite]" ;; + +esac +exit 0 diff -r d45f922abf21 -r 1bf7d711c88d sat-rpi --- a/sat-rpi Thu May 08 19:03:10 2014 +0200 +++ b/sat-rpi Sat May 10 14:31:30 2014 +0200 @@ -175,7 +175,7 @@ fi # TazBerry, Piboot, Pileds, ... - for tool in tazberry piboot pileds + for tool in tazberry piboot pileds raspicomm do echo -n "Copying utility: $tool" cp -f ${rpi}/${tool} ${rootfs}/usr/sbin