wz2b

Member Since: January 11, 2012

Country: United States

  • Product SEN-09800 | about 2 years ago

    I do not know if anybody will actually read it, but I got one of these boards, and I noticed a bug. The software that came with it seemed to have some kind of buffer overrun, so this would come out:

    SHT Temperature=72.30Fmware 2.0

    that sort of thing. I couldn’t find the problem, but recompiled from source and it did the same thing. Ultimately I turned the optimization level of gcc down and it worked, but that seemed strange to me so I recompiled it to use vprintf_float and scrapped the print_decimal. The program is a few hundred bytes longer and maybe a little slower but it works more reliably. Be careful, printf is not reentrant (I made this mistake while trying to fix it).

    More importantly, I did find a more serious bug. SCP_spi_comm() calls delay_ms(1) three times for every bit. To do the entire transaction of temperature + pressure is 48 bits (counting one poll for checking DRDY). That’s 144 msec. That’s out of the SCP1000 spec – you have to pull all data out of it within 55 msec of DRDY. This causes real problems.

    I took out some of the configuration code as I just want it to spit out JSON anyway. If anybody wants this code drop me a note, I’ll share what I have. I’d love to try similar things on the new version but I don’t have one.

    –Chris

    { “count”: 1413, “humidity”: 31.0, “sht_temp_c”: 24.3, “dewpoint_c”: 6.1, “scp_temp_c”: 24.0, “pressure”: 29.72, “light”: 0, “scp_asic”: 3 }

No public wish lists :(