BlackBerry stuff
Symbian stuff

TreoHelper. GPL licensed free software.

TreoHelper has options to help control phone and network operations of the Treo 180/270/300. You can assign on/off times for the phone, conditions for when to drop the network connection and/or turn off the phone. This can help you experiment with overcoming some known firmware issues on the device, such as the "turbo drain" and "red blink of death" syndromes.

0.70 fixes a Sprint 650 SMS trigger issue.

0.69 adds Treo 650 compatibility.

Recently, I added an SMS section. This allows you to assign a ringtone/vibrate to incoming SMSs based on a text match. It also has a "Def" setting which is used for SMSs which don't match any others. There is a "launch" under each SMS setting, which provides a way to filter SMS text into certain applications. One such application is GNUGotMail, which when it is launched in this way will perform a mail fetch. Another is PBJTime which will give you a more convenient SMS popup.. i.e. it goes away after a few seconds and can be launched with a hotkey hold if you also install pbjtimehack.

Here are some TreoHelper notes.

TreoHelper screenshot
My Treo 300 settings.

Download TreoHelper (v0.70):

PBJTime screenshot
PBJTime showing SMS.

Download PBJTime (v0.7):

GNUGotMail. GPL licensed free software.

GNUGotMail is a simple SMTP/POP3 client for the PalmPilot Professional and later versions. It is not very different from other available mailers except that it shows free memory, and battery voltage during mail retrieval so you can make decisions on whether to cut your session short before all of your memory/battery is exhausted. It also lets you define a 'free memory' point so that it will automatically stop. This can be useful if you have some programs on your PalmPilot which are sensitive to low memory conditions.

Another key feature of GNUGotMail is that the last message number is kept in the POP Preferences so that the next time you check your mail it will continue at that point. This is useful if you are checking your mail while away from your computer and you don't want to delete your mail from the POP.

If you specify a 'max number of lines' it will use the TOP command rather than the RETR command, which can shorten your session time as well as keep your Inbox messages from being too big. Since the TOP command counts "lines" it is not as accurate as a byte-count because lines may be up to 1024 bytes long according to the POP RFC. Still, it is more efficient than other truncation methods because you do not have to receive the entire message as you would with the RETR command.

GNUGotMail screenshot

Download (v0.83):

Mail screenshot

Download (v3.5ggm15):

Hot Date. GPL licensed free software.

Quickie instructions

Use the Today, Tomorrow, Week pushbuttons along the top to create a list of appointments and todos. You may pick a default tab (one that it always starts with) by going into the Appt Prefs from the menu. The Week pushbutton may also be used to pick a starting day for the weekly view. To do that, just tap it (while it shows the mm/dd) while it is currently active. That will bring up a date selector.

There are three types of content that show up in the list. Appointments are always first and then todos. Directly following the appointments it is also possible to find a list of untimed alarm events for that day (only in Today & Tomorrow lists). Untimed alarms are typically set for days in advance of an untimed event. Hot Date searches for untimed alarms up to 14 days in advance and adds them to the Today & Tomorrow lists as a reminder in case you missed the one-time dialog that Datebook provides.

Other hotspots on the screen include; tapping in the lower left will launch a program of your choosing. Tapping on an appointment or todo will also launch a program if you tap on the leftmost half of the list. Tapping on the rightmost half of the list will show more information about a particular appointment or todo. If a note is available for an appointment or todo, you may scroll it by dragging your finger within the field or using the pgup/pgdown hard buttons. To close the popup, you should tap outside of the popup.

One of the recent additions is a phone contacts list (phone icon). This lets you make a popup list of your favorite Address book items. It displays the item in the same way that Address book does. Tapping on an item will launch the Address book application (or equiv as defined for Contacts launch). By default the 'contacts launch' preference is set to the Address Book application. As we find enhanced versions of these, I would be happy to include support for them. Address+, AddressPro, Super Names, and TealPhone (V2.20 or higher) are also supported at this time. Please email me with your requests.

