User:Nukama
From Openmoko
(Difference between revisions)
(→A-GPS) |
|||
Line 77: | Line 77: | ||
===== A-GPS ===== | ===== A-GPS ===== | ||
+ | agps.sh | ||
+ | <pre> | ||
+ | agps-alm.py > /dev/ttySAC1 | ||
+ | </pre> | ||
+ | |||
agps-alm.py | agps-alm.py | ||
<pre> | <pre> |
Revision as of 00:31, 12 May 2009
Bicycle
Dynamo powered openmoko (and other USB-Devices/Host) using the frequency/voltage of the dynamo to gather information about speed and distance.
Wishlist for this USB-Charger:
- 5V, 500-1500mA output (through diodes or MOSFET)
- Voltage, Frequency (should be dynamohub independable)
- USB-Device (maybe with USBprog)
nice to
- 3d compass, altimeter, thermometer (with information of distance to map tunnels, dense forest, ...)
- buttons for turning lights (on lowpower/on highpower/off), setting waypoints/audionotes, easy navigation of openmoko (scrolling/enter)
USB-Networking on Ubuntu 9.04
/etc/network/freerunner (chmod -x)
#!/bin/sh # # configures the freerunner for internet # # DEVICE=usb0 IPADDR=192.168.0.200 REMOTE_IPADDR=192.168.0.202 NETMASK=255.255.255.0 # get first ip for dns DNSIP=$(awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf) case "$1" in start) iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP if [ "$(cat /proc/sys/net/ipv4/ip_forward)" = "0" ]; then echo "temoprarely allow ip_forward for openmoko" > /var/run/openmoko.ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward fi ;; stop) iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP if [ -f /var/run/openmoko.ip_forward ]; then rm /var/run/openmoko.ip_forward echo 0 > /proc/sys/net/ipv4/ip_forward fi ;; esac
/etc/udev/rules.d/80-freerunner.rules
# This file causes programs to be run on device insertion. # See udev(7) for syntax. # rule to assign a fixed mac address specified in / KERNEL=="usb[0-9]*", DRIVERS=="cdc_ether", ACTION=="add", RUN+="/usr/local/sbin/freerunner-usb-add.sh %k"
/usr/local/sbin/freerunner-usb-add.sh (chmod -x)
#!/bin/sh ( ip address add 192.168.0.200/26 netmask dev usb0 > /dev/null ip link set usb0 up > /dev/null /etc/network/freerunner start ) & exit 0
A-GPS
agps.sh
agps-alm.py > /dev/ttySAC1
agps-alm.py
#!/usr/bin/python # # ublox AssistNow Online almanac downloader for Neo FreeRunner # # v0.1 # # Wilfried Klaebe <wk-openmoko@chaos.in-kiel.de> # # Usage: # # agps-alm.py > /dev/ttySAC1 # import sys import socket import re user='your@mail.address' pwd='pwdfromublox' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('agps.u-blox.com',46434)) s.send('user='+user+';pwd='+pwd+';cmd=alm;lat=0;lon=0;pacc=40000000;\n') buf = s.recv(4096) while 1: b = s.recv(4096) if not b: break buf += b h = {} while 1: (l,s,buf) = buf.partition('\n') l = l.rstrip('\r\n') # sys.stderr.write(l+'\n') # if (l == ""): if h.has_key('content-length') and h['content-length'].isdigit() and h.has_key('content-type') and h['content-type'] == 'application/ubx': sys.stdout.write(buf[0:int(h['content-length'])]) sys.exit(0) # m = re.search('\\A(.+): (.+)\\Z',l) if m: h[m.group(1).lower()] = m.group(2).lower();