Updated April 25th, 2005

Q. What audio formats are supported?
A. MP3 and Microsoft WMA. 3rd-party software is available to play OGG
and other formats. Very-low-bitrate MP3's don't work for me (32 kbits/sec
or lower). High bit-rate and variable bit-rate work OK. Note that the
PMA430 does not seem to support variable bit-rate MP3 streams within
AVI video files (something to bear in mind when you're ripping DVDs).
Q. What video formats are supported?
A. Microsoft AVI file format, with MPEG4 video and MP3 audio. It's not
clear at present whether third-party video players (e.g., mplayer)
can be made to work with the PMA430. The uncertainty is in whether these
players will support, or can be made to support, the PMA's built-in
decode accelerator.
Q. What image formats are supported?
A. Microsoft BMP (yeuch!), GIF, PNG, and JPEG of any size. JPEGs with monochrome
(1 bit-per-pixel) encoding don't seem to work, but these are quite
unusual.
Q. Why is such a small range of video encoding formats supported?
A. I don't know, but I imagine that this is because in the jurisdiction
where Archos is based, selling equipment that is intended to be used
to violate intellectual property law is illegal. Archos markets its
video units as video recorders, and emphasises their use for
recording in real time. Archos does not promote, or provide much information
about, playing video files other than those recorded on the device itself.
You'll notice that the PMA only plays videos encoded in the same formats
it records. If the PMA could play videos in other formats, Archos could
not sustain the argument that the PMA was intended for recording in
real time.
If my assessment is correct (and I'm prepared to accept that it might
not be), we shouldn't look to Archos to provide support for new
video formats.
Q. Does the PMA support media streaming over a network?
A. There is no built-in support at all for media streaming. I have
written a (rather crude) player for MP3 streams, which I use
to play Shoutcast and Icecast radio stations. If you're interested,
get it here.
Q. What is `Mophun'?
A. Mophun is a sort of programming language for games. Mophun files
are platform independent, so it should be possible to run Mophun
games on the PMA430 that were developed on other platforms. Mophun
was originally developed as a games platform for mobile phones.
The PMA430 is also capable of playing games (and any other kind
of software) developed for the Qtopia environment (see below),
but these will not be platform-independent, and will therefore
need to be converted.
Q. What is the difference between the PMA430, PMA400, AV500, and AV420?
A. PMA400 and AV500 were both previous names used by Archos to designate
the PMA430. My unit has `PMA400' embossed on the front, but on Archos's
Web site it is described as PMA430. The AV420 is a media player/recorder
that supports the same media formats as the PMA430, but is not a true
computer.
Q. Could the PMA430 substitute for a laptop/desktop computer?
A. That depends on what you want a computer for! It is easy enough to
connect and external keyboard, mouse, and monitor to the PMA430, and
it offers both wired and wireless network connectivity (see other
questions in this document). So, in one sense, you could use it like
a laptop/desktop computer. Moreover, it offers `proper' multitasking, so
you can, for example, write a document while downloading a large file using
the Web browser. On the other hand, the PMA430 has 48 Mb available RAM, and
(probably) a 150 MHz CPU. This means that you aren't going to be able to
run heavyweight applications on it, even if you can get them for the
PMA's hardware and operating system. What's more, the Qtopia operating
environment is really designed for small devices, and its limitations
are very apparent when it's asked to do `big system' jobs.
wget program at
the command line.
Q. How is media organized on the PMA430?
A. However you like. Provided you don't mess about with the
System directory (which contains the operating system),
you can put media content wherever you like. As supplied, the PMA430
has top-level directories called Video,
Photo, etc.
You can create subdirectories under these, or create new
top-level directories. Some of the built-in applications default to
looking in the pre-defined directories so, although using different
ones won't break the unit, it might make it slightly more fiddly to use.
I believe that the MP3 library facilities in the PMA -- that organize
tracks by title, album, etc. -- require there to be a directory called
Music. However, many users switch these facilities off
because they don't cope very well with huge media collections.
Q. Are filename extensions significant?
A. Yes. Because the PMA430 has a completely arbitrary file/directory
structure, the unit relies on filename extensions to determine what
to do when a file is selected to play. So it's a bad idea to give MP3
files a filename extension different from .mp3, and the
same applies to the other file types supported.
Q. Can I rename the predefined directories?
A. It might be better not to -- the names of the top-level
directories in particular probably should not be changed.
Moreover, even changing the letter case is a bad idea. One user
changed the name of /Documents/text to
/Documents/Text and then found that the text editor didn't work
any more. Linux, in general, is a fully case-sensitive operating system.
However, it should be safe to add new directories, including top-level
directories, and create new subdirectories at your discretion.
Q. Does the PMA430 support ID3 tags?
A. Yes, to the extent that you can list MP3 content by artist,
album, etc. However, this feature is quite slow to use when there is
a lot of installed content. In my opinion, it's better to structure your
directories to group related content.
Q. How is the hard disk formatted?
A. It is a vfat (Windows 95) filesystem. Long filenames
are therefore supported, but not symbolic links or file permissions.
The lack of support for links and permissions is irrelevant for media
storage, but is a problem for the (Linux) operating system. Consequently
certain chunks of the disk are set aside for the operating system.
These chunks appears as .img files when the PMA430 is
mounted as an external drive. The filesystem seem by a host computer
is, in consequence, completely different from the one that is is seen
by the operating system from inside.
/pda on the unit, and that's probably what needs
to be backed up most regularly. Even if you regularly synchronize
the PIM data with a PC PIM app such as Qtopia Desktop, you might still want
to back up the /pda directory, as it also contains
configuration settings for the unit itself and all the applications. The file
progfs.img in the /System directory contains
all the installed 3rd-party applications, so you'll need to back that up
unless you don't mind installing these again in the future. The file
aimage.img contains the Archos firmware. It's probably
worth taking a copy of that when you first get the unit, in case you
do something daft like delete it, but it won't change unless you
upgrade the firmware so it doesn't need regular backups.
Q. How do I synchronize the PIM data with my Windows application?
A. Read the manual! Sorry, I don't use Windows, so I don't know the
answer.
Q. How do I synchronize the PIM data with Linux applications?
A. The only Linux application that I am aware of that will sychronize with
the PMA430's PIM data is Trolltech's Qtopia Desktop. A Linux
version of this software is available from the Trolltech web site.
I've never tried synchronizing over USB, but I found that synchronizing
over ethernet (wired or wireless) was a no-brainer. I just entered
the IP number of the PMA430 in the `Settings' page, and hit
the `Sync all' button.
Q. Where does the Linux version of Qtopia Desktop store its data?
A. In a hidden directory called .palmtopcenter in the user's
home directory.
Q. How can I extend the battery life?
A. Turn the screen brightness right down; shorten the screen turn-off
timeout; try to avoid doing USB uploads while on battery power;
turn off the wireless network adapter while you're not using it.
Q. Is the battery removable?
A. Yes; spare batteries are available from a number of eBay traders,
as well as direct from Archos.
Q. How much maintenance does the operating environment require?
A. None, really. Although the PMA430 is a real computer, it isn't
as configurable as a desktop computer, so there's less to break.
What's more, a reboot has essentially the effect of restoring the
machine to factory settings -- only the most rudimentary configuration
is persistent across reboots. While this makes it almost impossible to
break the software so badly that a reboot won't fix it, it does have
an adverse effect on configurability (see next question).
Q. How do I configure the application launcher icons, etc?
A. You can't. Well, that's not strictly true. At the Linux level
you can find the directory containing the configuration settings
for the launcher icons, and hack them around using a text editor.
However, all these settings will be lost if you reboot or power
down the unit.
The only settings that can be changed are those made available from
the `Settings' tab of the laucher. These are written to the hard
disk, and so survive a reboot. Everything else is held in volatile
memory (RAM), so will be cleared on reboot.
This strange lack of configurability is the price we must pay for
having a Linux-based system that is unbreakable. Because Linux is
so flexible, without measures such as this it would be too easy
to get into a situation that could not be recovered without
wiping the hard disk completely and starting again.
Q. How do I switch on/off the built-in speaker?
A. Click the volume control icon in the taskbar, and check/uncheck
the `Use speaker' box. Note that the speaker enables itself
automatically whenever the alarm sounds, so you might not to
disable it again for headphone use. Alternatively, press the
up-arrow key on the three-button pad for two seconds.
Q. How do I lock the buttons and touchscreen?
A. Presss the `A' key on the three-button pad for two seconds. Repeat
to unlock.
Q. Why does the unit not always get recognized as an external drive when I
attach it to a host computer?
A. There are a number of reasons why this might be the case. First, although
the USB protocols are designed to allow `hot plugging', in practice neither
PC/workstation USB implementations, nor the Archos firmware, are entirely
perfect in this respect. Putting a PC into `suspend' mode is particularly
troublesome -- not all USB adapters wake up properly from a suspend. It
may be necessary to reboot the PC. On my Linux machines, I just unload the
USB drivers from the kernel and reload them; I don't know if there is an
equivalent for Windows. Second, I've noticed that although the PMA will
bring up the `USB sync' screen whenever the USB cable is plugged in,
in some circumstances it won't actually do anything with the USB link.
In particular, if a network operation is underway, the USB link won't
be established. This is unlikely to be a problem with the built-in
software (downloading a large file with Opera is the only thing I
can think of), but if you're running third-party networking apps
(e.g., a telnet server) you might have to shut them down before
plugging the USB cable in.
Q. What conversion software is supplied?
A. The PMA430 is supplied with a freeware Windows application called
VirtualDub, and a simple wrapper to invoke VirtualDub with the proper
parameters for the PMA430.
Q. How well does the supplied software work?
A. It works fine, so long as the source files are in Microsoft
AVI format. By default it only does single-pass encoding, so the
quality will not be optimal for a given file size. You can make it
do multi-pass encoding, but you have to drive it yourself. Once you
get to this stage, the supplied VirtualDub wrapper won't help you
much, and you'd be better or using VirtualDub directly. The
supplied software won't read MPEG2 files, which is unfortunate as this
is a very common format for distributing video clips. It won't read
video-CD format either.
Q. What other options are available?
A. For optimum quality and speed of encoding, I suggest using
transcode under Linux, which is free. This software
will convert almost anything, including video-CDs and obscure
formats. The only problem
with transcode is that it's not terribly easy to use, even when
you get to know it, which takes ages.
The basic transcode command you need
for converting an MPEG file ripped from a PAL DVD, to play on the built-in
screen, is:
transcode -w [kbits] -i inputfile.mpg -y divx4 -o outputfile.avi -B 42,50,8The argument `-B 42,50,8' tells
transcode to shrink the image
to a size which is 42*8 pixels in height and 50*8 pixels in width smaller
than the original. This has the effect of converting
the DVD's original 720x576 into 320x240 -- the size of the PMA screen.
This peculiar command-line format is a consequence of the way that
transcode's fast image size reduction technique works.
For other screen sizes, you'll need to read the transcode
manual and get out a calculator. If the source image is not the same aspect
ratio is the PMA screen, you'll need to use additional command-line
switches to
insert black bars at the top and bottom, or left and
right, of the image,
or to crop a bit of the picture off. All of this is conceptually straightforward, but the arithmetic is fiddly.
-w switch to set the bit-rate, until
you find a setting that suits your needs. -w 500
gives file sizes of about 300 Mb/hour, if you leave the audio encoder
settings at default, and as good
a quality as needed on the built-in screen. There are
any number of other
settings to play around with as well -- keyframe interval, audio codec
settings, and a whole heap of settings just for the MPEG4 encoder.
If you turn the audio bit-rate down to 56 kbits/sec (-b 56)
then the file size comes down to about 240 Mb/hour, but it sounds a
bit tinny. This file size is the smallest I can get using transcode,
without the quality
become unacceptable on the built-in screen. For playing on a TV or monitor,
you'd probably want to aim for file sizes 3-4 times as large.
transcode.
It does produce a significant improvement in quality for the same
file size, but for watching on the built-in screen I've not found
it to be worth the extra hassle.
transcode, nor does it handle anywhere near as many
source formats, but I found that selecting `portable profile'
produced perfectly satisfactory results without much further tweaking.
The only gotcha with Dr.Divx is that
you'll need to change the audio encoder to output constant bit-rate
MP3, rather than the variable bit-rate MP3 which is its default
(transcode defaults to CBR).
transcode -- as low as 130 Mb/hour --
but that's by turning the video bitrate down to
300 kbits/sec, audio bitrate to 56 kbits/sec at 22 kHz, monoaural,
reducing the keyframe interval, etc.
In my experience, transcode tends to come apart
when asked to produce
very low bit-rate output, and the results aren't really watchable.
transcode produce
different screen artefacts. transcode tends to show
motion distortion; that is, the images tend to blur together when
fast motion sequences are displayed. Dr.Divx, on the other hand,
produces an effect which looks like partial frame skipping in
the same conditions. Most
likely these artefacts could be avoided, or at least reduced, with
both applications with sufficient tweaking.
transcode requires too
much arithmetic for this. In addition, Dr.Divx provides hassle-free
multi-pass encoding, while transcode makes me mess
about with log files and suchlike.
As it is, Dr.Divx has two huge disadvantages. First, I'd have to
buy a copy of Windows to run it under, which would work out quite
expensive. Second, it can't convert a DVD directly. In any case, getting
really tiny files is not absolutely necessary, as the USB2 interface
makes it very fast to upload movies.
Q. How do I rip a DVD to PMA430 format?
A. The only Windows application that I've been told will rip a DVD directly
to an MPEG4 AVI file is Artech's MPEG4 Direct Maker.
Otherwise, you'll need to decrypt the VOB files using something like
DVD Decrypter, then
run an encoder like VirtualDub or Dr.Divx on the decrypted VOBs.
There are a number
of freeware and inexpensive Windows utilities to decrypt VOBs. I've not
used any myself, so I can't comment on which is best. Under Linux, you can
use transcode to rip a DVD directly to MPEG4 like this:
transcode -w 500 -i /dev/dvd -x dvd -T NN,-1 -y divx4 -o outputfile.avi -B 42,50,8where NN is the title number of the DVD title you want to convert. Again, you'll need to experiment with the -w switch to get a size/quality compromise that suits you, and the `-B 42,50,8' switch only works for converting PAL DVD to built-in screen size.
Q. How does recording video through the video input compare with ripping a DVD?
A. If you intend to watch video only on the built-in screen, the quality you'll
get by recording through the video input is, in practice, as good as you'll
get from ripping the DVD directly. In fact, unless you're showing video on
a large-screen TV or video projector, the same is true for the external video
output as well. What's more, unless you have a liquid-cooled supercomputer,
recording from the video input is quicker than ripping a DVD with
a PC, particularly if you are doing multi-pass encoding.
There are two problems with using the video input. First, the PMA430 will
cheerfully record a blank screen until its disk space runs out, so you'll have
to set up a timer recording if you aren't going to be there to switch it off.
Second, the PMA430 detects the MacroVision copy-protection signal on the video
input, and refuses to play back the recording other than on the built-in
screen. This is a major irritation if, for example, you wanted to watch a movie
you recorded on the PMA430 on a hotel TV, or on a friend's TV, or even on a
monitor in a different room of your own house. So, in practice, you're most
likely better off ripping DVDs to MPEG4 format using a computer.
Q. What 3rd-party applications stand a chance of working?
A. In principle, the PMA430 is code-compatible with the Sharp
Zaurus range, so most Zaurus applications ought to be good candidates.
However, there are a number of problems with running Zaurus applications
on the PMA430.
Q. Why don't third-party audio applications work properly?
A. Most audio applications that work on the Sharp Zaurus fail to
play properly on the PMA. The reason for this is that, for reasons
I don't understand, when an application opens the audio device driver
for writing, the driver does not default to sensible buffering
parameters. This means that you'll get jerky and erratic playback.
In addition, because of a change in the Linux OSS audio API since
the Zaurus days, some application play at half-speed (a bit like a 45-rpm
record played on 33 rpm). No change in configuration will fix these
applications -- code changes are necessary, sometimes quite extensive.
See the `Programming' section below for more details.
Q. Is there an e-book reader that works on the PMA430?
A. Try JustReader --
although initially a Zaurus application,
it seems to work fine on the PMA. JustReader supports plain text,
HTML, and (I think) Plucker format. HTML and plain text can be
compressed using gzip and, so long as the resulting files end in
.gz, JustReader will uncompress them internally.
Using gzip compression reduces file sizes by a factor of 2-3.
gzip is very big in the Unix world, but virtually unknown by
Windows users. All the same, uou should be able to get an implementation of
gzip for Windows easily enough.
Q. How much RAM?
A. 64 Mb, but only 48 Mb is available to the operating system at
runtime. Presumably the rest is used for the kernel/root filesystem.
[Update -- with the latest firmware, the OS now reports 64 Mb
available, rather than 48 Mb].
Q. What is the hard disk capacity? How much is available?
A. The total disk size is 30 Gb. About 200 Mb is used for the OS.
As supplied, a lot more of the disk is taken up by manuals, PC
software, and instructional videos, but you can copy this stuff to
a PC and then delete it.
Q. What is the screen size/resolution?
A. This is a tricky question. The built-in LCD screen is
3.5 inches along the diagonal, and has a fixed resolution of 320x240 pixels.
However, the video overlay and image scaler -- which are used by the built-in
media player and photo viewer -- have variable resolution up to
640x480. You can't see this additional resolution on the built-in screen,
but you can use it with an external monitor. In practice, the video overlay
resolution is adjusted in software according to the video norm (PAL/NTSC)
and media resolution, and will normally be slightly smaller than 640x480.
Ordinary Qtopia applications cannot use the 640x480 video overlay, but you
can write or adapt applications to do so, using the Archos multimedia
API (see below).
Q. What is the screen colour depth?
A. This is another tricky question. Ordinary Qtopia applications
can use only an 8 bits-per-pixel screen layer, giving a possible
256 colours on screen at any one time. However, the video overlay
provides, in principle, 24 bits per pixel -- although colour
information is shared between pixels, so the `true' colour
depth is somewhere between 16 bits (approx 65,000 colours) and 24 bits
(approx 16 million colours). The overlay is accessible through the
Archos multimedia API, and this issue is discussed in more detail
in the `multimedia SDK' section.
Q. What external interfaces are there?
A. USB host port (for connecting keyboard, etc), USB device port (for
connecting the unit to a host for upload/download), composite video in/out,
stereo audio in/out, S-video in (but no out), wireless network adapter,
infrared transmitted and receiver.
There is no external PCMCIA slot, nor an external memory card slot. The
aperture in the case that housed the memory card slot on the AV420 is
blanked off on the PMA430.
Q. Is there any non-volatile RAM?
A. There does not appear to be. With a built-in hard disk, it is of
doubtful value.
Q. What about bluetooth?
A. There is no built-in bluetooth adapter. However, there is a full
driver stack for supporting a USB bluetooth dongle. In principle,
any standards-compliant USB bluetooth dongle should work if you
plug it into the PMA's USB host port. The problem
is that many USB bluetooth gadgets claim to be standards-compliant
but, in reality, require firmware to be downloaded using a
Windows-only downloader. So they are only standards-compliant if you're
running on Windows, which is almost a contradiction in terms. Anyway,
if you can get hold of a good USB bluetooth dongle, it should work,
in that there is driver support.
This is all very well but -- so far as I can tell -- none of the
PMA's built-in applications are bluetooth-capable. So I'm not sure
what you'd do with your bluetooth adapter even if the PMA supported it.
In due course we might see 3rd-party application with bluetooth
capabilities, but I wouldn't hold your breath.
Q. Can you connect an external hard drive/CDROM?
A. It would appear to be possible to connect an external USB
disk drive or CDROM. Although I've not tried it, all the
drivers are in place.
Q. What about firewire?
A. There's no hardware or drivers, so probably not :).
Q. Which external keyboards are supported?
A. Any USB keyboard can be connected to the USB host port, using
the adapter provide with the PMA430 (the adapter is necessary because
the PMA430's host port is a miniature USB socket, while USB keyboards
tend to have full-sized plugs). On most USB keyboards, the F2, F3,
and F4 keys take on the same functions as the three-button pad
on the PMA itself, while the arrow keys, enter, and escape
mirror the six-button pad.
Q. What about an external mouse?
A. Yes, there are drivers for a standard USB mouse, and also for a
number of digitising tablets!
Q. How do I make Qtopia (user interface) recognize an external mouse?
A. In the console, execute the following command (note -- case sensitive)
qcop 'QPE/System' 'setMouseProto(QString)' 'IntelliMouse:/dev/input/mice'To switch back to the touchscreen:
qcop 'QPE/System' 'setMouseProto(QString)' 'AVPanel'
Q. What is the range of the wireless ethernet?
A. About 10 metres in air with a good quality access point.
I have heard reports
of 50 metres out-of-doors. In my house, which is tall and thin, the
wireless range will just work from the ground floor to the attic,
but it's not very fast.
The range will almost certainly never be as good as that which can be
achieved by something that has an external antenna.
I've asked Archos why they don't supply an external antenna, or a place
to connect one, and it appears that the device is so crowded inside that
there isn't space to run the connections from the RF receiver to the
outside of the case!
Q. Does the network adapter enable itself automatically when using
a network-aware application?
A. Not as far as I can tell. You have to switch the network adapter on
using the network applet in the taskbar. I suspect that this is because
the PMA430 supports multiple network interfaces, and it doesn't want to
guess which one to use.
Q. What about IEE802.11g (fast wireless ethernet)?
A. Hmmm... probably not; at least, not yet. You could plug in a
USB wireless dongle, but I doubt that drivers would be included. Few of
these devices have Linux drivers even for desktop Linux versions.
What you could do is connect the PMA to a (wired) ethernet-to-wireless
media converter (like the ones you can buy for games consoles),
via a USB-ethernet converter (see below).
Q. How does the PMA430 support wired ethernet?
A. There is no built-in ethernet port. However, you can connect
a wired ethernet dongle to the USB host port. Archos supply a
suitable dongle, but it's quite expensive. Most of these devices
are based on the RealTek RTL8150 chip, and there is a driver for this
provided with the PMA430. You can get a suitable device from
eBay for about $5. I don't know what other devices, apart from those
based on the RealTek chip, have driver support.
Q. Does the PMA430 support auto-configuration of IP parameters?
A. Well, it supports DHCP so, to that extent, yes it does. It also
supports autoconfiguration with PPP over dial-up connections.
However, it's a bit of a drag to get the IP number once a connection
is established, and you'll need the IP number if your want to sync
PIM data over the network. So you might want to define a network
connection with fixed IP parameters if your environment allows for
this.
Q. How does IP over USB work?
A. IP over USB is a point-to-point IP connection between two devices.
If you want to establish a private network connection between the PMA430
and a PC/workstation, you can use IP over USB to achieve this over the
ordinary USB connection. However, there are a number of problems with
this. First, not all PC operating systems support IP over USB, and
it tends to be fiddly to configure even on those that do. Second,
you have to start the connection on the PMA430 and then hurriedly
plug the USB cable in and then start the PC end. If you plug the
USB cable in first, the PMA430 automatically switches to `USB
drive' mode. Since you can get a USB-ethernet dongle for $5,
it's hard to see why IP over USB would be much use on the PMA430
and I, for one, don't use it routinely.
Q. What is involved in getting dial-up to work?
A. So far as I can tell, the PMA only supports dial-up over
infra-red. In principle, dial-up over serial should work via a
USB-serial converter, but (a) there is no option for this in
the network configuration application, and (b) there do not
appear to be any drivers installed for USB-serial converters.
So, in short, you're going to need an infra-red modem, e.g.,
a cellphone. I've tried the dial-up networking with my Nokia 6310i,
and it worked fine. The trick with this phone is that you must enable
the IR receiver immediately before trying to establish a connection.
The receiver switches off without warning if it thinks the phone
is idle. For what it's worth, my Nokia is on UK Vodafone, and to get
a GPRS connection via dial-up I enter the phone number `*99#'. This
only works if you have a dial-up GPRS subscription; if you don't, you'll
have to use an ISP telephone number. If you use GPRS, you'll have to
use the GPRS provider's SMTP server to route outgoing e-mail, even if
you use an ISP's POP/IMAP for incoming mail. This is because most ISPs
either reject SMTP traffic from IP numbers other than their own, or
enforce SMTP authentication (which is not supported -- see below).
For UK Vodafone, the smtp server is send.vodafone.net.
Q. What is the Web browser?
A. Opera 6. It's a perfectly serviceable browser and, with a wired
ethernet connection, works surprisingly quickly. With a wireless
connection the limiting factor is likely to be the network speed
in a lot of cases.
Q. What are the capabilities of the e-mail client?
A. The built-in client supports plaintext (that is, unencrypted)
POP, IMAP, and SMTP. It allows multiple accounts, and outgoing and
incoming server can be different in each account. There is no
support for authenticated SMTP, either plaintext or encrypted.
This is rather unfortunate, because ISPs are increasingly
requiring mail clients to authenticate before sending mail
-- no ISP wants to be turned into a spam relay.
I've been told that TheKompany is working on a more sophisticated
mail client for the PMA [update -- just released :)].
Q. What about telnet, FTP, etc?
A. There is no built-in support for any of these, either clients
or servers, except what is available in Opera. However, I have compiled
some standard Linux networking apps using an ARM cross-compiler
(see below), and they work fine. Oddly enough, the PMA430 is configured
to accept incoming telnet connections on port 23, but there is no
telnet server available to handle the connection. This is very odd -- I
can only imagine that at some point in the past the PMA430 was intended
to have a telnet server, perhaps for debugging. [Update -- in
the latest firmware, this `feature' has been removed]
Q. Which Linux distribution is it?
A. Undocumented. It is very similar to Lineo Embedix, as used
in the Sharp Zaurus range of PDAs. Some Zaurus applications install and
run without modifications.
Q. What is the kernel version?
A. 2.4.19. It's a reasonably complete build, even including kernel modules
to support hardware that isn't included with the base product.
Q. What standard Unix utilities are provided?
A. The basic Unix commands -- cp, rm, etc. --
are provided; these are supplied by the BusyBox project. With
BusyBox, all the standard commands are provided in one executable, to
save space. There is also any implementation of rsync, which
can be used to synchronize whole filesystem with a remote rsync
server (e.g., on a PC).
Q. What is the user interface?
A. Qtopia (v1.7), provided by Trolltech. Qtopia is a user interface and
program manager derived from Trolltech's `Qt' graphical user interface
library. Qt is widely used by Linux developers to provide a graphical
interface for their applications, and it's not too difficult to
convert desktop Qt applications
to run on Qtopia, provided they aren't too demanding of resources. For
example, there is a Qtopia version of the Konqueror web browser,
which was developed using Qt for desktop machines.
However, Qtopia is not an extension of the X11 windowing system. Linux X11
applications will not run under Qtopia, even if they are compiled appropriately
and supplied with all the necessary libraries.
In a sense this is a shame, since
there are thousands upon thousands of X11 applications, none of which will
be easy to make work on the PMA430. In another sense, X11 was never intended
to run in the resource-constrained environment of a PDA, and Qtopia will
be much faster. You probably could run XFree86 -- the
standard Linux implementation of X11 -- on the PMA430 with a bit of
fiddling about. However, all the built-in applications, including the PIM
applications and the media players, are Qtopia applications, so you
might be shooting yourself in the foot by doing this.
Q. How is the filesystem organized?
A. In a very convoluted way, because there are two severe constraints on the
filesystem implementation. First, the unit as a whole must look like
a DOS/windows disk when it is emulating a USB hard drive. Otherwise
it wouldn't work with Windows systems. Second, the basic Linux filesystem
must be read-only, so the user can't break it too easily.
To satisfy these constraints, the Linux root filesystem, along with the kernel,
is found in single, large file called aimage.img within the
Windows filesystem. The bootloader
knows how to locate this file, load the whole thing into memory
somewhere, and boot the kernel, with the image file mounted
read-only as the root directory. During the boot process, the Linux
system init script mounts the whole hard disk on the
/media directory
(which means, of course, that the root filesystem includes itself
recursively, but it's as well not to think too hard about that).
Then the init script locates the file progfs.img which
now appears within
the /media/System directory, and mounts it as a loopback file
on the directory /progfs. This is where the package manager
will install 3rd-party applications (and also where the Opera browser
lives). Then the init script mounts a RAMdisk on /opt/Qtopia,
and creates a whole heap of symbolic links from within this directory
to read-only locations. It also symlinks all the configuration directories
within /progfs/opt/Qtopia, which is how 3rd party applications
remain visible in the launcher after a reboot, even though the launcher
configuration (in /opt/Qtopia/apps) is volatile.
So, when mounted as an exernal drive, the filesystem looks as follows:
Hard disk (vfat format) Video/ Music/ Photo/ pda/ (all the PIM files and system config goes here) System/aimage.img --> mounts on / under Linux System/progfs.img --> mounts on /progfs under LinuxBut under Linux, it looks like this:
/ (read-only mount of /System/aimage.img)
etc/ (ramdisk, lots of links to...)
etc.rom/
usr/...
opt/Qtopia/ --> (ramdisk, lots of links to...)
opt/Qtopia.rom/ (ramdisk)
tmp/ --> (ramdisk)
var/ --> (ramdisk)
media/ --> (whole hard disk, vfat)
Video/
Music/
Photo/
System/
pda/ (all the PIM files and system config goes here)
progfs/ (read-write mount of /System/progfs.img)
opt/
Qtopia/
QtPalmtop/
...
Q. What is the Qtopia `document model'?
A. Qtopia applications are expected not to allow the user access to the
underlying Linux filesystem. Instead, applications that handle files
are expected to read and write
from a specific Documents directory, in which files are organized by
MIME type. The advantage of this model is that the Qtopia Desktop
software understands it, so there a very simple mechanism to upload
and download files between the PMA430 and the host computer.
The disadvantage -- and it is a severe one -- is that the Documents
directory cannot be further sub-divided so, for example, all plain
text files end up in the same directory. On a device that has 30Gb
of storage, it has to be envisaged that many users will end up with
thousands of files of the same type. For example, I use my PMA as an
e-book reader, and I have many thousands of files in plain text and
PDF formats. However, I can't put these files
in the Documents directory, because the user interface just falls
apart. It tries to display icons for each of these thousands of
files in the launcher, which takes hours (or would take hours, if
I handn't rebooted it first).
Now, the Archos built-in media applications (video player, etc)
specifically don't use the Documents area, for exactly
this reason; in fact, the only
supplied applications that do use it are the software package installer,
the PDF viewer, and the text editor. These applications only
show the Documents area. I find this deeply, profoundly irritating.
I have thousands of documents in PDF format, and the only way I can
keep them on the PMA430 is to store them outside the Documents
area and copy them in when required using the file browser.
The Qtopia document model made perfect sense on devices with less
than a few hundred megabytes of non-volatile storage. However,
beyond that amount it is completely inappropriate. It makes absolutely
no sense for Archos to supply the PMA430 configured such that some of
the built-in applications are constrained to use the Documents area,
while others are not.
Although the Qtopia document model exists for a sound reason --
to insulate inexperienced users from the intracies of a Unix
filesystem --
in practice, even software developed for the Sharp Zaurus rarely
supported the Qtopia document model.
gcc with it's supporting libraries, and the
Trolltech Qtopia/QT-embedded SDK. See next question.
Q. Where can I get a C/C++ cross-compiler?
A. It's worth bearing in mind that anything which produces executables which
run properly on the Sharp Zaurus will almost certainly work for PMA430
development as well.
The Lineo ARM port of GNU C/C++/glibc for Embedix
produces code that works fine on the
PMA430. This is available for Linux and Windows, but I've only used
the Linux version. You could use other ARM cross-compilers, but you'd
still be faced with the problem of obtained Embedix-specific headers and
libraries. I don't believe there is an `official' source of the Embedix
SDK any more. If you do a Google search for `embedix zaurus cross-arm'
you'll probably turn up a few likely locations. It is now also available
from the Archos website.
Embedix was originally produced by Lineo, which is now
part of Metrowerks. Metrowerks continues to produce a Zaurus development
tool as part of its Code Warrior product. I've not used it, so I don't
want to comment on it.
Q. What do I need to create Qtopia applications?
A. You can get the Qtopia SDK from the Trolltech web site. This is commercial, but no charge is payable for using it
to develop open-source applications. The SDK comes with heaps of documentation.
Q. Is there a Java JVM that works on the PMA430?
A. With a bit of effort, I've been able to get the Sun
J2ME Personal Profile JVM to sort-of work.
I should point out that Emertec's Jeode JVM, which ships with the
Zaurus, doesn't seem to work at all on the PMA430. But then, to be fair,
this version of Jeode is extremely old. No matter what I do, it just
segfaults. The Sun JVM is available from
here.
Because the distribtued ipk file is structured for the original
Sharp Zaurus firmware, and assumes /home to be writeable,
you'll need to unpack the ipk and repack it.
Zaurus ipk files are just gzip'd tarballs inside gzip'd
tarballs, and if you unpack this one you'll find a lib
directory and a bin directory. In the bin
directory is the single executable: cvm.
You'll also need to install the Zaurus floating point library
libfloat.so (get this from OpenZaurus, or do a Google
search for `libfloat zaurus').
You'll just need to put the cvm executable, and the various
libraries,
on the PMA430 in some handy place (somewhere under the /media
directory will do -- at least this ensures that it won't disappear
when you reboot). Then, to run the JVM, set the environment variable
LD_LIBRARY_PATH to include the lib directory
that contains the stuff you unpacked from the ipk file,
the directory that contains libfloat.so,
and also /opt/Qtopia/lib. Then run the JVM like this:
/full/path/to/bin/cvm -classpath ... classnameThe
cvm command line is much like the ordinary
java command line as it is implemented in the Unux and Windows
JDKs.
Q. What about Perl?
A. There is a complete implementation of Perl 5.8.0 for the Zaurus.
which works on the PMA430 as well. There's no specific distribution
site, so a bit of Googling will be in order. Watch out -- it's
30 Mb. You'll need to unpack it and manually install all the bits under
/media, and adjust LD_LIBRARY_PATH to
get it to work.
Q. How do I play sampled audio in a C/C++ program
A. As with any Linux application that uses the OSS audio API, the
basic procedure is to open /dev/dsp for writing,
configure the sample rate, etc., using ioctl() calls,
and then write to the filehandle in blocks. This procedure is
well documented in the OSS programmer's manual. However,
in practice there's much more to it than this.
The main problems with audio programming for the PMA are that
(a) the audio buffer size is very small (I think 8 kB -- in any
event it has resisted any efforts of mine to extend it beyond
8 kB), and (b) the audio driver's default fragment size
(I think 256 bytes) is too small to get smooth playback.
As for the fragment size problem, I have obtained the best
results by setting the fragment size
to 4096 bytes, and then writing samples to the
driver in 4096-byte chunks. Here's the code you need to set
the fragment size:
int sfs = 14; // 2^14 = 4096 bytes int frags = 0x7fff0000 | sfs; // 0x7FFF means `as many as possible' ioctl(audio, SNDCTL_DSP_SETFRAGMENT, &frags)In practice, the 8 kB buffer means that you get two fragments of 4096 bytes, which seems to work OK.
Q. What character sets does the PMA430 support?
A. Qtopia is at least partially unicode-aware. This means that text
entered in the built-in applications is managed and stored in a
multi-byte format, so that a large number of characters can be
represented. The unicode standard currently defines over 15,000
different symbols -- enough for most of the world's languages.
However, having the ability to store a large number of characters
is not much use unless you have also an ability to enter and display
them (more on this below).
Qtopia's unicode-compliance is not perfect. I have noticed, for example,
that although the Contacts application can store and display Japanese
names in kanji, the characters are not rendered correctly in
dialog boxes. It's also worth bearing in mind that, if you synchronize
the PMA with a PC or workstation, there's no guarantee that the
software you use to synchronize, or to manage the data,
will be unicode-aware, or that you have the fonts
necessary to display the characters. Qtopia Desktop is
unicode-aware, provided your platform has full unicode fonts.
I couldn't comment on any other software.
Q. What must I do to get the PMA430 applications to display non-western
characters properly?
A. So far as I know, the only built-in font that supports a relatively
full set of non-western characters is unifont. You can select
this from the `Appearance' tab in the launcher. Characters for which
there is no font symbol display as boxes.
Q. How do I enter non-English (but west-European) text?
A. If you are writing extensively in French, German, Spanish, or
Italian, or a language with similar characters,
language, you might wish to consider setting the default language
of the PMA accordinging. This will change the layout of the virtual
keyboard, and expose more of the characters used by those languages.
Otherwise, if you just want a few non-English characters, you could
use the unikeyboard `input method', as described below.
Q. How do I enter non-western text?
A. This is quite tricky. It is mildy irritating that the PMA supports
non-western characters for display and data storage, but provides
absolutely no way to enter them. What is required for stylus-based
text entry is an `input method' (Qtopia jargon) which supports the
language(s) you want to use. If you only use a few non-western
characters occasionally, you might get by with unikeyboard
(see below). Otherwise, you could try one of the numerous
Zaurus input methods that are available. You'll need to overcome the
problem that there is no way to install a new input method through
the graphical user interface but, apart from that, Zaurus input methods
should work OK.
Q. What is unikeyboard?
A. unikeyboard is the lowest-common-denominator of input
methods -- it allows the user to select any character in the
unicode character set by selecting it from a (very long) list.
It is OK for very occasional use, if you just need one or two
non-western characters. Unless you have exceptional eyesight,
it's very difficult to enter kanji, but it's not impossible.
unikeyboard is also useful for entering occasional
western-European characters that don't appear on the UK/US keyboard
layout. For some reason, unikeyboard is not provided
with the PMA, although it is part of the standard Qtopia distribution.
I have compiled it and made it available, along with installation
instructions, on my PMA conversions
page.
Q. Can I use a non-US-layout USB keyboard?
A. Sure, if you don't mind guessing which keys to hit. So far as I know,
the US layout is hard-coded into Qtopia somewhere, and there doesn't
seem to be any way to change it. If you find a way, do please let me
know. To be fair, the PMA430 is probably the first Qtopia device even
to support an external keyboard, so it's not surprising that layout
support is restricted at present.
Q. Why does the touchscreen stop working after waking the PMA up from sleep mode?
A. I don't know, but this problem only seems to afflict units with the earliest
firmware. A firmware upgrade (from the Archos website) should fix it.
Q. Why can't the PMA's wireless network adapter connect to my access point?
A. The most obvious answer is: because it's out of range. The PMA has no
external antenna, so its wireless range is not as great as that of a laptop
PC, for example. However, even if the AP is in range, people often experience
problems, especially with WEP-encrypted networks. I have a suspicion that
the problem with WEP lies partly in the way APs and devices convert textual
keys (passwords) into numbers. At the protocol level, a WEP key must be
either a 40-bit binary number or a 128-bit binary number. These bit sizes can be represented as either
10 or 26 hexadecimal digits, or 5 or 13 textual characters. The
problem is that
the key size must be exactly 40 or exactly
128 bits, so if the key size you enter in the AP or the device is not of
the right size, it has to be padded. I'm not convinced that different
products all pad the same way. So, for example, if you enter `fred' as
the WEP key in your AP, and the selected key size is 128 bits, your
four characters have to be padded to 13 characters. The AP might do
this by padding with spaces at the beginning, or at the end, or repeating
the characters. Provided all your wireless equipment comes from the same
vendor, you probably won't have a problem, because all the equipment will
pad the key the same way. However, there's no guarantee that the PMA will
follow the same convention.
In short, the best way that I have found to ensure that wireless equipment
from different vendors works properly together is to use a key that
fills the bit size exactly. So, because I'm using 128-bit keys,
I would always enter a 26-digit hexadecimal number on all the
equipment in the building.
I appreciate that this is of no help if the access point is beyond your
control -- in an airport or something. But if it doesn't work there, the
problem does not necessarily lie with the PMA, but with the lack of
standardization in this area within the networking industry.
Q. Why can't I connect to a network using my USB ethernet adapter?
A. The PMA only has drivers for a limited range of USB ethernet adapters.
Most obviously, it supports the device that Archos sells; it should
support other devices based on the RealTek RTL8150 chip; for other
devices, your mileage may vary. The problem is that it can be very difficult
to tell, before making a purchase, what chip your prospective device is
based on.
Q. My PMA gets warm in use -- is this normal?
A. I don't know if it's normal, but it's undoubtedly typical. You should expect
it to get warm to the touch, especially with the wireless network adapter
in use.
Q. Why doesn't the supplied infra-red remote control seem to work?
A. Perhaps because the IR sensor on top of the unit is not for remote
control, but for networking. The receiver for the remote control is
on the cradle, so you can't use the remote control unless the PMA is
plugged into the cradle.
/opt/PMA400//lib/libcsl.so: undefined reference to
`QExclusiveLock::unlock(QExclusiveLock::Type)'
A. Because, I presume, Archos did not produce libcsl.so by
linking against the Trolltech versions of the Qt-embedded libraries, but
against their versions of these libraries. QExclusiveLock is,
so far as I can tell, not part of Qt-embedded at all, and I've no clue
what it does. In any event, the solution to the problem is simple --
rather than linking your application against the libqte.so
from Trolltech, copy this file from the PMA itself (it's probably in
/opt/Qtopia/lib and link against that instead.
Q. How do I write directly to the video framebuffer?
A. There are two basic approaches: using the ordinary Linux
framebuffer interface (at /dev/fb0), and using the
Archos framebuffer API. The former is probably preferable if you
are porting existing Linux applications, but (so far as I can tell)
you won't get more than 8-bit-per-pixel (bpp) pseudocolour that way.
Using the Linux framebuffer
The basic approach is to open /dev/fb0 as a random-access
file, then write pixel data directly to it. The resolution of the
PMA screen is 320x240 when addressed this way, so /dev/db0
appears as a file 76800 (=320x240) bytes long. The first 320 bytes
is the first screen scan line, the next 320 bytes is the second, and
so on. You can use the mmap() function to map the whole
framebuffer into your application's memory, and just address it like
a 320x240 byte array.
The usual way of configuring the Linux framebuffer driver is by
way of ioctl() calls. I have found that many of these
calls are unimplemented by the Archos driver, so some experimentation
may be needed.
Using the Archos framebuffer API
The framebuffer API treats the screen as three overlapping layers.
The top layer is the standard Linux framebuffer, onto which the
usual elements of the graphical user interface are drawn --
menus, buttons, etc. This layer has a fixed resolution of
320x240 pixels, at 8 bpp. It is this layer you are drawing on when
you write to /dev/fb0 as discussed above. All the standard
QT graphics API calls write on this layer as well. In normal
circumstances (that is, running ordinary Qtopia applications), the two
underlying layers are not even visible. I shall refer to this layer as
the `QT layer'.
Below the QT layer are two variable-sized video layers. Only one of
these is accessible through the Archos SDK (so far as I can tell).
Despite what it says in the Archos documentation, the default resolution
of the accessible layer is 640x240 (not 640x480). In order to use
video layer, you must make the QT layer transparent, so that the
video layer can show through. In the simplest case, you can
create an application with a QMainWindow as its main
widget, and set the background colour to QColor(0xFE, 0, 0xFF).
So, the outline of a trivial application might look something like
this:
int main(int argc, char** argv)
{
QPEApplication a(argc, argv);
QMainWindow mainwidget;
mainwidget.setBackgroundColor(QColor(0xFE, 0, 0xFF)));
a.showMainWidget(&mainwidget);
while (...)
{
// Write to video layer
a.processEvents(); // Allow Qtopia to carry on working!
}
return 0;
}
This application creates a single window, with a title bar, etc.
You can add the usual stuff -- menus, etc. -- as required.
CoprocInterface object, which is straightforward
enough. Here is an example:
#include <coprocinterface.h> #include <aresourceset.h> // Reserve the video hardware for this app AResourceSet* ars = AResourceSet::get(); ars->reserve(ars->ResImageResizer | ars->ResDSP | ars->ResSDRAM); // Get a reference to the video processor CoprocInterface *cpi = CoprocInterface::get(); // Get a reference to frame(0), which is the one actually // in the display unsigned long vfoZero = cpi->videoFrameOffset(0); // Create a buffer of pixel data of the appropriate size // (640x240 if the framebuffer is left at default settings) unsigned short int buff [...]; // Put the pixel data in the buffer buff[0] = ...; buff[1] = ...; // Dump the buffer to video memory cpi->writeVidMemory (vfoZero, buff, sizeof (buff));And that's about it, really. You can use the
FramebufferInterface
class to set the resolution of the video layer, but be aware that you
need to do this before the `transparent' QT window is painted -- otherwise
the display is garbled (not sure why). See below for more information
about the PMA's pixel format (colourspace).
Q. How do I use the hardware image scaler to expand/reduce images to
fit the screen?
A. The simplest way, I think, is to build your image in one of the
un-displayed memory regions in the video processor, then use
the ImageScaler class to both scale it and transfer
it to the display region.
#include <imageresizer.h>
ImageResizer *scaler = ImageResizer::get();
unsigned long vfoZero = (unsigned long)cpi->videoFrameOffset(0);
unsigned long vfoOne = (unsigned long)cpi->videoFrameOffset(1);
//... use writeVidmem to write to vfoOne, as described above
// Set the sizes of the source and destination areas
int srcWidth = ..., srcHeight = ...;
int destWidth = ..., destHeight = ...;
QSize srcImageSize (srcWidth, srcHeight);
QRect srcWindow (0, 0, srcWidth, srcHeight);
QSize dstImageSize (dstWidth, dstHeight);
//... scale and copy from vfoOne (offscreen) to
// vfoZero (onscreen)
scaler->blitImage (vfoOne, srcImageSize,
srcWindow, vfoZero, dstImageSize);
Q. Which pixel format (colourspace) does the PMA430 use?
A. The PMA430 video layer uses YUV422 format (also known as
YUYV). This gives 24 bpp colour resolution with 16 average bits per pixel.
This seemingly-miraculous feat is by sharing the chroma data between
pairs of pixels. In YUV422, the display is made up of 32-bit (4-byte)
`megapixels', where each megapixel represents two screen pixels.
The format of each megapixel is as follows:
1st byte: luminance of first pixel in the pair 2nd byte: U-chrominance of both pixels 3rd byte: luminance of second pixel in the pair 4th byte: V-chrominance of both pixelsBecause of the sharing of chrominance values, it is difficult to specify an exact colour depth for the PMA display. At maximum framebuffer resolution -- 640x480 -- and with an external monitor, the colour depth is between 16 bpp and 24 bpp, depending on whether adjacent pixels happen to take the same or very different chroma values. When the video overlay is projected onto the LCD screen, there are four pixel values in the overlay for each pixel of the LCD (which is only 320x240), so the colour depth will be a full 24 bpp. However, it is unlikely that the LCD hardware is able to discriminate this full colour range. Most likely the colour resolution of the LCD panel is about 18 bits (260,000 colours).