Intel i3 server below 30W

My PC has been acting rather strange lately (complaining about the CPU fan, not finding the boot drive, all kinds of weird problems), so I decided to do some hardware shuffling. I ordered components for a new server and when this new one is operational, I’m going to use my current server as PC and dismantle the current one.

Although I didn’t have much time and didn’t know when my PC would completely collapse, I had a good idea what it (the new hardware) should be made of, cause a few monthes ago I heard Maarten Damen say he had built a really cool server based on a Intel i3 that was consuming a wattage in the low 20’s. That sounded very reasonable to me, so I started off with an Intel i3 540 and selected the other necessary hardware around it, resulting in the following:

  • Intel i3 540 CPU @ 3.06 GHz
  • MSI H55-GD65 motherboard
  • 16 GB RAM (4 x KVR1066D3N7/4G)
  • OCZ Vertex 2 2.5″ 60 GB SSD
  • OCZ Vertex 2 3.5″ 240 GB SSD
  • Cooler Master Elite 333 case (no PSU)
  • Intel Gigabit Adapter

I still had a Seasonic SS12 II 380W PSU on the shelf, so I used that one. No DVD player, no graphics card (needed), cause those would only have a negative impact on power usage. I built in 2 x 120 mm cooling fans, but as I soon found out this was overkill and I disconnected 1 of them.

Looking at my Power Monitor Pro, this setup consumes 28W idle. Not bad. But I think this can be reduced even more, so I bought a PicoPSU 120W power supply kit. I’ll know the results with this PSU in a couple of days.

Of course, when I move my 5 VM’s from the current to this new server power usage will probably increase again, but for now I’m quite pleased with this sub-30W usage. My current server is using 70-75W, so a 50% reduction should be doable!

To be continued.


Remeha interface revisited

Some time ago I received an email from Roel van de Wal. He had been searching for an alternative for the Remeha cable that is listed on page 155 of this document. Price: 90 Euro… Since this cable from Remeha is nothing more than a piece of wire, a USB connector with built-in FTDI chip, it’s not hard to find other places where you can buy this cable; here for instance. And there are numerous others of course.. Adafruit, Sparkfun, you name it. This cable can be very handy – if you don’t need Ethernet or don’t like soldering, this will probably be the easiest/best/quickest option for you.

The only thing left to do was finding out the function of each wire. Last week Roel mailed me the details:

Black – GND
Orange – TXD
Yellow – RXD
Red – +5V
(Brown-CTS &Green-RTS are unused)

The image he sent me shows the wires and a 4P4C connector:


Download the FTDI drivers and you’re done, saving you 70 Euro’s!  🙂

More Powerlink2 stuff

Another “HowStuffWorks” post 😉

Changing the alarm state of a Visonic Powermax Pro with the Powerlink2 was fun, but there’s more. The Powerlink web interface also shows the Control Panel status:

Visonic Control Panel status

And, if there are any sensors that prevent the alarm from being armed they’re shown here too. Wouldn’t it be nice to obtain that information in a usable form, so it can be used in our own apps? (everything is called an “app” these days, right)  Stuff like the current status, sensor information and such? Gotta have it! Here we go…

I started a browser, Fiddler and logged in on the Powerlink 2 mobile interface and saw these periodic calls being made:

GET  HTTP/1.1 Accept: */* Accept-Language: nl
Content-Type: application/octet-stream
Accept-Encoding: gzip, deflate
User-Agent: blabla
Host: xx.xx.xx.200
Connection: Keep-Alive
Cookie: PowerLink=43e66dc8f6485151c9179d40b0e1831f; mobile=802fece964ec8e77ca2e533d479cc93f

Quite easy to mimic. So I did and logged the responses:

{ "id": "1", "js": { "reply": { "index": "24", "configuration": { "sensors": [ { "name": "Sensor", "index": "1", "type": "Delay 1", "location": "Front Door" }, { "name": "Sensor", "index": "2", "type": "Perimeter-Follow" , "location": "Hall" } ], "system": { "name": "Control Panel", "disarm": [  ], "status": "Ready", "arm": "0", "latchkey_enable": "Latchkey Enable", "ip_mode": "dynamic", "ip": "xx.xx.xx.200", "subnet": "", "gateway": "xx.xx.xx.60", "dns1": "xx.xx.xx.1" } }, "alarms": [  ], "alarmframetimes": [  ] } }, "text": "" }

This is the ‘initial’ response, as in the first response we get to the request shown above. Here we see the sensors, their index number (needed later on), type and location and we also see the Control Panel status: Ready. OK; lets see what the response is made of when we repeat the same request a few times:

{ "id": "1", "js": { "reply": [  ] }, "text": "" }

Few seconds later another request, response is still the same:

{ "id": "1", "js": { "reply": [  ] }, "text": "" }

Nothing changes. Let’s open the Hall sensor (no, not this one, but a regular MCT-302) :

{ "id": "1", "js": { "reply": { "index": "25", "update": { "sensors": [ { "index": "1" }, { "index": "2", "status": "Open" } ], "system": { "not_ready": [  ], "disarm": [  ], "status": "Not Ready", "arm": "0" } } } }, "text": "" }

Aha! The sensor with index 2 changed to status “Open” and the Control Panel Status changed to “Not ready”. On the Powermax LCD display I see: HALL OPEN. Yep, the Control Panel is showing the right text; it’s working 😉

Next response, with the Hall sensor still open:

{ "id": "1", "js": { "reply": [  ] }, "text": "" }

And again…

{ "id": "1", "js": { "reply": [  ] }, "text": "" }

Time to close the sensor again, now I get this:

{ "id": "1", "js": { "reply": { "index": "26", "update": { "sensors": [ { "index": "1" }, { "index": "2" } ], "system": { "disarm": [  ], "status": "Ready", "arm": "0" } } } }, "text": "" }

No more “problem sensors” and the Control Panel is back to “Ready”. Also notice this index number increasing with every change (24, 25, 26…). Track this one in your software and use it in the subsequent requests you do. If you don’t, you’re gonna miss all the information you want…

And as expected, the next responses are:

{ "id": "1", "js": { "reply": [  ] }, "text": "" }
{ "id": "1", "js": { "reply": [  ] }, "text": "" }

With this information it should be relatively easy to create a driver for it and use the provided information for whatever you want.

I also added the quick&dirty example code I used while playing with the Powerlink 2. Now I’m gonna find me a large firm cardboard box, put the Powermax Pro in it and send it back to Pieter. I’m sure he’ll want to start using it by now!