artisan-roaster-scope / artisan

artisan: visual scope for coffee roasters
https://artisan-scope.org
GNU General Public License v3.0
948 stars 256 forks source link

Incorrect time calculation on large-sampling-interval machines #1643

Closed lookingafar closed 2 months ago

lookingafar commented 3 months ago

Is your feature request related to a problem? Please describe. On large-sampling-interval machines (like HB older models, 5-second sampling interval) the following situation sometimes arises: if I follow the curve very closely then for consistency I need to mark the FC at the same temperature. Let's say FC begins at 200.0. Let's also say that ROR is around 10 near the FC. It means that every 5 seconds the temperature change is around 0.8 degrees.

Obviously, the temperature will rarely pefrectly match 200.0 with a 5-second sampling rate. Sometimes I will see 199.8 then 200.6 or some other similar combinations. For this example let's assume that I will see 199.6 then 200.4 near the FC.

If I want to mark the FC exactly at 200.0, it will leave me with 2.5 second difference (since I can do it either at 199.6 or 200.4, but not at 200.0). So, let's say I marked it at 200.4 (FC started later than at 200.0 by 2.5 seconds).

After marking FC I will drop the beans at 210 with 1:30 development. For this example let's assume that I will see 209.8, then 210.3 (0.5 degree change with the lower ROR this time). Here I mark DROP at 209.8, which will be 2.5 seconds earlier than it should be.

In the end I will end up with 1:25 development time instead of 1:30 even if I followed the profile exactly. Some roasters will say that 5 seconds difference is nothing, but unfortunately that's quite a big difference (11.9% moisture loss vs 12.1%, which gives a quite big difference in drip coffee taste, and a noticeable difference in espresso).

Now if I like this profile, I will save it and load it as my background next time. But there is already a 5 second difference in development time. So, I have to rely on the second timer, which I use to mark the FC, and on making notes of the real development time to be consistent.

It's not a big problem in itself, but I think there should be some way for Artisan to show the exact development time for bigger sampling interval instead of in 5-second increments.

Describe the solution you'd like I don't have a good solution to this. Allowing the user to mark FC at any moment will mess up the temperature readings: 1) using ROR to project the temperature between sampling intervals is not always exact, while 2) using the next reading to calculate the temperature between the previous and the next sampling interval is not always possible (there is no next reading after DROP, for example, since the temperature will drop sharply). 3) However, some combination of these two methods might be possible, though it will most likely require too much coding to implement well.

Anyway, I decided to post it since I'm interested to know what Makomo thinks about it.

Describe alternatives you've considered An alternative solution is to use a second timer, like I do, or replace the roaster hardware with phidgets or something similar, or install a second thermocouple, etc. Most of these solutions solve this problem but create another one, which is usually bigger.

Thanks.

MAKOMO commented 2 months ago

The Artisan time is discrete not continuous. Thus it is not possible to reference a time point inbetween two sampling intervals. As this is at the very core of the Artisan architecture this is unlikely to ever change.