Tag Archives: Bean Mass Probe

More Bean Mass Probe Progress

I tidied up the bean mass probe software a bit.  The probe still measures temperature twice per second but only sends it to the Raspberry Pi when requested.

I added some code that will identify local minimum and local maximum temperatures.  The local minimum temperature corresponds to the point in the drum rotation where the bean mass thermocouple is buried in the beans.  I also fixed the temperature synchronization problem.

This Guatemala roast shows a once-per second reading of the bean mass probe — lots of fluctuations due to drum rotation.


The chart below is the same roast but only plotting the local minimum temperature from the bean mass probe.  Works like a charm.

201410259 (2)

Check this out — according to Sweet Maria’s information on “Using Sight to Determine Degree of Roast”, first crack should start at about 9:20 at a temperature of 401F.   First crack in this roast started at 13:19 at a temperature of 401F.  I think that this is a pretty good sign for the bean mass probe.  The current roast profile I am using controls outlet temp at 510F — I could increase this and achive a faster roast.  Might be worth a try to see if I can match the 9:20 target.

More Bean Mass Probe Experiments – Guatemala Acatenango Gesha

This is the first complete roast profile with the new bean mass probe.  This is 150 g (green) roasted to the beginning of first crack. As for the coffee – the intent here is to get a little darker roast on this bean.  The last batch I roasted stopped between 1st and 2nd crack and was a bit underwhelming.



The bean mass temp is in the light blue.  Directionally this measurement looks OK but there is some strange behavior:

  • The first several readings after the roast started did not rise at all (~71F)  this starting point is about right but the temps should have started to climb quickly.  After touching the TC amplifier board, it started functioning more-or-less as expected.
  • Something similar happened at the end of the roast where the thermocouple appears to be “stuck” continuing to climb after the heater has been turned off.  Again, after touching the amplifier board, it jumped down significantly — but I am not sure the reading is correct. It does appear to be moving in the right direction again.
  • The plot below shows something really weird — the outlet temp and bean mass probes have different periods.  Because the drum rotates, I expect the periodic temperature excursions- I just can’t explain why the periods are different (and not a multiple).  The period of the drum is about 9s.  The period of the bean mass temperatures is about 15s.  The period of the outlet temps is about 9s.  Definitely something going on with the bean mass probe…


This probably has something to do with the way I am capturing temperatures.  Currently the bean mass probe and the other temp probes are not synchronized.  I have the bean mass probe spitting out a temperature every 1/2 second. The Arduino in the Roast Genie triggers a sample of the other probes once per second and triggers the Raspberry Pi to read the serial port from the bean mass probe.  Instead of throwing away the extra data it is queuing up in the serial buffer — this is likely the problem…  Have to make another go of this.


Gene Cafe Bean Mass Probe

I just tested out the bean mass probe proof-of-concept on my hacked Gene Cafe.  It worked even better than I had expected.  The probe itself is a bare type-K thermocouple that I inserted through a small hole I drilled near the inlet of the roast chamber.



The thermocouple is positioned to keep it out of the airflow and to maximize the time it spends buried in the bean mass.

I am using a MAX31855 thermocouple amplifier on an Adafruit breakout board. This is attached to the roast chamber itself.


I attached a chunk of perf board on the rotating plate that the drum snaps into using some stand-offs to help keep it cool during the roast.  On this perf board is a Pro-Trinket, a Bluefruit EZ-Link, and a lithium-polymer battery.  This was extremely easy to get working.


This interfaces with my laptop to display the temperature once per second.  The sketch I am using right now is the example code “serialthermocouple” that is in the MAX31855 library.


Forgive the mixed units here… it works!  The temperatures in the chart below are taken at somewhat random intervals during a roast.  I recorded the lowest temperature for both outlet and bean mass during the drum rotation.  You can see a significant difference between the temps.  Note that the outlet temperature was being controlled at 510F.  Once the outlet reached this temperature, it stopped climbing but the bean mass temperature continues to rise.


Lots of work to do here to get the bean mass probe temperature readings integrated into the Roast Genie but I am very pleased with the results.  This should provide a fantastic opportunity to get a better window into the roast.

Some additional thoughts:

  • The li-po battery is not contacting any hot surfaces but the radiant heat load is significant.  I am guessing it gets up to 140F +.  Some shielding may help keep this cooler.
  • The thermocouple amplifier gets warm since it is directly mounted to the roasting chamber (using Sugru).  It has cold junction compensation but any temperature difference between the amplifier chip and the connection point for the thermocouple will create errors.  This may not be very significant but future versions should be designed to avoid this.
  • Because of the way the beans move around in the roast chamber, sometimes the thermocouple is buried in the bean mass and sometimes it is exposed.  During heating, the lowest temperature read during a cycle is closest to the bean temp.  The thermocouple responds very quickly so I don’t think that this will be a big problem.  I will probably set up the software to compensate for this.