Who is here? 1 guest(s)
 Print Thread
Skywalker roaster mods
renatoa
Everyone has personal preferences, based on specific restrictions and past experience.
A lot of things could go wrong with a tethered setup. Even worse with the wireless ones.
It always helps to have a manual override handy, just in case.
 
darelleman
For the reasoning I would have to agree with renatoa. As this is my first roaster I think it would be an interesting first step to see how the Skywalker runs its auto & assisted roast profiles. This would also help us as a community better understand how the machine operates. That also makes it easier for people to use those profiles as a starting point to start controlling the roaster via artisan.

I would be happy to do the testing and am plenty handy with soldering and making cables. My preference would be if we could find a way to implement this without needing to modify the roaster hardware itself. I think that makes it more approachable for less technical folks.

Basically if you could just throw in some sort of USB splitter and connect both the Arduino and controller screen that would be pretty easy for people to do.

Note: I am not sure a standard usb splitter would work because due to usb protocol a usb splitter usually has one side be power only (2 wires) and the other have communication and power (4 wires). Since we need all 4 wires connected to both I am not sure an off the shelf splitter will work.
 
sloppyjosh

Quote

renatoa wrote:

Quote

sloppyjosh wrote:

...I soldered wires to the RX, TX, and Ground of the controller board. So I can plug those in to my logic analyzer or an arduino to sniff the data.

...


What is peak voltage of the data pulses, 5v (Arduino) or 3.3v (ESP) ?


5v is what I was seeing, I believe. I was just using a cheap logic analyzer
 
sloppyjosh

Quote

renatoa wrote:

Sounds possible, you connect only the control panel receiving wire to Arduino, and let them talk undisturbed.
This way you would just spy the temperature evolution, and plot in Artisan, with a much better RoR following.

Someone could go even further, and spy both wires, i.e. having two input/read pins, instead a Rx/Tx pair.
The second Rx pin would be to monitor the messages sent by control panel to the roaster, the purpose being to capture even the power/fan changes, and log them in Artisan.
This implies some changes in the original josh source, not rocket science, but time for tests is needed, and an Arduino available for this job.
I can sketch this code if Josh isn't listening or busy to do this fork of the original project, but all testing will be up to whoever is interested in it.


Sorry.. have been busy with holidays, work, family.. etc..etc..ya'll know the drill.

I have code for this.. It's in the repository called SkywalkerSpy... You tap on to the two data lines and the ground between the roaster and the controller.. then it takes turns reading and decoding a packet from the roaster, then a packet from the controller.. It just replies to any serial input with the current state. I wasn't quite sure how to get artisan to read it so I just wrote a little python program to do the serial part and let artisan interact with that as a command. It worked pretty well.

Edit -- Added a picture showing how I tapped the lines.. This is on my controller and I just squeezed those three lines out with the other cable. Though, if you had parts available, it'd be really easy to build with USB ports that would let you attach/detach as you want.

If they ever send me another board I'd really like to do some more work on polishing all that stuff up.. But I can't do much without their controller board.
sloppyjosh attached the following image:
controllertap.jpg

Edited by sloppyjosh on 01/03/2024 9:54 PM
 
darelleman
Thanks sloppyjosh!

I took my controller apart and unfortunately they aren’t using standard USB color coded cables. Do you know what the pin out of the controllers usb connector is?

And which digital pin on the Arduino is the Rx line and which is Tx?

From there I should be able to make a usb Y-cable that connects them both at the same time.
 
renatoa
For the Skywalker spy project color doesn't matter, you identify them by message content, the one with temperature is from the roaster, the other with commands is from controller.

Also, the picture from github could give you a hint, check attached.

As a reminder, the project page is here: https://github.co...kerRoaster
renatoa attached the following image:
image_2024-01-04_103005291.png
 
renatoa

Quote

darelleman wrote:

For the reasoning I would have to agree with renatoa. As this is my first roaster I think it would be an interesting first step to see how the Skywalker runs its auto & assisted roast profiles. This would also help us as a community better understand how the machine operates. That also makes it easier for people to use those profiles as a starting point to start controlling the roaster via artisan.


The automatic profiles were already deciphered and described in main skywalker thread.
Posting again here for your convenience:
Preheat temperature: 200C for naturals (1x profiles), 220C for washed (2x), 215 for honey (3x)
Start power: 65% for naturals (1x profiles), 70% for washed (2x), 65% for honey (3x)
At 170C power reduced to: 40% for naturals (1x profiles), 50% for washed (2x), 45% for honey (3x)
drop temperature is according table in manual, and second profile digit: light/medium/dark
Fan start value 65% for all profiles, pushed to 90% at 170-172C.

It's a fixed matrix of values, nothing changes according to roasting progress feedback or machine load.
Edited by renatoa on 01/04/2024 3:18 AM
 
darelleman

Quote

renatoa wrote:

For the Skywalker spy project color doesn't matter, you identify them by message content, the one with temperature is from the roaster, the other with commands is from controller.

Also, the picture from github could give you a hint, check attached.

As a reminder, the project page is here: https://github.co...kerRoaster


Color doesn’t matter but Pinout on the USB does, only reason I mention color is because USBs have standardized cable color coding so you know which cable goes to which pin and what that cable does.

The only tidbit of information missing from the GitHub is which digital pin is Rx and which is Tx. From there, because of the standard color coded USB cable in the picture I can work out the usb pin out.
 
renatoa
Yeah, you have a good reason to be worried... the chinese made a mess with the usb cable wires, as you see in the picture attached.
The only wire that match the color with function is black = ground. All the others are different.
The good news is that they kept the order, it's the same on both ends of the cable...... usb contacts are the same as the PCB connector.

BTW, the connector is not using the ubiquitous 2.54 pitch, as all the test boards, but 2mm pitch, you need special pins to experiment without soldering on the control panel PCB.
~~~
renatoa attached the following image:
image_2024-01-04_164939874.png

Edited by renatoa on 01/04/2024 8:59 AM
 
sloppyjosh

Quote

darelleman wrote:

Quote

renatoa wrote:

For the Skywalker spy project color doesn't matter, you identify them by message content, the one with temperature is from the roaster, the other with commands is from controller.

Also, the picture from github could give you a hint, check attached.

As a reminder, the project page is here: https://github.co...kerRoaster


Color doesn’t matter but Pinout on the USB does, only reason I mention color is because USBs have standardized cable color coding so you know which cable goes to which pin and what that cable does.

The only tidbit of information missing from the GitHub is which digital pin is Rx and which is Tx. From there, because of the standard color coded USB cable in the picture I can work out the usb pin out.


Sorry I forgot to add info about which pin is which.. And at the moment I can't remember. It's written on a note on my desk that I can't get to at the moment... I'll try to remember to add some documentation to that.

As renatoa noted, the data is on the center two pins.The arduino is just listening to those when using Skywalker Spy.. So if you try them one way and things don't seem to work.. just swap the pins.
 
sloppyjosh
I put an acrylic front on the roaster and put 225, 340, and 455 grams of beans in to see where the probe would sit in relation to the bean mass... IMO, this may be the culprit for why the temps seem to read low.



See what ya'll reckon.. I'll probably have the clear front on it a bit longer so if you want to see anything else that I didn't do in the video let me know and I'll try to do it.
 
amaller

Quote

sloppyjosh wrote:

I put an acrylic front on the roaster and put 225, 340, and 455 grams of beans in to see where the probe would sit in relation to the bean mass... IMO, this may be the culprit for why the temps seem to read low.



See what ya'll reckon.. I'll probably have the clear front on it a bit longer so if you want to see anything else that I didn't do in the video let me know and I'll try to do it.


At least with my fluid bed roaster, by the end of the roast the volume of beans in the chamber is significantly more. Almost double. I would expect the probe to be more submerged towards the end of the roast due to lower bean density.
 
sloppyjosh

Quote

amaller wrote:

Quote

sloppyjosh wrote:

I put an acrylic front on the roaster and put 225, 340, and 455 grams of beans in to see where the probe would sit in relation to the bean mass... IMO, this may be the culprit for why the temps seem to read low.



See what ya'll reckon.. I'll probably have the clear front on it a bit longer so if you want to see anything else that I didn't do in the video let me know and I'll try to do it.


At least with my fluid bed roaster, by the end of the roast the volume of beans in the chamber is significantly more. Almost double. I would expect the probe to be more submerged towards the end of the roast due to lower bean density.


Excellent point! I have about 1lb of roasted beans.. I'll put them in there tomorrow and see what it looks like.
 
Mike_Mathis
Thanks Josh for the video. I ordered a thermocouple today to add to the existing one for Artisan data. I will also move the original one while I am in there. I'm thinking between your two lower dots and just above fin clearance is the place to relocate the original.

I would be interested to know the measurement in mm from the center of the stock location to the center of your 340 mark. This will help me decide where to locate my add-on probe. Standard would be ok too. I can convert.

I'm beginning to view you as a roaster surgeon.
Edited by Mike_Mathis on 01/06/2024 9:34 AM
*Kaffelogic Nano 7
*Skywalker V1
*2023 BC-2
 
renatoa
Imo, the deeper the probe is in bean mass, the lower (and slower) will be the reading.

There is no need the probe to be completely into beans. In commercial roasters you could see probes in apparently abnormal positions, where they read almost half air, and the users seems be ok with those approaches.

During my TO experiments I found that a probe not touching anything, at 3-4 mm above beans bed shows the same values as one completely immersed into beans.
But the probe above beans signals faster the coming events, like TP/FC, than the inner probe.

This is not a claim that they "designed" this machine scientifically, and the probe location is ideal, so don't touch it... but I am skeptical that looking for other location would improve something.
Surely would not bring the temperature range back to where the people is accustomed, with FC at 200C/400F, nor allow to compare profiles with those from other non-radiant machines.
 
Mike_Mathis
renatoa, Considering the controller is tuned to actions for the current location of "their" probe, I will leave it be. When my 4mm X 30mm probe comes in I'll decide where to install it. I only plan to use it for data recording anyway. I am curious to see the difference and will pass this info here through Artisan graphs.

