My data payload is only three bytes though and actually I have worked out a scheme in which I can transmit temperature and humidity in a single byte once the initial temperature and humidity have reached the gateway.
Oh - I'm sorry, clearly I've misjudged your position on the learning curve based on your packet size confusion
. What you're doing does sound promising!
If you switch off AGC and always use max gain you can likely reduce preamble size to two bytes because rx startup time is faster that way. You could use a 1 byte sync word. You likely do need some form of error detection. If you only send one byte a couple of bits might be enough instead of the full CRC16. You probably want to enable nodes other than TH so you'd need some msg identifier in your payload. This requirement might also mean adding a length byte to enable variable length packets.
That takes you to what - 6-7 bytes. Yeah that is much smaller than what I send.
I've done some research and implementation on another approach to reduce TX time for TH motes which seemed really promising: predictive modeling. I thought I had started a whole thread on it here complete with pointers to science papers but it seems all gone. The only thing I found is a summary from an email:
If this isn’t good enough one could do predictive th coding: Notice how the t curve is linear over shorter periods. That’s to be expected since it’s driven by energy transfer due to temperature differences or heating which transfer a near constant energy amount per time period.
I bet you could model the temperature over a period of say an hour as second order polynomial fairly well. Then you send its parameters along with the current temperature on every update. Updates only get send if the model needs to be updated. Otherwise the server can infer the temperature from the last measurement. The model could get better over time – learning how the heating system is set up in a room for example.
With that approach I bet you could comfortably hit the 50 year boundary.
It's really weird that this thread is gone. I did some tests and this worked pretty well.
Joe