Ha nagy leszek, villanyász leszek?

Valamikor rég, talán még Mária Terézia idejében épületeket automatizáltam. Ez annyira ment, hogy majdnem munkát adott Ausztráliában – de az egy másik történet.
Most, hogy visszaköltöztünk Európába, nekiállok megint, ezúttal a fiaimmal, hármasban.

A dolog úgy indult, hogy a szerkezetkész házban, amit 20+ éve vásároltunk, 16 előre beépített szigetelt redőnytok volt készre szerelve és a villanyszerelőnk rákérdezett, hogy akarok-e motoros redőnyöket majd. Fogalmam nem volt, hogy kéne-e ez nekünk, ezért elsőre inkább nemet mondtam. Aztán persze egy évvel később már a saját bőrömön éreztem, hogy ez nem jó így és nekiálltam a tizenhat redőny automatizált villamosításának.

Az automatizálás mindenféle egzotikus hardverekkel kezdődött, majd találtam egy magyar gyártót is a feladathoz, azonban normális szoftver egyikhez sem volt, úgyhogy írtam egy sajátot, aztán még egyet, majd ern0 cimborámmal egy harmadikat. A második frontendjét szerettem a legjobban (annak ANSI C volt a háta és Macromedia Adobe Flash ActionScript az eleje), de igazán ern0 dataflow backend agymenése volt mind közül messze a legfrappánsabb. Ráadásul a dataflow komponens írás egy olyan addikció, amiről nehezen jön le az ember, ha egyszer belekezd. Ern0 agya nagyságrendekkel gyorsabb mint a beszédszintetizátora, de én ennek ellenére arra buzdítanálak, hogy ha érdekel a téma és kell még egy drog az életedbe, akkor nézd végig a témában ezt is meg ezt is meg ezt is 🙂

Szóval a nyúlüreg 2000 körül az X10 PowerLine protokollal indult, aztán jött minden, amit csak el lehet képzelni a témában. Az épületautomatizálás az esetek nagy százalékában protokollok egymáshoz illesztését jelenti. Van ugyan kivétel ahol nem kell gateway tuningolással vesződni, de arra meg kevés esetben elég a budget. Hogy mást ne mondjak, a gépészeti oldal még 2022-ben is kifejezetten szereti titkolni a saját buszos kommunikációját, miközben olyan, régóta létező nyílt szabványok segítenék az egységesítést, mint a Modbus, a BACnet vagy akár a KNX (és még lehetne sorolni bőven).
Szumma szummárum, anno sniffeltünk mi is mindenfélét, több-kevesebb sikerrel.

Amint berántott ez a homeaut világ, szembejött egy friss probléma: a villanyszerelők (és a riasztós szakemberek jó része is) retteg ettől a feladattól. Ráadásul kevés olyan mesterrel találkoztam, aki áttakinthető, dokumentált munkát adott csak ki a kezei közül. Ebből jött az, hogy én majd akkor szerzek egy villanyász papírt a 7/1991 számú kolbásztöltő üzemmérnökim mellé és villanyász is leszek. Onnantól majd eggyel kevesebb lesz a szűk keresztmetszet.

Nos, ez a 2000-es évek elején nem működött, ugyanis csak nappali tagozaton lehetett villanyszerelő képzést kapni. Anno beszéltem olyan hivatalnokkal, aki azzal zavart el, hogy “nem kellett volna agyoniskolázni” magam 😀

Szerencsére ez mára megváltozott, és már felnőttképzésben is lehetsz villanyász – Ákos fiamból is így lett villanyszerelő.
Ha te is beleugranál ebbe, akkor épp tudok adni a szóbeli vizsga tételeihez egy kupac kidolgozott doksit – pdf-ben és szerkeszthetően Markdown formátumban is ott van a zip file-ban. Enjoy!

HomeAssistant, Modbus, MQTT

Preface: száraz, technikai home automation post jön, magamnak és hasonló bűvös kockáknak.

A probléma

HomeAssistantban akartam egy PLC digitális kimeneteit szenzorokként látni. A PLC beszél Modbus TCP-t, HomeAssistantban meg ott a modbus támogatás gyárilag, így relatíve egyszerűnek tűnt a dolog.

Amint nekiálltam az első bináris modbus szenzor definíciójának elfogott a félsz, hogy mi van, ha a HomeAssistantnak nem lesz annyi esze, hogy az összes coil állapotát egy körben kérdezze le. Modbuson ugyanis egyetlen requesttel elkérheted az összes eszköz állapotát egy byte tömbben – ha jól emlékszem 10 msec alatt -, nálam pedig 96 coil lekérdezése a feladat, ezért nagyon nem mindegy, hogy 1*10 vagy 96*10 msec egy polling kör.

Így definiáltam két szenzort, majd meglestem mit csinál a modbus integráció és sajna igazam lett: a HomeAssistant egyesével polloz, így ez nekem nem járható út. Persze lehetne saját integrációt fejleszteni (nagy eséllyel ez lesz a vége), de egyelőre gyorsabbnak tűnt az, ha MQTT szenzorokra váltok. Ráadásul az MQTT szexi, minimál network forgalommal, szóval mindenképp szimpatikus.

HomeAssistant alatt régóta ott csücsül az MQTT integráció – egy Mosquitto brókert tudsz pár klikkel telepíteni és már megy is. Nálam ez már adott volt, mivel az adott configban monitorozott ZigBee szenzorok adatait egy Zigbee2MQTT integráció szállította MQTT-n keresztül a HomeAssistantnak. Az egész hóbelevanc ment magától a kezdetektől fogva, így nem is sejtettem, hogy egy külső script bármi galibát okozhatna.

Összeraktam a scriptet, elindítottam és benéztem a Mosquitto brókerbe, de a script által publikált modbus topicnak nyoma nem volt – WTF?

A megoldás

Ahhoz, hogy mindenki megkapja a maga releváns szeletét a brókerből, dedikált userek és access control lista kell.

Először csináld meg az usereket az MQTT bróker configjában:

certfile: fullchain.pem
customize:
  active: true
  folder: mosquitto
keyfile: privkey.pem
logins:
  - username: external_user
    password: external_pass
  - username: internal_user
    password: internal_pass
  - username: observer_user
    password: observer_pass
require_certificate: false

A logins blokk definiálja a brókerhez hozzáférő usereket. Amint látod, én hármat csináltam: az internal_usert kapják a belső integrációk, az external_user a modbus scripté, az observer_user pedig nekem egy külső monitoring toolhoz hasznos.

A customize blokkon belüli active: true mondja meg neki, hogy extra cfg file-okat kell még olvasgatnia induláskor, a folder: mosquitto pedig azt, hogy a share/mosquitto folderen belül lakó összes .conf végződésű file az övé.

Így már csak létre kell hoznod a share/mosquitto/acl.conf file-t benne a definícióval, ami megmondja a brókernek, hogy hol lesz az access control file:

acl_file /share/mosquitto/accescontrollist

Végül ebben a /share/mosquitto/accescontrollist fileban jogot kell adnod az egyes usernek:

user internal_user
topic readwrite #

user external_user
topic readwrite modbus/#

user observer_user
topic read #

Még a Zigbee2MQTT configjában kell definiálni az MQTT usert az MQTT blokkban és meg is vagyunk:

data_path: /config/zigbee2mqtt
external_converters: []
devices: devices.yaml
groups: groups.yaml
homeassistant: true
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  user: internal_user
  password: internal_pass

Már csak a Modbusról jövő MQTT szenzorok HomeAssistantba gyógyítása van hátra, de az majd inkább egy következő post lesz.

Emerald of Equator: egy speciális tour guide születésének története

Az élet 2020 szeptemberében úgy hozta, hogy elhagytuk Indonéziát és Hollandiába, Rotterdamba költöztünk. A rotterdami lakáskeresésünknek az lett a vége, hogy írtam egy egészen speciális indonéz helloTuriszt guide-ot Indonéziához. Ez biztosan furán hangzik, úgyhogy elmesélem, hogy történt, aztán jöhet a guide.

A holland lakáspiac enyhén szólva pezseg – pár nap alatt elkelnek frissen kiadónak hirdetett ingatlanok – durvább a tempó, mint Sydneyben volt anno. Az egész család a holland ingatlanoldalakat bújta, mikor az egyik fiunk rátalált egy szimpatikus kiadó lakásra. Írtunk az ügynökségnek és leegyeztettük az időpontot amikor meg tudom nézni a lakást.

A megbeszélt időpontban megjelenek az ingatlan előtt és becsöngetek. Egy vékony mosolygós férfi nyit ajtót. Mondom neki, hogy jöttem megnézni a kiadó lakást, mire ő meglepetten azt válaszolja, hogy az ő ingatlanosuk nem szólt nekik egy szót sem. Semmi baj, elnézést kérek, majd jövök máskor. Dehogy, ne pazaroljuk az időt – mondja a tulajdonos -, megmutatja ő a lakást, ha ez nekem nem gond.

Belépünk a lakásba, dobozok mindenhol. Elnézést, holnap jönnek a költöztetők, ezért a rumli – mondja, majd hozzáteszi: megyünk Indonéziába.

Milyen kicsi a világ – mondom én, mi meg pont onnan költözünk ide. Melyik régió a célpont? Jakarta.

Hát ilyen nem sok van az életben – mi Jakartából jövünk. Már mindketten nagyon vigyorgunk, mire még hozzáteszi: a feleségem gyárigazgató és a cége expatriálja Jakartába. Na ilyen feleséget épp én is fel tudok mutatni 🙂

Még rákérdeztem, hogy nézegették-e már Jakartát, illetve esetleg megvan-e a városrész, ahova költöznének. A válasz: Jakarta déli részén van egy Pondok Indah nevű kerület, oda mennek. Akkor esetleg erről is tudnánk mesélni – mi a Pondok Indah Residence apartmanházban éltünk egy évig.

Szóval így alakult, hogy két család nagyjából helyet cserélt a világban. Még aznap este gondoltam egyet és írtam nekik egy “túlélési kézikönyvet” Indonéziához. Csupa olyan dolgot próbáltam egy kupacba tömörítve összeszedni, amivel könnyebbé tesszük az életüket, ha még érkezés előtt tudomást szereznek róla. Voila:

Indonesia guide

I tried to collect some things we learned thru experience. We have had a cultural training but it did not prepare us to these things.

Travel

Before you depart, download these mobile applications: 

WhatsApp – de factor standard online communication tool in South East Asia

myTelkomsel – the top up & monitoring application of Telkomsel, the biggest Indonesian mobile provider

Gojek – Uber replacement in South East Asia

Grab – Uber replacement in South East Asia

These are vital. Grab and Gojek are like Uber for the western world – you can order taxi, food – but also private delivery service, cleaning, massage and whatever else can be delivery related 🙂 Grab is bigger (actually they canibalized Uber in South East Asia) and their application is able to cross-translate between English – Bahasa (=“bahasa” means language, this is the word they use for the standard Indonesian language) on the fly.

There is a dedicated parking place and also reservation stand for Grab drivers at Jakarta Airport https://www.jakartaairportonline.com They are trustworthy, and lot cheaper than Bluebird or Silverbird taxis. 

Fuel is extremely cheap in Indonesia – around 0.6 EUR/liter. To travel by a Grab or Gojek driver, a 50 km long ride is tops around 200000 Rp ~12 EUR. A 10-20 km ride in the city is between 50k-100k Rp, depending on the traffic and the drivers availability.

Indonesia does not allow to drive with a non-Indonesian driver license. You have to apply for an Indonesian (which is bureaucratic or at least you have to bribe an official to get one) OR you can hire a private driver.

If you will be a part of an accident the responsible person will be the wealthier party – in most cases it will be you. That’s why companies suggesting to employ a driver. If the company provides a driver to you it’s fine – but in case you have to find and employ one than we have something amazing for you! 

Before we arrived we read horror stories about unreliable / bad private drivers. We worried a lot, but at the end were so lucky we met with our driver, “Yoga”. His name is Yogo Prasetyo, a 30 year old married guy, father of a 8 year old girl and a 7 months old boy. Yoga is very clean, polite, accurate, happy and absolutely trustworthy human being. We would trust our life. Let me tell you a story about him.

Our boys came to visit us in January and we decided we will fly to Yogyakarta for a weekend. The boarding was scheduled for 6:00, the travel time from our home to the airport was ~an hour so we had to leave the apartment at 4:00. Our car was parked in the basement of the apartment’s garage and Yoga came to work with his motorbike daily. He was there at 4:00 on that day wearing an ironed traditional batik shirt and pants. There was raining since last evening.

Before Yoga arrived I saw a video message from him in which children were biking in 50 cm deep water on the street. On the road to the airport we saw a taxi station with submerged cars and I asked him what’s going on. He said when the rain does not stops after ~10 hours this area is flooded – that was the district where he lives with his family. We were shocked. I asked him why the hell he came for work and how could he manage it. The answer just blew my mind. He said his family is safe because he could move them to the top floor of his house (the wife was 7 months pregnant at that time) but unfortunately his motorbike is completely submerged. So he took his working clothes, packed it in a plastic bag and swimmed through the flooded area to be there at our garage by 4:00 am. He said when the sun goes up he is going to apply for an emergency shelter at the municipality. We gave him extra money immediately and sent them to a local hotel instead. 

We trusted him from the beginning and we kept a wallet in the car with some cash for any car related expenses. Yoga managed it perfectly: topped up the motorway tollcard, filled up the fuel – and logged every activity. We introduced a logging system for him. Erika bought a book and we have recorded Yoga’s overtime, as well as the cars mileage before/after fuelling as well as the cash balance. He liked it very much – it was clean and transparent, none of us forget anything due to this log.

Yoga took care of the car constantly: he kept it so clean inside and out that the 1 year old car looked like a brand new salon model when we left the country.

All in all, if you or any of your colleagues would need a professional, trustworthy driver we are more than happy to recommend him. Yoga’s number is: +62 xxx xxxxxxxxx

If you can’t access him just let us know and we will try to help.

Traffic

It seems frightening at the beginning, but believe me, Indonesians are the one of the best drivers around the globe. Accidents are very rare. The families are carrying their babies on their motorbikes and hence they are developing an extremely sensitive balancing & peripheral vision.

Sometimes to cross a road seems impossible – but let me tell you the trick:

  • turn your palm to the ground and push it towards the oncoming traffic. They will notice you and will let you to pass
  • go slowly and keep your eye on the traffic

I swear, after two weeks or so you will cross the roads like a local! BTW do not try to cross using this method in Vietnam 🙂

Money

First of all: get some cash as you arrive. ATMs are available at the airport but also money changers who accepts EUR.

Banknotes in Indonesia: 2000, 5000, 10000, 20000, 50000, 100000

Also there are 100, 200, 500, 1000 coins . You or the driver can give this coin change to the “pa oga” – the volunteers who guides the traffic in the road crossings 🙂

1 EUR ~= 17500 IDR. Supermarkets and stores in the malls are all accepting major bank cards. You have to have an Indonesian bank card to pay in Indonesian webshops – or you can pay by “top up” e-wallet services. 

There is no contactless debit card payment in Indonesia yet – no Pay, no PayPass yet and they just started to introduce Visa’s V-Pay recently.  Instead, there are multiple companies offering e-wallet platforms. E-wallet is basically a mobile app. You can top up the e-wallet almost everywhere – with bank transfer, in grocery stores, at ATMs or with cash at every merchant who accepts their e-wallet.

We have used two of them: LinkAja for topping up my prepaid mobile, and OVO for all other payments. Both of them are working properly. Grab – the Uber-like company is also supporting OVO.

Mobile, internet, communication

There are multiple providers available – one of the best network is Telkomsel’s. Prepaid SIM cards are available everywhere. Mobile internet is cheap and reliable.

Telkomsel app

All new prepaid SIM cards are containing some internet usage. To top up Telkomsel SIMs use their app or go to a Telkomsel store.

In Indonesia, everybody is on WhatsApp. This is the must have communication platform there.

Online shopping

For anything the two biggest webshops are:

For groceries:

Shipping costs are unbelievably low: an “instant 3 jam” (=within 3 hours) delivery costs abour 2.5 EUR.

For offline grocery shopping we recommend Ranch Market ( https://www.ranchmarket.co.id ), Hero ( https://www.hero.co.id ) and Foodhall ( https://www.foodhallonline.com/home-delivery/ ) grocery stores. All of them are available for online shopping thru HappyFresh webshop.

Local food

There will be a lot of street food merchants with a trolley called “warteg”. Warteg is the abbreviated name of “warung tegal” (warung means shop, and Tegal was the city where these little food trucks appeared first). You can try anything which was deep fried in oil before or roasted on ember, but for the sake of your health, nothing else!-) Fried tofu and tempe, sate ayam (chicken satay) and sate kambing (goat satay) was our favorite warteg food.

Pecel lele (=fried catfish), nasi goreng (=fried rice with eggs and vegetables), nasi padang (=rice curry) and rendang sapi (=beef rendang) were our favorite dishes.

But my personal absolute favorite is “sale” – the cooked – fried small banana. The best one was always in the box Yoga brought us as a present from his wife. Ask him and I’m sure he will be happy to present it!-)

From fruits, you must try:

  • “nanas madu” (=honey pineapple): this is a small but very sweet and very fragrant pineapple. There is a region called Subang – on the way to Tangkuban Perahu volcano – where people are selling these in tents on the streets
  • “alpukat” (=avocado): raw or fried, it is awesome. And the taste is not comparable to the ones which are available here in the EU
  • “pisang kecil” (=small banana): sweeter and more intense than the standard banana

These are all available on the streets – just ask Yoga to buy and he will bargain a good price 😉

If you are tea lovers, there is a restaurant / teahouse chain called Lewis & Carroll: http://www.lewisandcarrolltea.com They are offering a fantastic tea tasting series served in test tubes which is a must try. Their food is also quite good.

Indonesian food sometimes sweet (when it is sweet then it is very very sweet) and often hot/spicy. Let’s learn these words quickly:

manis = sweet
pedas = spicy

Interestingly, in Asia people usually do not use knives at the table. Their foods are usually prepared pre-chopped to bite-sized pieces so everything is edible just by spoon and fork.

Diarrhea

To prepare yourself, buy a medicine called NIFUDIAR: https://www.tokopedia.com/search?st=product&q=nifudiar This one is the medicine the European need there. This is a yellow sweet suspension and stops the diarrhea quickly.

Disinfectant

In case if you could not find hand sanitizers: they are all based on isopropyl alcohol: https://www.tokopedia.com/snapshot_product?order_id=470807789&dtl_id=707477812

Weather & climate

Jakarta is hot, but not unbearably hot. Every day is the same: daytime = 34 ℃, nighttime = 27 ℃. Either it rains or not (predictions are unreliable). Luckily the colest rain is 25 ℃. There is no such thing as “suffocating humidity” over there.

Dress

For me, this is the best in Indonesia: just grab a short, a t-shirt and a sandal and you are ready. Neither warm clothes, nor socks required during the entire year. 

On the other hand, Indonesians love to dress in batik – their traditional clothing. Actually they are wearing batik clothes at least on Fridays. Batik stores are existing in every mall but there is a lot cheaper megastore where the locals are buying their shirts / dresses. It is called Thamrin City, just a minute walk from Grand Indonesia Mall: https://g.page/thamcy?share

Apartments

We lived in Pondok Indah Residences ( https://goo.gl/maps/qZ4nrwWz1JJkbFPH6 ) which is a newly built, very modern, fully equipped apartment complex. When we tried to find our new home there we saw Pakubuwono Residence ( https://goo.gl/maps/yW4vP8Azm6mr8Csz7 ) and Botanica Residence ( https://goo.gl/maps/WB2SZb7Wpr51ZGqWA ). They were similar.

People

Indonesians are very kind, peaceful, friendly people. They will ask you to take a picture together – for themselves. This means them a lot.

They will never give you anything with left hand and it is the sign of respect if you pass something to them by holding it with both hands – they will really appreciate this gesture, especially from western people.

Indonesians don’t like to say “no”. That’s because they believe they will hurt you. Instead,  they might hide/run away (literally :)) or lie. Try not to use questions to be decided. It is unusual at the beginning but you will get used to it 😉

Religion

>85% of the population is muslim. There will be mosks everywhere. At first you might fright frustrating the “yelling” of the imams 7 times a day – but trust me, you will get used to it within 2 weeks. 

There is no such thing as atheist in Indonesia. If they ask you about your religion and you are atheist just say “catholic” and they will accept it.

Language

Indonesian language is easy – I do encourage you to learn it! 

Some useful expressions

Greetings:

  • apa kabar? = how are you?
  • baik = good

Indonesians are using four greeting terms:

  • from midnight to ~11:00: selamat pagi = good morning
  • from ~11:00 to ~15:00: selamat siang = good day
  • from ~15:00 to sunset: selamat sore = good afternoon
  • from sunset to midnight: selamat malam = good evening

To thank something:

  • terima kasih (banyak) = thank you (very much)
  • sama sama = you are welcome

For shopping:

  • berapa ini = how much is this?
  • saya ingin membayar = I would like to pay

misc.:

  • ya = yes
  • tidak = no
  • tak = not
  • belum = not yet
  • saya tidak mengerti = I don’t understand
  • Apakah kamu berbicara Ingris? = do you speak English?

Must see

Our favorite spots around Jakarta:

Pulau seribu

On the Java sea, above Jakarta there are ~300 islands on the sea with very nice reefs. You have three options:

  1. rent an entire island for some time
  2. spend one or more nights on an island
  3. go for a daily trip 

We have tried the 2nd and 3rd options. 

To reach the farthest islands takes  a ~1 hour 40 minute long boat ride. We recommend Pulau Pelangi ( https://goo.gl/maps/BZLhQebebcfsiJoM9 ), Pulau Sepa ( https://goo.gl/maps/gCtSh1jdKrkX5WYC7 )  for day trips and Pulau Macan ( https://goo.gl/maps/tGf6Am1Va4KMZpXEA ) for an overnight stay.

We used these guys: https://www.jalanjalanpulauseribu.com/

The boats are departing at 8:00 from here: https://g.page/dermaga-marina-ancol-dki-jakarta?share and departing back at 14:00 every day.

Bogor – Kabun Raya

This is a botanic garden with the presidental residence. https://goo.gl/maps/PzaSPpfhQAJr3AXUA

Bogor – Taman Safari

An open space drive-thru zoo, a must have. https://goo.gl/maps/uW2WJAFG1vbdNAtK9
You will see tons of merchants selling carrots (=wortel in Indonesian) on the way to the zoo. I do encourage you to buy a couple of bunches and feed the animals from the car!

Tea plantations

After Bogor or not far from Kawah Putih there are plenty. https://goo.gl/maps/ZQq9wgFxAKFfw3qj6

Tangkuban Perahu

Active volcano. https://goo.gl/maps/F66enm1cde4LZeAJA

Kawah Putih

Sulfuric crater lake. https://goo.gl/maps/dDebaguUxELHBvc48

Anak Krakatau

The most famous Indonesian volcano. You have to hire a boat to get there.

Sambolo beach

West Java, beaches at the Indian ocean. https://goo.gl/maps/RAsZRHXMheY659Qh7

Curug putri = Princess waterfall

Grand canyon of Java – meshmerizing (take your swimsuits, you will not regret!) https://goo.gl/maps/9h9dtbSMKYFLjaXm6

Waterfalls on Gunung Salak

There are a lot, especially during wet season (October – March) https://goo.gl/maps/HwnD6tFdX86RspCy8

To the cook

Last but not least, to the person who used your kitchen in Rotterdam the most:

This was our favorite Japanese dessert: House Fruiche strawberry dessert with milk 200gr  https://www.tokopedia.com/voryshop/house-fruiche-strawberry-dessert-with-milk-200gr It is a lifesaver. Just pour it into 200 ml cold milk, stir 3 times (literally, for 5 seconds!) and boom, the jelly is ready! They are achieving this by using LMA pectin which solidifies on low temperatures when kazein (which is in the milk) and some acid (which is in the fluid in the product) present together.

If you like jellies: the pectin is very cheap in South-East Asia: https://www.tokopedia.com/snapshot_product?order_id=517878248&dtl_id=776828568

Semolina (durum wheat) is usually not available in the supermarkets – but you can buy it on Tokopedia: https://www.tokopedia.com/snapshot_product?order_id=518686597&dtl_id=778025949

Final endulgement

Aloe vera is the highest quality we have ever found anywhere. They have an aloe vera jelly with 98% purity – this one does not stick, has a very pleasant scent and the skin absorbs it quickly and completely. Perfect after sunburns: The Face Shop Jeju Aloe Vera 99% Fresh Soothing Gel Original https://www.tokopedia.com/dakocanid/the-face-shop-jeju-aloe-vera-99-fresh-soothing-gel-original 

This one is usually available in the pharmacies as well.

Homeaut: mosógép tuning

A héten valahogy bekattant, hogy milyen jó lenne ha a mosógép szólna amikor végzett a mosással. Persze ezt a szexi új cuccok tudják, de ezért le nem cserélnék egy működő mosógépet, szóval más megoldás kell. Majd a fogyasztásából én kitalálom!

Otthon még csak-csak odavinnék a mosógép dugaljához egy dedikált drótot és a kiindulási pontban méregetném valami indukciós elven, de itt a holland albérletben ez nem járható út. Viszont van rengeteg rádiós fogyasztásmérő dugalj, úgyhogy be is szereztem egy ilyen csini helyi darabot.

Innen már nem volt messze a megoldás:

  • a fogyasztásmonitor dugalj megmondta, ha a mosógép elkezdte enni az áramot – ekkor beállítottam egy mosás flaget
  • ha a mosás flag aktív volt, figyeltem, hogy mikor szűnik meg a dugaljon a fogyasztás legalább 10 másodpercig és amint ez megtörtént, küldtem egy üzenetet, majd reseteltem a flaget is

Nem egy rocket science, mégis milyen hasznos cucc ez – simán szól, ha kész a mosó/szárító/mosogatógép, vagy bármi, ami árammal megy!

Ha már egyszer naplóztam a fogyasztást, akkor megnéztem közelebbről, hogy hogy eszik a mosógépünk:

Nagyon szépen látszanak a fázisok:

  1. eligazgatja a dobban a ruhákat
  2. megy a fűtőszál, csinálja a meleg vizet
  3. forgatja a ruhát a motor
  4. centrifugál – lépcsőzetesen emelkedik a fogyasztás, ahogy emeli a fordulatszámot

Csini, mi?

Burger time

Ma ez volt az ebéd:

Elmesélem hogy készült.

Buci

Sokáig kerestem a tökéletes buci titkát mire ez a recept összeállt.

BOM

  • 460 g liszt átszitálva
  • 7 g száraz élesztő
  • 1 tojás
  • 30 g cukor
  • 9 g só
  • 30 g olvasztott vaj
  • 30 g tejpor
  • 220 g kézmeleg víz
  • 1 extra tojás a bucikat lekenni
  • szezámmag

HOWTO

  • keverd össze az élesztőt és a cukrot a vízzel és hagyd úgy, míg felfut
  • keverd össze a száraz komponenseket
  • miután felfutott az élesztő, keverd össze a nedves komponensekkel
  • önts össze mindent és dolgozd ki a tésztát (kb. 15 perc gépi dagasztás)
  • takard le és hagyd 2 órán át kelni
  • szedd szét 6 bucira
  • takard le a bucikat és hagyd még egy órát kelni
  • kapcsold be a sütőt 190 ℃-ra 100% gőzzel (ha a sütő nem gőzös, önts egy liter forró vizet egy tepsibe és tedd be az aljára)
  • tojásozd le a bucikat és szórd meg szezámmaggal a tetejüket
  • 190 ℃-os sütőben 100 % gőzzel kb 20 perc alatt süsd készre

Ha langyosra hűltek a bucik, vágd ketté őket, tegyél a közepére egy kevés vajat és egy serpenyőben vagy a vaslapon pirítsd meg őket. Így nem fogja eláztatni a bucit a szósz.

Szósz

Rendes majonézbe belereszelek egy gerezd fokhagymát és darálok bele őrölt borsot, plusz belekeverek pár apró kockára vágott savanyúuborkát. Most uborka nem volt otthon, de találtam olajban eltett sült paprikát és pár savanyított chilit, így ezek mentek bele apróra vágva.

A buci mindkét oldalára kentem belőle bőven.

Hagyma

Vágd fel hosszirányban jó vékonyra, majd hideg vízben öblítsd át azonnal és a vizet kinyomkodva belőle tedd félre. Annyit rakj a húsokra, hogy túl soknak érezd.

Többi köcölék

  • a hagymát közvetlen a húsra rakás után sóztam, hogy a húsba csorogjon a leve
  • cheddar sajtot tettem a húspogácsákra
  • Coeur De Boeuf a paradicsom, de bármilyen ízes nagy darab megteszi
  • jégsaláta a saláta, mert imádom a ropogósságát

A “holland fickók”

Nem írtam még Hollandiáról, ezért íme pár apróság:

1.

Vasárnap jöttünk vissza kocsival Rotterdamba az A12-es autópályán. Az utakon elég sűrűn vannak ilyen átfeszített információs hidak:

Vasárnap este a belső sáv feletti fekete panelen világított végig az a sáv használatát tiltó piros X, ami a fenti példafotón a leállósáv felett van bekapcsolva. Nem nagyon értettük, hogy mire fel ez az egész – aztán megláttam a tükörben egy kék villogóval közeledő mentőt a belső sávban.

Ahogy a mentő elhagyott minket már láttuk mi történik: a piros X-ek neki csináltak utat. Amint a kék lámpás autó áthaladt a kapun, a piros X eltűnt.

Hollandiában egyébként szürreális élmény sötétben autózni, ugyanis az összes autópálya ki van világítva.

2.

Az előbb jött egy postás, és bedobta ezt:

A város és a rendőrség küldte, arról szól, hogy a rendőrök érted és a bizontságodért vannak, itt az összes létező elérhetőségük és Patrick a hozzád legközelebbi kerületi rendőr.

A B oldala meg arról, hogy ha szemetet / kutyaszart / lerobbanva tárolt járművet / szivárgást látsz, azt hol jelentheted be a leggyorsabban.

3.

Ez ma jött:

Ez arról szól, hogy a kormány a piaci folyamatokba belepofázva korlátozta az energia árát csökkentette az energiára kiszabott illetéket, ezért a szolgáltató olcsóbban tudja adni a lakosságnak azt.

Szóval ilyen.

Node-Red és a Wago 750-881 PLC Network variable UDP packet

Szűk 3 napom ment el a témára, ledokumentálom gyorsan.

A probléma

A PLC-ben futó szoftvert a PLC-n kívülről is akarjuk utasítgatni.

A megoldás

A kommunikációt network variable használattal oldjuk meg. Ehhez PLC oldalon az kell, hogy engedélyezzük a PLC-ben a hálózati változó támogatást, valamint a benne futó szoftver a hálózati változók tartalmával mókoljon, amit akar.

A “B” oldalon Node-Red-et akartam használni. Node-Redhez létezik egy node-red-contrib-netwar csomag, ezt feltesszük és már huss meg is vagyunk az UDP packet generálással, valahogy így:

A netvar-sender által kiküldendő táviratnak a CodeSys 2 network functionality doksi szerint így kell kinéznie:

Az UDP telegram dokumentációja világosan elmondja, hogy a packet elején levő protocol ID a 3 byte hosszú -S3, ami decimálisban a 2970419 számnak felel meg, amit a netvar-sender node ID mezőjében kell megadnod. Ha ez nincs, a PLC ignorálja a packetet és várhatod, hogy beálljanak a network variabLÉK.

Az utóbbi mondatban leírt felismeréshez nekem szűk két nap kellett, mert elsiklottam a milliónyi manualban / tutorialban afelett, hogy ez az a mező, ami az UDP packet headerét definiálja. Kurt videóját pl. vagy tizenötször kockáztam ki, hogy mi a fenét nézek be – ő pl. itt 4:42-nél állítja át ezt az ID-t egyetlen egy frame alatt:

Elektronika for dummies

Tizenéve én szereltem át saját házunk elektromos hálózatát, pakoltam bele a mikrokontrollereket kilószámra meg persze írtam hozzá az ezeket használó szoftvert. Kolbásztöltő üzemmérnök létemre a szoftver sosem volt idegen, már 1988-ban krakkoltuk a C64 kódot a koleszban. A vas azonban más – soha nem magyarázta senki normálisan és fizikához is lusta && hülye voltam mindig (pedig Sipi milyen jó tanárunk volt!).

Na ez változik most meg mind.

Hosszú hónapok óta keresek olyan szoftvert, amivel szabványos rajzot összerakva lehet áramkörök működését szimulálni és analizálni amit összetákoltam. Tegnap este szembe is jött az, amit tényleg tátott szájjal néztem egy darabig, majd – miután egy perc alatt megértettem belőle, hogy hogyan simulnak le az áramcsúcsok a Graetz híd B oldalára kötött kondi hatására – azonnal kifizettem a fejlesztő srácnak 5490 HUF-ot a munkájáért:

A mai világban nagy divat a havidíjas szoftver – az EveryCircuit nem ilyen. Egy darab accountot készítesz bármelyik platformon, egyszer kifizeted az alkalmazást és onnantól minden eszközödön megy, telepített alkalmazásként és browserben is.

3D nyomtatás: HOKEDLI – egy 350 mm-es VORON 2.4 építésének tapasztalatai

2021 május 14-én kezdtem neki az új hobbi projectnek. Ma 2021 szeptember 10-e van és tegnap mondtam azt a szörnyetegre, hogy jól van, most már nagyjából lehet használni.

Hello Kit!

Persze a kit megérkezése óta eltelt közel 4 hónap bőven nem csak a printer építésével telt, de igyekeztem vele – a munkám, egy hónap családdal töltött idő és némi alkatrész beszerzési leadtime fogott csak vissza.

Már működik, de még van rajta igazítanivaló

Az építés során a Formbot kitjét használtam, de menet közben akadt pár dolog, amit cseréltem. Ha te bármikor komponensek beszerzésébe kezdenél, bátran ajánlom Zolit a zen3D.hu-tól, aki nagyon segítőkész és a saját maga által is kipróbált alkatrészeket forgalmaz. Magyarországon nem is tudok másról, aki ennyire VORON specifikus webshopon dolgozna.

A mechanika összeszerelési kézikönyve 130 oldalas, de helyenként messze nem egyértelmű. Szerelés közben egy csomó megjegyzést írtam a manualba, amit innen le tudsz tölteni, ha kedvet kapnál. Ezekről most nem beszélnék, inkább jöjjön minden más tapasztalat, ami nem került be a pdf-be kommentként.

Sneak peek

A gyári kitet az alábbiakkal módosítottam:

  • helyenként hagyományos kalapácsanyát használtam a rugós verzió helyett – lejjebb elmagyarázom, miért
  • XY endstopnak a Hall Effect szenzoros megoldást építettem be
  • a hotendet hűtő ventillátort 4 csavar helyett 2 csavar + 2 mágnes tartja a helyén
  • a tárgyasztal alja hőszigetelést kapott
  • a kamra tetejébe LED világítást szereltem (BTW teljesen érthetetlen, hogy erre miért nem terveztek valami megoldást gyárilag)
  • az ajtók felcsavarozható zsanérokat kaptak a buta ragasztásos verzió helyett
  • a kamra tetejének, az oldalfalaknak és az ajtóknak a rögzítését is gyorsan oldható elemekkel oldottam meg
  • az asztal fűtését vezérlő noname SSR-t egy OMRON SSR-re cseréltem
  • a kalapsínekre mini kábelcsatornákat terveztem
  • az elektronika hűtését egy nagy légáramú 24 V-os lamináris ventillátor végzi a hangosabb axiálisak helyett
  • a 230 V-os kábelek közösítését Wago 221-415-ös kapcsokkal csináltam meg, amelyekhez kalapsínes rögzítést gyártottam
  • a tárgyasztal mögé beszereltem egy réz kefét, amivel a printer a fejre tapadt műanyagot képes lesikálni

Szerszámok és extra anyagok

A manual elején ezek egy részét nem sorolják fel, illetve jópár dolog a kézikönyv olvasása során kerül csak valahol középen említésre, ezért én összeszedtem ezeket egy kupacba. Lesz pár dolog, amit a manual sem ír/kér, de szerintem szedd össze mindet amit összeírtam – a lista úgy készült, hogy felirkáltam, amikre szükségem volt a szerelés alatt.

Szerszámok

  • 1.5, 2.0, 2.5, 3.0, 4.0 imbusz csavarhúzó és / vagy imbuszkulcs, normál és gömbölyített fejű verziók – a gömbölyű fejűekből hosszú kell, mert párszor nehezen elérhető helyen kell majd csavarozni
  • egy minél precízebb derékszög, hogy biztosan merőleges vázat és gantryt rakj össze
Az öntött kő / gránit konya munkalap a legjobb szintbe igazítani a cuccokat
  • csipesz – milliószor kell apró résekbe esett dolgokat kipecálni majd
  • vékony csavarhúzó
  • rövid és hosszú vonalzók – ha ebből nincs rozsdamentes acél verziód, pont jó apropó a printer építése, hogy beszerezd őket. 15-30-50-75 mm-es mind jól jön majd!
  • hegyes fogó
  • precíziós drótvágó
  • kis reszelő
  • forrasztópáka
  • heat set insert installáló állvány – enélkül is megoldható az egész egy pákával, de higgy nekem, nagyon hálás leszel a végén az állványért! Én ezt a verziót tudom meleg szívvel ajánlani 😉
  • Molex krimpelő – én utálom mindet, de ha muszáj, a japán EngineerTools PA-09-es krimperét használom
Hadd mutassak valamit, mielőtt jönne a “de miért utálsz Molexet krimpelni, eFi?” kérdés
  • régi bankkáryta vagy egy flexibilis műanyag kaparó / spakni a ragasztós mágnesfelület buborékmentes felrakásához
  • egy ABS-t nyomtatni képes 3D printer 🙂 – na jó, ez inkább csak erősen javasolt opció mint kötelező szerszám, de nekem pl. rettentő hasznos volt, hogy ott állt a sarokban egy Prusa MINI+ és bármikor bármiből iterálhattam / nyomtathattam egy plusz darabot

Anyagok

  • 2×1 m aluminium DIN sín – a Formbot kitben egy nem jó méretű, hulladék minőségű sínpár jött; vegyél egy rendesen slotosan lyukasztott alumíniumot inkább
  • 25 mm festő maszkolószalag, a lineáris csapágyak átmeneti rögzítésére
  • kis dobozok/edények a komponenseket elrendezni
  • 4 db M5x100 csavar a gantry összerakásához (erről ebben a posztban írtam)
  • 2020-as aluprofillal kompatibilis M3-as és M5-ös kalapácsfejű anyák – nem biztos, hogy elég ami a kitben jön
  • VORON kompatibilis M3 heat set insertek – nem biztos, hogy elég ami a kitben jön
  • tiszta izopropil alkohol zsírtalanítani
  • konyhai papírtörlő
  • nitril kesztyűk, hogy ne legyél a sínektől és a lineáris csapágyaktól túl olajos
  • LocTite thread locker
  • magas hőmérsékletet tűrő RTV szilikon (autósboltokban kapsz)
  • pillanatragasztó

A műanyag alkatrészek

A printer nyomtatható komponenseit a tervezők ajánlása alapján kétféle színű anyagból javasolt nyomtatni, lehetőleg ABS-ből vagy hasonlóan hőtűrő műanyagból – én eSUN ABS+-t használtam. Az STL file-ok nevében benne van a szín megjelölése ([a]_ kezdtű a file neve, ha az adott darabot a hangsúlyos (=a mint ACCENT) színnel printeld). Ha a filenév végén egy _x8 szerepel (ahol a 8 egy tetszőleges szám), akkor az x után álló szám definiálja, hogy az adott komponensből hány darabra lesz szükség.

Azt javaslom építés előtt kétszer olvasd végig a doksit és nézd át a CAD modellt is részletesen.

Az STL file-ok egyikének a fenti szintaxis alapján hibás a neve: a [a]_60mm_fan_blank_insert.stl azt mondja, hogy ebből csak egy darab kell, de igaziból kettőre lesz szükség. A többi file neve szintaktikailag rendben van.

A nyomtatást az ügyes szintaxis ellenére is el lehet rontani. Mutatom, hogy én mennyi felesleges komponenst termeltem, mire összeállt a HOKEDLI:

A VORON 2.4 build hulladéka

Persze ebből egy csomó olyan, amit én másképp akartam csinálni és ezért újraterveztem, illetve van benne bőven saját magam által kitalált új alkatrész is, meg azok összes iterációja.

Empirikum

Megpróbálom összeszedni mindazt, amik az építés során megakasztottak – ezek jönnek most blokkosan ömlesztve. Ha nem építesz VORON-t, akkor lehet, hogy ez nem lesz túl szórakoztató, viszont mindenképp megmutatja, hogy mennyire nem éreztem tökéletesen késznek az egészet.

Mechanika

A kalapácsfejű anyák

A Formbot kitben asszimetrikus T-anyák jönnek: az egyik oldalukban ott a furat az M3-as menettel, a másik felükön pedig alul egy rugó támasztotta apró golyót kaptak. Ez a rugós megoldás stabilan a helyén tudja tartani az anyákat, viszont előfordulhat, hogy nem mindegy, hogy a sínben a menetes végük melyik irányba néz. Minden alkalommal, mielőtt bepattintod őket a helyükre, inkább gondolatban csinálj meg még három lépést és csak azután tedd őket a helyükre. A sínbe pattintáshoz tekerj bele az anyába egy M3-as csavart és azzal már viszonylag könnyen a helyére lehet őket kattintani.

A rugós kalapácsanya klassz dolog, de kiszedni baromi nehéz.

Néhány helyen én a rugós T-anyák helyett szimmetrikus kalapácsfejű anyákat használtam – ilyen volt pl az összes sín, ahol darabonként 8-10 helyen kell a sínt megfogatni. Neked is azt javaslom, hogy szerezz be ezekből egy marékkal.

A Z endstop tengely

A manualból nem derült ki, hogy a Z endstop tengelyébe csak akkor kell bemarni egy hornyot a hernyócsavarnak, ha azt kiesés ellen rögzíteni akarod – a bemarásnak semmi más funkciója nincs. Nekem házilag macerás ezt a bemarást precízen megcsinálni, így egyelőre elmaradt.

Szíjvégek

A szíjak kilógó végeit érdemes meghagyni, hogy később könnyen állíthasd őket. Sajna a szíjakat tartó alkatrészekbe nem terveztek a kilógó végeket tároló részt, így azok ott fognak lifegni. Az A/B szíjak végét még csakcsak eltakarja a kocsi, a gantry tetején levő szanaszét álló szíjvégek viszont bosszantóak.

Csavarrögzítő ragasztó – mese az extruder fogaskerekéről

Én közel 3 órát küzdöttem azzal a kalibráció során, hogy nem találtam az okát az időnkénti alulextrudáltságnak: kalibráltam extrudert és első layert, állítottam a flow rate-en, de valahogy mindig előjött a probléma és már lassan a hajam téptem.

Aztán egy PLA tesztprintnél nyitvahagyott kamraajtó mellett ülve mintha kattanást hallottam volna az extruderből. Ránéztem a printre és láttam, hogy nem jön a műanyag. Elsőre azt gondoltam, hogy eldugult a nozzle, de ezt viszonylag könnyű kizárni: nyomtatás nélkül kézzel bekapcsolod a hotendet 210 ℃-ra, kinyitod az extruder lockját, majd betolod kézzel a műanyagszálat a fejbe: ha ilyenkor normális, egyenletes az anyagáram, akkor kicsi az esélye a dugulásnak (ilyenkor sem lehetetlen még, de nagy eséllyel nem ez lesz a gond).

A következő tipp az volt, hogy megdarálta az extruder a nyersanyagot és az elkoszolódott fogaskerék nem tudja betolni a hotendbe, esetleg elmásztak a fogaskerekek. Extruder leszed, kinyit: majdnem teljesen tiszta, nem is ez lesz.

Összeszerelés előtt legalább kétszer ellenőrizd, hogy egy síkban állnak a nyersanyagtivábbító fogaskerekek!

Extruder összerak, új próbák, de mindig ugyanaz: egyszercsak alulextrudált lesz a print, hol a legelején, hol pár layerrel később, nincs benne minta. Ráadásul amikor kiszedem a nyersanyagot az extruderből, hogy megnézzem mi a fene történik, ilyen érdekes “kukacok” jönnek elő:

Hokedli kalibrációs filament “gilisztái”

Szóval az extruder ilyen hullámosra tudja gyűrni a nyersanyagot – de hogy a fenébe csinálja? Harmadszor szedem szét, amikor rátalálok: a problémát az okozta, hogy az extruder léptetőmotorjának tengelyén levő fogaskereket rögzítő hernyócsavar meglazult.

Mindezt azért meséltem el, hogy el ne felejts arra a hernyócsavarra tenni egy csepp csavarrögzítőt!

BTW mielőtt ezt kibogoztam volna, a hotendből az extruderbe vezető hosszában elrepedt PTFE cső “szórakoztatott”. Azt kicsit könnyebben megtaláltam, mert nehéz volt befűzni a nem teljesen egyenes nyersanyagot, ami általában arra utal, hogy nem elég hosszú, vagy esetleg nem letört végű a PTFE cső.

Hotend hűtő ventillátor rögzítése

Gyárilag 4 csavarral tervezték, de van egy elegáns módosítás, ami a két alsó csavart kisebbekre cseréli és a ventillátort tartó keretbe pattintott 6×3 mm-es mágnesekkel két csavar kitekerésétől megkímél.

A tárgyasztal pokla

A VORON 2 szériában a komplett elektronika a gép aljába települ, a tárgyasztal alá. Az asztalt az elektronikától egy akrillemez választja el. Fura módon a dokumentáció semmiféle hőszigetelést nem említ/javasol az asztal aljára, pedig a 100 fokos lefele is sugárzó tárgyasztal baromi gyorsan meg fogja olvasztani a műanyag elválasztó lapot.
Én beszereztem egy öntapadós hőszigetelő lapot és az alul megszerelt tárgyasztalra ragasztottam, a szilikon fűtőelem tetejére, így az asztal lefelé nem tolja ki magából annyira a hőt.
Bármilyen macerás is a hőszigetelés beszerzése, ezt az extra lépést ki ne hagyd!

Falak és ajtók rögzítése

Amennyi ügyes mérnöki megoldás van ebben a printerben, a panelek rögzítése szerintem annyira gyatra. Aki használt már 3D printert az pontosan tudja, hogy a gép karbantartásához hely kell. A felső panelt és az oldalfalakat is panelenként 12 (!!!) csavar rögzíti. Ha tehát kibontanád a printert, akkor 36 csavart kell kiszedned:

Minden egyes panelt 12 csavar tart eredetilleg

Ezzel én elmolyoltam egy darabig, de mostanra elégedett vagyok a megoldással. Csináltam kétféle egyben nyomtatható, kézzel gyorsan nyitható zárat – egyet középre, egyet a sarkokra. Ezeket egyszer felcsavarozod, aztán a panelt onnantól kézzel pár másodperc fel és leszerelni:

A panelek könnyen oldható, egy darabban nyomtatható rögzítése

Ugyanez a középső elem tartja az ajtót is zárva alul és felül: egy-egy darab kell belőle és nem kell gusztustalan VHB tape ragasztással kontárkodva feltenni a mágneseket, amik majd a forró kamrában idővel szépen elengednek. Csináltam belőle egy és két csavarral felfogatható verziót is.

Panelek közepének és az ajtók találkozási pontjának rögzítőeleme
Panelok sarkait rögzítő elem
Ilyen az, amikor azt gondolod, hogy reggelre kész az összes lock 🙂

BTW az ajtók zsanérjainak ragasztásos rögzítése ugyanilyen butaság. Ehhez is átterveztem inkább a zsanérokat felcsavarozható, nagyobb méretű változatra. 4-4 furat az ajtólapok szélére és meg is vagy – soha le nem jön ez a fajta zsanér:

Megnövelt méretű, csavarozható ajtózsanér

A kamrát szellőztető ventillátor

A doksi alapján gondosan beszereltem, felvittem neki egy érpárat a 2020-as aluprofil hornyában, majd végül nem kötöttem be. A printer a dolgozószobámban van – annak a levegőjébe nem akarom a kamra levegőjét kifújatni, ráadásul értelmét sem látom a zárt kamra kifelé szellőztetésének.

X/Y endstopok

A dokumentációban csak a mechanikus endstop építését részletezik, azonban a Hall effect szenzoros verzió csak a szenzorban és a felső Z joint STL fileokban tér el minimálisan. Ha a mechanikus verziót építed meg én akkor is azt javaslom, hogy a z_joint_upper_x4.stl helyett inkább a z_joint_upper_hall_effect.stl-ből nyomtass legalább kettőt, mert azokban ott van a Hall effect sensor működéséhez szükséges 6×3 mm-es hengeres mágnesek részére kiképzett slot.
Én a Fermio Labstól beszerzett Hall effect szenzor verziót használom – link sajna a lekapcsolt webshop miatt most nincs.

Az energialánc (=cable chain)

Az energialánc a Formbot kitben egy noname verzió. A szemek egyenként nyithatóak és eredendően teszi a dolgát az egész, viszont nálam a Z irányban mozgó szélesebb komponens egy kicsit kifelé dől. Egyelőre nem találtam ennek az okát, de előbb-utóbb lehet, hogy ezt a darabot kicserélem egy IGUS verzióra.

A Formbot kitben szállított lánc végei nem voltak kompatibilisek a VORON rögzítési pontokkal, ezért ehhez terveztem új láncvégeket:

A FormBot kitbe csomagolt energialánc VORON kompatibilis végszeme
Van belőle anyu és apu verzió is

Az elektronika

A kitben érkezett alkatrészekből pár dolgot újrarendeltem.

SSR

Az SSR relét egy OMRON-ra cseréltem – a kithez csomagolt noname darabról semmi infót nem tudtam összeszedni, márpedig ő adja majd a 230 V-ot a tárgyasztalnak, úgyhogy ezzel jobb biztosra menni.
Szerelés közben sikerült elkevernem valahova az OMRON SSR-t védő fedőlemezt, ezért terveztem ahhoz egy újat.

Vezetékek

A Formbot készlet egy kisebb tekercs piros és egy nagyobb tekercs fekete szilikonos kábelt tartalmaz, amit neked kell méretre vágni, krimpelni és majd egyesével befűzni. A gantryba minimum 23 (!) eret kell így felvinned, méretre vágnod és krimpelned.
Szerencsére ezt többen felismerték már és komplett előre szerelt kábelkorbácsot árulnak a VORONokhoz. Én a Fermio Labs verzióját találtam meg, akik a poszt írásának pillanatában épp nem vesznek fel rendelést, így kerestem neked egy másikat: a KB3D megoldása legalább ugyanolyan precíznek tűnik, sőt, ők a korbács gantry felőli végére opcionálisan userek által tervezett PCB módosításokkal kompatibilis csatlakozókkal szerelik. Ha most rendelnék kábelkorbácsot, akkor a letisztult gantry oldali csatlakozás miatt én is inkább ezt venném.

A printer aljába két DIN kalapsín kerül, erre rögzül minden elektronika. Az összes komponenshez terveztek ügyes rugós rögzítő megoldásokat – ezeket igyekezz majd úgy felrakni, hogy mind egy irányba húzva legyenek oldhatóak. Az sem rossz ötlet, ha az alsó panelen egy matricával megjelölöd, hogy melyik irányba húzva oldható a rögzítés.

Kábelezés

Az elektronikával és a kalibrációval kapcsolatos doksi egy külön pdf-be került. Amennyire részletes a mechanikai rész dokumentálása, az elektronikáé annyira pongyola. A kábelek elrendezésére semmiféle hardver javaslat nincs, de még annyi sem, hogy igyekezz az erősáramot a gyengeáramtól elkülönítve vezetékezni.

Annak érdekében, hogy a printer aljában futó rengeteg drót ne szanaszét álljon, terveztem pár mini kábelcsatornát, amelyeket a többi komponenshez tervezett rugós mounttal lehet rögzíteni, a tetejüket pedig vízszintesen lehet a helyére csúsztatni:

Mini DIN sínre szerelhető kábelcsatornák
Ilyen szép tiszta tud lenni mielőtt bedrótozod
Nagyjából ennyire tudtam rendet tenni az aljában a kis csatornákkal
Fel kell csavarozni a talpukra a VORON rugós DIN mountot két darab M3x8 BHCS csavarral

Hűtés

Az elektronika hűtését gyárilag 2 db 60 mm átmérőjű 24 V-os ventillátorral oldották meg, amik nekem eszement hangosnak bizonyultak, ráadásul részben ragasztva rögzítik. Ebből aztán az lett, hogy kerestem inkább egy 24 V-os tangenciális ventillátort, aminek óriási a térfogatárama és ezért egész alacsony teljesítményre visszafogva is biztosan elégséges lesz majd. Ehhez terveztem egy csavarozható felfüggesztést, valamint átméreteztem hozzá az oldalsó takaróelemeket is.

A tangenciális ventillátor rögzítése és a kisebb oldalsó hexagon szoknyák
Tangenciális ventillátor itt még fordítva beszerelve 🙂

Vezetékközösítők

Már régóta nagy barátok vagyunk a Wago csatlakozókkal. Az elektronika szerelése során legalább 4-4 fázis – nulla – védőföld kábelt kell közösíteni. Ehhez tökéletes megoldás a Wago 221-415-ös kompakt rugós közösítő csatlakozója. Terveztem is hozzá gyorsan azokat kalapsínre rögzítő tokot, amit a sínen a mini kábelvezetőkhöz hasonlóan a VORON gyári rs25_psu_bracket_clip.stl rugós csatlakozójával együtt lehet felszerelni:

Wago 221-415-ös vezetékközösítők DIN sínes rögzítőeleme
Wago 221-415 DIN mountok

A tárgyasztal bekötéséhez ugyanilyen jó a Wago 221-es sorozata, csak ott 6 db 221-412-es vezetéktoldót kell használni. A tárgyasztalt tartó két 2020-as profil belseje között van 130 mm, ott a 6 db 221-412 kényelmesen elfér egy erre a célra tervezett rögzítő tokban.

6 db Wago 221-412-es vezetékközösítő rögzítésére tervezett elem a tárgyasztal drótjainak
Nagyon büszke voltam rá
Ilyen élőben – érdemes felcimkézni mindent, hátha egyszer hozzá kell majd nyúlnod

Világítás

A kamra világításához két hidegfehér ledcsíkot használtam, amik 45 fokban döntött aluprofilokba kerültek. Ezeket a profilokat a végeikre tervezett elemekkel felcsavaroztam a váz felső oldalsó sínjeinek belsejére, a tápvezetékeket pedig végigvezettem a váz hátsó függőleges 2020-as profiljainak hornyaiban. A vezetékek rögzítéséhez csináltam egy apró, csavarhúzóvar befordítható kalapácsanya-szerű pöcköt, amik korrektül a vágatban tartják a kábeleket.

Drót install a 2020-as profilban. Jó kis pöcök ez, amíg nem túl sok vezetéket akarsz befogatni vele.
2020-as aluprofillal kompatibilis rögzítőelem a 45°-os alumínium ledtartó csíkhoz. Ez a profil nélkül egyelőre nem sokat mond, de sehol nem találom az aluprofil linkjét.

A világítás vezérlését nem akartam szoftveresen a display menüjébe integrálni, mert jobb szeretem, ha erre van egy dedikált kapcsoló, úgyhogy a kapcsolónak terveztem az elektronikát takaró alsó méhsejtes rácsba egy foglalatot.

Kapcsoló inzert a VORON rácsba
Kapcsoló installálva a gyári VORON rácsban egy mini inzerttel

Léptetőmotorok vezetékezése

Rettenetesen utálom, hogy a mai napig gyártanak úgy léptetőmotorokat, hogy azoknak nem oldható a vezetékezése a motor tövében. Biztos van olyan alkalmazási terület, ahol attól tartanak, hogy a vibráció megbonthatja ezt a csatlakozást, de attól tartok, hogy ez inkább csak spórolási trükk a gyártók részéről. A Formbot által szállított motorokból is csak úgy kiáll a 4 darab ~600 mm hosszú vezeték, te meg oldd meg magad a csatlakozást.

A kábelkorbács miatt én mindenképp a motorok közelében szerettem volna megoldani a vezetékek összekötését. Ehhez a Wago MCS Micro sorozatából a 4 pólusú lengő, 733-104 / 733-204-es rugós vezetékösszekötő párt használtam, amihez gyártottam a 2020-as profilra való rögzítőelemet, így már szép tisztán lehetett bekötni az A/B motorokat.

A/B léptetőmotorok bekötése 4 pólusú Wago MCS Micro lengő csatlakozóval
Horror árúak a Wago MCS-ek, de közel háborús körülményekre tervezték őket

Szoftver

Slicer config

Slicernek a PrusaSlicerből forkolt SuperSlicert használom, akinek gyárilag van VORON profilja.
A GCODE start scriptem a slicerben így néz ki:

M140 S[first_layer_bed_temperature] ; set bed temp
CLEAN_NOZZLE
G32; gantry leveling

; park the printhead at 0,-3,0.2 before nozzle heatup
M117 Parking head
G1 X5 Y-3 F8000
G1 Z0.2 F720

M117 Heating bed
M190 S[first_layer_bed_temperature] ; wait for bed temp

M117 Heating hotend
M109 S[first_layer_temperature] ; wait for extruder temp

M117 Intro line - 200 mm
G92 E0.0
G1 X60 E9 F500
G1 X100 E12.5 F500
G92 E0.0
M117

A fenti GCODE-ban szereplő CLEAN_NOZZLE egy GCODE makró, ami a Klipper printer.cfg filejában szerepel és így néz ki:

[gcode_macro clean_nozzle]
gcode:

  {% set wipe_count = 8 %}
  SAVE_GCODE_STATE NAME=clean_nozzle_state
  G28
  G90; absolute coords
  G0 F12000; movement speed
  G0 X170 Y350 Z15; nozzle above the brush
  {% for wipe in range(wipe_count) %}
    {% for coordinate in [(130,350),(70,350)] %}
      G0 X{coordinate[0]} Y{coordinate[1] - 0.25 * wipe} Z4.0
    {% endfor %}
  {% endfor %}
  G28; XYZ homing again w/ cleaned nozzle 
  RESTORE_GCODE_STATE NAME=clean_nozzle_state

Ez annyit csinál, hogy a tárgyasztalt tartó bal oldali sínre az asztal végébe szerelt réz kefén 8-szor meghuzigálja a nozzle végét, így leválasztva róla a műanyagmaradékot:

A CLEAN_NOZZLE makrót azért pakoltam a printer.cfg file-ba, hogy bármikor kiadhassam a parancsot az Octoprint termináljából is.

Ha már szóbajöttek a Klipper GCODE makrói, mutatok még egyet:

[gcode_macro check_homing]
description: Check homing and perform if it is necessary
gcode:
  {% if not 'x' in printer.toolhead.homed_axes %}
    G28
  {% endif %}

A CHECK_HOMING makró mindössze megnézi, hogy a printer X tengelyének 0 koordinátája inicializálva volt-e és ha még nem (vagy azt a printer az utolsó homing után már valami miatt elfelejtette), akkor csinál egy XYZ homingot. Ennek a CHECK_HOMING makrónak a hívását aztán minden olyan rutinba belerakhatod, ami nem fut le, ha a HOME inicializálatlan. Ilyen nálam pl. a GYERE nevű makró, ami a fejet előre középre állítsa, hogy azon könnyen tudjak aztán molyolni:

[gcode_macro gyere]
description: moves printhead in XYZ to the front
gcode:
  M117 Head to front
  CHECK_HOMING
  G0 F12000; movement speed 
  G90; use absolute coords
  G0 X175 Y0 Z10; move head to the front
  M117

Kalibráció

Azt mondják, egy kép többet mond ezer szónál:

Vagy magasan van a fej, vagy nem ragad az asztal, vagy a fene tudja mi van
Ezzel már kibékültem – aztán jött 5 másik, ami sokkal rondább lett
Az előző tökéletes első layer után csinál egy ilyen laza fost megint (PLA)
Ennek az alja még lazább lett – menet közben el is engedte az asztalt. Középen látszik, hogy vonszolta egy kicsit a fej, mire észrevettem.
Első layer tesztje a 350×350-es asztal sarkain, ABS-ből – ez már jó lesz
A sikeres első layer kalibráció után következő print alja – és ne legyek ideges
Csodás kép lenne, ha ez a racsni pár nanométer átmérőjű volna és mi most egy elektronmikroszkóppal fotózott felső layert néznénk. De ha ez egy 25 mm-es racsni, akkor mi a rák ez az ocsmány teteje?

Szóval van egy nagy PRO és egy nagy CON érv a VORON 2.4 mellett/ellen.

Mindenképpen PRO a 8 mm vastag tömör alumínium tárgyasztal, amit állítólag a derék kínai mesteremberek 0.01 mm eltéréssel martak egyenletes vastagsárúra:

Esküszünk, hogy ebben max 0.01 mm az eltérés

A 8 mm vastag asztal rettenet hőtartó. Ez, amikor prototípusokat iterálsz, igen hasznos tud lenni: mire leszeded a printet és jön a következő, a tárgyasztal hőmérséklete pár ℃-kal csökken csupán, így pl. a 100 ℃-os ABS-hez való célhőmérsékletre fűtés 10 perce helyett csupán max. 1 perc, mire újra üzemi hőmérsékletű az asztal.

Az ellenérvvel lehet együtt élni, de a kalibrációs tapasztalatok alapján azért kicsit aggódom miatta. A VORON 2.4 gantryje 4 darab szíjon lóg. A gantryt egy GANTRY_QUAD_LEVEL paranccsal a printer a tárgyasztal síkjába szintezi. Ezt úgy csinálja, hogy a kocsiban van egy induktív szenzor, amivel az asztal 4 sarokpontján mér, majd az eltérésekből kimatekozza, hogy melyik sarkat mennyivel kell odébbhúzni ahhoz, hogy az asztallal párhuzamosan álljon az egész gantry. Az induktív szenzor meglehetősen pontos, az enyém tesztje 0.002 mm maximum eltérést mér 10 próbából.

Ennek ellenére feljebb láthattad, hogy mit küzdöttem az első layer belövésével. A problémát talán az okozza, hogy a 350×350 mm-es asztal melegítés hatására nem kicsit képes dilatálni – márpedig a 0.2 mm layer vastagságú printeknél már 0.05 mm eltérés is számít, amikor a fej az első layert tapasztja az asztalra. Erre persze az a válasz, hogy elő kell fűteni az eszközt és akkor kalibrálni, illetve akkor printelni, illetve első layer offsetet korrigálni akkor, amikor a print indul. A problémám az, hogy egyrészt ezt pazarlásnak érzem, másrészt nagyon elszoktam ettől a Prusáknál. Prusa a Z offsetet egy olyan induktív szenzorral kalibráltatja, amiben van egy termisztor és vagy a szenzor vagy a firmware a szenzor hőmérséklete alapján kompenzálja a kapott adatokat. Ennek köszönhetően a SuperPINDA szenzorral szerelt Prusa printereken gyakorlatilag nincs, vagy teljesen elhanyagolható mértékű az első layerek közötti különbség.

Prusáék Marlinból forkolt firmware ráadásul e tekintetben egy dolgot nagyon másképp csinál, mint amit a VORON/Klipper kombó, ez pedig épp a menet közbeni Z offset állítás.

Amikor egy Prusa printeren első layert kalibrálsz, akkor egy Live Z Offset nevű értéket tekergetsz, miközben a printer egy beépített tesztcsíkot rajzol, amin látod, hogy mennyire jó az első layer. A Prusa / Marlin FW világban ez a Live Z Offset azt jelenti, hogy amint a potmétert megtekered és a kijelzőn a beállított Z offset érték változik, az a való életben is instant változást eredményez, azaz a fej azonnal feljebb/lejjebb mozdul és te az épp nyomtatott tesztmintán rögtön látod a saját szemeddel a módosítás eredményét.

A VORON/Klipper világban ez nem így van. Meg nem tudom mondani, hogy miért nem így csinálják, de nem így megy. A Klipper a megváltoztatott értékre akkor reagál, ha az épp végrehajtott GCODE utasításnak vége – azaz, ha a printered épp elkezdett húzni egy 200 mm-es egyenes vonalat és te ebben a pillanatban állítasz a fej magasságán, akkor a fej Z irányban majd csak akkor mozdul meg, ha a 200 mm-es vonal húzása befejeződött.

Nem tudom, hogy ez miért ilyen és hogy lehet-e módosítani ezen, de 4 nap kalibrációs szívás után bátran ki merem jelenteni, hogy Z offsetet így kalibrálni rémálom. Vagy én ülök rosszul a lovon, és ebben a világban nem egyenes vonalakkal kellene kalibrációs mintát rajzoltatni, hanem mondjuk egy spirállal, ahol pár mm-enként új GCODE utasítás jön és emiatt közel az lenne a Z offset adjustment “élmény”, mint amit Prusa/Marlin csinál, amióta őket használom.

A Klipper doksiban a bed leveling egyébként igen szoftisztikált fejezet. Ők a VORON kalibrációs doksijával ellentétben épp azt javasolják, hogy szobahőmérsékletű tárgyasztallal és hotenddel csináljam a Z offset beállítását, mert úgy biztosan nem lesz műanyagmaradék a fej végén (és ha van eszed, akkor a tárgyasztalon sem):

Always perform the paper test when both nozzle and bed are at room temperature!

When the nozzle is heated, its position (relative to the bed) changes due to thermal expansion. This thermal expansion is typically around a 100 microns, which is about the same width as a typical piece of printer paper. The exact amount of thermal expansion isn’t crucial, just as the exact width of the paper isn’t crucial. Start with the assumption that the two are equal (see below for a method of determining the difference between the two widths).

It may seem odd to calibrate the distance at room temperature when the goal is to have a consistent distance when heated. However, if one calibrates when the nozzle is heated, it tends to impart small amounts of molten plastic on to the paper, which changes the amount of friction felt. That makes it harder to get a good calibration. Calibrating while the bed/nozzle is hot also greatly increases the risk of burning oneself. The amount of thermal expansion is stable, so it is easily accounted for later in the calibration process.

https://www.klipper3d.org/Bed_Level.html

A hőtágulás okozta különbségről ők azt írják, hogy az már csak finomhangolás és a legtöbb felhasználó elégedett lesz a papírteszt alapú első réteg kalibrációval is:

Determining Thermal Expansion

After successfully performing bed leveling, one may go on to calculate a more precise value for the combined impact of “thermal expansion”, “width of the paper”, and “amount of friction felt during the paper test”.

This type of calculation is generally not needed as most users find the simple “paper test” provides good results.

The easiest way to make this calculation is to print a test object that has straight walls on all sides. The large hollow square found in docs/prints/square.stl can be used for this. When slicing the object, make sure the slicer uses the same layer height and extrusion widths for the first level that it does for all subsequent layers. Use a coarse layer height (the layer height should be around 75% of the nozzle diameter) and do not use a brim or raft.

Print the test object, wait for it to cool, and remove it from the bed. Inspect the lowest layer of the object. (It may also be useful to run a finger or nail along the bottom edge.) If one finds the bottom layer bulges out slightly along all sides of the object then it indicates the nozzle was slightly closer to the bed then it should be. One can issue a SET_GCODE_OFFSET Z=+.010command to increase the height. In subsequent prints one can inspect for this behavior and make further adjustment as needed. Adjustments of this type are typically in 10s of microns (.010mm).

If the bottom layer consistently appears narrower than subsequent layers then one can use the SET_GCODE_OFFSET command to make a negative Z adjustment. If one is unsure, then one can decrease the Z adjustment until the bottom layer of prints exhibit a small bulge, and then back-off until it disappears.

The easiest way to apply the desired Z adjustment is to create a START_PRINT g-code macro, arrange for the slicer to call that macro during the start of each print, and add a SET_GCODE_OFFSET command to that macro. See the slicers document for further details.

A hőtágulás következtében mozog a tárgyasztal és a nozzle is, ráadásul mindkettő hőmérséklete nyersanyagfüggő: míg egy PLA esetén 55 ℃-os asztalon rajzolgat a 210 ℃-os fej, addig ABS-nél már 100 ℃ az asztal és 242 ℃-os a nozzle, szóval szignifikánsan más méretű kell legyen a tágulás mértéke is. A Klipper doksi szerint a hőtágulás ~0.1 mm méretű, ami a 0.2 mm-es rétegvastagságnál bőven tud problémát okozni az első rétegnél.

A 2.4-es VORON-nál az elmászkáló első layer miatt én elsősorban a szenzort és utána esetleg a szíjakon lógó gantryt gyanúsítanám. A Z offset méréséhez a kezdőpontot egy mezei mikrokapcsoló adja – a mechanikus mikrokapcsolók pontatlansága akár ~0.1 mm körüli érték is lehet. Egész biztosan agyalok még azon, hogy ezt hogy lehetne precízebben mérni, mert nagyon nem tetszik ez a hibaszázalék.

A 4 szíjjal tartott gantry egyelőre ügyes megoldásnak tűnik. Ahogy feljebb már meséltem, Klipperben ott van a QUAD_GANTRY_LEVEL parancs, ami a kocsiba épített induktív szenzorral megméri a gantry sarkainak távolságát az asztal sarkaihoz képest és a szíjakkal teljesen párhuzamosra állítja az asztal/gantry síkokat. Ezzel érzésre a szíjak kopásán túl sok probléma nem lehet – a léptetőmotorokkal és a TMC2209-es stepper driverekkel hihetetlenül precízen lehet a sarkak magasságát állítani, az asztal a gyártó állítása szerint 0.01mm pontosan van síkba marva, így a 3D nyomtatáshoz szükséges pontosságot bőven adja mindegyik gantry szintezésben résztvevő komponens. Szóval talán végül csak az a nyomorult Z endstop mikrokapcsoló ludas.

Eszembe jutott még, hogy miért nem a gantry szintezéséhez használt induktív szenzor a Z offset beállításának alapja, amikor az annyira precíz, hogy Klipper PROBE_CALIBRATE rutinja 0.0022 mm eltérést mér mindössze. Valószínűleg azért, mert a Fotek PL-05N induktív szenzora által mért értéket befolyásolhatja a környezeti hőmérséklet. Egyelőre tehát marad a mikrokapcsoló.

Egyéb Klipper finomságok

Pár hónapja átépítettem egy Prusa MK2.5S-t Duet/RepRapFirmware alapúra. Már ott is nagyon tetszett, hogy ha bármit át akarok konfigurálni a printer működésén, akkor mindössze annyi a dolgom, hogy 1-2 plain text file-ban módosítok, majd szólok a firmware-nek, hogy induljon újra. Klippernél ugyanez a helyzet, ám Prusa/Marlinéknál ez nem így megy – a firmware binárist fordíthatod újra, valahányszor gépközeli módosítást végeznél.

A másik nagy örömet a GCODE makrók okozták. A Klipper ebben hihehetlen flexibilis, szinte minden printer paraméterhez hozzáférsz. A fent demonstrált CLEAN_NOZZLE makró tényleg csak a jéghegy csúcsa: ha nem vagy rest minimális GCODE és scripting tudást felszedni (márpedig ha VORONt készítesz magadnak, akkor nem lehetsz), akkor nincs határa a testreszabhatóságnak.

Lehetne sorolni a sok buzzwordöt, de még csak most ismerkedem a szoftverrel, szóval majd inkább akkor írok róluk, ha majd lesz mélyebb tapasztalat.

Szummárium

Mivel csak pár napja végeztem az építéssel, a printer használhatóságáról nem tudok túl sokat elmondani. A designban van pár dolog, amit egyszerűen nem értettem:

  • miért nincsenek könnyen oldhatóra tervezve a kamra panelei
  • miért tudták le az elektronika hűtését végző ventillátorok és az ajtók rögzítését is buta ragasztással
  • miért nem terveztek világítást eleve a nyomtatóba
  • miért nincs semmiféle ajánlás a kábelek vezetésére
  • vagy mondjuk ez:
A dokumentáció nem említi, hogy a gantry talpánál egyforma rést kell hagyni mindkét oldalon

A kalibrációról az előbb írtam egy kicsit. Nagyon remélem, hogy tényleg csak én tartok rosszul valamit és ez sokkal okosabban / szebben / profibban működik valójában és nemsokára rá is jövök, hogy mi az igazi gond. 4 nap research után kicsit azért félek tőle, hogy mégsem.

Ezt leszámítva a printerben tényleg számos frappáns mérnöki megoldás van, amire az építés közben csodálkozik rá az ember – persze ezeken nem morog és nem is jegyzi fel 🙂

Az összeszerelési dokumentációban talált hibák ellenére azt mondom, hogy nagyon korrekt munka, azonban semmiképp nem szabad ezt építeni első printerként, mert a hibásan összerakott printer vagy a kalibrálási problémák könnyen eltántoríthatnak a 3D nyomtatás egyébként csodás nyúlüregétől.

A modelleket szokás szerint szedheted a prusaprinters.org-ról.