An Inexpensive APRS Weather Station

Current project status

Latest News
Hardware Status
Software Status
Known Bugs
Debug Messages

(August 2009) Added support for AAG's TAI603 weather head
(July 2010) Created Mon08w for software updates under windows

Back to Top

Hardware Status
T238 is out of production and all boards sold
T238+ still for sale, but running very low.
Back to Top

Software Release Notes
In case you are curious how releases are numbered: They are numbered huge.major.minor. A huge change would be a complete rewrite, something I may do some year like converting to C source or something like that. For each major release I (mostly) decide ahead of time what the changes will be for that release. I do sometimes release partial updates on the way to that major set of goals and that is where the minor releases come from. The highest numbered minor release should have everything I wanted in it.
For each release you should see the letter "R" displayed on the LCD when you power it up or it sends out its initial ID. This indicates an official release which has been reasonably well tested and has been archived. While working on code I have a "C" after it indicating it is a candidate for that number. Those should rarely be seen outside my own development work.
Releases prior to 1.15.0 are for the T238 only.
Releases from 1.15.0 on are for both the T238 and T238+.
OK, you can wake up now and read release notes...

1) Added support for new AAG TAI603 weather sensor.

1.16.0 Never released to the public
1) Added two cycling repeater types in addition to the user-specified one
   WIDE 121212 is WIDE 2-1, WIDE2-2 alternating
   WIDE 121213 is similar except the sixth is WIDE3-3
2) Added a timeout check on the humidity sensor (may have been causing lockups)
3) Found a math error in the BP reporting (reported by users)

1) Fixed and E/W bug in position string setup.
2) Fixed a rounding error in metric rain gauge calculations.
3) Updated copyrights to 2006.
4) Changed source ID from WX1W to AP1WWX for Kenwood receivers (OKd by Rob).
5) Added 12 Peet field for avg wind speed (but is 5 min, not 1 min!).
6) Finally found the RH calculation error! (error in table lookup on error).
7) Fixed bug that erroneously turned on T238+ transmitter in Computer mode.

1.15.0 to 1.15.7
1) First releases that incorporates T238+ support. (Same code works for T238 and T238+.
2) Debug screen added to the main menu cycle.
3) Max Gust is now valid for 10 minutes, not 5 (more NWS-friendly).
4) Think I isolated and fixed the Midnight bug (occasional lockup at midnight).
5) Added wind speed data to APRS packet if >25MPH (debug, will go away).
6) Fixed a wind direction bug only in Modem Mode.

1) Added BP trend to main screen (an arrow).
2) Removed the dedicated BP screen (no longer needed).
3) If DS1994 exists, it gets re-read every night at midnight local time.
4) If today stats screen is selected, it alternates with current data.

1) Bray sensor barometric pressure support imported from Byron.
2) Updated copyright notices to 2003 (forgot 2002!)
3) *** Sqirly bug in TNC BP string went away, may come back
4) *** Peet format for humidity not verified!

1) Fixed a rollover problem where November rolled to January (!!)
2) New X-Y coordinate scheme for screen updates (thanks Bill!)
3) Checked default baud rates when UART mode changes--OK.
4) Re-organized RAM into $50-$ff and >=$100 regions for better index control.
5) Moved Rain table (RANTBL) to >$100
6) Now displayed temperature and dewpoint come from user-selected temp sensor
7) Fixed bug where A/D not initialized if no rain gauge.
8) Fixed bug where dewpoint math was off by up to ~10 degrees
9) Did better job of rounding displayed temperature in C.
10) Don't show dewpoint if temperature or humidity error (only humidity before)
1) Added option to show dewpoint instead of %RH
2) Removed Humidity "02" messages. No need for them anymore.
Also removed RH data from debug screen
3) Added Language support in defines (Portuguese from Hugo is first)
4) Got rid of some IRQ timing debug code, was using PB7 twice!
5) Typo in metric status screen #2, had MPH instead of KPH
6) Fixed a bug where temperature compensation on %RH was not done correctly
7) Fixed a bug where HMTMP was always positive, no negative temperatures!
1) Added support for controlling radio power (Port C bit 0).
2) Now I can digitize the incoming battery voltage.
3) Battery voltage displayed on LCD and status string.

1) Fixed bug where local time offset didn't get saved in Flash
2) Now don't send computer humidity data if 0% (has to be an error)
3) Don't send hxx in TNC mode if no data in the last 5 minutes.
4) Limit Display readings to 1-100% humidity
5) Limit TNC readings to 1-99% humidity
6) User has option to have humdity temperature reading as main reading.

1) Fixed hole where AAG wdir cal faild in presence of the rain gauge
2) Fixed bug where UART modes/speeds get corrupted when time/date set.
3) Fixed bug where T238 hung on power-up if Humidity sensor set but missing
4) Option to clear rain/humidity sensor ID if sensor is missing
5) Added a prompt to re-insert rain gauge before rain gauge cal
6) Bad APRS data now shown as dots, not dashes (per APRS spec)
7) Fixed bug where wind direction cal worked, but no wind dir shown.
8) Limited humidity to 0& and 100% in software (per sensor suggestion)

1) 1.12.1 had a Wind Direction bug that caused lots of errors.

1) AAG wind direction sensor now supported--may still need tweeking.
2) Now show dashes (vs 0) if no humidity sensor installed.
3) Added temporary humidity debug data to error status screen
4) Metric screen had F for temperature ID even though data was C, fixed
5) Revamped sensor calibration routines.
5a) Only one menu now
5b) User cycled through all sensors and asked to calibrate or not.
5c) ssens routine is now only a supervisory routine, code moved to sensor files now (better place for them anyway!)
6) Added humidity raw data to debug string if computed value >100%
7) Fixed bug where base rain count and found flag not reset on cal.
8) Fixed bug where Baud rate was trashed on clock setting.
9) Fixed bug where rain gauge didn't show data after reset.
10) Fixed bug where humidity got gummed up on temperatures less than 0C
11) Added PB7 output to show time in IRQ

1) Added initial humidity support. Suspect it isn't totally stable yet.

1) Fixed a bug where some long APRS strings got truncated at 2400 baud
2) Now all strings work at all baud rates
3) Got rid of AUTO setting for baud rates, explicit baud rates only.
4) Better explained what the wdoff variable is in wireids.asm for adventurous folk.
5) Fixed minor bug where -68 displayed for min temp on LCD if wrong temp sensor.

1) Isolated bug that gave bad averaged data if NO valid samples for 5 minutes
2) Added Debug string support, a hex messag after e1w identifier
3) Added ability to monitor and report bus voltage on status screen and debug msg
4) Fixed bug in baud rate settings that blanked the screen

1) Fixed a mess where bad wind cal forced re-cal on temp sensor too
2) Fixed nasty bug that gave wind directions >360 in some circumstances
3) Added support for user-settable baud rates in all modes

1) Fixed a bug where I was adding APRS data to Peet mode every 60th sample.
2) Stopped Rain error counting if no rain guage present

1) T238 can now read time from a DS1994 real-time clock.
2) Found and fixed a hole in the wind sensing routines that gave bad data.
3) Now the LCD should come up OK in debug mode (need full download to get this feature).
4) Now handle removal of rain guage (for winter) more gracefully.

1) Added Metric support for displayed data (UART data stays with standards)
2) TNC-LTP mode changed to 2400 baud

1) Added optional Position string support
2) Enhanced Wind direction error checking
3) Now support multiple temperature sensors on setup
4) Alternate method of distinguishing wind speed and rain guage counters.
5) Better error handling for rain guage data (it now exists!!)

1) Fixed several display bugs that crept into the 4-line LCD updates.
2) Added APRS 'r' (rain-past-hour) string to APRS data.
3) Added docs for users to save their IDs.
4) Display capable of showing rain amounts greater than 9.99 inches.

1) Rain Guage support.
2) DS18S20 support
3) 4-line LCD support
4) Resolved some variable conflicts between mainline and interrupt code
5) Added up to three tries for wind direction reads (should get fewer errors)
6) Added LTP-mode for cool TNCs (that I need to get)
7) Fixed typo in wind direction text

1) My first attempt at the Peet format.
2) Tripple LED flash on power up to help debugging.

1) GP32 support (quite a big internal change little on the outside).
2) Re-swizzled Switches to match TAPR board.

1) Added lots of UI features including error screens and weather summary screns.
2) Added support for previous days statistics.

1) All data gathering is done in interrupt service routines now. While not immediately critical, this will allow a better UI while still gathering data.
2) Fully commented code so it could be published.
3) Re-orgainzed a few routines into different files so it makes better sense

1) Fixed embarassing bug in the averaging routines.

1) Added Computer mode (unaveraged data sent every 5 seconds)

1) Re-arranged I/O for new all-in-one schematic (NOT BACKWARD COMPATIBLE!)
2) Full CRC checking on all 1-Wire communications.
3) Full error handling when unrecoverable errors do happen.
4) Incorporated Russes first round of wind speed calibration constants.
5) Do some 1-Wire bus sanity checking on power-up.

1) Code now includes a monitor. You can download new apps without needing a debugger!
2) Have a DOS-based downloader app. May convert to a win app later.
3) Sensor IDs are now stored inside the 6805, no external EEPROM is needed.

1) Got rid of some annoying legacy self-modifying code from the 6805 days.
2) Fixed bug where month ended one day early.
3) Added a 1-Wire open/short test to do some basic line-checking at power-up.

Initial release.

Back to Top

Known Bugs

1) Occasional bad humidity data at certain temperatures (cause TBD)

Back to Top


Starting with the 1.11.0 Release I have added the support for debug messages to be appended to the end of an APRS packet. This debug data consists of a number of ASCII hex bytes that get added after the "e1w" identifier. These are intended to add a bit of useful information during debug sessions so I can see some internal variables from remote stations using the APRS network. The first byte of the message is a message type, and after that will be message-specific data. As these messages are for debug purposes, their contents will likely vary. Listed below are the ones that will be permanent.


00aabbcc = Software version
This message is appended to the end of the first packet transmitted after entering weather logging mode. Data bytes are as follows:
aa = Huge version (01 for 1.11.0 release)
bb = Major version (0b for 1.11.0 release)
cc = Minor version (00 for 1.11.0 release)

01aabbccddeeffgg = Error counters and bus voltage
This message is appended to the end of the first packet after the hour rolls. If there is another message pending, that message will take priority. This message reports the values of the four (and soon more) error counters as well as the quiescent voltage on the 1-wire bus. To get the bus voltage, convert the hex number to decimal divide by 256 and multiply by 5.0
aa = Temperature error counter
bb = Wind Speed error counter
cc = Wind Direction error counter
dd = Rain Guage error counter
ee = Humidity sensor error counter
ff = 1-wire bus static voltage counter (FF=5.0V)
gg = Battery voltage (If wired, FF=15.0V)

02aaaabbbbcccc = Humidity sensor data if >100%
This message is appended to any packet when the computed humidity is greater than 100%. The packet itself will just show the trucated humidity (115% will show up as 15%). This is to help debug any potential bad humidity readings.
aaaa = Humidity sensor VCC value
bbbb = Humidity sensor VAD value
cccc = Humidity sensor Temperature

03aaaabbbbccccdd = Wind data if >25MPH
This message gets appended to a packet if there is a wind gust greater than 25MPH. I see occasional issues where there is an irrational wind gust reading. This is to help isolate if we have a sensor or controller error.
aaaa = Counter ticks for gusts 5-sec range
bbbb = Current (larger) count value
cccc = Previous (smaller) count value
dd = Number of wind speed samples in the 60-second period

Back to Top

This page was last updated Sept 1, 2005.