Resurrected from the Internet Archive in December 2016. Donate to the Internet Archive! They're a great resource.
(Refurbished by Bill Kendrick, bill@newbreedsoftware.com)
Historical notes: The Agenda VR3 was the first Linux-powered PDA. It had a lot of potential, but, unfortunately, a combination of underpowered hardware and poor software meant that it remained mainly a curiosity.
This FAQ attempts to answer the most common questions on the Agenda-User mailing list. It is overwhelmingly pulled from responses by two Agenda developers, Shane Nay and Bradley D. LaRonde. Basically, I did not originally answer these questions myself, but I did paraphrase them, and may have got them wrong in the process. If you notice an error, please email me, because, of course, errors defeat the whole purpose of the FAQ. Please also send email if you have a suggested FAQ to add.
Memory:
- What kinds of memory does the Agenda have?
- What is the FLASH memory used for?
- Can the RAM store persistent data?
- What about CompactFlash?
- So is it possible to expand the Flash memory?
- Is it possible to expand the RAM?
- Can I reliably store things in RAM?
- But I wanted to use the IBM Microdrive!
- Does Flash ever "wear out"? How fast is it?
Communications and Syncing:
- What's a "high speed serial port"?
- Can I communicate with mobile phones that use infra red?
- What's the difference between the consumer IR port and the IrDA port?
- How is synchronisation done? Is it standards-compliant?
- How can I PPP in to my Agenda from a desktop Linux box?
- I can connect to the Agenda using PPP from my BSD / Windows machine, but "telnet" hangs when I try to connect, and I have to hard-reset the Agenda.
- I can connect to the Agenda using PPP, but "telnet" hangs when I try to connect.
Alternative OSes:
Languages and Development:
- How can I set up a Linux cross-compiler for the Agenda?
- How can I set up a FreeBSD cross-compiler for the Agenda?
- What libc are you using? Are you using Diet Libc?
- Can I use Python on the Agenda? What about Java? Perl? TCL/TK?
- Where can I find bindings between < my favourite scripting language > and FLTK?
- Can I write programs on the Agenda?
- Speaking of GCC, can I run that on the Agenda?
- Is there an Agenda emulator?
- Can I develop FLTK applications under Windows?
- Do I need cross-compiled versions of the libraries against which I'm linking when I'm cross-compiling applications for the Agenda?
- Where can I find more info about the version of the Linux kernel that the Agenda runs?
- Why use compiled applications, when you could probably have saved space by using a script?
- Any chance of a toolkit with a C API (as opposed to C++ for FLTK), aka: Why not GTK?
- The FLNX package allows FLTK applications to run on the NanoX GUI, which is much smaller than X. Why not use it?
- Will there be support for the C++ STL?
- Is there a SourceForge-like site set up with a list of ongoing projects?
Built-in Applications:
- What database format does the organiser application use?
- What about the character recognition engine?
- I can't write anything!
- Can I read Word and Excel documents on the Agenda?
- Is Telnet included?
- What license are the built-in applications released under?
- Can I sync with KOrganiser? Other PIM apps?
Internationalisation:
Display:
- What kind of graphical display does the Agenda use?
- Isn't it wasteful to run X on a PDA?
- How do the shades of grey work?
- Can FLTK be themed?
- How do I display pictures?
- How do I write to the framebuffer, if I don't want to use X? Is it VESA2 compliant?
- What about QT/Embedded?
- How do I turn the backlight on and off? Contrast?
Sound:
Networking:
Hardware / Hacking:
- Can I upgrade the kernel?
- What should I watch out for when re-installing?
- What processor does the Agenda use?
- What kind of hardware information can I get hold of?
- What kind of architecture is the vr4181? 32-bit or 64-bit?
Hacking The Developer Unit / Problems with the Unit
- When I change the batteries in the Agenda, it reboots!
- My Agenda seems to use power even when it's suspended.
- My Agenda seems to use power faster when I leave it in the cradle.
Community:
- Where can I find out more / talk to other developers / etc?
- Are there other sources of information on the Agenda?
- Projects Mentioned So Far on the agenda-user list
FAQ:
The original developer edition Agendas, and the current consumer VR3s come with both Flash and conventional RAM.
In the original developer edition Agendas, and the current consumer VR3s, the Flash memory stores the entire Agenda distribution, including the kernel, built-in applications, applications installed by the user, and application-produced data (addresses, notes, etc).
No - RAM is used for temporary storage only, unlike, for example, the Palm Pilot. Persistent data should be stored in Flash.
The Agenda VR3 (at least) will not use CompactFlash. Due to a poor design decision of NEC's, the CPU's CF support can't be used at the same time as the keyboard interface. Also, there is simply not enough room for a CF slot. Apparently Sony memory stick or MMC are an option for later models.(Shane Nay, D. J. Kessler)
Not easily - the Flash is soldered to the motherboard. It's likely that eventually a 32MB Agenda will be produced, but it certainly won't be produced soon. 32MB of Flash would significantly increase the cost of the Agenda.
Based on previous discussion about Flash memory (it was not mounted in a socket because of height limitations) it probably is not socketed, which would make for a very fiddly and risk-prone desoldering job. (#1850) (Shane Nay)
Reasonably reliably. Like a normal computer, when the Agenda reboots, the contents of RAM is lost. However, the Agenda wasn't designed to be rebooted very often. At least in theory, it should be possible to boot the Agenda once and never reboot it, since it has a lithium internal battery to allow the memory to persist when the main batteries are changed (see this question). That said, it is not a reliable thing to do, nor particularly user-friendly, given the small amount of RAM in the VR3.
Even if the Agenda did have a Flash slot, the Microdrive is not very feasible because of its power consumption - 500mA, more than five times the power draw of the rest of the unit combined. (D. J. Kessler, Shane Nay)
Flash supports (at a guess, says Bradley D. LaRonde) around 100,000 erases per block, so yes, eventually it will be impossible to rewrite a particular block, where "block" is 128KB. Reading Flash is similar speed-wise to reading RAM. The file system used to write to the Flash is JFFS, which was designed with flash RAM in mind and tries to ensure equal use for each block, therefore extending the overall life of the flash. (Bradley D. LaRonde, Shane Nay)
It is a direct interface to the Clocked Serial Interface Unit of the VR4181 CPU.
Yes. (Shane Nay)
James Smith asked not to be quoted on this, so I am omitting the actual figures he mentioned ;-), but in general terms the consumer IR port is a higher-power transmitter and consequently has a longer range.
This question was prompted by the announcement that SyncML was Open Sourced. SyncML is an industry-wide attempt to standardise synchronisation across a range of devices. Shane's response was that the built-in apps do not synchronise in a standards-compliant way, but "we are doing standards-compliant stuff with IRObex". (#1839)
This answer reproduced from email #1956 on the agenda-user list:
Try this:
This is a known bug, unfixed as of the 24th of December, 2000.
Ensure reverse DNS is set up correctly. If it is not, "telnet" will take a while to connect, and will appear to "hang" until the reverse DNS lookup has timed-out. In my experience, this timeout period can be between 30 seconds to several minutes. If the Agenda requires a hard reset to continue, perhaps the previous FAQ applies.
At the moment there is no port of FreeBSD to the VR4181. NetBSD is known to run on several varieties of VR-family processor, but not the VR4181. OpenBSD appears not to support the VR series at all. The short answer is "No, but NetBSD should be an easy port". (Jay Carlson) (NetBSD hpcmips port page)
This message from the agenda-user mailing list archive (sent by hvrietsc@yahoo.com) describes how one person setup a cross-compiler environment - but see below (summarised in Brad's response)about needing to cross-compile the Agenda libraries beforehand.
More information for this question would be appreciated, but right now you're obliged to create a bintools and gcc that can speak vr4181 machine code. This message from Jay Carlson includes links to files of interest.
The Agenda uses a normal glibc. Agenda are tracking the linux-vr distribution, which at the moment is using an older-than-normal glibc, however. (Shane Nay)
All of these languages are theoretically supported on the Agenda, but none will be included in the base distribution. BwBasic, Forth, Java (KVM), LUA, MAWK, Perl (MicroPerl), Ruby (MiniRuby), Not-Quite-C, Python, Tcl, and Scheme (TinyScheme) are all available. See the Development category of the Agenda Software Repository.
Yes, although the choice of scripting language hasn't yet been decided for the final distribution, and no other tools to create programs (such as a C compiler) will be included. It's debatable how productive you'd be anyway, given the Agenda's small screen and pen-based input, but the geek cred is certainly high.
It's possible that GCC could just fit in Flash, but cross-compiling using the Linux-VR tools is probably more sane.
No, but there isn't any need for one, since FLTK cross-compiles nicely from Linux to Linux (Shane Nay)
Yes, but there is no MIPS cross-compiler for Win32. You could solve this using vmware, possibly - or you could try compiling the gcc MIPS cross-compiler using the Cygwin tools. (Shane Nay)
Yes, but binaries for libraries included in the base distribution will be available to save you time when Agenda ships. (Bradley D. LaRonde)
The Agenda runs the MIPS port of the Linux kernel that came out of the linux-vr project - visit that Website for more info on that kernel port.
The main reason is speed considerations - the MIPS processor on which the Agenda runs is quite underpowered compared with a desktop machine (Shane nay)
There are two major reasons for the choice of FLTK as opposed to GTK+: first, a preference among Agenda employees for an object-oriented approach to GUI programming, and second, in a machine with 8MB ram the size difference between GTK and FLTK became important. Cramming two toolkits with dramatically different looks and feel into a 12MB distribution seems like a good idea to nobody, so it's pretty final that FLTK will be the only high-level GUI toolkit available by default on the consumer-release Agenda. Of course, developers can statically link applications to GTK, or port GTK to the Agenda for themselves - if you're interested in doing so without the overhead of even X windows, you might want to have a look at Elliot Lee's gtkfb page, although there's not a lot there at the moment. (Shane Nay, Janne Andersson)
Compatibility again - once it was running on Agenda, NanoX would leave more memory for apps and probably speed up their launch time, but unlike X, it is not even approaching a standard. (Shane Nay)
The C++ runtime will be in the base distribution probably forever, since several of the base applications use it.
This has come up several times. At the moment, there is no such place. Several people have suggested places like Sourceforge, but others expressed nervousness about issues of reliability and speed. The current official plan is for Agenda Computing to partner with another company, which would host a Sourceforge-like development area. Partnering also reduces another concern about an Agenda-hosted developer area, which is that Agenda Computing might be obliged to delete certain projects (a Palm emulator was mentioned) because of copyright infringement issues. ("S B", Shane Nay, others - refer to the December agenda-user list archive for the thread "Project Repository/Listing -- lets create one, but where?" for more info)
Berkeley DB 1.85. (Shane Nay)
The handwriting recognition is built into the keyboard app. Pop the keyboard up by tapping the keyboard icon on the silkscreen below the LCD (at the far right). The app. has three modes: "ABC" (alphabet), "123" (numeric and more punctuation) and "HWR" (handwriting mode). The HWR mode is split into four areas: uppercase, lowercase, numbers, symbols. A list of Xscribble strokes is here (.png image)
The supplied programs don't read Word and Excel formats natively (and in fact there is no supplied spreadsheet in the standard distribution), but there are many Linux tools around to take you partway there. Adding a Word import function shouldn't be difficult. (Shane Nay)
Telnet is included as part of Busybox in the base distro.
The GPL. The applications are Free Software as defined by the Free Software Foundation at www.gnu.org.
There is no way to sync with KOrganiser and StarOffice right now (20th of November, 2000). Extending the sync mechanism basically involves writing a db1.85 <-> desktop PIM format converter (Shane Nay)
It's on its way. Plans are underway to release "localised" Agendas (China was specifically mentioned) with localised handwriting recognition and applications. FLTK supports I18N, as does of course libc. Functionality to type accents onto characters isn't currently present but the framework is there and should be ready in the first few Flash distributions.
(Shane Nay) The X server that we use is based on the frame driver written by Keith Packard of Suse written for Itsy. It's XFree86, we're using one of the later 3.9 series at the moment, but we're forward porting to the 4.0 tree.
A: (Shane Nay, paraphrased) Although it's not the tiniest piece of software around, X is fairly compact (the "huge memory usage" that people often report from X is often because of the 4-8MB of video memory that X maps into itself), but more importantly, X is the standard for Linux graphical applications. Not only does this mean a simplified porting process for Linux apps, but it is also very easy to test potential Agenda applications on a desktop machine.
Application developers needn't worry about this - translation to greyscale is handled by the X server. (Shane Nay)
Kinda. FLTK 1 can be themed, but only on a per-application basis. FLTK 2 will support systemwide themes. The default FLTK theme will be a simple, non-"noisy" theme, better suited to a handheld environment. (Bradley D. LaRonde)
Use libpng and libjpeg, which are included. Imlib is not. (Shane Nay) VRJpegs is a nice JPEG viewer for the Agenda.
No. There has been no official word on this, but from perusing linux-vr sites, it seems that linux-vr uses the kernel framebuffer console, which means graphics apps can mmap /dev/fb0 and adjust settings using ioctls in the standard manner.
Shane mentioned (19th of November) the developers of QT Embedded being interested in the Agenda. If QT Embedded is ported to the Agenda, this will ease the porting of Qt apps, albeit without the benefit of the Agenda handwriting recognition, which could be interesting. Update11th of December: The QT/Embedded developers have been sent a developer Agenda, for porting to Qt/Embedded.
Hold the power button (on the left side of the Agenda) down for a few
seconds to toggle the backlight. You can also run the following command in the Terminal: "/usr/bin/fbctl -l 1
" (backlight on) or "/usr/bin/fbctl -l 0
" (backlight off) (Mark Walter, Shane Nay) (#1966)
Yes, but given the very limited space, it's probably not something you'd do more than once. Also, since the CPU has no FPU, you'd need a special MP3 player, like this one, to decode MP3s at a reasonable speed.(Shane Nay, Hiroshi Kawashima)
The sound support is 10-bit and monophonic, supporting both play and record. (Bradley D. LaRonde)
There are no official plans to incorporate voice recognition, but it is possible assuming the storage requirements are acceptable.
The Agenda supports PPP over its serial port, allowing full */IP access to a server. Jack Gassett mentioned that TINI, a serial-to-ethernet adapter, should work with the Agenda. AgendaComputing is coming out with an ethernet adapter specifically for the Agenda, as well.
Yes
Be very careful not to destroy the PMON (bootstrap / reflash) section of Flash. This is quite a small section (128 or 256k) compared with the rest of the Flash (kernel: 2MB, distribution: ~7.5MB), but if destroyed could be costly to repair. It's unlikely that this section will ever need re-flashing. (Shane Nay)
The exact instructions necessary to write-protect this area of Flash are available in a mailing list message from Shane Nay. Starting from the second batch of developer releases (ie, after, presumably, the 11th of December 2000, this area will be write-protected initially, anyway.
It uses a 66Mhz, 32-bit NEC VR4181 MIPS processor. A good place to start searching is at This NEC page (WJCarpenter), or read an overview at linuxdevices.com (Alexander Dietrich).
At the moment, no reference information is available, but some is promised soon. Shane gives a "0.0001% chance" of being able to release schematics, but at least pinouts and related information should be available soon (last updated 19th of November).
It's an hybrid - "like a 32bit core, with some 64 bit ops thrown in" (Shane Nay). Agenda Computing doesn't use the 64-bit instructions, and no part of the GCC produces code that utilises them either. (#1444)
Terence Hui explains the situation best. In summary, a software bug (24th of December, 2000) causes the unit to power-on when the battery cover is opened, which is more than the lithium backup battery can bear. The (temporary) work-around is to open the cover, turn the unit off again, and then change the batteries as normal. Larry Battraw clarified things a little more by discovering that hitting any button while the batteries are out causes the unit to attempt to power-on again, resulting in memory loss and a reset.
It does, because it uses power from the batteries to maintain the data in RAM. Larry Battraw provided rough figures on the list:
100-170 mA during boot (fluxuates wildly)
It does, and is apparently a design flaw that Bradley D. LaRonde plans to fix, or "at least make it not nearly as bad". Larry Battraw provided the figures again:
1.2 mA suspend, out of cradle -- this is odd, yesterday it was half that
developer.agendacomputing.com contains community information, along with useful resources including the official FAQ. There is an IRC channel - #agenda on irc.openprojects.net, and a developer mailing list.