Well, a sort of blog - I'm changing this as I find things as well as appending to the bottom...
See also Vancouver Mobile Internet Blog
February 2008
Specifications
February 21
February 23 ApplicationsOut of the box, the N810 comes with the following applications:
Command lineCommands run as a user "user", there is no suid bit on things like ping and chmod, and the root account is locked. This means you can't ping anything (ping requires root privilege), even though the binary is installed. There are a lot of Gnu/Linux tools, including:
KeyboardThe N810 ships with handwriting recognition and stylus input turned off. If you turn on stylus input, tapping in a text box or at a command line prompt brings up a virtual keyboard, providing the the physical keyboard is closed. Several critical keys are missing from both the physical and virtual keyboards, including ESC (used in vi) and TAB (for tab-completion). Fortunately, there is a soft toolbar loaded with ESC, TAB, Ctrl, PgUp and PgDn. I added Up, Down, Left and Right, used for command-line editing if the physical keyboard with its joystick ring is closed. Also KP_Enter to do (up, enter) without losing half the display to the touch keyboard.Getting RootThe application manager lets you install packages without having root, but if you want to write shell or Perl scripts, or install programs which aren't in a package, you need to get root (because of the lack of suid, you can't even do "chmod +x" to make a script executable).The root password is set to "rootme", but it's locked. The way to get root is to do "sudo gainroot", but it says you need R&D mode if you want to break your device (I bet dropping it works nearly as well as "# rm -rf /" ... ). So as per Hacking the Nokia N810, find the "getroot" application in one of the online repositories and install it. This edits /usr/sbin/gainroot so that it will work. Then do "sudo gainroot" and get a root prompt, then you can unlock the root password or change it to something stronger (the passwords are not shadowed, and look like regular crypt(), so are vulnerable to cracking from user level). You probably want to install openssh server and client, then you can ssh in to the tablet and set up SSH keys etc. You probably want to set "PermitRootLogin without-password" in /etc/ssh/sshd_config, else your root password is vulnerable to SSH dictionary attacks on the Internet.
Building ApplicationsUse Scratchbox from maemo.org. See later.Third party ApplicationsThere are a ton of these, in repositories listed at e.g. maemo.org/community. So far, I have tried
Removable MemoryThe N810 takes a mini-SD card. I got a 2Gb micro card with an adapter (the max is 8Gb). Note that the user manual is also for the N800, which takes two SD cards. These are bigger and won't fit. The card appears as /media/mmc1, or in the GUI as "Removable memory". If the USB cable is used to connect the N810 to a PC, the memory card is automatically unmounted from the tablet and is mounted on the PC instead. So files may be transferred in a two-step process, first from the tablet internal memory to the mini-SD card, then from the card to a PC.I have seen some comments that with a certain amount of hacking, perhaps with cutting tools, a USB device may be connected to the tablet "normally", e.g. a digital camera or memory stick. * check out maemo repository; apparently you don't need to cut anything, you just need a female-female adapter. March 2
FilesystemMapping the GUI to the shell:
SecurityThere isn't much.Physical: the tablet and keyboard can be locked using a numeric key. This is in the control panel as "device lock". Recommended to deter casual snooping if you leave the device unattended. The removable memory can be removed and read on a PC with a card slot or adapter. The docs say it must be formatted as VFAT, which makes it easy to read under Windows. It may also be read using the USB cable. Software: no password is required to install packages, and the application manager has root access. Thus, an application like getroot may be written that lets the user get root. The root password is normally disabled; if it is enabled and an SSH server run, the tablet is vulnerable to password guessing over the Internet (they try more against root). So disabling root password access is recommended in sshd.conf. The passwd file is unshadowed, and uses crypt(), so is easily cracked from user level (if you configure a second user account for network access). The crypto program GPG is available from the shell, and several "password safe" applications are available. Best to assume your files are not really private, though. Looks like R&D mode can be enabled using the Flasher tool. I haven't tried. Write some of this down before I forget : - Writing ApplicationsUnless otherwise stated, this applies to Maemo 4 on the Nokia N810 shipped in early 2008, running OS2008
The N810 uses an ARM processor. Most everything else I use now (except the 6820 cellphone)
uses an Intel or AMD processor. These have different instruction sets so you can't just copy binaries
across from a PC, not even statically-linked ones. Since there is no compiler on the N810, it is easier
to set up a cross-compiling development environment on a (Linux) desktop than it is to install
gcc, make etc. on the tablet (there's more room, for one thing).
WARNING: When it says "Remember to stop scratchbox service before removing the scratchbox directory", it means it. You stop scratchbox by doing "/scratchbox/sbin/sbox_ctl stop". sbox_ctl remounts /dev under /scratchbox/users/USER. If you try to blow away /scratchbox while it is mounted you will kill your devices in /dev. If you should happen to do this, do not reboot. cd to /dev and run MAKEDEV to restore everything, e.g. "MAKEDEV hda", "MAKEDEV -m 4 ttyS" When you have scratchbox running, you can login to it and should see a prompt "[sbox-CHINOOK_ARMEL: ~] >". If you see X86 instead, use sb-menu to select the ARMEL target. You now have an ARM development environment and should be able to build "hello world", and various packages that use (./configure; make; make install). You can run them under the emulator, or scp them to the tablet and try them there. You probably want to create USER on the N810 with a password, so you can ssh in nonprivileged (set up SSH keys so you can scp or rsync without typing a password). The tablet local user (called "user") has no password, hence is prevented from ssh login.
Xephyr (the fake X server) is not strictly necessary unless you want to test X applications from inside scratchbox,
and even then is not really needed. On the host system, do "xhost +LOCAL:", and in scratchbox, do
"export DISPLAY=:0.0". Then you can run simple X applications.
Building PackagesAs above, the N810 is a Debian based system, and wants to install .deb packages from Debian repositories. On a Fedora host system you'd normally build .rpm packages with rpmbuild. Fortunately, you don't have to create .deb packages on the host since scratchbox contains a full Debian environment. Creating a Debian binary package is actually quite easy.
Note that on the N810 there is a special task that strips out all documentation from installed packages to save space, so don't wonder where it went. Building a RepositoryI am still having trouble with this. You can find my current attempt at N810/repository
You can use the (graphical) Hildon application manager to install packages on the N810, or
you can use apt-get from the command line. The application manager maintains a list of
repositories in
/etc/apt/sources.list.d/hildon-application-manager.list. Following instructions in
the Debian Repository HOWTO,
you can add your own repository to /etc/apt/sources.list.d, and it can be a "trivial repository".
Make a repository directory in scratchbox and create a package list, e.g. [install] repo_name = My N810 Software repo_deb = deb http://my.example.com/my-repository chinook free catalogues = my-repo package = myapp [my-repo] name = My N810 Software uri = http://my.example.com/my-repository components = freeor [catalogues] catalogues = My N810 Software [My N810 Software] name = My N810 Software uri = http://my.example.com/my-repository dist = chinook components = freethis bit I have not got working properly So far, I have built:
March 4 Bought a cheap Motorola Bluetooth ear dongle to try. Pairs up OK; disable from sound control. Took me a while to find how to re-enable it without disconnecting and repairing. Clicking the button on the earpiece does the trick. Sound volume is too low; there's a small adjustment on the headset itself with some rinky-dink up/down buttons. Turns out that media player on the tablet has its own (default iconized) volume slider, in addition to the main slider control. Guess it's "Main" and "PCM" in the mixer chip. With all 3 volume controls maxed out, it's too soft to hear in traffic. Do I take it back (the headset)? Having tossed the packaging as it wouldn't fit in my bike box. It kind of sucks that trying headphones in-store has been replaced by buying 5, returning 4, and having the store toss them in the garbage because the packaging's torn. Tried Gizmo. The icon is a placeholder, but it downloads OK. Tried doing a SIP call to the EVO SIP gateway (sip:1000@evophone.caltech.edu). Works OK in EVO-TV (click the blue "more info" icon to get the meeting ID - 31). Voice only. Then try a SIP call from EVO to the N810. Phone rings, but Gizmo on the tablet jams up and I can't see how I'm supposed to answer the call. Later, try a gizmo call to Gizmo on a Windows PC (the v4 Beta with video). Video works but is fairly horrible. Both devices on the same local network, but behind NAT from the Internet. I've got an old 802.11b wireless AP which can't help. Colour on the N810 is kind of brown, as are camera snapshots. Put the entire Harry Potter and the Deathly Hallows audio book (1.2Gb of MP3s) on the SD stick using rsync. That's 17 audio CD's worth. If I had an 8GB stick, I'd be able to get about 130 CD's worth or an equivalent of a 4 foot shelf of vinyl LPs on. Actually inside the tablet on a thing the size of my pinky nail. Seems amazing to me, yet I see there are 100Gb MP3 players (w/disks), and 16Gb SDs on the horizon. The sound quality isn't too bad, considering. Stereo, even.
March 5
later Buy a female-female USB adaptor. $7 from an independant store in Richmond BC. Same place I had a USB extender for about $15 when the big-box stores want $50. Guess they have a 5% margin on computers and a 500% margin on accessories. Re-FlashingSo if Skype won't install, maybe I should consider reflashing the system, to see how it's done if nothing else. Current OS version given in /etc/osso_software_version is RX-34+RX-44_2008SE_1.2007.42-18_PR_MR0. 3 newer versions listed on tabletsdev.maemo.org; latest is OS 2008 version 2.2007.51-3. (OS version is also in shell prompt, viz. Nokia-N810-51-3).Download latest COMBINED_MR0_ARM.bin file from above page, plus MD5SUM file. Follow instructions as per Nokia A4678158, HOWTO_FlashLatestNokiaImageWithLinux. Note the correct command "./flasher-3.0 -F " given for the N810, c.f. older tablets using "flasher -r". As per the instructions, I had to connect it first then power it on, else the flasher won't find the device (in contrast to normal practice with cameras, memory sticks, printers etc., or indeed the N810 in slave mode where plugging them in is sufficient). It always seems foolhardy to me to hook something up and do a destructive write immediately. I tried # ./flasher-3.0 --query-rd-mode and get flasher v0.8.7 (Oct 17 2006) USB device found found at bus 001, device address 008 Found device RX-44, hardware revision 0805 NOLO version 1.1.6 Version of 'sw-release': RX-44_2008SE_1.2007.42-19_PR_MR0 The device is in production modeAfter flashing the new system, it immediately asked if I wanted to restore my backups from the SD card. So I did. It then asked if I wanted to restore my applications and ran the application manager. Since I had subscribed to a number of different repositories, it wanted to check them all and took rather a long time. I got impatient and killed it. This left me with only a couple of optional apps, and without the critical openssh-server. So I went back and manually installed it from maemo.org (my list of repositories had been restored, just not all the apps). Doing a clean install of openssh-server, it asked me for a root password. This is cleaner than messing around with "sudo gainroot". So I ssh in as root, restore my .ssh/authorized_keys file, root filter in /etc/ssh/sshd_config etc. Now I can run apt-get typing on my desktop, which is easier than fiddling around in the Hildon application manager wondering what category people have put Skype in, communications or internet.
As per the docs, everything on the system device, except MyDocs as backed up to SD, is gone. Except the
device lock passcode. So that includes the SSH keys and authorized_keys from /etc/ssh/ and ~/.ssh, my non-privileged
user account, changes to /etc/profile, and any other files that weren't part of a package.Another good reason to
be using APT, apart from a desire to publish in case others find them useful.
Recommended Actions SequenceAfter tinkering for a while, I recommend the following course of actions:
Trusted RepositoriesUnless a repository is "trusted", apt-get asks if you're sure every time. To make a repository trusted, a few things have to be in place:
# apt-key add foobar.asc You can also import it into your personal Gnupg with $ gpg --import foobar.asc and then check signatures with e.g. $ gpg -v --list-keys F00BAAEE Most people upload keys to the public keyservers, and you can then get them into Gnupg with gpg --recv-keys F00BAAEE and then export it to a file and thence to APT with $ gpg --export --armor F00BAAEE > F00BAAEE.asc then # apt-key add F00BAAEE.asc
Rolling your own
March 6 Tried the USB adaptor after downloading "usbcontrol 1.0". Was able to read a small memory stick, but not a 1GB SD in an adaptor, or a camera. Will try a powered hub, or maybe give up. It might be useful to be able to talk to my camera (older Kodak that needs gphoto2) though there's more chance of talking to a newer one in memory mode. Tried to understand the GPS. There's a server gpsd (osso-gpsd package) originally from berlios.de which mediates between the hardware and applications, presenting GPS data on a local socket. It only seems to be running when the Nokia map is running. I tried building gpsd-2.29 (matches the libraries in the N810) from source in scratchbox, and was able to get cgps running on the tablet to read the position. xgps looked interesting but would not build - requires OpenMotif. It should be possible to open the port up to be able to read from another computer, I would think, but on the tablet I needed to be on localhost.
March 7-8
Try building a version of cron by David Parsons. Don't have "mail" so kludge for now with "cat".
March 9
(later) tzdata-canada-2006.deb Try Google maps. Map pane is blank. Hmm, is the browser broken or Google doing something odd? Somewhat later, I realize it is OK unless "fit width to view" is checked. So, don't set this if you want maps to work. Try Skype talking to the new Skype 2.0 beta on my Linux (FC4) desktop. I thought the video might work, but doesn't seem to. Seems slow both ends. Don't have a microphone on the desktop, and I'm not sure "sound in" works anyway.
March 12
keycode 58 = m M Escape Escape Escape keycode 47 = semicolon colon bar bar bar keycode 21 = plus equal Tab Tab Tab keycode 48 = apostrophe question grave grave gravethen (after installing xmodmap) do xmodmap /etc/X11/Xmodmap. Now Fn-M sends Escape, Fn-; sends |, and Fn-+ sends Tab, Fn-' sends ` (backtick). Putting this in .profile seemed like a good idea, viz. if [ -x /usr/bin/xmodmap -a -r /etc/X11/Xmodmap ] ; then /usr/bin/xmodmap /etc/X11/Xmodmap fi but I did it wrong ("xmodmap /home/user/.profile"; thanks Michael) and the tablet stuck in a loop rebooting over and over so I had to remove the battery to stop it. I couldn't figure out how to fix it (turning off the watchdog with the flasher just make it hang instead of looping), so I reflashed the unit. Again. And made a shell script "xm" to do "xmodmap /etc/X11/Xmodmap" which I have to run by hand. After some discussion on the maemo-users list I was told you can boot an alternate OS off an SD card using flasher, but of course I didn't have one handy. Then I could have just removed the offending .profile, instead of having to re-do everything. I now have openssh-server deb on the SD card, so (with R&D mode) I can do $ sudo gainroot # dpkg -i /media/mmc1/repo/openssh-common.deb # dpkg -i /media/mmc1/repo/openssh-server.deb marginally quicker than adding the right repository in application manager and re-installing over the Web.
Other hints: shift-spacebar hides the shift notifier/typeahead chooser, so if you slide out the keyboard, enable
fullscreen, and disable the toolbar you can get 100% of the screen area as an xterm.
Flasher
March 13
March 14-20
Tried looking for podcasts on radio.cbc.ca.
Need my 3x diopter reading specs but only have my 1x ones; can't read the fine
print and get lost. A bit too much content to scroll through easily.
Both of these sites have too much detail to easily browse on the tablet; if I was going to use them regularly I'd probably write/get some kind of scraping script to collect the useful links. Maybe the ad blocker in the maemo repository would work. Thoughts on screen resolutionMy first PC back in 1978 or so didn't have a graphic display at all; it had something like 16x64 characters on a TV screen and by creating custom fonts I could get 160 monochrome lines of resolution. Since then screen resolution has increased steadily so that now one can have a triple-head video card and put 5760x1200 pixels on the desktop. Given the acuity of the human eye, this looks good on a screen about 30cm high and about 45cm from the viewer, or scaled proportionately - a projector screen 3m high about 4.5m away. There is no point increasing the screen resolution in terms of pixels/inch, since the eye cannot use it. Instead, increasing the physical size of the display usefully gives more working area.The N8*0 tablets are of a size to fit in a normal pocket. This is I believe a useful format, and likely to remain so. At 800x480 pixels, since my eyes are getting old I need not just reading glasses, but fine-work glasses to use the display. Even a young user is likely to have trouble if the resolution was increased to 1706x1024 - or rather, trying to read 12pt type at that resolution. So, I think the 800x480 display as used on the N810 and ASUS eeepc is likely to remain common for pocket devices, and hence a worthwhile target for Web designers (who have largely abandoned catering to 12" CRTs with this resolution). back to general ramblingsI'd been wondering how one could generate mouse 2 or mouse 3 events, if at all. (On Linux*, mouse 2 is "paste" and mouse 3 brings up context-sensitive menus). xev shows a screen tap as mouse 1. In the Firefox browser, particularly, mouse 3 on a link normally brings up a menu allowing one to save a link target instead of downloading or following it. Turns out that the "Help" menu on the browser actually has useful information; it's not just a clone of the Firefox 2 Help menu. Tap-and-press on a link brings up the menu. Still no sign of cut/paste ability - the usual desktop "doubleclick, click" to copy a word or URL is replaced by the somewhat clunky Microsoft style "click-drag, click (file menu), click (edit), click (copy), click (file), click (edit), click (paste)". Or drop the stylus and use ctrl-C/V on the slide-out keyboard, or tap (toolbar ctrl), tap (text box), tap (C), tap (toolbar ctrl), tap (text box), tap (V). Easier just to type the word, probably.
March 21 Waypoint editing in the Nokia mapper is pitiful. I found them in /media/mmc2/map/mapdata/favourites.txt. I can at least add new points there, e.g. import them from my "real" (Garmin) GPS or Google Maps with suitable massaging. "ps w" (wide, i.e. don't crop) does not work in the ps in busybox. Do "cat /proc/nnn/cmdline" instead to get long command lines. Built nbsmtp - a simple email sending client. Hacked it to work like "mail", i.e. from cron. In my repository
March 24 Found the GPS demo program from the Maemo 3.x Connectivity Guide. That generates a gzipped track file, and turns on the internal GPS so that gpsd works. You can talk to it with netcat, viz "nc localhost 2947" then type things like "p" (position) or "r" (raw NMEA). cgps works, also. Installed maemo-mapper. Much better than Nokia map, even if the GPS satellite display is not so pretty. GPX track and waypoint files, Google/Yahoo street and satellite maps, on-screen track display, street routing via Google API at gnuite.com... Hangs on me a couple of times, though. Firefox browser is missing a lot of the tools & preferences menus. "about:config" works, though, if you want to add a proxy or something. Gnokiignokii installed OK. It behaves somewhat like gammu which I used over USB as described here. I created a /home/user/.gnokiirc file like this[global] model = 6820 connection = serial port = 00:12:34:56:78:AB (not my real MAC...) connection = bluetooth then various commands worked, such as: $ gnokii --identify $ gnokii --monitor once $ gnokii --getfiledetailsbyid 3 $ echo "test gnokii" gnokii --sendsms 21212 It's possible to download ringtones, addressbook entries, send SMS messages, dial a voice number etc. (on the phone, not the tablet...) Just tried building QRdecode, as per links on PyQrCodec. Works on FC4, runs on the tablet but won't decode images. Must have got something wrong. Started at Nokia's mobile codes page; there's no precompiled reader for the N8*0 that I can see.
March 27
Tried installing Jalimo. It works, or at least jalimo-swt-example
runs and I can run "hello world", e.g.
Tried qrcode as per PyQrDecode wiki. On FC4 for now. Example won't build with my old 1.4 J2SDK (I thought Java was pretty stable; guess not..) but builds under latest jdk1.6.0_05. So I can try decoding some test images. It decodes QR images from Nokia's online generator, and will decode longer messages than qrdecode will. Some decode in both, some in neither, or in only one. It's noticably slower than qrdecode.
Tried copying qrcode to the tabledt under Jalimo. Fails; get
Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit.
So I guess I need another package ...
re. qemu-arm-eabi-no-scratchbox 1. You have to install gcc-3.4 and zlib1g-dev + (sudo apt-get install gcc-3.4 zlib1g-dev) 2. Get the patched qemu-arm-eabi sources available in sourceforge.net/projects/qemu-arm-eabi + svn co https://qemu-arm-eabi.svn.sourceforge.net/svnroot/qemu-arm-eabi/trunk qemu-arm-eabi 3. Compile (on the host system!) + cd qemu-arm-eabi + ./configure --target-list=arm-linux-user --static + make 4. Update the scratchbox + sudo cp arm-linux-user/qemu-arm /scratchbox/devkits/cputransp/bin/qemu-arm-eabi-sb2 + sudo vim /scratchbox/devkits/cputransp/etc/cputransp-methods o add the line: qemu-arm-eabi-sb2 + vim /scratchbox/users/USERNAME/targets/SDK_ARMEL.config o change the variable value SBOX_CPUTRANSPARENCY_METHOD to /scratchbox/devkits/cputransp/bin/qemu-arm-eabi-sb2 The syscall errors will disappear.On my system I did not have gcc-3.4; the default is gcc-4 with compat-gcc-3.2. I installed an RPM from Fedora Core 6. Also, I had CHINOOK_ARMEL.config not SDK_ARMEL.config. I had some compile errors in linux-user/syscall.c viz. "undefined reference to inotify_rm_watch" and "FUTEX_LOCK_PI undeclared". I commented out the relevant items and it seemed to work - the cross-compile errors disappeared . I have been trying to compile the opencv computer vision library and having various problems with it giving different answers on the ARM than on x86. After some investigation I find that the "char" data type seems to be unsigned on the ARM but signed on the x86; the following code gives different answers: #include "stdio.h" int main() { int j = -2 ; char k ; k = j ; if (k < 0) printf ("k < 0\n" ) ; }Juha Kuikka on maemo-users points out that I can use -fsigned-char in CFLAGS to force chars to be signed, as per Russell King's ARM Linux FAQ. That works nicely!
April 24:
Took the tablet to the BC Net Conference. Eduroam works! The battery lasts all day. I don't think I'll bring a full-sized laptop to one of these things again - it's too painful always looking for power outlets to charge up, dragging it to lunch because it's too risky to leave it, etc. Gripes:
April 27:
So, is the plastic stand good for anything ? Maybe... Most people would hesitate to drill holes in their
desk, or their car dashboard, but this is using an existing bolt. OK as long as it doesn't rain.
It's bolted to a metal bracket I made for my Garmin GPS. Which is waterproof, and gives faster first fixes.
But it's monochrome with a smaller screen.
The GPS Saga, continuedStill trying to understand why the GPS in the tablet is slow to get a fix. The GPS chips is a Texas Instruments GPS5300, with a supposedly good TTFF with A-GPS. But the Nokia regularly takes several minutes, with some users reporting never being able to get a fix. My Garmin GPSMap76, on the other hand, takes about 46 seconds from cold, and it's about a 7-year-old design, also with an internal antenna.There are a couple of open bugs at maemo.org on GPS, viz. 2877, 2878, with some interesting information. So, after running strace a bit, here is what I think happens: The GPS chip is normally turned off to save power. It is connected to a serial line /dev/ttyS0 on the CPU. The protocol it uses is not published; it may be subject to non-disclosure by TI. There is a program gpsdriver started out of /etc/init.d which runs all the time and listens on /dev/pgps for requests for GPS. When it gets one it turns on the GPS, translates the secret messages and sends NMEA to /dev/pgps. (NMEA0183 is the standard language used by GPS on ships to talk to autopilots, plotters etc.) gpsd is an open-source program that listens on localhost port 2947 for requests for position. It reads the NMEA text from /dev/pgps and translates it to a different protocol on port 2947. It can also listen to other GPS devices on Bluetooth, and more than one program can get position from it (only one program at a time can read /dev/pgps). So it is a common interface to all GPSs. This is what maemo-mapper connects to. But gpsd does not know how to turn on the GPS. When Nokia Map runs there is another program navicore-gpsd-helper which I think turns on the GPS. I still don't really understand it. navicore-gpsd-helper seems to send NMEA; maybe it reads from gpsd and turns it back into NMEA and sends that to navicore. Some of these need to run as root in order to turn on the GPS. I am still trying to understand. There is a file /var/lib/gps/nvd_data which contains the state of the GPS chip. It is written by gpsdriver when the GPS is turned off, and read back in when it is turned on. If this file contains a good position, the GPS will start up quite fast (about 17-24 seconds). If this file is deleted, the GPS will take significantly longer - about 3 minutes, possibly longer. If the clock on the tablet is deliberately set about an hour wrong, the GPS takes about a minute to get a fix (instead of 20 seconds). But subsequent restarts get a fix in 20 seconds, though the tablet clock is not set from the GPS. If the clock on the tablet is deliberately set about 40 days wrong, it takes much longer to get a fix; in one case about 400 seconds. I am wondering if a bad nvd_data file is worse than not having one at all. If so, one might get a faster fix after a long flight by deleting this file before starting the GPS. I have not been able to make sense of the file format; I was thinking that maybe writing an estimated position to this file would give a faster fix. On my old Magellan GPS, the documentation said that if you didn't set an estimated time and position it would take a very long time to obtain a fix, if at all. (I have not tried flying across the country turning the GPS on and off ...) I have been told that newer versions of maemo mapper may know how to turn on the GPS. I have not tried looking for one yet.
May 20:
Tried using the tablet to map WiFi signal strength around TRIUMF. Outdoors, use
demo program to log GPS position and a bash loop on "iwlist scan" to collect
signal strength data. If I start off logged on to the network, and roam outside
the AP range, I get disconnected and iwlist stops listening. Doing
"ifconfig wlan0 up" seems to get it back, though.
Maybe I'll try installing the bluetooth tools and doing something similar - we'd been having 802.11 issues and I wondered if the new Macs with B/T enabled are polluting the 2.4GHz band. Probably not; it looks like it isn't an RF issue.
19 May 2008
Found an oooninja article describing how to run OpenOffice in server mode. So I made a CGI script to download and convert documents, rather like the Babelfish "translate this URL" service. Now if I want to view a Powerpoint on the tablet (assuming it's on the Web and I have network access, e.g. at a conference) I can past the URL into the converter page and get back a PDF in a few seconds. Neat (if it stays up). The N810 WiMax edition is available in the US. WiMAX 802.16e @2.5GHz, available from certain providers (XOHM on Sprint).
31 May 2008
Battery Problems:
I was using the tablet in the vehicle mount as a GPS on my motorcycle
(it's actually more useful than in a car, since using a paper map is
basically impossible without stopping, removing gloves etc.). It worked fine
one day, but the next day rebooted after about 30 minutes, then rebooted
intermittantly every few minutes. The next night it didn't charge properly,
then was hard to boot unless connected to a charger. I wasn't sure if
there was a problem with the charger, or the charger socket, or a software
problem (earlier O/S versions have had problems with booting if the battery
is warm). I tried resetting the unit by removing the battery, and noticed
that two of the little gold clips were loose. I could not remember whether
this was normal or not.
(the Nokia chargers seem to be equivalent to a 6.3V source with 1ohm internal resistance, and an 890mA current limit. Connected to the 3.7V battery, this acts as a constant-current charger. The battery initially charges at 890mA for a few seconds, then pulses at about 1Hz - I conjecture a circuit in the tablet measures the voltage when not charging - then charges continuously at 890mA. The charger makes a slight buzzing noise when delivering current. When the battery is perhaps 80% charged, the charging circuit switches back to a pulsed mode until the battery is full. The charging current then drops to zero, and the tablet displays "battery full".)
I replaced the battery with an aftermarket battery from a cellular phone
store (I tried about 5 stores, and no-one seems to have the Nokia one) and
everything seems to be back to normal. So now I need to figure out if
there's any warranty on the original battery, or if I can repair it.
Hypothesis: vibration transmitted through the vehicle mount caused
the battery to move from side to side slightly, causing the (possibly
spot-welded) join of the clips to the battery leads to fail. I may insert
a wedge to stop the battery moving.
12 June 2008
I used the gnuite.com interface on my desktop to generate a GPX file, then copied it to the tablet, rather than running the route tool in maemo mapper directly. Probably I should write my own GPX page - it would be nice to have the graphical view as well as the GPX code. Or maybe it's been done already. Forgot my cellphone (so no mobile internet) but I had saved some stuff to the tablet with wget while still at home. Including some ferry schedules, which for some reason would not display properly offline - the crossing times were present in the HTML but didn't display in Firefox. Probably a missing script/CSS; never mind, could read them in "less".
Maemo mapper worked nicely, if a bit hard to see with sunglasses on. The transreflective
screen could be better in direct sunlight. Anyhow, it got me to my destination, popping
up a "turn left ahead" notice at an appropriate point.
On the trip back, the GPS never got a fix. I'm not sure why not - maybe because I was moving too fast for a first fix. I knew were I was going and didn't stop to give it a chance to get one. But it got one on the ferry (on the upper deck) in a few minutes.
19 June 2008
Here's a table of what video (from my motley collection of test files and
movie trailers) were viewable on my desktop Mplayer, Mplayer on my tablet, and the Nokia
media player on the tablet.
`24 June 2008
Do backup with rsync, grab Fiasco package, and reflash. Boots up OK.
5 July 2008
I also built Navit on my desktop. It's somewhat faster there, and able to handle more maps. An attempt to build it myself in scratchbox failed; not sure why. Threads, maybe. Installed the APS daemon supl-daemon along with agps-ui. This is supposed to fix the long time-to-first-fix on the GPS by downloading almanac data from the net. I think it helps, though it's time-consuming to test. Took the bike over to Comox; used maemo-mapper with a couple of downloaded GPX routes. Preloaded most map tiles at home on WiFi, but downloaded a few missing tiles via cellphone on EDGE.
Bought a Ubiquio folding keyboard - I'm typing this on it.
Had a heck of a time pairing it - took about an hour of
tinkering, and I'm still not sure what the exact moves were.
It feels a bit flimsy, but it has 5 rows with digits and
reasonable sized keys. We'll see ...
July 16
I saved the track from Maemo Mapper and used the GPX file for geotagging photos, which I had previously used my Garmin for. Garmin GPX uses GMT, Maemo Mapper appears to use local time, so I had to update my script. I had supper at a White Spot in Squamish, and noticed they had a Fatport WiFi hotspot. UBC have a peering arrangement with Fatport, so my UBC login should work - and it did, but first I had to connect via my cellphone to read the instructions. Whether the technology is really that helpful is another matter - I looked up a phone number on the Web that I could have just dialled 411 to find, loaded some more tiles into Maemo Mapper cache, and found some information about a campsite that turned out to be incorrect.
24 July 2008
26 July
05 August The GPS did pretty good, on the whole. I think it worked better in the lower latitudes than back home - it could get a fix from inside my hotel room, and keep one while on the car passenger seat with a steel roof directly above. I should have preloaded some GLX routes for Maemo Mapper before I left home; it would have saved some minor navigational foul-ups (the regular tourist kind, overshooting and doing a U-turn, pulling over to check the map carefully etc.). Maemo Mapper needs an Internet connection to generate a route, while Navicore Map doesn't always find street addresses. Tropicana Ave in Las Vegas for instance (a fairly large road). And it can't always find the number, defaulting to some random place on the street, rather than the closest match. Note to self: what these GPS sets need is a house number display (with most North American cities being on a NS/EW grid and having 100 nominal houses per block, this is mostly computation rather than needing an impossibly large database). But basically, I was using the tablet rather than paper maps, and it worked out fairly well. Found 3 or 4 other Nokia tablets at DEFCON, plus an Acer Aspire. Chatted to the Aspire owner a bit, since I had just bought one for my daughter but not had much time to play. This uses the Intel Atom, touted occasionally as an ARM-kiler. The owner said that the Aspire has old power-hungry support chips, so the thing only lasts the same 2.5 hours as a normal laptop on the regular batteries, and it hibernates rather than waking at a tap like the N810, so it's no contest - the Nokia wins hands down. Besides, the Aspire won't fit in a regular pocket - ladies handbag, or cargo pants maybe - though it does have a 1024 pixel screen, full-size USB connectors, Ethernet and VGA out. But no BlueTooth.
12 August
13 August
6 September 2008
Signed up for Boingo. Asked if they
had a GPX list of hotspots, or a tool to find by location. They don't,
only a list by country, state and address. So I made one, using gnuite.com
and wget. It's at
andrew.triumf.ca/N810/BoingoGPX
Update - Boingo now have an interactive map online (thanks!); but you need an Internet connection before you can find an Internet connection. But when it came down to it, I never really used Boingo. Most of the hotspots are in McDonalds or other restaurant chains we don't often patronise, and I got free WiFi at a couple of campsites, or paid for it in a hotel. So I may cancel my subscription. Our hotel in Anaheim had WiFi in the lobby, but only a wired connection in the rooms - slightly annoying. I had also brought an Acer Aspire One, which has a regular Ethernet jack, so I was trying to get Maemo Mapper tiles onto the tablet using the Aspire as a proxy. After messing around a bit I did actually manage this - created an Ad Hoc mode station on the Aspire using (I think) wlanconfig, created an Ad Hoc entry manually on the N810 using static ip, and ran tinyproxy on the Aspire to proxy HTTP. Ideally one would set up bridging on the laptop, use 802.11 Master mode and just connect transparently on the N810, but the Aspire has limited space, no build environment, and I couldn't get Master mode to work. I ended up with huge GPX track files from Maemo Mapper - much larger than on the Garmin (which has limited RAM and an algorithm to automatically reduce track data). But still managed to geotag a lot of my photos and videos.
later
December 2008
2009
driftfile /var/lib/ntp/drift server 0.ca.pool.ntp.org dynamic server 1.ca.pool.ntp.org dynamic server 2.ca.pool.ntp.org dynamicand made the following to display time to 1/10 second: #!/usr/bin/perl use Time::HiRes qw( gettimeofday usleep ) ; $| = 1 ; system("ntptrace -n -m 1"); while (1) { $t = gettimeofday() ; $t2 = $t * 10 ; $it = 1 + int($t2) - $t2 ; # time left till next tick ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($t); $dsec = $sec +$t - int($t) ; printf("%2.2d:%2.2d:%04.1f\r",$hour,$min,$dsec) ; $dt = usleep ($it*100000) ; }I found Time/HiRes in the scratchbox tree and copied it over; ditto GetOpt.pm.
#!/usr/bin/perl while ($_ = shift) { $msg .= $_ ; $msg .= ' ' ; } $twitno = '21212' ; #Canada open (OUT,"|gnokii --sendsms $twitno") or die "Can't run gnokii\n" ; print OUT "$msg\n" ; close(OUT) ;I also have a version to get GPS coordinates and send a location update with a Google map url from $url = sprintf("http://andrew.triumf.ca/gm?%.4f%%2c%.4f",$lon,$lat) ;Twitter just takes it; Facebook replies with a long SMS saying that it worked. Useful if you want to tell people where you are. SMS seems not to require as good a signal as voice, or not for so long, and uses less energy than a typical voice call. In October 2008 or so my laptop was stolen. So now I have a new laptop - a Dell Inspiron 1525 with built-in Bluetooth. This is useful with the tablet - I can send files such as GPX routes over Bluetooth when WiFi is unavailable. Normally at home the tablet's got a static address on my home network, and I have SSH keys set up, so using scp to push a file across is trivial. But while travelling I had some random ip addresses on a hotel LAN, so Bluetooth was easier. My laptop has Fedora Core 9 with Gnome, and in the desktop GUI I can select "send file". If I want to go the other way (from the tablet to the laptop), I can use the file manager on the tablet then "send". On the laptop, I have to enable Bluetooth discovery temporarily. I could set up an 802.11 ad hoc network if I wanted to log in from the laptop away from an access point; I haven't found an equivalent to SSH over Bluetooth. Looks like Google satellite maps are no longer available in Maemo Mapper - Google changed the tile naming scheme, and maybe made it deliberately difficult to download tiles outside of a normal Web browser. Pity. Looks like my power-save mode bug with the Proxim AP is not going to be fixed in Diablo. Rats! I now tend to put the tablet in offline mode at work when I'm not actually using it, which is slightly irritating. Tried converting some Youtube music videos to play on the tablet, using the same mencoder recipes as for DVD. Works OK. There's a Python script around called youtube-dl to assist in downloading the FLV file. Typically there is a low-res and a high-res version. The low-res one will often play OK directly in mplayer on the tablet, but has some problems in media player - jerky video. Once converted to an AVI at lower frame rate, plays OK. Current recode script is #!/bin/sh if [ -z "$1" ] ; then echo "Expect file; recode X to X.n810.avi" ; exit fi if [ -z "$2" ] ; then out=$1.n810.avi else out=$2 fi if [ -e "$1" ] ; then mencoder $1 -oac mp3lame -lameopts vbr=3:br=64 -af volnorm=2:0.3,extrastereo=2 \ -ovc lavc -lavcopts vcodec=mpeg4:aspect=4/3:vbitrate=512 -vf scale=400:240 -idx -ffourcc DIVX -quiet -o $out else echo "Cannot open $1" fi Downloaded Flite speech synthesis to try with Maemo Mapper. Works, but I can hardly understand what it's saying and it only speaks once. Would be nice to tie a hardware button to "speak again".
April 2009
May 2009
Not much new .. leaving the tablet on the bedside table
and checking out cartoons
(Dilbert, xkcd,
phdcomics) before getting up in the morning.
Sometimes news via Google gadgets and email, too.
July 2009
Openstreetmap (which is the default map in Maemo Mapper)
has much more content than I recall when I first tried. I've been adding some local roads and lanes
with Merkaartor (on my Linux desktop) - download tracks from the tablet and import the GPX
into merkaartor then trace over them. Uploads appear on the web fairly fast (a few days at most).
Someone said that there were now marine charts available for the iPhone. It seems that the US NOAA issues electronic charts for free in BSB format, and there is a company repackaging these and others for an iPhone app. It ought to be possible to do at least as good on the N810. After some messing around I found I can convert the raster charts to PNG then cut them up into tiles for a slippy map compatible with Maemo Mapper. So I can use the tablet as a backup to my Garmin mapping GPS (for which I paid $100's for digital charts. However, the NOAA has no large-scale charts of Canadian harbours. More investigation needed. In theory, I can convert scanned PNGs to BSB (which contains alignment metadata) and back to tiles so could get my critical paper charts into the tablet that way. I may make this stuff (NOAA slippy charts) available online, or write it up somewhat. recent: September 2009 Went sailing in August, using the tablet as above. As it happens, we went north to Desolation Sound, rather than south to e.g. Victoria, so the NOAA chart coverage was not so good - the US has small-scale charts of the entire Pacific Ocean, but finer detail only closer to US territories. I scanned bits of several Canadian paper charts, but only converted some of them before sailing. Some others I did under way. This worked well in a couple of places, notably Savary Island, where I had the same large-scale chart as on my Garmin GPS, but the tablet was easier to read - better lit, larger display, colour screen, and faster panning. A reflection on the age of my Garmin, really. On the other hand, the Garmin is waterproof and will talk to my autopilot.
Some slippy charts for the West coast of the US are available at geotags.com/NOAA/. Maemo Mapper repository is http://geotags.com/NOAA/%0d/%d/%d.PNG. Note the conditions of use. Useful Links
|