artisan-roaster-scope / artisan

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

Realtime Color tracking #1680

Open vikramms opened 2 months ago

vikramms commented 2 months ago

Hi Marko,

I just got a real time Colortrack system installed. For now, I am just adding a few buttons to annotate the graph. But is there a plan to add Color track support? I can help with testing. I can connect to my PC via USB or BT. Right now, it is over BT.

Regards,

Vikram

MAKOMO commented 2 months ago

What do you expect from a Color track support in Artisan exactly? Typing in the resulting color value in the corresponding RoastProperties field might be faster than connecting the device via USB. What am I missing?

vikramms commented 2 months ago

Hi Marko,

The unit I have is the ColortrackRT, which tracks the change in color in real time. I have it installed with its laser aimed at the sight glass. Many industry experts(Rob Hoos, Scott Rao) have been saying that the success of roast in flavor is 60-80% the finishing color, 10-20% Time to first crack, and 10-20% development time. So, I embarked on this journey to explore that specifically and hence decided to have it done in real-time instead of using a benchtop unit for post-roasted analysis.

So, the first issue is logging color changes over time. They have an app, but it is crazy to run two loggers at the same time. I am attaching a picture of one of their logs for you to take a look at below. That is the first picture.

The second goal is to correlate color values with other coffee roasting stages we know, like turning point, marking the dry end, 1st crack, etc. Now, just like Artisan logs turning point in temperature, there is also a turning point in color, as you can see from the color log picture. I created a button that I click to annotate the BT curve in Artisan (as you see in the 2nd picture). This turning point in color is the starting point of the Maillard reaction. Color track folks call it Blanch Point. I mark it as MLSTART. It would be great to do this in real-time. Over time, as a roaster, I would like to know and modulate MLStart to 1st crack instead of TP in just temperature. It will be great to automate the recording. Also, I only have a marker on the graph right now, but I have to write down the color reading at each point of interest and add it to my notes per roast. I will be adding more EVENT buttons in Artisan for now to log the color reading at 1st crack, etc., but it will be great to have a target color, % of target reached on an LCD on the side and log it automatically using some ALARMS.

Right now, I am using the phone app with BT for convenience, but I can also use USB on the PC directly.

Those were my thoughts so far,

Thanks,

Vikram

IMG_3005 IMG_0008

MAKOMO commented 2 months ago

I added initial ColorTrack support to Artisan. This one is completely untested as we do not have access to a ColorTrack device. A new continuous build with this should be available in a few minutes.

This one communicates via USB/Serial. It might be possible to connect via Bluetooth LE (BLE). For this we would need to know the Service UUID as well as the notify Characteristic UUID of the ColorTrack. You might investigate both using one of those free BLE scanner apps for your phone like LightBlue or nRF Connect.

For now, there is a new device type named "ColorTrack". Add an extra device of this type and configure its serial comm port according to your setup.

Screenshot 2024-08-30 at 15 52 57 Screenshot 2024-08-30 at 15 53 14
vikramms commented 2 months ago

Trying USB now. But here is a picture of the Bluetooth information using nRF Connect.

Regards,

Vikram IMG_3007

vikramms commented 2 months ago

And here are the pictures from Light Blue app.

IMG_3010

Vikram

MAKOMO commented 2 months ago

Could you please attach another picture from the LightBlue app after clicking the entry "Laser Measurements"? This should display the corresponding notify UUID. Thanks!

vikramms commented 2 months ago

Hi Marko,

Here is the picture,

IMG_3052

Regards,

V

MAKOMO commented 2 months ago

Thanks for this further image. BLE support might take some time to realize due to general difficulties of running proper BLE connections on desktop machines, but we will work on this during the next month and will ping you if there is something to test.

Did the USB version work for you?

MAKOMO commented 1 month ago

Stalled. What a pity!

vikramms commented 1 month ago

Hi Marko, Sorry, i have not been able to reply earlier. The USB is not based on UART-USB bridge, so I was not able to make it work. The main board uses some other chip and requires a proprietary driver from National Instruments. NI was recently bought and their driver is giving me issues on my new machine. It took me a lot of time to find the compatible driver. I think the BLE is best path at this point. Do you meed me to get any more information on the BLE side?

Thanks,

Vikram

vikramms commented 1 month ago

Hi Marko, I made some progress. But it doesn't look like there is any information over USB. I also used the screen command on my MAC to test and there is no information. Vikram

Artisan_CT_ET
MAKOMO commented 2 weeks ago

Hm. So serial comm is not working. By now I added novel Bluetooth Low Energy support to Artisan and changed the ColorTrack extra device to connect via BLE. The problem is that I do not know what data in which format your device is sending. Thus for now it is not decoded and used, but instead logged into the artisan.log file.

Maybe you find the time to download the current Continuous Build, configure again one extra device of type ColorTrack (you can use the Dummy device as main device), press ON and check if Artisan is connecting to the device via BLE. If it says "Connected to ColorTrack" it should start logging the received data to the artisan.log file. Turn Artisan off and click on the plus icon in the upper left corner while holding the OPTION key. An email should open with the artisan.log file attached. Please send this and I will see if I can decode that data somehow. If not, we will have to ask FreshRoast (the producer of the ColorTrack devices) for some hints. THANKS!

vikramms commented 1 week ago

Thanks Marko, I am working on this today. I also did contact FreshRoast too. I expected that they might have have proprietary data packet format. But, I will send you the logs. Incase the data is obvious.

MAKOMO commented 1 week ago

Excellent! Thanks a lot already for your support.

vikramms commented 1 week ago

Hi Marko,

BTW, On another note. I modded my roaster to add 1 more temp. probe in the burner box at the inlet of the drum. I would like to log that too and one more post catalyst in my afterburner. How do I add more temp LCDs? I know their modbus registers. I have seen some Artisan curves with multiple temperatures but I am not able to get that setup using the Modbus dialog for multiple inputs. All the additional LCDs I add only show BT. Is there a post, forum link or FAQ on this? Thanks, Vikram

vikramms commented 1 week ago

Hi Marko, I have downloaded the new continous build. Not sure if the Colortrack is connecting.

I can seem to select the port for the Colotrack in the window. See below,

image

But, I am also attaching the log file.

Thanks for all your help,

Vikram

PS: On the previous question I am guessing I should use MODBUS34 in the Extra Device setup. artisanlog_102024.txt

MAKOMO commented 1 week ago

All fine. The ColorTrack connected and was sending data which got logged. You had "Debug Logging" on (hold OPTION+COMMAND while clicking on the plus icon to toggle it off) and device logging ticked (menu Config >> Devices, flag "Logging") which was flooding the log with some other messages, but I could extract some of the ColorTrack responses.

Do you have an idea what number the ColorTrack showed? I assume it was static and reading about the same number during the captured period (18:07:23 -- 18:08:21), correct?

vikramms commented 1 week ago

Hi Marko, Actually it just shows "u.u". Vikram

MAKOMO commented 1 week ago

Don't worry. I worked it out. A moment and I will have something to test for you which should work.

MAKOMO commented 1 week ago

At this moment a new Continuous Build is created which adds the data decoding for the ColorTrack. There are now two device types, ColorTrack Serial and ColorTrack BT. Please make sure you selected the later. There are no serial configurations needed for this one. The correct color readings should now show up in Artisans LCDs. It would be could if you could verify this and check if the data shown is about correct. THANKS!

There is one more thing (isn't there always one?): the ColorTrack seems to send out also temperature and humidity data. I am not sure how this is measured and for what it is good for (maybe it is mainly used for internal calibration?). To check on this data I added code to request this data form the device and log it to the artisan.log file. It would be cool if you could record some minutes and attach again the resulting artisan.log file here. Before you should disable Debug Logging (click the plus icon while holding the OPTION and COMMAND/Apple keys to toggle) and also disable device logging (menu Config >> Devices, "Logging flag" at the lower border.

Thanks for your support on this integration!

vikramms commented 1 week ago

Hi Marko, I will upload some logs tomorrow. The initial update is that the LCD shows as "UU" for a bit and then suddenly starts showing a number. Also, the number is <10, but normally it is an integer between 0-100. There too, the dark empty drum should show 80, but I am seeing 6.7-7.5. I did use 10*X for the LCD. I will be roasting some batches tomorrow and see the graph logged to see how close I get. I will have some log files for you tomorrow.

Thank you as well, I am quite excited.

Vikram

MAKOMO commented 1 week ago

Thanks for your feedback. BLE connection takes a moment after ON, therefore it first shows the UU. The values are currently converted such that the app shows the correct color readings between 0-100. No idea yet why the readings are off for you. I will investigate using your log files once I got them.

MAKOMO commented 1 week ago

Just checked again. The data you logged before does display as about 71. I just started a new build which displays the raw value received on the second LCD. Maybe you can still upgrade before roasting tomorrow.

MAKOMO commented 2 days ago

Any news? Could you run some tests on the weekend?

vikramms commented 2 days ago

Hi Marko, Here are some logs for you to look at.

Here are some logs,

Vikram artisan_102524.log artisan_102524 v2.log artisan_102624.log

vikramms commented 2 days ago

Hi MArko,

Here is the video of the LCD flashing the reading and then going back to UU.

https://github.com/user-attachments/assets/2f1f84ce-3db4-4208-9507-8bfb73ecb540

Thanks,

Vikram

MAKOMO commented 1 day ago

Could you please also attach one of the recorded Artisan profile as .alog.txt file to allow me to check for the actual readings received. Thanks for connecting to FreshRoast on this. Hope they can clarify. I will try to improve the connection issue. However, it is well known that the Windows BLE implementation is, well, weak.

vikramms commented 1 day ago

Hi Marko,

One more from today. Let me get you an .alog.txt too.

Vikram

artisanlog_103124.txt