DIY Coffee Roaster

I’m using this one on a few projects. It’s a 2.1" circular display. The outer bezel spins as a rotary encoder. I’m running microPython on it and can provide setup configs if interested.

https://a.co/d/0475fMex

I’ve looked at those round displays and they look pretty cool, but for my roaster it seems the square or rectangular format would be better suited. The rotary encoder is something I will eventually use but looks like I can get those separately.

My first stab at a design structure for this SS bar holding the probe looks like it should work. I increased the height of my bearing columns to 200mm and added 1 more M5 screw at the base than I had before since it is a lot taller. These columns have the V-Slot profile cut in them. The column allows for vertical placement, the short horizontal one’s at the top give horizontal placement and the other part holds the bar in place with a M5x12mm screw and captive locknut. Those parts might get slightly warm, but my experience with other plastic parts that far away was not a problem. Before I print the top 2 parts, I am going to add a V-Slot mating surface so the single M5 screw on each part should have a better chance of holding correctly. The long horizontal adjuster which is light blue might still need another screw as that part is 60mm long. Those back columns also support the idler bearing mount, but they are mounted a lot lower on those columns. The other hole in the bar on the closer end is for parking the probe between roasts. I have the bottom of the bar positioned 14mm above the top of the flour sifter. I am sure I will have to adjust that height up or down a little once I put it all together.

I did my 1st dry run test with the ESP32 controller and found a few things to adjust. I might try a real roast tomorrow. Here is a video of that test. I think it is working much better than the Arduino UNO R3 and will be interesting to see how much hotter this Thermocouple gets. Seems like this Thermocouple reacts a lot quicker to temperature change. I did have some false changes on the buttons which might be a lose connection, but I did not see it after making some changes to the code and gave the rotary encoder another job of doubling as a selection for the buttons, so if I did not have a touch screen that could be used instead.

We had some rain this afternoon, so I did not get to test a roast but think I have come up with a better placement of thermocouple. I am angling the plate 20 degrees, so the thermocouple comes in at an angle. This placement solves two problems. This will help compensate from any slop in the 3mm shaft through the hole and allow better hot airflow around the plate since it is not a flat surface against the air flow. The probe will probably be about a 10-degree angle because of the slightly lose fit. This image shows the probe a little higher than it actually came out when I installed it. The probe is pretty close to the top of the flour sifter mesh. I have the temperature alarm in the software currently set to 250f and 275f since that is what the temperature range I was reaching on the probe above the sifter. Think I will initially change it to 300f -and 350f but will probably be hotter than that. Since the 360 movement of the wobble disc is a sphere-like shape, coming in at an angle with the probe from the top will easily miss it.

The 1st roast was a success. The max temperature go to 273 F. I have just a few minor adjustments to the firmware to make.

Now that I have my custom board on the way and the prototype wiring matching the custom board, I decided to try using 150mm length ribbon cable between the TFT touch screen to see if the shorter length would help with any false touches on the screen. The wires before were a rat’s nest of 200mm+ lengths of silicone wires. All the functions still work, so I have the wiring correct. I need to test it with a couple of roasts to see if it actually works better. It certainly looks cleaner inside. I could also shorten the wires coming from the stepper motor board. At least they are nowhere near the screen wires. With the flexible silicone wires, they were probably near them.

I hadn’t seen that you were getting phantom touches. That’s a pretty common side effect of EMC issues, unfortunately. Moving the screen physically further away and putting some metal screening behind it connected to 0V might be the easiest way to try solve that.

Also routing all of those wires as far away as possible and shortening them as much as possible.

This kinda thing is why I’m always so insistent that people put filtering components and decoupling caps on things as much as possible!

My first test I got those, but the 2nd and 3rd test roasts I disabled the touch as I had the same functionality with the ec11 rotary encoder. My wires from the TFT to the ESP32 were about 2-3" longer silicone wires. Not knowing about the interference problems that might create, I thought it would be easier to assemble the top with all that wiring. I wanted to see if this would fix the problem on the prototype and carry this wiring over to the custom board without using a couple of the tall stacking headers. The metal screening sounds like an interesting idea. I see a lot of Faraday Fabric Tape options when I search on that also.

I wouldn’t worry too much about the tape options, it’s complicated to do well and very much not a panacea.

It’s a bit more complicated than just the long lines to the screen, that is only a problem if there’s a noise source somewhere else. It’s almost always better/easier to fix/minimize the source than it is to shield the device from it, especially because with capacitive touchscreens you can’t shield the touch sensitive side. There’s a solid chance the noise is coming from the heat gun, now that I think about it, so getting some space away from that would also likely help.

In general, distance is the easiest option. Then trying to address where the noise is coming from which is usually long cables that have noisy signals on them. Then trying to make it so the noise doesn’t affect the sensitive bits. Then trying to stop the noise getting into the sensitive bits.

I did a test run with no heat and no beans for 30 minutes with no false touches, so the shorter wires may have fixed it.

The heat gun is pretty far away from the electronics. Seems more likely that it is the motor wiring since I have heard that causes interference sometimes and is pretty close to the screen wiring.

Could easily be either. Distance doesn’t work the way you think it will as there are cables connecting things.

Easy test if it’s doing it reliably: Run a test without the heat gun running, then run a test with the heat-gun but without the motors running, which is what it sounds like you’ve done, pretty much.

If it’s coming from the heat gun you may get away with it by using some clip-on ferrites on the power cable.

I ran 2 - 4 oz roasts yesterday and had no false touches on the screen. I shot a video of the 1st roast. It is probably a little boring since I did not have any issues.

Here is the temperature data from the roast.

Think I have the new electronics case about as good as I can get it for now. I had to move the 4" TFT screen in line with the 14-pin header on the controller board. In doing that, it made access to the microSD card impossible, so I had to slope the front to keep that access. I initially sloped the whole front but will all the components in the model, the RTC stuck through there. That is why it is not sloped all the way across. I also had the selector and buzzer in the back where the wires would be long going to the board. They fit really well moving them both to the sloped top and the connections are just below them. That also keeps all the wires away from the motor wires. I added a little wall around the ambient sensor so it would pick up outside temperature rather than inside the case temperature. Having all the components in the 3D model really makes it easier to fix any interference problems. There is a lot of empty space the back top area, but I would have to lower that whole area as the back top fits flush with the bottom of the 2040 V-Slot. One thing I also noticed while writing this is the “Selector” text being on a slope makes it more time consuming and filament wasteful with all the filament changes. I am going to look at just making an area around the text flat to see how that looks.

Here it is with the flat text for easier printing.

I have gotten tired of taking the 4 - M5 screws off this case to get into for various reasons and came up with a magnetic lid that works well for me. For the short base, I used a Openbuilds Low Profile M5x20mm screw with a locknut and recessed both of them. For the top I used a Low Profile M5x50mm screw with locknut Recessed below the recess hole for the magnet. I am using countersunk hole 12 diameter magnets and used the countersunk side facing the bottom M5 screw and larger area of the magnet facing the top M5x50 screw. The larger area holds stronger against the M5x50 while the counter sunk side is a less strong. That way the magnet stays in place when I take the top off without any glue needed. I can also put an Allen wrench on the M5x50 to loosen the M5 locknut with the magnet in place in case I need to get the magnet out. It actually takes a bit of effort to take the case apart so I don’t think it will come loose. I also used four M3-sized semicircular alignment keys. I have had these magnets for years originally for a Delta 3D printer design I never built.