4198

New version of the camel bag water level indicator based on uC instead of discrete

Some years ago, I developed and presented here a water level indicator for water bag based on discrete component. 
Last years, for a new mountain bike trip in Inner Mongolia, I decided to redevelop it based on a uC in order to have more flexibility and function. 
This year, I made a second version, removing a switch off-on and replace it with the power/battery switch I developed based on Pic10F322 (check other project).
This version, with a new PCB has still 3 leds to indicate the water level but total 6 status:
- Full green means full of water.
- Blink green, then fix orange, then blink orange, fix red and blink red for empty water level
The principle is still based on the same IC, 4060 and a probe made with 2 copper lines, stick on both side of the water bag.
Based on many measurement and tests made, it's look that the most accurate way for these 2 bands are to have one half long and one full (to the top of the bag).
The 4060 will have variable frequency based on the water level (the copper plays like capacitor).
The uC is an PIC12F1572.

The functions of the SW are now:
- Display water level on the 3 leds
- Display battery level
- Calibrate for full water
- Calibrate for empty and full water
- Reset the parameters

A single button is used to select the functions. The calibration features are interesting in case of different bag used. On the picture here, I used a running camel bag which is 1L capacity but for bike, I use a 2.5L bag.

On the schematic, there are the 2 PIC, one for battery level and switch ON/OFF (long press 5 sec) and the second one for the water level management. 

On the PCB, there are 2 ICS output for Sw programming, one for the 12F1572 and one for the 10F322.

The battery used is low capacity, 100mAh, enough for hours of display. The 3 LEDS are special, high luminosity and low consumption. 

The Sw is quite simple and for consumption purpose, the watchdog is adjust to 10 sec. The level is measured every 10 sec and displayed on the led. If the button is pressed, the SW wait for the right action.. It is developed in C, on MikroC

I made a small casing, which can be optimized more. File provided too.

Laurent