What ever happened to? BME680 Air Quality Sensor with JonnyMac
Ludis
Posts: 69
in Propeller 2
Hey whatever happened to this Propeller 2 Live Forum ? Did I miss it? I recall it was delayed twice.
Comments
Hi
Could be wrong but vaguely remember someone saying waiting for floating point routines???
Dave
That is the case.
Sadly, the vendor -- claiming to want to protect trade secrets -- has done a less-than-wonderful job on documentation. Their expectation is that everyone is using C. While a great majority are, not everyone is -- my web searches found several people like me looking for language-agnostic information on the device. The vendor is somewhat cold: We have trade secrets, so just use our code.
I will apologize -- again -- for this. Ken and I have been working together since 1998ish and have had many successes. He sent me the module, I did a cursory look and said, "It's I2C, no problem." It turns out the I2C part is not the problem; I can in fact communicate with the chip and even read the temperature. But the advanced stuff for which they don't really provide any support outside their own [lightly documented] C code (which uses FP), it was just not possible (for me, anyway). The very small bit of information suggesting that integer values could be used requires 64-bit variables.
The classes started with success because they were always built on existing (often commercially-deployed) code that was presented in an educational format. After this bit of embarrassment, Ken and I have agreed that we won't schedule anymore classes around devices for which we don't have code written.
Funny, I had the exact same mindset when I attempted it a while ago (and the BMP280 before it). It's ridiculous just how much math is needed to turn a couple ADC values into a human-readable number. I think I gave up on a float version in spin for pretty much the same reason - it just became too difficult to match up all of the parentheses with the FloatMath.spin syntax. I think that's around the time I asked if it was possible to add a 64-bit data size to spin.
Thanks for the updates. No problem at all. That's too bad the manufacture doesn't help us out. We would buy more components from them if they could.
Don't know if it might help as a different starting point, but this library seems not to need floating point or 64bit: https://github.com/Zanduino/BME680
And there is a BME280 driver for spin2, which also does not use floating point and seems to use the same logic as the arduino library linked: Cricket BME280
@ersmith has been pretty quiet on the subject, but if you need 64-bit support, this seems to be happening behind the scenes in the Flex compiler. The basics are there: add, sub, mult, div, shifts, printing, etc. There are some gotchas, but it is useable if you approach it incrementally. No 64-bit floating point support though. Yet.