Replies: 42 comments 151 replies
-
|
Hi Magnus. I was thinking about building a wireless pressure transmitter for logging to BrewBlox and implementing something similar to what we did with the iSpindel back in 2022. I see you started down this path almost 4 years ago. Did you ever get a prototype working? My initial approach to the hardware would be to mount a transducer on a triclamp fitting and then build an interface out of an ESP32 enclosed in a 3D printed case with probably a 18650. The power would need to last for 4 - 6 weeks (for pilsners) as we brew in unitanks. All the best for the new year mate, cheers. |
Beta Was this translation helpful? Give feedback.
-
|
That all looks great, essentially what I was looking at as well based on the approach you developed for GravityMon. I found a few options on Aliexpress that seemed promising, I2C interface, BSP mount and range options as low as 0 - 0.2 Mpa. We carbonate our beer in the fermenter (unitank) and having remote readout capability would be quite useful. For our setup, I would install a tee where the analogue pressure gauge is mounted and have both installed, at least initially. These are triclamp fittings so we wouldn't be using a 3D printed mount for the sensor. I'm happy to purchase a transducer(s) from Aliexpress, build your prototype for the electronics and test the software here as well if that would help. Besides BrewBlox, I also have Fermentrack on another pi I could test. |
Beta Was this translation helpful? Give feedback.
-
|
The sensor options I have been looking at are already enclosed in a stainless housing with a threaded bsp fitting that can be mounted directly to a tri-clamp. They are available with various output and sensor range options, similar to this: https://www.aliexpress.com/item/1005005514909464.html in the 0-0.2Mpa range with the I2C interface. The claimed accuracy is ±1% of full scale which is ~0.3 psi if correct. The G1/4 connection is the same as a 1/4" BSPP fitting and a tri-clamp of that size isn't readily available here but is on Ali - https://www.aliexpress.com/item/1005006702414156.html. With the exception of a corny keg, most other fermenters capable of pressure fermenting will have tri-clamp fittings. This is just an initial search and I haven't done any research on what library options exist for communicating with these types of sensor. Any thoughts? |
Beta Was this translation helpful? Give feedback.
-
|
Have not been able to find any info in an driver or specification on that i2c protocol. Probably need to contact the manufacturer for that |
Beta Was this translation helpful? Give feedback.
-
|
I'll look as well, there appear to be several manufacturers with similar offerings. |
Beta Was this translation helpful? Give feedback.
-
|
The manufacturer of the example above state here they have a library and examples available for use with an arduino - https://www.xidibei.com/en-nz/blogs/news/unleash-the-power-of-xidibei-pressure-sensors-in-your-arduino-projects. |
Beta Was this translation helpful? Give feedback.
-
|
The XDB401 model specifically made for espresso machine use is essentially the same model we have been looking at. Here is a library and some code for using it for that purpose - https://github.com/jorticus/lupa-espresso/blob/cb8c7a66d705ca89d758153fef2f4d339645b364/src/PressureTransducer.h. I didn't have any luck finding the library mentioned in the news post link in Arduino IDE. https://www.xidibei.com/en-nz/products/xdb401-pro-coffee-machine-ss316l-pressure-transducers. |
Beta Was this translation helpful? Give feedback.
-
|
Another query, would your gateway software be compatible with this? It appears to be similar to the Lolin S3 Pro you reference but with an integral IPS capacitive touch display. I have one here waiting on the updated XTouch interface software for our 3D printer (unknown eta). I realise this screen would require a different library and updated display code but I'm willing to attempt the modification. I also have a Tiltbridge that is now surplus to requirements but the screen is pretty small. |
Beta Was this translation helpful? Give feedback.
-
|
I found the libraries and example code for the 5" display in an XTouch fork developed for this display. However, it still uses the 2.8" board UI so I'm waiting for the original developer update before switching. I built the Tiltbridge in late 2020 and it is the esp32 pro version so I'll use it to try your gateway. Cheers. |
Beta Was this translation helpful? Give feedback.
-
|
I got the specifications for the sensors today so I will look through their offer and order a few for testing and evaluation. |
Beta Was this translation helpful? Give feedback.
-
|
I got my sensor on friday but I have no luck getting them to work.. I connected according to the schematics but I cant get it to respond to the i2c scanner even. I know the driver works since I've tested it on the CFSensor I have which has the exact same read sequence and address, the only thing is the calculation and the value used for that. When you get your sensor it would be great if you can test them and see if you get it to work. I might be that I have got a bad sensor. |
Beta Was this translation helpful? Give feedback.
-
|
I think I read somewhere on a post that the address 0x6D didn't work but 0x7F did. I noticed that the library used for the espresso machine mod set the address to 0x7F as well. Maybe a review of the .h and .cpp files in this implementation will help (for an ESP32)? Yours came fast, I don't expect delivery for another week. Did you test on an arduino or an ESP32 D1 mini? |
Beta Was this translation helpful? Give feedback.
-
|
The sensor arrived today, which code do you want me to try? I don't have a bare ESP32, just one with a 2.8" screen and an S3 with the 5" screen. I also have several Arduinos and some Lolin D1 minis as well as a TiltBridge. Well, interestingly, the bag says XDB401 which is what I ordered. However, the etching on the unit says it is a 308 series with a manufacturer date that matches the shipping date. The key difference seems to be the 401 has a ceramic sensor and the 308 has a piezoresistive sensor. It does however have the other specs I ordered, 0 - 0.2 Mpa and I2C (3.3V) interface. |
Beta Was this translation helpful? Give feedback.
-
|
When running debug in Platformio (under Visual Studio Code), I get these error messages: Compiling .pio\build\press32s3-release\lib5d5\ESPmDNS\ESPmDNS.cpp.o I don't see any errors (dependency or otherwise) when I check the files so I have no idea why they failed. Also, I see there is an Arduino.h file in C:.platformio\packages\framework-arduinoespressif32\cores\esp32 folder but I couldn't find out how to confirm that is the dependency being linked to in the project. I do need to edit it as the SDA and SCL pins of my board are 22 and 27 respectively (using esp32dev as the board). There are also a lot of error messages associated with RESET commands but I don't know if they were fatal. Am I missing something fairly obvious? |
Beta Was this translation helpful? Give feedback.
-
|
I did do that first, the board was changed to esp32dev in platformio.ini which is what the documentation said to use for the Espressif ESP32 Dev Module on the board list. I found the board to use in documentation and platformio code examples for the board I have. The chip is the ESP WROOM 32. But you are correct, my familiarity with Platformio is limited and I was sure I missed something even after having a good look through the documentation. I am fairly experienced with Arduino IDE and only switched fairly recently. Thanks. |
Beta Was this translation helpful? Give feedback.
-
|
Hello Magnus, did the sensors and ESP32-C3 units arrive? In the interim, I bought a digital gauge with supposedly 0.2% of full scale accuracy (https://www.meokonint.com/rotary-bluetooth-digital-pressure-gauge-product/). I have no way of testing it here but will as soon as I return home. I bought it locally so didn't have to order from China (and it appears to have been cheaper here as well). My plan is to set up a double tee and connect this 'precision' gauge, an analogue gauge that came with the fermenters, and one of the Xidibei sensors for testing while connected to a CO2 source with a Taprite gauge I have downstream of the regulator as it appears to be more accurate than the one on the regulator. I have a total of 4 analogue gauges and intend to have 4 Xibidei ones as well so intend to obtain quite a bit of data. Disregard my comment above about Pressurmon (dev) reporting 2 orders of magnitude low. Following the code sequence through the serial logging, I see you had added zero correction and the reported psi pressure after the calibration steps is the corrected value and therefore hovers around zero at ambient pressure. I initially missed that and will disable the correction when doing the testing so we can determine if the error is simply a zero calibration or non-linear over the range. Hopefully it is the former. The one I bought to use as a standard just zeros on startup. I never did get the pressuremon version in gravitymon to compile correctly with the board I am using. I've added the board as a new target per your instructions and copied over the files you mentioned from pressuremon.ui but still get errors in modules I wouldn't think pressuremon would use so I must have missed something else that needs updating. Regardless, I can wait until you test and update the code for the Lolin C3 Pico as we intend to buy them as well if they work for you. Thanks again for your work and help with this project. |
Beta Was this translation helpful? Give feedback.
-
|
Back home and all but the additional tri-clamp bsp fittings have arrived. I have the one I bought previously so can start testing this week. I'll test using a slightly modified version of the pressuremon code as I just need to obtain readings from the serial output (without the zero correction) but I wouldn't mind having a look at the latest C3 Pico build with the web interface as well once you are happy. |
Beta Was this translation helpful? Give feedback.
-
|
Question, the XDB401 sensors came with a note that they include 4.7K pull up resisters internally on the I2C sensor and stating 'there is no need to increase the resistor'. I have been connecting the sensor directly to the two ESP32 boards I've been using to date and they have worked fine. So are the 3.3K pull up resisters connected to the SDA and SCL pins on your board needed? |
Beta Was this translation helpful? Give feedback.
-
|
Well, it turns out the Lolin C3 pico I2C JST connector pins are reversed from the other two ESP32 boards I was testing with. I thought I had confirmed they were the same orientation from the documentation (but in a different order) but they aren't. Pin 1 is to the right where it is on the left of the other boards. So my fault for not checking with a multi-meter before hooking up the sensor. That is why the first board quit working but fortunately, the sensor was undamaged. All good now. My remaining issue is I haven't figured out how to add the topic/path to the MQTT push to BrewBlox so it goes to the correct location. For the iSpindel we added brewcast/history: to the start of the data string which I believe was inserted after the port (no user name or password is required). I haven't figured out how to do that from the Pressuremon MQTT configuration page. I've tried a few options but none have worked. Any suggestions? The latest version of the GravityMon docs and data format is a bit different from what you had back in June 2022. The push test appears to be successful with the different options I tried but the data isn't available in BB. |
Beta Was this translation helpful? Give feedback.
-
|
I've done a bit of checking and testing. I pulled out a couple of iSpindels with the Gravitymon 1.0 firmware and configured them the same way in the UI as pressuremon. Both log to brewcast/history correctly as follows: iSpindel = {"key":"m_iSpindel02","data":{"Temperature[degC]": 22.5,"Temperature[degF]": 72.5,"Battery[V]":4.05,"Tilt[deg]":63.31,"Rssi[dBm]":-76,"SG":1.0717,"Plato":17.3}} The iSpindel data is available in BrewBlox but the pressuremon data isn't. The only difference I can see is when I select the iSpindel topic in MQTT Explorer and look at the values in the right window, I get this (which is the same format as the spark data - formatted JSON?): { But with the pressuremon data I get this (i.e., in the same format as what was pushed to mqtt - raw?).: {"key": "pressuremon1f4498", "data": {"pressure": 0.016, "pressure-unit": PSI, "battery":4.32, "interval": 900, "RSSI": -46}} Both data sources were configured in their respective UI interfaces with exactly the same mqtt format but the Explorer handles the value display differently. Does Pressuremon handle the mqtt push a bit different than what was done in Ver 1.0 of Gravitymon? Something is preventing the pressurmon data from being stored properly in the BB database where there isn't a problem with the iSpindel. Any thoughts? |
Beta Was this translation helpful? Give feedback.
-
|
I finally managed to get the prototype built and the PCB v1.2 works fine but i need to do some more adjustments to it.
The version 1.3 that is in the repository has the needed changes I just need to verify that the on/off featuere works as intended. Once this is done I will do some battery tests to see how well it works. |
Beta Was this translation helpful? Give feedback.
-
|
I have been doing some battery testing now with a 1800mAh battery and its still on 3.78V and it has reported more than 11500 pressure readings every 10 seconds on wifi. So I'm quite happy with the performance. On gravitymon I could get 5500 reports on bluetooth with a larger battery (2600 mAh). If you do reporting every 15 min thats around 120 days and still counting... And you could fit a larger battery as well. |
Beta Was this translation helpful? Give feedback.
-
|
I've designed and printed my case and just about have it built (I'm waiting on a JST crimper to finalise the build). A couple of comments:
Other than that, all is good. Getting back into the configuration mode is a bit tricky if the battery calibration value and/or battery setting for the force configuration mode are set incorrectly but turning the battery off and powering through the USB C connector is the solution (or re-flashing the unit). Thanks. |
Beta Was this translation helpful? Give feedback.
-
|
The link to Webflasher on the documentation Software Installation screen is incorrect. /install should be /index. |
Beta Was this translation helpful? Give feedback.
-
|
The webflasher appears to not be working now with either Chrome or Edge on 2 different computers. There was a recent update Chrome that could be the cause. The error message is: Error: Failed to execute 'requestPort' on 'Serial': Access to the feature "serial" is disallowed by permissions policy. The Espressif ESP Tool is working however. |
Beta Was this translation helpful? Give feedback.
-
|
Can you check what the serial port permission is for gravitymon.com? |
Beta Was this translation helpful? Give feedback.
-
|
Just tested the web flasher on a Windows 11 machine and all good. Both machines that didn't work were Win 10. |
Beta Was this translation helpful? Give feedback.
-
|
I have an interesting observation for you. My small unitank is less than 0.5 meters from the table where the Pi4, Brewpi Spark 4 and SSR are located and the wifi access point is about 4 metres away. This is in a small shed external to the house hence the repeater. The pressuremon electronics case normally sits on the unitank near the sensor but the cable is long enough to move it to the table when I dry hop which I did yesterday. I left it there and subsequently noticed the pressure readings were randomly reading 1 - 2 psi lower (never higher) from an ~10 psi normal reading. I track the pressure in BrewBlox logging every 300 sec. The readings have always been quite stable so I surmised that the Pi and/or Spark wifi were interfering with the C3 Pico communication. I had a quick look at your code again and only see averaging used for the pressure calibration so it doesn't appear to be something like a dropped reading impacting the average. Regardless, I moved the case back to the fermenter top and all is stable again (slowing decreasing as the beer carbonates while the hops steep at 10C). This isn't an issue and was an easy fix but thought you might find the information useful. |
Beta Was this translation helpful? Give feedback.
-
|
Agreed. Once I keg the brew, I'll try to reproduce the issue and if successful, I'll monitor what is happening in the serial console and will let you know if I see anything. Thanks. |
Beta Was this translation helpful? Give feedback.
-
|
Hi Magnus, hope all is well. I have noticed another issue with my units. I kept my home unit updated with the most recent firmware as you released them but the production units at the brewery were all on version 0.5.0 (possibly even on beta4) until recently when I updated them to 0.70 between batches. I had noticed the battery on the home unit draining much quicker that the brewery units and thought maybe the C3 Pico on the home unit had a fault. Now the battery drains just as quick on all of the units at the brewery as well, lasting only about a month (~ 2 - 3 times faster) with high quality 3400 mAh 18650 batteries. I believe this started with version 0.60 which was skipped on the brewery units. The log time on all units is set to 300 seconds. I will do some testing on the home unit to see if I can quantify the battery drain for each of versions 0.50, 0.60 and 0.70. I haven't had time to investigate the intermittent failed logging issue mentioned above but still intend to. Thanks again for all of your work and help. |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
-
👋 Welcome!
We’re using Discussions as a place to connect with other members of our community. We hope that you:
build together 💪.
To get started, comment below with an introduction of yourself and tell us about what you do with this community.
Beta Was this translation helpful? Give feedback.
All reactions