Fluid Bed Coffee Roaster v1

Følgende er en beskrivelse af mit byggeprojektet med at lave en PC styret fuldautomatisk kafferister, og gennemgang af de for mig vigtigste aspekter i projektet.

Latest edit: 30/9/2019 (Improved temperature reading in arduino sketch)

Edit: 26/8/2019 (flow optimizer)



Link til risteren i aktion på youtube: https://www.youtube.com/watch?v=DfOu7oM3Z1w
https://youtu.be/E2xk2CnljE8

For et års tid siden prøvede jeg kræfter med at ombygge en popcorn maskine til en kafferister, med manuel styring af varmelegeme og blæserhastighed.
Den kunne riste 40-60 gram bønner hvilket ikke var alverden,
men det gav mulighed for at sætte sig ind i risteriets mysterier,
uden at det kostede en bondegår i hverken udstyr eller bønner.

Efter at have "leget" med popcorn risteren i nogle måneder fik jeg mod på, at lave en kafferister,
der lidt bedre matcher hjemmets kaffeforbrug på op mod et kg kaffe om ugen, fordelt på to eller tre forskellige bønnetyper.
En tromlerister blev overvejet, men er en pokkers kompliceret byggeproces at få til at blive god,
så jeg tænkte at en slags opskalering af popperen ville være det letteste.
Det er samtidig også den type kafferister der er lettest at riste på,
idet man kan "vende på en tallerken" i temperaturen,
når ristningen forløber anderledes end man lige er forberedt på.
På en tromlerister må man i højere grad acceptere,
at den pågældende ristning bare ikke blev helt som man ville.

Designvalg

Efter lidt jagen rundt på nettet faldt jeg over begrebet fluid bed coffee roaster.
En herre ved navn Sivetz udtænkte for ca. 50 år siden en kafferister,
hvor man varmede en masse luft op, der så blev skubbet op gennem et stationært kammer hvor bønnerne lå.
Luften får så bønnerne til at cirkulere og varmer dem samtidigt op.
Princippet kan frit skaleres fra 30 gram og op til over 50 kg hvis man har plads
Så altså:
En blæser
En varmekilde
Et kammer der kan tåle varme
Noget styring
Jeg fandt en italiener der, inspireret af andres designs, havde flikket noget sammen der så ud til at virke ret godt.
Cyberelectronic kalder han sig.
Mit design er primært inspireret af hans.
Det jeg er endt ud med, løber op i en samlet pris på 900-1400 kr.
for en komplet 100-250 grams kafferister med fuldautomatisk profil styring.
Det følgende er en beskrivelse af byggeprojektet, og gennemgang af de for mig vigtigste aspekter i projektet.

Blæseren

Blæseren er, når man læser rundt på nettet, en af folks større udfordringer at få til at virke godt.
Men blæseren i Cyberelectronics design så ud til at virker ret godt, og den koster næsten ingen penge.
https://www.ebay.de/itm/KFZ-12V-75W-Elektrische-Luftpumpe-Elektropumpe-Geblasepumpe-Adaptern-Bootspumpe/302320552900?hash=item4663b58bc4:g:2X8AAOSws5pZHWRD
luftpumpe
Det skulle vise sig, at der er en grund til, at dem der rundt på nettet har brugt denne blæser, senere kan ses bruge en anden blæser...
Folk taler ofte om cfm (kubikfod pr minut) i forbindelse med blæsere og... nå ja, så har man et tal til at graduere blæsere.
Men helt så nemt er det ikke, for hvis eksempelvis en bordventilator (radial blæser) møder modstand,
så stopper flowet af luft og luften står bare og turbolerer rundt om blæservingerne.
Det der skal til at skubbe, f.eks. en modstand som bønner i et kammer, er noget i stil med en centrifugal blæser.
En sådan kan være designet på tre grundlæggende måder.
-Med skovlvingerne fremadrettet (giver lav støj, mindre flow, og mindre styrke)
-Med skovlvingerne lige ud til siden (giver meget støj, lavt flow, og stor styrke) bruges i støvsugere.
-Med skovlvingerne bagudrettet (giver medium flow, og stor styrke)
Det der sandsynligvis er vigtigt i fluid bed design er,
at flowet er tilpas stort nok til det areal hul der skal blæses gennem i bunden af ristekammeret,
samtidigt med at der kan skabes tryk nok til,
at løfte den tykkelse laget af bønner udgør.
Har man en blæser der kan lave tryk nok, men har et meget større flow end nødvendigt,
vil bønnerne blive løftet af trykket, og derefter blæse helt ud af kammeret.
Omvendt vil en højt flow, lavt tryk blæser aldrig løfte bønnerne og flowet vil aldrig komme igang.
Så det er altså balancen mellem flow og tryk evne på en blæser der afgør om den er eget i en given konstruktion eller ej.
Der kan læses mere om emnet her
Fluid bed ristere i større målestok bygges ofte med en støvsugermotor.
Nogle støvsugermotorer egner sig bedre end andre (til den givne konstruktion),
og det kan give store udfordringer, at finde en kombination af ristekammer højde,
diameter, bundhul diameter, der passer til den blæser man har valgt.
Den luftmadrads pumpe jeg linkede til ovenover er en Powerlite Industrial Limited PL-8103 12 volt 75 watt Tryk: 0,55PSI/3,8kPa Flow: 300Lmin/18m3h.
Den er med bagudrettede vinger og kan løfte >350 gram bønner og holde dem i cirkulation, i et kammer med en indre diameter på 7,8 cm med bundhul diameter på knap 3 cm.
Da den kun er på 75 watt (ca. 6,5 ampere ved 12 volt) behøver strømforsyningen til den ikke være super stor, og hastighedsregulatoren til den bliver meget billig.
Jeg har eksperimenteret en del med spændingen til blæseren.
Selv om den hedder sig at være 12 volt kræver det en hel del ventilation for at den ikke overopheder.
Manualen til den beskriver også at man ikke bør bruge den i over en halv time.
Med 12,5 volt lugter den halvbrændt efter 12 minutter!
Da jeg gerne vil lave flere ristninger efter hinanden, måtte jeg derfor skrue ned for spændingen til den,
hvilket reducerer varmeudviklingen i motoren betragteligt, og effektiviteten lidt.
Ved 10,5 volt bliver den stort set ikke varm og kan stadig bruges til mindst 230 gram bønner.
Det har dog vist sig at de kul der overfører energien til spolen i motoren afsætter meget kul og arcer meget i kobberet som energien afleveres til fra kullene.
Blæsermotoren brænder derfor af efter 15-30 ristninger.
Lessens learned: Brug en meget højere kvalitet brush-motor blæser eller brug en blæser med brushless motor.
Makita er de seneste par år faktisk gået over til brushless af samme årsag; Højere driftsikkerhed.
Jeg har derfor købt denne KR9250-12-220-S200 Brushless Fan https://www.aliexpress.com/item/32608348455.html

brushlessfan


Tryk: 1PSI/7kPa Flow: 800Lmin/48m3h Power maks. 168 watt
Som kan ses, er den lidt kraftigere og den larmer også mindre. Prisen er så desværre 5 gange højere, bl.a. fordi brushless kræver et driverboard.
Den er rated til at kunne køre uafbrudt i 8 timer før den skal køle af en time.
Rigeligt til et hjemmerister setup.
Da flow i forhold til tryk er lidt for højt, blæser nogle bønner lige akkurat ud af ristekammeret når der skrues op til der hvor bønnerne begynder at cirkulere.
Ideelt set burde flowet være lavere i forhold til et tryk på 1PSI, måske nærmere 300-600Lmin.
Sandsynligvis er WS7040-12-X200 (Tryk: 0,8PSI/5,5kPa Flow: 220Lmin/13m3h) eller WM7060-12V (Tryk: 1,6PSI/11kPa Flow: 520Lmin/31m3h) bedre alternativer, MEN:
Man kan også løse det ved at lave en modstand/damper i luftens passage fra blæser til bønnerne, og det viste sig at have en kæmpe fordel i dette design.
Derved bibeholdes lufttrykket, mens flowet begrænses.
Det er akkurat samme måde som gicleur begrænser vandflowet i en espressomaskine uden at bryggetrykket begrænses.
Ideelt set ønskes at bønnerne løftes nok af trykket til at cirkulere, med et flow der er så lavt,
at med det samme bønnerne kommer fri af bønnemassen, vælter de ud til siderne af ristekammeret.
Når luftflowet er lavere, kræves der mindre energi fra varmelegemet og færre BTU (energi) passérer bønnerne.
Dermed er der mindre risiko for scorching af bønnerne.
Jeg har eksperimenteret med at sætte en damper på udgangen af blæseren, hvilket virkede, men det var ligesom om det godt kunne blive bedre. Luften havde en lille tendens til at lave et hul i midten af bønnemassen, hvor den blæste igennem uden at trække nogen bønner med. Så jeg tænkte at løsningen måske var at tvinge luften op i en cirkel. Så ville den lettere kunne trække bønnerne med op. Forskellige størrelser mellemskiver blev sat fast på udgangen af varmelegemet, og til sidst fandt jeg en der gav det perfekte resultat.
https://youtu.be/E2xk2CnljE8


Varmekilde

Fluidbed ristere i større målestok bruger ofte gasbrænder for at kunne aflevere tilstrækkeligt mange BTU (energi) til luften.
Bygger man en fluidbed rister i mindre målestok, er en el-varmelegeme tilstrækkeligt.
Man skal regne med ca. 650 watt pr. 100 gram bønner. Så går man ikke helt galt i byen, og har en anelse overskud i designet.
Jeg købte en varmepistol på e-bay https://www.ebay.de/sch/i.html?_odkw=einhell+2000w&_nkw=einhell+2000w+Hei%C3%9Fluftpistole&_sacat=0
varmepistol
Den hedder sig godt nok at være 2000 watt, men i praksis ender man på omkring 1700-1800 watt.
Varmelegemet blev afmonteret og forsigtigt skilt ad.
Jeg skulle af med den lille blæsermotor der sad i, og den sidder ofte i serie med mindst en af varmetrådene.
Desuden var der to varmetrin man kunne vælge mellem på en omskifter.
Blæseren blev afmonteret, og de to varmetråde med størst elektrisk modstand blev sat i parallel.
De to parallelforbundne tråde blev så sat i serie med den varmetråd der havde den mindste modstand.
Til sidst blev det hele forsigtigt samlet igen.
En ring blev savet ud af en MDF plade og filet til,
så den passede som adapter mellem indgangen på varmelegemet og ovenpå en plastik vandafløbsvinkel som kobler til udgangen af blæseren.


Ristekammer

Det er praktisk at kunne se bønnerne mens man rister.
Så kan man følge med, og notere sig de forskellige stadier bønner kommer i, mens de udvikler sig.
En populær løsning er at købe en bake-a-round og bruge glasrøret.
Jeg valgte en lidt mindre løsning i form af samme type glas som man bruger i en stempelkande til kaffe.
https://www.frederiksen.eu/shop/product/baegerglas-duran-hoej-form-600-ml

Den er nogenlunde høj og har en indre diameter på 7,8 cm
Bunden blev skåret af, så glasset blev til et rør.
Jeg brugte en dremel med diamantskive til opgaven, men der findes andre måder at gøre det på. Søg på youtube.
Bunden af ristekammeret skal have en form, der foroven passer til glasset,
for neden passer til røret på varmelegemet, og hjælper bønnerne til at cirkulere op i luftstrømmen og ned udenfor luftstrømmen.
Til de 8,2 cm ydre diameter som mit glasrør havde, passer toppen af en coctailshaker helt perfekt.
Jeg fandt en 50 cl med tilstrækkelig indre diameter 8,6 cm hos https://www.mixmeister.dk (udgået)

Den har også en runding fra siden og ned til bunden (som normalt er toppen),
som hjælper bønnerne til at glide fint ned i den opadgående luftstrøm i midten.
Forholdet mellem diameteren på indblæsningshullet og diameteren på glasset passer også indefor det, der virker for at få god cirkulation.
Dens indre diameter er også stor nok til at der er plads til et lag høj-temperatur silikone mellem glasset og shakertoppen.
https://www.bauhaus.dk/silikone-40-ml-300-c-casco.html

Det er vigtigt med en blød bufferpakning da glas og stål ikke udvidder sig med samme hastighed (har jeg erfaret).
Man kan ikke få foodgrade silikone der kan tåle de temperaturer som det bliver udsat for her,
men det gør ikke så meget for bønnerne kommer ikke i kontakt med silikonen.

Shaker mundingen er en anelse større end røret på varmelegemet.
Ved at vikle teflon tape (til tætning af vandrørssamlinger) nogle gange omkring toppen af varmelegemerøret passer de fint sammen og er nogenlunde lufttæt.
Normalt sidder der en perforreret plade i mundingen af en coctail shaker.
Den har bare for få huller til den luftstrøm fluid bed'en har brug for.
Så det meste af den blev skåret/slebet væk og et net fra en sigte fra det lokale supermaked blev limet i.