Works well to pour beans in Skywalker.
i.imgur.com/HtxRer9b.jpg
Edited by Mike_Mathis on 01/06/2024 11:45 AM
*Kaffelogic Nano 7
*Skywalker V1
*2023 BC-2
 
HarryDog
Hello Josh, great video, can see lots but where is the lamp positioned? Test with a blacked area to represent the lamp will help me see how much if any I can increase drum speed. When your motor is on high, what voltage is that? Max 24vdc?
Would like to see the spray of beans at max to see if they would be hitting the lamp.

I'm not an expert in thermodynamics (If that's the correct term) but I think this lamp cooks differently, the temp at which it penetrates the beans enough to roast them, so the result is a different temp. Next I don't know how accurate the stock probe is? Is it a thermistor? Using a Bing search they say most use a range to 130C, next better option might be an RTD?

After seeing the video I think charges of 400g might be much better for auto mode? Rather then moving the probe? Need to test this out.
 
renatoa
There are NTC that perform well in an operating range up to 250°C.

Seems to be NTC, based on the data collected by josh, assuming there isn't a voltage polarity inversion somewhere in the processing chain.

Want to test probe accuracy ? Remove it and do a boiling water test, 100C is 100C... at least at sea level Grin
 
Dan N

Quote

sloppyjosh wrote:
It says FMD N3hWIKH

FMD is a chip manufacturer that makes a few microcontrollers but I couldn't find any data sheet that looked like it matched the chip itself.

It looks like a Fremont Micro Devices PIC clone with the part # etched off (middle line between FMD and bottom production code). Probably similar to FT61F023. lcsc.com has FMD datasheets for 7 SOIC-16 parts and all have the same pinout.
 
Dan N

Quote

sloppyjosh wrote:

The readings from the roaster are inversely proportional to the temps but I haven't put a meter directly on the probe.

I used a 4th degree polynomial and got it working pretty well.

Here's a code suggestion to increase efficiency. Since the Arduino AVR processor doesn't have hardware FPU, the floating-point operations are emulated by software and take a lot of cycles. I used Horner's Rule to rearrange that polynomial and reduce the number of multiplies from 40 to 14:

v = 583.1509258523457 +
  x * (-714.0345395202813 + 2238.149675349052 * y +
       x * (413.37964344228334 + y * (-5001.419602972793 +
                                      -6885.682277959339 * y) +
            x * (357.49007607425233 + 3879.431274654493 * y +
                 x * (-555.8643213534281))))
  +
  y * (-196.071718077524 +
       y * (-4099.91031297056 + 8242.08618555862 * x +
            y * (247.6124684730026 + 2868.4191998911865 * x +
                 y * (-1349.1588373011923))));


Thanks for your amazing work!
 
renatoa
Since the NTC resistance to temperature variation rule is logarithmic (recheck post #22), the reverse we are trying to simulate should be an exponential.
I would dig in this direction too.
 
Dan N
The way the S-curves on the graph in post #22 shift over and change slope matches graphs I've seen that plot thermistor volts vs temp for different series resistor values.

I believe R16 (2k) is connected to a digital i/o which can be set to do 3 different things:
  1. input: R16 is floating and does nothing
  2. output 0: R16 is in parallel with the thermistor
  3. output 1: R16 is in parallel with R15 reducing the series resistance to 1875ohm

It's likely they measure with R16 floating and again with R16 active. This could be verified by scoping R16 on the processor side.
 
Dan N
I can calculate the series resistor value from the data in post #3 and the 1st reading does appear to use 1875 ohms for the high temperatures. I assume the 2nd reading uses 30k because it is the smallest at high temp.

Rt should be equal for both readings, solving for Rs gives:
Rs = 30000 * (1023/d1 - 1) / (1023/d2 - 1)

264,22, 429
Rs = 30000 * (1023/264 - 1) / (1023/22 - 1) = 1895.6 ohm
 
Robotic Kitten
@sloppyjosh I have a question about about this section of the codehttps://github.co...#L232-L236 Can an "unsigned long" be "negative"?
Assuming, the "overflow", maybe do the following?

if (now < time) {
    duration = time - 1 - now;
}


and a second question: the isbeingtoolong() , is it for "artisan" commands timeout? i.e. if not hearing from artisan for 10s then shut everything down?
 
renatoa
About the second... seems so, time is initialized after handling each serial command coming from the operator.


time = micros();


"Operator" meaning not necessary only Artisan, TC4 commands can be sent from a terminal application, by typing them, as in a Linux shell.

Is debatable if abandoning roast is a great idea... if Artisan is broken, and also no control panel present.
Maybe the last heater power/fan levels could be preserved, and let the human operator decide drop based on smell/vision, thus saving the roast... if the human operator is still nearby and able to operate the machine...

Also, I wonder where is the 230C shutdown implemented, in the control panel or in the roaster controller... in the second case this protection being still active even if using Artisan...

About the first, usually overflows should be foreseen and handled in code.
Like a division by zero error for example... a wise programmer should always check is the divisor is not zero ;)
 
Jump to Forum: