Wireless Ultrasonic Tank Level Meter?

315MHz and 433MHz wireless connections are very commonly used by consumer electronics including weather stations, home automation remote controls, power consumption meters, car alarms, and also many DIY projects.
Post Reply
Posts: 1
Joined: Sun Jan 06, 2013 9:42 am

Wireless Ultrasonic Tank Level Meter?

Post by wgeorge76 » Sun Jan 06, 2013 10:21 am

Have been looking at the Weather Station Receiver that uses 433Mhz in the Practical Arduino book, thinking I could use that for other 433Mhz wireless devices. So got a Wireless Ultrasonic Tank Level Meter (with Temperature Sensors) from Jaycar, XC-0331 and a Freetronics ASK Recevier Shield @ 433.92Mhz, v1.1.

Had sketch problems with Arduino 1.0+ so I have worked with Arduino 0022.

Unfortunately, I am stuck. Could there be a frequency difference, one 433Mhz and the other 433.92Mhz? (The frequency for the Tank Level Meter has only printed 433Mhz). Would the Arduino sketch that gets the information from the Weather Station, work for the Tank Level Meter? If not, is it possible (just with Arduino at the moment), to get some data from it?

I appreciate any information,
Thank you.

Posts: 1
Joined: Mon Jun 15, 2015 12:23 am

Re: Wireless Ultrasonic Tank Level Meter?

Post by Malster » Mon Jun 15, 2015 12:52 am

Late response I know, but in case someone else comes across it;

The 2 protocols are completely different. The XC-0331 uses a pulse-width method of sending 1's & 0's and all nibbles (18 of them) are bitswapped, ie; 1100 sent over the air is bitswapped to 0011.

Logic 0 = 480uS
Logic 1 = 960uS

Thus 1100 would be sent as;


Nibbles are;

Bits are set MSB first, full sentence is 18 nibbles. Values below are AFTER bitswap.

Nibble Function
0 & 1 Sync [ 0xAF ]
2 & 3 Serial# Random Serial number choses and battery connection time.
4 & 5 DeviceID [0x11] ??
6 -8 Depth_Med, depth_High, Depth_Low (Value in hex =cm, Fill with 5DC on invalid, range 0-15M)
9 Low Battery (0 = OK, any other value = Low)
10 Temp_Low
11 Transmit Interval ( Bit 7=0 180S, Bit 7 =1 30S, bit 4-6=1 5S)
12 &13 Temp_M, Temp_L (in hex *10, Max 1000, with 400 offset) If invalid read, filled with 3E8
14&15 Rain H, L (Value 0-256) not used in XC-0331
16&17 CRC (includes nibbles 2-15 only)

CRC is XOR of values from BYTES -0 to 7 ie;

Mycrc = (((((((byte0^byte1)^byte2)^byte3)^byte4)^byte5)^byte6)^byte7)
= Byte8 (bitswapped)

Hope it helps others!



User avatar
Freetronics Staff
Freetronics Staff
Posts: 297
Joined: Sat Oct 15, 2011 11:31 am

Re: Wireless Ultrasonic Tank Level Meter?

Post by jonoxer » Thu Mar 03, 2016 11:59 am

Hi Malster,

I just came across this post and wondered if you managed to get the decoding working. You obviously did a lot of work figuring out the protocol, so did you take it further than that?

I'd love to see an update on this project.



Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest