Who is here? 1 guest(s)
 Print Thread
SR800 control monitoring?
jogo
Hi everyone; new member here, seeking advice/input.

I am wondering about the feasibility of using an Arduino to eavesdrop on the control settings on an SR800.

I run a python program to monitor and record roasts, and I manually enter the settings and changes real-time, while bean temperature is sent through an Arduino. My hope is to read inputs from the roaster into the Arduino, and send them along to python.

Bottom line is that I want to know when "run mode" starts, when "cool mode" starts, and read/determine the Fan and Power settings 1-9 (I'm not interested in reading the timer.) My first thought is to get outputs from the run/cool switch, the rotary encoder and its switch. But if there is another or easier way, that would be great. Maybe decoding signals from the logic board connector?

Thank you for any insight.

Cheers,
- John
Edited by jogo on 01/10/2025 3:19 PM
 
oldgrumpus
Welcome to the forum!

You can do most of this by using Artisan Roaster Scope. It's a free program for windows. It creates a graph of your roast with all the relevant input data from temperature probes. You can also record the events like when the roaster is charged with beans, when the temperatures reach milestones like when your in different phases, and reaching first crack, etc, etc.

I'm not really sure if I'm answering your question like you're intending, but Artisan is used by a good percentage of us. It's not too hard to set up and use. Just plug your probes into a Phidget, and it gives the data to your PC thru a usb cable. I think you can do this via bluetooth also, with some different hardware.

I will also control your roaster if you wish.
Clever Coffee Dripper
Grinder: Macap M4
Roaster: Completed drum roaster project photos shown here:
Photos https://goo.gl/ph...Da6K4wfqw5
Videos https://www.youtu...Bd1NrdpSUH
Build thread https://homeroast...post_38189
 
renatoa
He still needs a way to "talk" to Artisan, this is actually what he is asking...

I think we have somewhere a SR800 Arduino thread, could be wrong, but worth a search in the subforum.
There are multiple technical ways to do this, I can't elaborate more without knowing the internal structure of a SR800 machine, somewhere dissected ?
 
oldgrumpus

Quote

renatoa wrote:
He still needs a way to "talk" to Artisan, this is actually what he is asking...


Ah. Thanks for clarifying.
 
jogo

Quote

renatoa wrote:

I think we have somewhere a SR800 Arduino thread, could be wrong, but worth a search in the subforum


I searched the forums, and read through a couple of interesting and detailed threads which include info about the SR800 and Arduino:
- SR800/SR540 Fan Current TC4+
- TC4+ Arduino coffee roaster shield (TC4-compatible)

I couldn't find reference to a simple way to read the fan and power settings, which is what I'm looking for - but realize may not exist. I think I have to abandon my idea to determine the setting changes by reading the rotary encoder outputs. The SR800 can skip steps when the knob is turned quickly, and occasionally doesn't register the steps accurately when turned slowly or irregularly. I don't think I could model these deviations closely enough.

It would be great if there was something like voltages to read that reflect the fan and power levels.
 
renatoa
The "simple" way could be measuring the live control signals of heater and fan...
Supposing the phase angle control method is used: https://en.wikipe...controller

... you can reverse it and obtain the power/fan % from the signals inside roaster.

For this job you have to identify the ZCD circuit inside SR800, the heater and fan control SCR/triacs... and measure the timing between ZCD and SCR gate pulses, using an Arduino and ISR (https://en.wikipe...pt_handler) code written for this purpose.
If you identify the signals I wrote above,I can help you with Arduino code.
 
jogo

Quote

renatoa wrote:

The "simple" way could be measuring the live control signals of heater and fan...
Supposing the phase angle control method is used: https://en.wikipe...controller

... you can reverse it and obtain the power/fan % from the signals inside roaster.

For this job you have to identify the ZCD circuit inside SR800, the heater and fan control SCR/triacs... and measure the timing between ZCD and SCR gate pulses, using an Arduino and ISR (https://en.wikipe...pt_handler) code written for this purpose.
If you identify the signals I wrote above,I can help you with Arduino code.


Thank you very much; this sounds promising.

Now I get to do some research and learning, as this goes beyond my understanding of the SR800 (and somewhat beyond my general knowledge of electronics.) I'll see what I can figure out.
 
jogo

Quote

renatoa wrote:

For this job you have to identify the ZCD circuit inside SR800, the heater and fan control SCR/triacs... and measure the timing between ZCD and SCR gate pulses, using an Arduino and ISR (https://en.wikipe...pt_handler) code written for this purpose.
If you identify the signals I wrote above,I can help you with Arduino code.


OK, I believe I have identified where to get the signals you mentioned. With big thanks to Tom for creating this page: (http://cholla.mmt...k/signals/), he describes where he found the zero crossing timing signal, and a heater control signal for comparison which triggers the heater triac. And a similar fan control signal. If I understand it correctly, these should be what is needed.

The heater control signal has a 14µs pulse which occurs 0.8 to 2.9ms after the zero crossing signal, depending on the heater setting (see the last 2 scope screenshots on the webpage.) The fan pulse can occur 2.0 to 4.7ms after the zero crossing signal.

Is this the right information? I confess that much of this concept is new to this mechanical engineer, so keep in mind that
I'm only partly confident in my understanding.

As far as measuring the timing with the Arduino, I'll sure listen to whatever suggestions you have to process these signals.

Thank you so much!

Cheers,
- John
 
renatoa
Yes, Tom did a good job, everything we need is there.
But... we still don't have the exact points on the board where we find these signals.
Maybe you can contact Tom to send you picture(s).

Then... we can start sketching the Arduino stuff.
 
jogo
Here's a photo of the logic board. I've noted where Tom probed for the signals, and where I'm hoping to tap into.

GND = floating ground reference
Z1 = Tom sampled from the collector of QB6. He says this provides the logic level signal derived from the orange wire, and this signal goes directly to the PIC controller and clues the controller as to zero crossing timings.
H1 = Tom sampled from the collector of Q7B. He says this provides the signal that drives the yellow wire for the heater control.
F1 = Tom sampled from the collector of Q8B. This provides the signal that drives the brown wire for the fan control.

Z2, H2, and F2, are where I would like to pick up the signals if that can be made to work.
jogo attached the following image:
probe_points.png
 
renatoa
Ok, and what is the expected output ?
We have the numbers... what to do with them ?
Put on a display ? Stream on USB/COM port? store in eeprom?
 
jogo
The output that I need help to get, is the elapsed time between zero crossing and the short pulse that triggers each triac.

When I can get these two time values in the Arduino, then I'm in familiar code territory and will convert them to power and fan settings (1 - 9) and feed that information out to my python roast monitoring code.
 
renatoa
Here is the sketch, discussion via PM
renatoa attached the following file:
sr800.zip [789Bytes / 0 Downloads]
 
Jump to Forum: