BC-2 Mods - Page 2

Discuss roast levels and profiles for espresso, equipment for roasting coffee.
Supporter ♡

#11: Post by beanman »

Amazing what you're doing with your BC-2!
Following along on this great thread.

aabud (original poster)

#12: Post by aabud (original poster) »

Here's an update... got the servo electronics worked out on a breadboard and then transferred it to a more permanent strip board for trying on an actual roast. Still using duct tape for an enclosure :-)
No issues really with the mechanics or the electronics... now just need to work on something much more presentable for an enclosure, and neaten up everything.

One of the primary benefits of this is to be able to automate the warm up and between batch ritual. Haven't given the design of that much thought yet... not sure if that's just another function of this "servo" module, or if it's a separate "helper" module that might also offer other supportive things during a roasting session. I'm leaning towards a separate module. I've used the PID on Artisan with another roaster set up and found it a bit awkward from a usability standpoint.

aabud (original poster)

#13: Post by aabud (original poster) »

The "Gas Pilot" is all neat and tidy now...

next up... the RPM monitor for the drum - I've already been messed up once by accidently hitting the drum speed knob on the BC-2, so I want something that will be easy for me to spot if the drum speed is wrong.

As an aside, now that I've also had a chance to prototype the pressure sensor and the drum RPM tach, I've changed my thinking on how this all comes together. Originally, I was thinking there would be an "central, high end" Arduino with lots of sensor inputs hanging off the Modbus network already present in the roaster. What I found is that I wanted/needed more smarts out of these dumb sensors, and that it didn't make sense to try to have a "central" Aruduino having extensive goings on with each sensor. For example, I didn't want a single Arduino to have to count each revolution of the drum, while also trying to move the gas servo. It would be much simpler to view make all the "sensor packages" include a dedicated "cheap" Arduino able to talk modbus and provide whatever additional smarts I wanted from the sensor. Some examples of "smarts" I wanted from the sensors...

- the pressure sensor works when it's taking many readings per second and averaging that out once a second, so the sensor's Arduino can do that
- i'd like dedicated displays showing the current reading on the pressure sensor and the RPM sensor... something that's easy with an Arduino

aabud (original poster)

#14: Post by aabud (original poster) »

Latest mod was a drum tach to show drum RPM. It also kicks it the reading out via modbus so it's visible to Artisan, though not sure that's all that useful. My motivation was the little drum speed set knob on the BC-2 is kinda easy to accidently change and it doesn't have the greatest markings on it's dial to get it set the same each time.

The coupling screws on the drum shaft provide a nice place to stick a magnet and there's generous room in that area, so my first thought was just to add a little box in there with a sensor and arduino and display. However... when I tried that it ended up a bit bigger and fuglier than I envisioned... so went back to the drawing board.

I know that I have two other future mods that will have displays also, so started thinking about the idea of putting all these displays (and related arduinos) in a single 3d printed enclosure somewhere, and the analog pressure gauge area seemed a convenient location...

Here's a look at the back with the lid off:

For the pressure sensor itself, I used a little 3d printed case with the appropriate mount and angle to get it over the rotating magnet. The magnet would probably keep itself stuck on the coupling screw, but I put a little shrink wrap on it just to be sure. Taking the cover on/off is kinda a pain if it were to get dislodged. Temperature in this area during a roast, by the way, measures about 55 degrees C, so the plastic casing should be ok.

Here's a video of it in action:

aabud (original poster)

#15: Post by aabud (original poster) »

Perhaps of interest to other people rolling their own little devices around Arduinos...

I've worked through three modbus sensors/controllers so far... pressure sensor, drum RPM sensor, and gas controller. Somewhere in the midst of the third sensor (drum RPM), I realized it all felt familar... I was basically using the same circuitry for each sensor, so I could save myself some time and effort by just coming up with a "standard" circuit that could do these sensing and controlling things and then just reuse it for each new thing I would do. And if I was going to create a "standard", I should spend some effort in making it perfect (well...at least better), before copying it a bunch of times...

Far and away the biggest headache/annoyance / instability has been loose connections or wiring. So I decided to try and address that by going with a proper PCB (rather than point to point wiring), and to use JST connectors - those little white "plug" in connectors (rather than those push on DuPont connectors that are so breadboard friendly).

I figured the tried and true hobbiest thing to do for a PCB was to laser print my circuit, toner transfer it to a copper covered PCB, and then etch away with Ferric Chloride. It actually worked, albeit on my third attempt, and that one did have one incomplete trace (note the patch wire).

Using this little home brew PCB and the JST connectors has been rock solid, so mission accomplished as far as stability goes. However, that toner transfer/etching process was not enjoyable for me, and drilling all those little holes precisely was intense. I did not feel like I was a better person for having experienced this procedure. So I got curious about how much it would cost to have my little modbus sensor board "professionally" fabricated. I was thrilled to find out it was actually pretty cheap... I found a few different inexpensive options, but I settled on OSHPark.com. Three boards ran around $30, so roughly $10 each. I placed the order on 12/31, and the boards arrived in my mailbox on 1/10.

To get my circuit to scale for my earlier etching, I had used EAGLE software. Again, mostly because my impression was that it was "the standard". While I wish it was a bit less of a learning curve, I don't regret that choice, and haven't seen anything else that I think is really that much easier. EAGLE was a two part process - first, you sketch out your schematic, then you layout the components and traces onto your board. My design was for a single sided board, because I only planned to etch one side, but had I known I was going to use OSHPark.com, I probably would have put traces on both sides as that's no additional cost (and alot easier to design). Another nice thing about having used Eagle, was that I could upload that OSHPark.com accepts Eagle files directly, so no converting to gerber or other format was needed. They generate pictures of what your board will look like in real time when you upload, before you have to commit your order - super nice verification. Here's what my schematic and PCB layout looked like in Eagle:

And here's a picture of the finished PCBs. One I have already soldered up for the gas pressure sensor I'm working on. For grins, I also have a "point to point" wired version of the same circuit I was using before I got the boards.

This little generic sensor/controller circuit uses a D1 Mini ESP for the microprocessor, a modbus chip, two breakouts for 3V I2C sensors/displays, a modbus connector, and a generic 3 pin and generic 5 pin connectors for things like push buttons, rotary encoders, etc.

Oh... if you're wondering about the little push switch... One limitation of the D1 mini, is that it uses its one set of RX/TX lines for program code upload, and because I needed those to interface with the modbus chip... I needed a way of breaking that connection when I was uploading new code. So that little switch is a modbus on/off switch, which I have to turn off when uploading code.