The pizza timer is a very simple add-on which I am going to enhance in the next version. The only thing that it does is schedule an alarm chime at the selected time period. Useful as a quick reminder for reheating pizza, or starting the dishwasher etc. You do not have to stay within Hot Date for the alarm to function.. just pick a time period and forget about it. If you want to cancel or change it, just pick "off" or select a new time period.

v1.3g is 1.3f with some OS5 fixups. Basically programmatic errors which showed up in the simulator.

Hot Date screenshot

Download (v1.3i):

Sparkler. GPL licensed free software. EXPERIMENTAL!

Quickie instructions

The FireCracker dongle (CM17A) monitors DTR & RTS to accept 40 bit commands. The protocol can be found here:

However since the PalmPilot doesn't have a programmable DTR line I had to use the TXD line in its place. So in order to hook the CM17A to a PalmPilot you will have to connect the PalmPilot's TXD line in place of the DTR line going to the CM17A. Leave the DTR line unconnected.. such that you only have GND, TXD (going to where DTR is supposed to be), and RTS going to the CM17A. Do NOT attempt to utilize the CM17A as a pass-thru in this configuration because I presume it would not work.

About this sparkler software; I wasn't able to find a suitable means to manipulate the TXD & RTS lines by using the API. So I had to go directly to the Dragonball registers. This makes the code non-portable.

I am not that experienced in programming the Dragonball registers. After a helping hand from Oliver King-Smith who sent me the code to clear/set the RTS line, I was able to figure out how to do the same to the TXD line. From my understanding of the Dragonball documentation there are three memory mapped bytes that are used to control each port; select, dir, and data. Actually there is a fourth, pullup-enable, which controls whether or not pullup resistors are enabled on the port.

The select register is used to change whether a port (or certain bits of a port) are connected to internal peripherals, or if it is just a general purpose I/O pin. The dir register controls whether it is an input or output pin. And the data pin is used to read/write bits to the port.

Anyhow, that's as much as I know.. and it was all I needed to know. Basically the TXD and RTS lines are normally connected to the UART (select register bits are 0). With the select register however we choose to make them into general purpose I/O pins and we can then set them high or low at will.

  /* detach RTS from UART and make it into a GP I/O */
  SET_BIT(pRegisters->portMSelect, UART_RTS_LINE);

To make the pins into latching output pins, we just use the dir register.

  /* set RTS to be an output */
  SET_BIT(pRegisters->portMDir, UART_RTS_LINE);

Then to set the pin high or low you just use the data register. Most models of the PalmPilot have an inverting tranceiver, although I think there are some models that don't. I'll have to check for that later on I guess.

  /* make the pin high */
  CLEAR_BIT(pRegisters->portMData, UART_RTS_LINE);

  /* make the pin low */
  SET_BIT(pRegisters->portMData, UART_RTS_LINE);

The same thing is done with TXD, you just look in the Dragonball manual and find the appropriate port and bit that goes along with the function you need. Although I think the pin names on the chip will tell you.

When you are all done, just reconnect the pins to the UART by using the select register.

  /* set RTS back to normal */
  CLEAR_BIT(pRegisters->portMSelect, UART_RTS_LINE);
  /* set TXD back to normal */
  CLEAR_BIT(pRegisters->portGSelect, UART_TXD_LINE);

I don't think this stuff is the same on the Dragonball EZ so I'll have to add some testing etc to make it work. Likewise if there are models with non-inverting tranceivers.


  • V0.03 - Awesome changes from Chris Hawks. I did leave out the PalmOS 3.5 SDK changes because I still use SDK 2.0 - whatever is in the Debian stable tree.
  • V0.02 - Added support for EZ processor.
  • V0.01 - Still playing around. This is experimental software and it manipulates the Dragonball registers. It is probably not compatible with the Dragonball EZ processor.

Sparkler screenshot

Download (v0.03): (CRLF)

Feedback: Chris Faherty <>