We built a dairy!

For quite a while we weren’t sure if we should try and make our goat-and-cheese-farm dream come true by building a dairy on location or if we should try to rent a space in a commercial kitchen of some sort. The opportunity arose when Claire’s stepfather decided to bring a container with building materials from China for the house project he is working on, and let us have the container in return for storing the stuff in it on our farm for some time. We then decided that we should convert the 20 foot container to our very own farm dairy!

The container in place in front of one of our barns:

We poured concrete on the floor and made a drain:

Then we cut out holes for windows and doors, put up walls and a ceiling:

We poured more fine concrete as a final layer and had some “help” decorating:

Then we put up ceramic tiles on the walls, painted the ceiling:

In between there was a lot of work on things such as painting the floor with epoxi, connecting water and sewage, installing ventilation, and of course, putting a roof with a tilt on top of the container:

Finally it was time to move in all the equipment. This is Nils using our 300 l Rademaker cheese-making vat for the first time!

Claire in front of the cheese vat wearing signature hat and apron with our logo:

The whole project took us about 6 months from start to finish, while working with our day-jobs as well as taking care of the goats, etc. Did I mention we also delivered 27 goat babies..?

All in all, building our farm dairy was a really cool project which we are super proud of, and plan to put to good use as well as develop and expand during the years to come.

Experiences from hay harvesting: equipment

Half-way through our first grass to barn hay harvest we are beginning to have a picture of what the process is all about, and what tools, techniques and machines that can be used or should be avoided. We started of with no knowledge or machinery but the internet and a tractor, but we figured that would be a good start since we at least were better off than the farmers working the lands manually just 70 years ago.


The grass was growing and looked mature, but how could we know when the best time for the first harvest would be? We could keep an eye out for when neighbour farms started to cut, but since all other farms in the area are producing fermented hay for cows or horses, they would have an entirely different approach since they’re less dependant on drying times and the straw length for producing small bales.

We found that most of the information is found online at http://vallprognos.se/ where test samples from farms from all over the country are displayed, and a prognosis of the hay quality at the day of harvest is provided. As the goats likes heavier hay, with a higher cellulose content, than cows and horses, we decided that we could wait longer than the recommended harvesting date, and went for a week before midsummer when the weather forecast looked promising for drying hay on the field for a whole week.


We realized that we needed three machines, a cutter, a tedder and a baler. We found an old sickle cutter left on the farm that looked like it could be used, and we actually managed to cut the small field (½ hectar) before we gave up on it. The construction was very weak, so when a twig or a thich chunk of hay would hit the sickel, the wooden connecting rod broke, and after manufacturing several new rods from an oak plank, we started looking for another solution.

Crappy sickle cutter

Since we soon would be baling the hay, we were looking for a baler, and one of our neighbours had one that he hadn’t used for 10 years or more. When I was picking it up I asked him if he knew anyone salling their harvester? He didn’t, put he told me there’s one laying on his junkyard up for grabs. It had certainly been there for 20 years, but after scaring away the surrounding wildlife, I managed to drag it home, greased it up, made a new connecting rod, and had it working in less than an hour. International harvester should have some credits for reliability.

Sickle cutter buried in thickets and nettles. Guarded by a wild hare.

When both fields where cut, we wanted to get the hay dry as soon as possible. The son of the previous owners gave us an old belt tedder that did the work perfectly. When ran on high gear (1040 RPM) from the power outlet, it spreads the hay in a thin layer all over the field wich dries surprisingly fast on a sunny day. After turning it once, we ran it on low gear (540 RPM) to let it produce strings for the baler to pick up.

After five days of drying on the field, the hay was ready to be baled and stacked up in the barn. Since the baler hadn’t been used for several years, it needed a litte care, and I needed to learn to thread it. Luckily, I found a manual for the Welger 450 baler on a forum https://www.maskinisten.net/ and another of the previous owners sons had some experience in threading the machine. We got it working pretty quick, even if it only binds on one side for the moment. But thats enough.

Since the baler runs really slow, we realised that the more work we put inte making straight thick strings with the tedder, the faster it gets done. The tedder can be run at least five times faster than the baler, so one extra turnin of the strings is really worth it.

After baling, we took out the old wagon and loaded up the bales. 3 loads from the small field, and 6 from the big field resulted in about 400 bales, averageing at 8 kilos. 3.5 tonnes of hay is now stacked up in the barn, meaning that we’ve covered half of our goats needs this winter. We’re expecting a little less from the second harvest, but if the fall is warm, we can take a third harvest in late october, that hopefully will be enough for the whole winter.

Leaving the field with the last load. Halv an hour later, a heavy rain started, and the swedish midsummer celebration could continue in a traditionally cold and wet fashion.

What to do better?

A few weeks after the first harvest I came across this very helpful article from Iowa State University (the Americans have some real fine approaches towards small scale farming) . I wish I had found it a little earlier. Our chocie of cutter seems to be valid, even if it’s slow, we wouldn’t gain much in speeding up the cutting part of the process on our small lands. Maybe 2-3 hours/harvest. If we’re getting a knewer cutter, we would most likely get a new sickle cutter, but maybe on that moves in both directions, and is less likeky to collect wet hay and completely eliminates the need for jumping of and cleaning the sickle bar now and then.

The belt tedder is a simple and powerful construction, we’ll stick with that one.

If we’re getting a new baler some day, the mini round baler mentioned in the article would be an intreresting choice. The Welger 450 baler sure is heavy, and the density of the bales could be higher, but given that mini round balers not are very common in scandinavia, we’ll most likely stick to square balers from economical reasons.

Arduino for beginners

As you might have noticed we love technology and finding innovative ways to use it around the farm. Nils has a lot of knowledge in programming as well as micro-computers such as Arduino and Raspberry Pi. Claire is an enthusiastic beginner, having participated in courses in Visual Basic, HTML/CSS and Python in the past. Her latest endeavour is to learn more about Arduino which according to the official website: “…is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs – light on a sensor, a finger on a button, or a Twitter message – and turn it into an output – activating a motor, turning on an LED, publishing something online. You can tell your board what to do by sending a set of instructions to the microcontroller on the board. To do so you use the Arduino programming language (based on Wiring), and the Arduino Software (IDE), based on Processing.”

Happily, we found that there is a place called Blekinge uppfinnareverkstad dedicated to innovations and co-working in a near-by town called Svängsta, and they offer courses in Arduino for beginners -among other things. It is a really cool place, founded in the 80’s in an old factory and is run on a volunteer  basis. Worth a visit (or even membership – 500 SEK for a year) if you are interested in anything from welding to 3D printing.
IMG_20161103_190618The idea is to use Arduinos for some of the many things we want to monitor and automate at the farm – in the milking process, at the dairy – or even to make a goat locator for when the critters decide to break out of their pasture! We will keep you posted…


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.