Nodo project – Nodo Ethernet Shield (NES)

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

Today the NES kit has been delivered and I got it working.


After same soldering the NES seems to work. I connected it to the router configured the port forwarding and logged into the Nodo Webapp. The Nodo is recognized over the internet and I could configure some settings in the Webapp. Now the issue is to figure out what addresses my KAKU devices have so I can control and monitor them.

Hopefully I can do some domotica very soon.

Interested in this hardware then take a look at:

Nodo domotica
Nodo shop – the NES
Nodo wiki
Nodo forum

KAKU with Arduino using Nodo

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

The previous post was about JeeNode and receiving KAKU commands. The nodo-domotica  solution is also able to handle KAKU commands. I tried the Nodo sketch together with my Arduino Mega and an Aurel 433Mhz RX module bought from Conrad.

Aurel RX-4M50RR30SF

The module I used was the RX-4M50RR30SF (433mHz 5V – 102DBM – AM receiver). The productnumber at is 190264 and it can be found here.

The Nodo schematic  shows that Arduino digital pin 2 is connected to the data-out pin of the RX module and that Arduino digital pin 12 is connected to the +5V pin of the RX module. The module’s GND pin is of course connected to a GND pin of the Arduino.
Looking at the photo above you see 8 pins instead of 3 pins; that’s because there is a pin for the antenna, 2 extra GND pins, a test pin (I don’t know how to use this) and an extra +5V pin. I connected all the three GND to the GND, the two +5V to pin 12 and the antenna pin to a approx. 17.5 cm piece of copper.
The nodo website mentions an antenna length of 15 cm but I already found some text about antenna lengths for 433Mhz signals mentioning the 17.5 cm. In close range both will work and that is what I have tested until now. It is also possible to buy a real antenna.

I was very happy to see this piece of hardware work. Before I tested this RF module I tried another module (QAM-RX4-433 from which didn’t work in combination with the Nodo software.

 More things to sense …


JeeNode and OOK433 plug

Your ads will be inserted here by

Easy Plugin for AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

Besides an Arduino Mega 2560 I can also use a JeeNode to do some experiments. The JeeNode is made based upon the Arduino but it has several differences. Like, it has fewer ports, it runs on 3.3V instead of 5V, it is smaller and has I2C support. Another great feature is the RFM12B wireless RF chipset that can be used to let JeeNodes communicate with eachother. Take a look at the JeeLabs blog for a ton of information, it is really great.

Because one of the wishes for my domotica solution is controlling KAKU devices a 433Mhz OOK RF receiver and transmitter is needed.  JeeLabs has a nice solution; the OOK 433 plug.

This plug has two 433 Mhz chipsets; one to send and one to receive signals. KAKU uses On-Off-keying (OOK) modulation for sending and receiving signals.

KAKU remote YCT-102

I assembled the plug and tested the ookDecoder.pde sketch (look at the bottom of the page), together with my KAKU YCT-102 remote. I was lucky as it worked right away; I read that some people weren’t able to get it working in combination with another KAKU remote (probably an older version).

It also works with the KAKU doorbell transmitter (ACDB-6500BC).

One thing to mention is that the sketch decodes the signals as ‘HEZ’ signals instead of ‘KAKU’ signals. Some other website also mentioned that the signals of the UCR-4285 universal KAKU remote were also recognized as ‘HEZ’ signals.

However, if you remove  ‘HezDecoder hez;’ in the ookDecoder.pde sketch the signals will show up as KAKU commands!

As for now I haven’t tried to send KAKU commands so I don’t know if that works in combination with my KAKU socket units.

Because I cannot find the webpage to download the ookDecoder.pde sketch I include it below. All credits go to Jean-Claude (owner of JeeLabs and creator of the JeeNode hardware) see the comments in the code.


// New code to decode OOK signals from weather sensors, etc.
// 2010-04-11 <>
// $Id: ookDecoder.pde 7527 2011-04-11 01:57:48Z jcw $

#include "decoders.h"

#define USE_433 1
#define USE_868 0

#if USE_433
OregonDecoder orsc;
CrestaDecoder cres;
KakuDecoder kaku;
XrfDecoder xrf;
HezDecoder hez;

#if USE_868
VisonicDecoder viso;
EMxDecoder emx;
KSxDecoder ksx;
FSxDecoder fsx;

#define PORT 1

volatile word pulse;

    static word last;
    // determine the pulse length in microseconds, for either polarity
    pulse = micros() - last;
    last += pulse;

void reportSerial (const char* s, DecodeOOK& decoder) {
    byte pos;
    const byte* data = decoder.getData(pos);
    Serial.print(' ');
    for (byte i = 0; i < pos; ++i) {
        byte d = data[i];
        Serial.print(d & 0x0F, HEX);
        Serial.print(d >> 4, HEX);
    // Serial.print(' ');
    // Serial.print(millis() / 1000);

void setup () {
    pinMode(13 + PORT, INPUT);  // use the AIO pin
    digitalWrite(13 + PORT, 1); // enable pull-up

    // use analog comparator to switch at 1.1V bandgap transition
    ACSR = _BV(ACBG) | _BV(ACI) | _BV(ACIE);

    // set ADC mux to the proper port
    ADCSRA &= ~ bit(ADEN);
    ADCSRB |= bit(ACME);
    ADMUX = PORT - 1;

void loop () {
    word p = pulse;
    pulse = 0;

#if USE_433
    if (p != 0) {
        if (orsc.nextPulse(p))
            reportSerial("ORSC", orsc);        
        if (cres.nextPulse(p))
            reportSerial("CRES", cres);        
        if (kaku.nextPulse(p))
            reportSerial("KAKU", kaku);        
        if (xrf.nextPulse(p))
            reportSerial("XRF", xrf);        
        if (hez.nextPulse(p))
            reportSerial("HEZ", hez);        

#if USE_868
    if (p != 0) {
        if (viso.nextPulse(p))
            reportSerial("VISO", viso);        
        if (emx.nextPulse(p))
            reportSerial("EMX", emx);        
        if (ksx.nextPulse(p))
            reportSerial("KSX", ksx);        
        if (fsx.nextPulse(p))
            reportSerial("FSX", fsx);        

Nodo can do KAKU too …