Logging new attributes in ruuvi station?

I’m about to extend a tag with a MAX31855 thermocouple converter (need to log temperatures up to 150°C) which would result in an additional temperature attribute being notified

from poking around in https://github.com/ruuvi/com.ruuvi.station it seems the set of attributes and wire format is fixed

is there an easy way to extend the ruuvi station set of attributes? would it log all attributes being sent or just the ones supported in station code?

Hello Michael,

We’re about to update the Ruuvi Station in pretty major way, current code is at https://github.com/ruuvi/com.ruuvi.station/tree/dev . You should either wait for a week or two for us to merge the dev branch on master or start working directly on dev branch.

To answer the question, the decoding logic is at https://github.com/ruuvi/com.ruuvi.bluetooth.default/tree/master/default_bluetooth_library/src/main/java/com/ruuvi/station/bluetooth/decoder and RuuviTag object definition at https://github.com/ruuvi/com.ruuvi.bluetooth/blob/master/bluetooth_library/src/main/java/com/ruuvi/station/bluetooth/FoundRuuviTag.kt .

It should not be too difficult to fork the project and extend the attributes, although you’ll need to code in display of the new attribute too.

Is everything clear on the tag side on how to read the new sensor and send the data?

I’m fine with doing the tag-side C, have that running on a nRF52 DK with the thermocouple converter - also read your article (very helpful!)

I quietly wished I could get around the learn Java/Build an Android App/support your own App hurdle - looks like this was wishful thinking :wink:

in that case I’ll scale down my ambitions for now and just replace the BME280 temperature value with the one obtained from the MAX31855


ps: project is a hot air ballon envelope temperature sensor. You get an idea of the mounting on page 17 here: http://download.naviter.com/flytec/archive/FLYTEC%203040%20ENG%2027-06-2011.pdf

1 Like

Are you wiring MAX31855 to a RuuviTag and broadcasting its readings by modifying Ruuvi’s data format a bit?

I’m very interested in this, because this would be extremely useful in wood burning sauna stove. Currently I’m using ESP8266 to read MAX31855, but using Ruuvitag would save lots of wires, batteries, WiFi gateways etc.

Could you please share your code and wiring diagrams?


happy to do so eventually but I’m not there yet

I’ve been playing with different platforms and stacks, and the ruuvitag is a recent addition

I have a zephyr-based fragment which can “fake” a ruuvitag by packing all the values into the advertisement ruuvi-style, running on the nrf52 DK and a sparkfun wrl13990

it uses a minimalistic zephyr driver for the MAX31855 and alternatively for the MCP9600, which seems a better choice in terms of power usage

I also have MAX31856 breakouts on order which look better in terms of standby current

I have not attempted to integrate either one into the ruuvi stack which I am slightly overwhelmed with - my zephyr main program is some 120 lines long in comparison - not sure yet if I’m going to jump that hoop

also I’m a bit unclear about the base code to use - I looked at the ruuvitag stack which uses manufacturer data in the advertising message; I also saw some talk of a GATT-based design and I am unsure where things are heading by when

the main reason I went the ruuvitag stack route is the great Android UI which ticks all my boxes; I would prefer not to touch any Java clunker myself with a 10ft pole

re integrating into the ruuvi stack: the MCP9600 should be easiest, there are lots of code examples out there and doing the zephyr driver was straightforward

If you plan to tag along, get yourself a MCP9600 breakout board from Digilent or Sparkfun, and a K type thermocouple, and let’s go from there

Dont shop anything from China - tons of crap out there, like engineering samples chips with the full errata sheet of bugs included, or sometimes boards with an obvious electrical design error which never could have worked but nevertheless have lots of positive comments (see for instance the MAX31855/MAX6675 breakout advertised on banggood - dead on arrival).

I’m off until Aug 15ish, but around again then

Manufacturer data is here to stay, GATT is being added on for ability to read logged data and do configuration of the tags.