Adafruit CC33000 WifiGateway



  • Hello i don't know if this has been done before but i just wanted to throw my project out there. It isnt commented very well and im sorry but most of it comes from the Ethernet Gateway code anyway so i think it is easy enough to figure out.

    anyway here it is. Wiring is fairly simple, wire spi lines in paralles, then just follow the d#defines.
    https://github.com/pressy4pie/wifigateway/tree/master



  • Also just a note it hits 98% of memory on an UNO. So any further revisions are almost garanteed to need a mega or similar.



  • @Connor-Rigby very interesting.

    A good candidate to port to 1.6, if you're interested check this out http://forum.mysensors.org/topic/2709/mysensors-wifi-gateway-with-arduino-uno-and-cc3000

    Thanks for sharing



  • I haven't updated to 1.6 yet but I'll try it out tomorrow. Right now it needs a bit of self healing stuff in the actual loop itself. I had to remove some of the original Ethernet gateway code that should be added back. This was more of proof of concept. It does work but after the connection drops for any reason its hard to get it running again without resetting both the controller and the gateway.

    Edit: im using the development branch at mysensors now so if anyone wants to try it out, check here



  • Bump check the edit on the last post



  • Hey @Connor-Rigby

    I will try it for sure.

    But one question when I go to https://github.com/PressY4EKG/Arduino/blob/2177387fc4f388de02f60cd4698f62e4a200fefe/libraries/MySensors/core/MyHwCC3000.cpp

    Its empty...

    Does this mean you're using the CC3000 libraries directly?



  • Hey @Connor-Rigby

    Here are my findings...

    Compilation perfect, no issues.

    The changes to the gateway example I used were just pin configurations:

    #define MY_RF24_CE_PIN 9
    #define MY_RF24_CS_PIN 10
    #define MY_RF24_CHANNEL  111
    ...
    #define MY_CC3000_CS 8
    #define MY_CC3000_VBAT 5
    #define MY_CC3000_IRQ 3
    
    

    It starts up like this:

    255;3;0;9;Starting gateway (RNNGA-, 2.0.0-beta)
    0;255;3;0;9;Radio init successful.
    Starting WiFi
    CC3000 Started
    Connected
    Got IP
    0;255;3;0;9;Init complete, id=0, parent=0, distance=0
    

    All good.
    I wanted to tell me what was my IP address so I've added these lines to the MyGatewayTransportEthernet.ccp

    MY_SERIALDEVICE.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
    MY_SERIALDEVICE.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
    MY_SERIALDEVICE.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
    MY_SERIALDEVICE.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
    MY_SERIALDEVICE.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
    MY_SERIALDEVICE.println();
    

    But the results were not what I expected

    255;3;0;9;Starting gateway (RNNGA-, 2.0.0-beta)
    0;255;3;0;9;Radio init successful.
    Starting WiFi
    CC3000 Started
    Connected
    Got IP
    
    IP Addr: 8.0.0.1
    Netmask: 0.255.252.225
    Gateway: 168.1.6.0
    DHCPsrv: 0.0.168.168
    DNSserv: 225.252.255.115
    0;255;3;0;9;Init complete, id=0, parent=0, distance=0
    

    Strange...
    Any way I've fixed the ip address on my router
    0_1454263821040_upload-af65d368-3fba-4abc-897e-ff9cd3b6d411

    and can ping it from a terminal

    RVB:~ rvb$ ping 10.0.0.7
    PING 10.0.0.7 (10.0.0.7): 56 data bytes
    64 bytes from 10.0.0.7: icmp_seq=0 ttl=64 time=4.674 ms
    64 bytes from 10.0.0.7: icmp_seq=1 ttl=64 time=19.361 ms
    64 bytes from 10.0.0.7: icmp_seq=2 ttl=64 time=4.335 ms
    64 bytes from 10.0.0.7: icmp_seq=3 ttl=64 time=9.256 ms
    64 bytes from 10.0.0.7: icmp_seq=4 ttl=64 time=7.163 ms
    64 bytes from 10.0.0.7: icmp_seq=5 ttl=64 time=10.054 ms
    64 bytes from 10.0.0.7: icmp_seq=6 ttl=64 time=24.724 ms
    64 bytes from 10.0.0.7: icmp_seq=7 ttl=64 time=4.882 ms
    ^C
    --- 10.0.0.7 ping statistics ---
    8 packets transmitted, 8 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 4.335/10.556/24.724/7.046 ms
    

    I'm also able to send commands via MYSController
    0_1454263909893_upload-5f627acc-db71-4c57-a234-60cf066bfcf9

    0;255;3;0;9;Eth: connect
    0;255;3;0;9;Eth: 0;0;1;0;0;123
    0;255;3;0;9;Eth: 0;0;1;0;0;456
    0;255;3;0;9;Eth: 0;0;1;0;0;789
    

    So Kudos Mr. @Connor-Rigby you did it, excellent work!!

    And since we love pictures...

    0_1454264565377_IMG_0388.JPG

    Cheers



  • @barduino said:

    Hey @Connor-Rigby

    I will try it for sure.

    But one question when I go to https://github.com/PressY4EKG/Arduino/blob/2177387fc4f388de02f60cd4698f62e4a200fefe/libraries/MySensors/core/MyHwCC3000.cpp

    Its empty...

    Does this mean you're using the CC3000 libraries directly?

    Yeah it is. i was going to dump the code into that file and header but i decided to just usee the library.

    @barduino said:

    Hey @Connor-Rigby

    Here are my findings...

    Compilation perfect, no issues.

    The changes to the gateway example I used were just pin configurations:

    #define MY_RF24_CE_PIN 9
    #define MY_RF24_CS_PIN 10
    #define MY_RF24_CHANNEL  111
    ...
    #define MY_CC3000_CS 8
    #define MY_CC3000_VBAT 5
    #define MY_CC3000_IRQ 3
    
    

    It starts up like this:

    255;3;0;9;Starting gateway (RNNGA-, 2.0.0-beta)
    0;255;3;0;9;Radio init successful.
    Starting WiFi
    CC3000 Started
    Connected
    Got IP
    0;255;3;0;9;Init complete, id=0, parent=0, distance=0
    

    All good.
    I wanted to tell me what was my IP address so I've added these lines to the MyGatewayTransportEthernet.ccp

    MY_SERIALDEVICE.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
    MY_SERIALDEVICE.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
    MY_SERIALDEVICE.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
    MY_SERIALDEVICE.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
    MY_SERIALDEVICE.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
    MY_SERIALDEVICE.println();
    

    But the results were not what I expected

    255;3;0;9;Starting gateway (RNNGA-, 2.0.0-beta)
    0;255;3;0;9;Radio init successful.
    Starting WiFi
    CC3000 Started
    Connected
    Got IP
    
    IP Addr: 8.0.0.1
    Netmask: 0.255.252.225
    Gateway: 168.1.6.0
    DHCPsrv: 0.0.168.168
    DNSserv: 225.252.255.115
    0;255;3;0;9;Init complete, id=0, parent=0, distance=0
    

    Strange...
    Any way I've fixed the ip address on my router
    0_1454263821040_upload-af65d368-3fba-4abc-897e-ff9cd3b6d411

    and can ping it from a terminal

    RVB:~ rvb$ ping 10.0.0.7
    PING 10.0.0.7 (10.0.0.7): 56 data bytes
    64 bytes from 10.0.0.7: icmp_seq=0 ttl=64 time=4.674 ms
    64 bytes from 10.0.0.7: icmp_seq=1 ttl=64 time=19.361 ms
    64 bytes from 10.0.0.7: icmp_seq=2 ttl=64 time=4.335 ms
    64 bytes from 10.0.0.7: icmp_seq=3 ttl=64 time=9.256 ms
    64 bytes from 10.0.0.7: icmp_seq=4 ttl=64 time=7.163 ms
    64 bytes from 10.0.0.7: icmp_seq=5 ttl=64 time=10.054 ms
    64 bytes from 10.0.0.7: icmp_seq=6 ttl=64 time=24.724 ms
    64 bytes from 10.0.0.7: icmp_seq=7 ttl=64 time=4.882 ms
    ^C
    --- 10.0.0.7 ping statistics ---
    8 packets transmitted, 8 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 4.335/10.556/24.724/7.046 ms
    

    I'm also able to send commands via MYSController
    0_1454263909893_upload-5f627acc-db71-4c57-a234-60cf066bfcf9

    0;255;3;0;9;Eth: connect
    0;255;3;0;9;Eth: 0;0;1;0;0;123
    0;255;3;0;9;Eth: 0;0;1;0;0;456
    0;255;3;0;9;Eth: 0;0;1;0;0;789
    

    So Kudos Mr. @Connor-Rigby you did it, excellent work!!

    And since we love pictures...

    0_1454264565377_IMG_0388.JPG

    Cheers

    yeah the cc3000 handles all that information weird. on monday ill try to get that going. i decided i wasnt actually going to use this on my project anyway.



  • @Connor-Rigby

    I can try to give it a shot.

    My objective is the MQTTGateway but with what you've done so far I think I can try to tackle it.

    It would be interesting to add this to the development branch I wonder what @hek and the MySensors folks think about that possibility

    Thanks



  • @barduino
    i made a pull request for the development branch but they want me to change a couple more things before they merge it. I just havent got around to it yet. Ive never messed with the mqtt gateway nor do i really even know what it is but let me know if i can help you out


Log in to reply
 

Suggested Topics

  • 8
  • 7
  • 1
  • 5
  • 1
  • 1

15
Online

11.4k
Users

11.1k
Topics

112.7k
Posts