Deutsch   English   Français   Italiano  
<vs94a0$t7kp$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: John R Walliker <jrwalliker@gmail.com>
Newsgroups: comp.sys.raspberry-pi
Subject: Re: Anyone gotta clue? TMP36 Pi PICO.
Date: Sat, 29 Mar 2025 15:40:48 +0000
Organization: A noiseless patient Spider
Lines: 121
Message-ID: <vs94a0$t7kp$1@dont-email.me>
References: <vs8sts$1f267$1@dont-email.me> <vs91dg$1j45e$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 29 Mar 2025 16:40:49 +0100 (CET)
Injection-Info: dont-email.me; posting-host="4c279c80eee46daf1683f9305e25b9c7";
	logging-data="958105"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+NLgUMGdA4pmqf8XOzDolZnPYRosYTcKk="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:RCNov7DhvHNQdXclyv5OR45T8k8=
Content-Language: en-US
In-Reply-To: <vs91dg$1j45e$1@dont-email.me>
Bytes: 5004

On 29/03/2025 14:51, The Natural Philosopher wrote:
> On 29/03/2025 13:34, The Natural Philosopher wrote:
>>
>> I have a PI PICO W which I am developing code for amongst which is a 
>> TMP36 temperature sensor
>> The code I have reused form other thermostat projects but its suddenly 
>> giving the odd false reading.
>>
>> #define CHIP_TEMP_IO 28
>> #define CHIP_ADC 2
>> #define RELAY_IO 21
>> #define IN 0
>> #define OUT 1
>> #define ON 1
>> #define OFF 0
>>
>> void initialise_hardware()
>>      {
>>      adc_init();
>>      adc_gpio_init(CHIP_TEMP_IO);
>>      gpio_init(RELAY_IO);
>>      gpio_set_dir(RELAY_IO,OUT);
>>      }
>> void set_relay(int flag)
>>      {
>>      cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, flag); // set the lamp
>>      gpio_put(RELAY_IO,flag);    //set the relay
>>      }
>> float read_temperature()
>>      {
>>      static int index;
>>      static int flag;  //initialised to zero at startup
>>      static uint32_t rawbuf[32];
>>      const float conversion_factor = 3.3f / (1<<12);
>>      float result;
>>      float last;
>>      int i;
>>      uint32_t raw;
>>      adc_select_input(CHIP_ADC);
>>      raw = adc_read();
>> //wtf?
>>      printf ("Raw=%0X\n",raw);
>>
>>      result=((float)raw)*conversion_factor;
>>
>>      return (100*result-54);   // the pcb warms them up by about 4 
>> degrees
>>      }
>>
>> I am reading the temperature every two seconds as in
>>      while (1)
>>          {
>>          sleep_ms(2000);
>>          flag=(flag? OFF:ON);
>>          set_relay(flag);
>>          temperature = read_temperature();
>>          printf("Temperature is %.1f C\n",temperature);
>>          }
>>
>> about one time in ten the output jumps to about 20°C less than 
>> expected e.g.
>>
>>
>> Raw=3BE
>> Temperature is 23.2 C
>> Raw=3BE
>> Temperature is 23.2 C
>> Raw=3BE
>> Temperature is 23.2 C
>> Raw=29B
>> Temperature is -0.3 C /************************
>> Raw=3C0
>> Temperature is 23.3 C
>> Raw=3C0
>> Temperature is 23.3 C
>> Raw=3BF
>> Temperature is 23.3 C
>> Raw=3BF
>> Temperature is 23.3 C
>> Raw=3BF
>> Temperature is 23.3 C
>> Raw=3C1
>>
>>
>> I have added decoupling to the TMP36 supply which is fed from the ADC 
>> 3.3v supply which seems to be a steady 3.29V according to my DVM.
>>
>> Do I have a bad PICO W? TMP 36 or what?
>>
>> Other PICOs with the same chip don't do this...
>> The only difference is that this PICO is running different and a lot 
>> more wifi/server code
>> Is it possible that some interrupt is - er - interrupting the ADC read 
>> with dire results?
>>
>>
>>
>> I cannot but think this is a hardware issue.
> I found another TMP36 from an old project and switched it in.
> No joy.
> Looks like its PI related
> 
> “it should be clear by now to everyone that activist environmentalism 
> (or environmental activism) is becoming a general ideology about humans, 
> about their freedom, about the relationship between the individual and 
> the state, and about the manipulation of people under the guise of a 
> 'noble' idea. It is not an honest pursuit of 'sustainable development,' 
> a matter of elementary environmental protection, or a search for 
> rational mechanisms designed to achieve a healthy environment. Yet 
> things do occur that make you shake your head and remind yourself that 
> you live neither in Joseph Stalin’s Communist era, nor in the Orwellian 
> utopia of 1984.”
> 
> Vaclav Klaus
> 

I'm sure you have good reasons for using that device, but maybe consider
the TMP1075.  It is cheap and reasonably accurate. I2C should not be a
problem on the Pico.
John