Mölkky step-by-step

The finnish game Mölkky is fun to play, but Nils said ”No way we are buying a bunch of numbered sticks. We’ll make our own!”

Step 1 – get wood. 

Step 2 – cut it into 12 pieces, plus an extra piece for throwing. 

Step 3 – cut the tips off of the 12 pieces, diagonally.

Step 4 – number the pieces and set up the game!

Step 6 – set it up again..!

Final step – playtime 😄

DIY yoghurt maker

Even if we only milk one of our goats for the moment (and she is a low producer that give approximately half of her milk to a very hungry kid when they are together in the pasture), the milk bottles is filling up the fridge faster than we can consume it. We’ve already quit buying milk for drinking, coffee and cooking, so the next product to make ourselves will be yoghurt.

The process is rather simple, take some milk, pasteurize it if you don’t trust your hygiene, add bacterias and keep the temperature at the optimal level for as long as it takes for the bacterias to consume all accessible lactose and lower the pH to uncomfortable levels.

You can do this in your oven, but the temperature control will be crude, which results in runny and uneven yoghurt. There are yoghurt machines, not that expensive, that controls the temperature very well, but they don’t know when to turn themselves off, so you still have to watch it, or set the timer out of your best guesses.

Since my Diy wireless pH-sensor gives me the two variables I need to control the process (temperature and pH), I figured that I only needed a heat source.  Then I found something even better at a second hand store; a portable 12V peltier cooler/heater from Waeco, made in the early 90’s, featuring such elegant solutions as switching between heat and cold by turning the electricity cord, thus switching polarity.

This makes the perfect completely automatic yoghurt maker, since it both keeps the heat at an even level, and when the right pH is achieved, cools the yoghurt down to fridge temperature. Just throw in some milk and culture in a jar (or a teapot) and leave.

The controller is very simple. Since the only functionality needed that the waeco box didn’t handle, was the ability to turn on and off and switch polarity remotely, I connected a L298b motor driver and a NRF24L radio to an Arduino nano. The L298b module is normally used to turn DC motors forward and backward, but that could be applied to the peltier element in the box to make it hot or cold as well. Unfortunately, the L298b was only capable of 4 amps in throughput, and the waeco transformer supplied more even though it was specified for 4, resulting in a very hot chip. The solution was to use 2 L298b in parallell. Power cables as well as signal cables to the arduino.


The chips were still hot, but with a cooling fan from a PC chassi, they are now cold and very cool. I connected the fan to the input side to let it consume some power and make it easier for the L298b. That means that the fan is always on, which might be unnecessary.

The Arduino code for the controller is also really simple. I used the mysensors.org sample code for relay and made two adjustments: increasing the numbers om relays to at least 3 (I actually enabled 6, as there might be need for using the second channel on the L298b in the future, but for this functionality, you only need 3) and enabling pwm on the pins that controls on/off. I haven’t used pwm for anything yet, but that will allow me to control the current from the L298b output (speed, heat etc.).

The logic is placed in the home automation system I have running on a Raspberry pi. It is currently Fhem, but any system with support for the Mysensors library will work. Fhem is a quite complex system with lot of forum material in german, but if you are comfortable with both German and Perl, there is no more powerful home automation system in my opinion.

The controller presents itself in Fhem when the gateway is in inclusion mode, and this is the fhem.cfg code that is generated (with som additions):


attr MYSENSOR_10 IODev gateway
attr MYSENSOR_10 alias Youghurt maker
attr MYSENSOR_10 mapReading_switch1 1 switch
attr MYSENSOR_10 mapReading_switch2 2 switch
attr MYSENSOR_10 mapReading_switch3 3 switch
attr MYSENSOR_10 mapReading_switch4 4 switch
attr MYSENSOR_10 mapReading_switch5 5 switch
attr MYSENSOR_10 mapReading_switch6 6 switch
attr MYSENSOR_10 mode repeater
attr MYSENSOR_10 room Dashboard,Mysensors
attr MYSENSOR_10 setReading_switch1 on,off
attr MYSENSOR_10 setReading_switch2 on,off
attr MYSENSOR_10 setReading_switch3 on,off
attr MYSENSOR_10 setReading_switch4 on,off
attr MYSENSOR_10 setReading_switch5 on,off
attr MYSENSOR_10 setReading_switch6 on,off
attr MYSENSOR_10 version 2.0.0

We can se that all 6 relays shows up, but I have only found use for three.

The logic doesn’t show up by itself so here I had to do som actual brainwork.

I found some excellent thruth tables here and got the following pin/switch setup:

Switch1/ENA: Main power 1=on, 0=off



Positive direction / heat: switch1 = 1, switch2 = 1, switch3 = 0

Negative direction / cold: switch1  = 1, switch2 = 0, switch3 = 1

Power off: switch1 = 0


The yogurt culture I am using prefers a temperature of 43 C and I will let it work until it has reached a pH of 4.20. I’ve hardcoded those levels in my config file for now, but an improvement will be to create a device that changes these values.

I want the machine to:

  • Rise and hold the temperature on 43 C.
  • Do that until pH has dropped to 4.20
  • Then cool it down as much as possible

That is achieved with the following code in fhem.cfg:

define phNotify notify MYSENSOR_118:temperature.* {if (ReadingsVal("MYSENSOR_118", "temperature", 0) > 43 ) { fhem("set MYSENSOR_10 switch1 off") } elsif(ReadingsVal("MYSENSOR_118", "temperature1", 0) > 4.25) {fhem("set MYSENSOR_10 switch1 on;; set MYSENSOR_10 switch2 on;; set MYSENSOR_10 switch3 off")} elsif(ReadingsVal("MYSENSOR_118", "temperature1", 0) < 4.25) {fhem("set MYSENSOR_10 switch1 on;; set MYSENSOR_10 switch2 off;; set MYSENSOR_10 switch3 on")}}

Worth mentioning is that the pH-sensor is called MYSENSOR_118 and its temperature sensor reports as temperature, while its pH-sensor reports as temperature1.

So this is the result. The red line is temperature, starting at fridge temperature at 6C and rising steadily to 43C where it plans out. Meanwhile the green bars representing the pH goes from 6.5 to 4.4 (at the time of the screenshot).

Obviously, the Waeco box isn’t made for heating, rather than keeping a temperature. The slow rise of about 8-9 degrees/hour making it 5 hour until optimal temperature is reached, is not acceptable. Heating the milk before putting it in the box is one easy solution, another is to never cool it down and let it go directly from the udder to the box.


Is it true what they say about goat milk?

When you search the internet for information about goat milk, it’s easy to think that you’ve discovered a miracle food, that the rest of the stupid western world either know very little about, or has been taught by religiously induced habits and commercial efforts from ”big dairy” to despise.

It’s also tempting to copy all these tributes to goat milk straight off, and tell all your friends to start drinking goat milk in order to cure some diseases, or at least lower the risk of catching them.  I almost started doing that, when I realized that I had no clue if it really was true, so I decided to go to the sources. The trick is, when it comes to stories about functional food and other miracle products, nobody is citing any sources. Eventually a study is referred to, but there seems to always be discrepancies between the field of study, and the point of the article. Otherwise, anecdotal evidence is popular, people who drink goat milk report that they reap great benefits like not having cancer or completely stopped passing gas.

What the field of goat milk research actually seems to boil down to, are some deductions that can be made from studies of the health effects of cow milk. We know what is bad in cow milk, and if goat milk doesn’t contain those components, we can assume that goat milk is better at least. Right?

Beta-casein and the correlation between cow milk consumption and severe diseases

The milk protein beta-casein, that is a key component in cheese, exist in two genetical variants, A1 and A2. The A1 variant seems to bee a relatively modern morph that accidentally has come to follow the trait of high milking ability in cow breeds like Holstein and Red cattle, and thus the dominant variant in industrialized milk and dairy products.

According to several studies, there is a correlation between high A1 consumption (like in Sweden and Finland), and diseases like diabetes (I), autism, schizophrenia, ischaemic heart disease and bowel inflammatory problems.



What about goat milk?


The grass is greener on the other side

When you own goats you soon discover that they are a quite difficult bunch to keep inside the fence, no matter how delicious and goat-friendly the pasture inside may seem.

That is why we are spending a lot of time putting up and re-inforcing fences!

Raoul ”helping out” as usual!

Renovating the Japanese room

The room we now call the Japanese room is the first we’ve taken on renovating. It’s supposed to be used as a small guestroom, but the japanese influence kind of invented itself. When we found a wallpaper we really liked in Warszawa, we decided to continue on the asian track, and bought dark oak floortiles that would be a nice match.

The original interior was quite old and bore marks from the intrepid design choices of the 70s, as well as many years of service as a teenager’s room.

The first time we saw the room, in january 2015


We started by tearing everything down. Ceiling, wallpapers, floormat.

Our friends Filip and Yasmina came by to help us with the destruction. After a beerwalk.


Wallpaper removal


The most exhaustive moment was the restoration of the horisontal bolts we found above the ceiling. Some bolts had a really rough finish. A few axe markings can be beautiful, but splinters and miscoloured spots had to be planed away.

The exposed planks that were to became the new ceiling was extremely hard to saturate with paint. It took several hours of stroking and splashing before we decided to cover the bolts and use the spray painter instead. Defenitely a good choice, and a lesson learned before we continue with the remaining rooms.

The bolts were oiled with brown tinted chinese wood oil.

The walls, wich we had to extend 15 cm to cover the space previously hidden between the bolts, got a layer of construction wallpaper to even out the seams. After that, the floortiles could be installed.

Did I lay the tiles, or did the tiles lay me?


Application of the final wallpaper made the whole difference.

A futon style sofa, rice lamp, and a remodeled coffee table with the remaining wallpaper under the glass, adds to the asian impression.

Good thing: the old ceiling lists could be reused as floor lists without any changes.

Bad thing: there will be a real hassle to cut out the new ceiling lists with all the joints and angles. A consecuence of solving any mismatching with the wallpaper edges with the comment: the list will cover it…

Anyway, if not finished to perfection, the room is inhabitable, and a few guests as well as ourselves, can verify that the sleep is formidable.

Diy wireless pH-meter

In cheese-making, the key to a tasty, and reproducable, cheese, is keeping track of the  exact pH and the temperature in the active culture. You can do this with manual tools, such as a kitchen thermometer and pH-strips, but the measurements will be crude, and depend on your constant presence. That leading to inconsistencies between batches,  and difficulties in tracking errors in the process.

Michel Lepage is cutting the curd. Photo taken at the craft cheese-making course we took at Eldrimner in 2014.
A digital pH-meter is expensive. You can find some from €100, but you wont get built-in temperature correction for less than €250, and wireless goes beyond €350. For continous readings and  the possibility to recalibrate your sensor yourself, instead of sending it to the manufacturer,  add a lot more… I havn’t yet found a device capable of tweeting its readings 😉

My diy pH-sensor is not exactly cheap either. It ticks in at about €150 in material costs. I’ve seen people look pensive when they see the casing, and subconsiously push it closer to the recycling, so a slightly pricier casing than the pet bottle might be an investment. Otherwise, the bill of materials looks like:


  • Atlas pH meter kit $149 (EZO version)
  • Arduino mini pro 3.3v $1.90
  • NRF24L01 radio $1
  • DS18B20 waterproof temp sensor $1.63
  • Battery holder $3
  • 2xAA batteries
  • Cables

With todays exchange rates, it translates to around €150.
If you’re setting up a new sensor network, you need a radio gateway and a computer to run the controller software on too

  • Arduino nano $6
  • NRF24L01 radio $1
  • Cables
  • Old computer or raspberry pi $25-$50

      You can order everything from ebay or aliexpress through the Mysensors store, but the items listed there may not always be availible in singel packages. Anyway, you will need more of those radios.

      Shipping is usually free from China (who is paying that?), but the pH-kit comes from the US, so add a few euros for shipping and customs.


      • Measures pH-level in fluids and semi-solid compounds.
      • Calculates the correct pH from the latest temperature reading.
      • Measures temperature
      • 30 seconds between samples.
      • Continous measuring, just leave the probe in the milk and watch the readings.
      • Wireless transfer of data to the raspberry pi based controller unit
      • Presents the readings as a datastream or in nice graphs in a web interface. Use your phone or tablet to monitor the process from anywhere.



          • FTDI USB programmer, to program the arduino  mini pro and perform calibration. If you use arduino nano instead, you can skip this, but the nano is more expensive and power consuming.
          • Soldering iron, lead, soldering paste.
          • Computer with arduino ide or codebender running.
          • Pliers, knives, screwdrivers and that kind of stuff.


          • Basic soldering. The only soldering done in my prototype is on the on/off switch. For a sturdy and reliable device to use in a kitchen environment, I recommend soldering the connections rather than using Dupont cables.
          • Basic programming. You can clone my code from codebender and hope it will work out of the box, but since things changed quickly on the internets of things, you will probably need to change some code to adapt to new version etc. So some understanding of coding will be helpful.
          • Arduino/MCU experiences. I wouldn’t recommend to make this your first microcontroller or Mysensors project. Start out with a simple blinking light and then a temperature sensor to make sure you get the IDE and Mysensors API.
          • Raspberry pi/Linux experiences. You could use a Windows computer as controller and user interface server, but if you’re up to arduino hacking, you might as well use an embedded device right away.

          First experiences with cover crops

          Since we have quite much old straw occupying the hay loft, and the maple on the frontyard is producing a great amount of compost material each fall, we decided to try to grow some potatoes in that biomass.

          The straw and leaves where put directly on the Ground in early april, as the potatoes where put to germinate inside the house. Four weeks later, when the risk for nightfrost had diminished, the potatoes where scattered on the strawbed, covered with more straw and leaves, and watered.

          As comparison, a few potatoes where planted using the traditional methodologies of digging them into the ground.

          The first harvest was expected 8-10 weeks after germination (middle of june), but a chilly period in may delayed it with two weeks. Maybe the cover crops method is more suspectible to cold weather since it lacks the isolating features from a thick layer of soil? We don’t know, since the soilgrown potatoes is a later kind. That’s a parameter to keep track of next year.



          • Potatoes can be harvested continuously. You don’t dig up the plant, just follow the stem and roots in the straw and collect the right sized potatoes. Smaller ones are left to grow some more.
          • The potatoes are very clean, and probably free from contamination from soil bacterias.
          • No digging required.
          • Vandalizing snails was a great concern, but turned out to be a minor problem. They seem to prefer occuring weeds like dandelions to the potato leaves. The patches with less weed were more affected by snails than wilder ones. However, young plants attacked by snails had a tougher time reaching full growth, but the harvest from them was only delayed, not diminished. Leaving mature potatoes in the ground for too long made them a decent meal for the snails, so the advice would to pick the big ones continuously.
          • Some kind of radar device would be handy in finding mature potatoes in big scale cultivation.


          • Since the potatoes where left in the soil to let more of them grow big before harvest, more potatoes were damaged by snails.
          • Manual labour is tougher with the soilbed. Breaking the ground (well, we did some of it with tractor and harrow), covering with soil, digging up the harvest.
          • The potatoes are dirty, but the dirt may work as protection and keep humidity in the storage. We’ll see.
          • Smaller harvest, since the plant gets damaged when the potatoes are dug up.
          Cover crops potatoes

          The need for watering seems to be the same with both methods. The strawbed was very moist in the lower layers, even after several weeks of draught. We watered both patches quite much after putting out the potatoes.

          Neither patch has shown any signs of leaf rot. An hypothesis yet untested is that growing mushrooms among the potatoes would make it harder for leaf rot to establish. The mushrooms didn’t thrive in the heat, so we’ve prepared a mycelium to mix in the strawbed in the autumn.