https://www.hedestoker.dk/4310_varmefast_lim_thermic_1100_gr.html


Et hul blev også boret i siden af shakeren så der senere kunne sættes en temperatur føler i.
Det er vigtigt at temperaturføleren sidder godt nede i bønne massen,
men den må ikke sidde i den opadgående luftstrøm i midten,
da den så ikke viser bønne temperaturen, men mere den opvarmede luft.
Stedet jeg har monteret føleren er godt nok, med visse modifikationer. Mere om dette senere.
Toppen (oprindeligt bunden) af coctail shakeren fik skåret enden af, så den blev til et rør.
Dette kan så fungere som ristekammer forlænger, så bønnerne ikke flyver ud.
Kanten af den, hvor den møder glaskanten fik en streg silikone.


Styringens elektronik

Nogle folk bygger styringen så den kan køre uafhængig af PC, enten manuelt eller automatisk.
Automatisk vil i de tilfælde betyde at man i styringsautomatiken lægger en grov risteprofil med få delmåls temperaturer,
og så lader automatiken styre varmelegemet så delmåls temperaturer nåes på de rigtige tidspunkter.
Jeg har fravalgt en sådan standalone løsningen, da ingen risteprofil passer til alle bønner.
Jeg ville gerne kunne logge ristningen på PC,
og aller helst kunne lave mange og detaljerede profiler på PC'en,
som den automatisk kunne følge.
Derved kan jeg riste en ny type bønne på mange forskellige måder,
vælge den profil der smager bedst ved cupping,
og så lade automatiken bruge den profil til den bønne, hver gang netop den type skal ristes.
Jeg har helst 3-6 grønne bønnetyper liggende og har altid mindst to typer i brug til espresso, V60 eller koldbryg.
Jeg har lavet flere forskellige hobby projekter med Arduino de sidste par år.
Det er en herlig lille superbillig microcomputer der stort set altid er kraftig nok til alle de småopgaver man kan finde på i hverdagen derhjemme.
Katte-på-køkkenbordet-alarm, Timer på Mazzer Major kværnen, Pille og ilt styring på stoker fyret,
Metangas sensor bag toilettet til at tænde blæseren i loftet :-D , Luft/temperatur styring på en Weber ovn osv osv.
Så styring af en fluidbed kaffe rister burde være en smal sag for en Arduino.
Jeg bestilte dimserne til det hjem fra Aliexpress for nærmest ingen penge og gratis forsendelse.
-Arduino Nano

-K-type thermocoupler m. max6675 sensorprint

-SolidStateRelay 40 Amp, som i virkeligheden er 25 Amp indeni (det er jo kinesisk)

-Et breadboard til at bygge det på.

-En stak dupont ledninger
-En 12 volt strømforsyning, større end 14 amp til blæseren
-En lille 12 volt strømforsyning, mindst 0,5 amp til Arduino og elektronik
-En USB isolator så PC og Arduino er elektrisk adskilt

Resten af elektronikken købte jeg hos https://elektronik-lavpris.dk

Diagrammet for elektronikken ses herunder

Beskrivelse:
USB porten på Arduino'en, er i den anden ende forbundet til PC'ens USB port.
Arduino'en kan derved aflevere temperaturer til PC,
og få instruktioner tilbage om, hvilken blæserhastighed og varmemængde den skal udføre.
K-type thermocoupleren (varmeføleren) ses øverst til højre.
Den er via ledning forbundet til et lille print med en MAX6675 IC kreds på.
Den bliver så via Arduinoens ben D10, D12 og D13 bedt om at aflevere en temperatur,
som Arduinoen via USB afleverer til PC softwaren.
Når Arduinoen er blevet instrueret fra PC'en i, hvor meget varmelegemet skal arbejde,
bliver ben D4 tændt og slukket i kortere eller længere tid af hvert sekund.
Det får SSR relæet U2 til at tænde og slukke for 230 volt til varmelegemet (L1, L2 og L3).

Hvis man vælger en brushed DC motorblæser som jeg gjorde i begyndelsen, kan man bygge den grønne del på diagrammet, til at styre blæseren fra Artisan softwaren:
Når Arduinoen er blevet instrueret fra PC'en i hvilken hastighed blæseren skal køre med,
fungerer det stort set ligesådan men bare med en meget hurtigere tænd/sluk cyklus end til varmelegemet.
Ben D5 tændes og slukkes, men i stedet for et SolidStateRelay er det opbygget med diskrete komponenter,
da et SSR ikke virker på en DC spænding som de 12 volt blæseren skal bruge.
U1 optocoupleren bliver brugt for elektrisk, at adskille blæseren og dens tænd/sluk elektriske støj,
fra den mere fintfølende Arduino og temperatur sensor.
Af samme årsag kører blæseren på en separat strømforsyning.
Q1 bliver varm!!! Der løber trods alt op til 6,5 ampere i den, så den skal på en køleplade.
Den køleplade jeg brugte er lige i underkanten.
D1 er meget!!! vigtig (har jeg opdaget) Læs nærmere her: https://en.wikipedia.org/wiki/Flyback_diode
Iøvrigt kan det være en god ide, at montere to kondensatorer på motoren som beskrevet her: https://www.pololu.com/docs/0J15/9
Det sidder originalt allerede en mellem terminalerne,
men en ekstra fra hver terminal og til motorhuset vil mindske den elektriske støj yderligere,
hvilket aldrig kan skade og kun vil minimere risiko for problemer.

Driverboardet til den brushless blæser jeg bruger nu, har et potentiometer til at styre blæserhastigheden. Men det er også muligt at lade Artisan softwaren styre den via blæser udgangen på Arduinoen.
Dette har jeg dog ikke gjort endnu.

Temperaturfølerens placering er lidt af en udfordring for den skal helst være dybt begravet i bønnemassen... og kun den.

Skubber man den helt ind i dens halskrave, stikker enden af den ind i varmlufts strømmningen fra varmelegemet og så viser den en hel del for meget.
Trækker man den tilbage bagerst i dens halskrave, følger den i mindre grad bønnernes temperatur,
og i større grad ståltemperaturen på coctailshakerens top/ristekammerets bundside.
Jeg fandt en løsning hvor jeg med en dremel fjernede lidt over en tredjedel af halskraven,
skruede halskraven fast i hullet med en mellemskive som afstandsstykke på ydersiden,
og en halv tykkelse møtrik på indersiden (dremel igen).
Så trak jeg føleren så langt bagud som muligt,
viklede 5-6 omgange teflontape omkring det blotlagte af føleren,
og skubbede den ind i sin halskrave igen.
Sidenhen har jeg givet den en klat silikone på ydersiden for, at den sidder helt stabilt.
Nu kommer den ikke for langt ind, men langt nok.
Mest muligt af den er blotlagt for bønnerne.
Den er temperaturmæssigt og elektrisk set isoleret fra stål tragten den er monteret i.
Det virker perfekt og giver temperaturer der ligger ret tæt på det rigtige.

Den samlede konstruktion kan uden de store udfordringer udviddes med flere temperaturfølere eller flere styrings udgange.
Jeg har også lavet softwaren så det er relativt let at udvidde hvis man har behov.
Man kan også købe et færdigt print som minder en del om dette kredsløb, men med det hele færdigbygget på printet.
Det hedder Arduino TC4, men er næsten aldrig til at få fat i,
da det idag laves af forskellige private i meget små stk. antal en sjælden gang i mellem.

PC software
Som PC software til opgaven endte jeg med at vælge Artisan Roaster Scope.
Det har den største hardware understøttelse, er det mest brugte, og der er mest videreudvikling af softwaren.
Blandt kommunikationsformerne til ekstern hardware har den understøttelse af MODBUS som vel nærmest er en af de større industri standarder.
MODBUS er ret let at bruge på en Arduino (fandt jeg ud af), så på med programmerings vanterne og:

Arduino software
Her vil jeg kun give et link, idet jeg har skrevet så meget forklarende i program-tekst-filen,
så de fleste selv med næsten ingen programmeringserfaring kan følge med i, hvad der forgår i programmet.
Filen kan åbnes i en tekst editor som notesblok eller wordpad, hvis man er nysgerrig efter at se programmet.
Men ellers skal det åbnes i Arduino IDE programmerings miljøet, hvis man vil lægge det over i en Arduino.
Der skal i så fald også hentes et bibliotek (støtteprogram), så programmet kan samtale med MAX6675,
og et bibliotek som står for MODBUS kommunikationen.
Links til begge er i toppen af program-tekst-filen.
http://www.sinobi.dk/henrik/kafferister1/coffeeroaster.ino

Opsætning af Artisan
Følg billederne ved behov