Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
Frédéric GrandjeanF

Frédéric Grandjean

@Frédéric Grandjean
About
Posts
8
Topics
2
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • [SOLVED] W5100 Ethernet gateway with RFM69 Radio fails at init
    Frédéric GrandjeanF Frédéric Grandjean

    Perfect, thank you.
    That solved all issues! Now working super fine.

    Troubleshooting

  • [Solved] How to check RFM69 is a HW model ?
    Frédéric GrandjeanF Frédéric Grandjean

    Hi Carlierd,
    Thanks for your questions and answers to yourself ;-)

    Actually that helped me as I was mixing both types of RFM69.

    Hardware

  • [SOLVED] W5100 Ethernet gateway with RFM69 Radio fails at init
    Frédéric GrandjeanF Frédéric Grandjean

    Hi Jonathan,
    Before I show my code, please check:

    • Connect W5100 and radio like this
    Arduino - Radio - Ethernet
    13      - SCK   - SCK
    12      - MISO  - MISO/SO
    11      - MOSI  - MOSI/SI
    10      - NSS (CS)
    7       -       - SS/CS
    2       - DIO0  -
    

    Be sure to power the W5100 with 5V and the radio with 3v3!

    Then, you need to modify the w5100.h file to disable radio interruption during SPI use:
    Find

    #else
      inline static void initSS()    { DDRB  |=  _BV(2); };
      inline static void setSS()     { PORTB &= ~_BV(2); };
      inline static void resetSS()   { PORTB |=  _BV(2); };
    #endif
    

    and replace with

    #elif defined(W5100SPIPATCH)
      inline static void initSS()    { DDRD  |=  _BV(7); };
      inline static void setSS()     { cli(); PORTD &= ~_BV(7); };
      inline static void resetSS()   { PORTD |=  _BV(7); sei(); };
    #endif
    

    Then, downgrade the board manager "Arduino AVR boards" to version 1.6.11 and rebuild.

    Finally, here is my working code:

    /**
     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     *
     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
     *
     * Documentation: http://www.mysensors.org
     * Support Forum: http://forum.mysensors.org
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     *
     *******************************
     *
     * REVISION HISTORY
     * Version 1.0 - Henrik EKblad
     * Contribution by a-lurker and Anticimex,
     * Contribution by Norbert Truchsess <norbert.truchsess@t-online.de>
     * Contribution by Tomas Hozza <thozza@gmail.com>
     *
     *
     * DESCRIPTION
     * The EthernetGateway sends data received from sensors to the ethernet link.
     * The gateway also accepts input on ethernet interface, which is then sent out to the radio network.
     *
     * The GW code is designed for Arduino 328p / 16MHz.  ATmega168 does not have enough memory to run this program.
     *
     * LED purposes:
     * - To use the feature, uncomment MY_DEFAULT_xxx_LED_PIN in the sketch below
     * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
     * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
     * - ERR (red) - fast blink on error during transmission error or recieve crc error
     *
     * See http://www.mysensors.org/build/ethernet_gateway for wiring instructions.
     *
     */
    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_RFM69
    #define MY_RFM69_FREQUENCY RF69_433MHZ
    
    // La définition des PIN ci dessous n'est pas nécessaire, car c'est celle de base
    //#define MY_RF69_IRQ_PIN 2
    //#define MY_RF69_SPI_CS 10
    
    // Enable gateway ethernet module type
    #define MY_GATEWAY_W5100
    
    #define MY_IP_ADDRESS 192,168,0,22
    #define MY_IP_SUBNET_ADDRESS 255,255,255,0
    // The port to keep open on node server mode / or port to contact in client mode
    #define MY_PORT 5003
    
    // The MAC address can be anything you want but should be unique on your network.
    // Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use.
    // Note that most of the Ardunio examples use  "DEAD BEEF FEED" for the MAC address.
    #define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
    
    // Enable inclusion mode
    #define MY_INCLUSION_MODE_FEATURE
    // Enable Inclusion mode button on gateway
    //#define MY_INCLUSION_BUTTON_FEATURE
    // Set inclusion mode duration (in seconds)
    #define MY_INCLUSION_MODE_DURATION 60
    // Digital pin used for inclusion mode button
    //#define MY_INCLUSION_MODE_BUTTON_PIN  3
    
    
    // Flash leds on rx/tx/err
    #define MY_LEDS_BLINKING_FEATURE
    // Set blinking period
    #define MY_DEFAULT_LED_BLINK_PERIOD 300
    #define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
    #define MY_DEFAULT_RX_LED_PIN  5  // Receive led pin
    #define MY_DEFAULT_TX_LED_PIN  6  // Transmit led pin
    
    
    #if defined(MY_USE_UDP)
      #include <EthernetUdp.h>
    #endif
    #include <Ethernet.h>
    #include <MySensors.h>
    
    
    void setup() {
    }
    
    void presentation() {
    }
    
    void loop() {
     }
    }
    
    

    Hope it helped
    Fred

    Troubleshooting

  • [SOLVED] W5100 Ethernet gateway with RFM69 Radio fails at init
    Frédéric GrandjeanF Frédéric Grandjean

    Yes of course I used a level converter. Ordered the one proposed on the radio page. Works well!

    Troubleshooting
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular