×

Please see all COVID-19 updates here as some shipments may be delayed due to CDC safety and staffing guidelines. If you have an order or shipping question please refer to our Customer Support page. For technical questions please check out our Forums. Thank you for your continued support.

wz2b

Member Since: January 11, 2012

Country: United States

  • 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 :(