Shop OBEX P1 Docs P2 Docs Learn Events
Prop Quick Wifi is now available — Parallax Forums

Prop Quick Wifi is now available

tonyp12tonyp12 Posts: 1,951
edited 2014-10-05 15:11 in Propeller 1
Price: $39.95 + $5.95 shipping
First 5 early-bird orders ships in 2days, the rest will ship in 10 days.
btn_buynow_LG.gif
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=NG6HSKAW5NGNE

PropQuick3.jpg?psid=1

Uses Texas Instruments CC3000 wifi module, that have many features like 4 tcp/udp ports at once etc.
As bonus 12bit 4channel A/D converter on board : ADS1015

Software driver is a project in progress and all features will be added over time.
These SPIN objects have already been added.
wifi.event
wifi.macid
wifi.policy(0)
wifi.connect(string("MywifiSSID"),3,string("Pass12345"))
wifi.socket(192,168,1,120,3001)
wifi.send(string("HELLO123"))
wifi.close_socket(0)

Plain breakout board is soon also available that works with the PPDB board etc.
953 x 844 - 110K
«1

Comments

  • mindrobotsmindrobots Posts: 6,506
    edited 2013-05-21 09:49
    I said I would, so I did!!

    Something new and shiny to play with!!

    I can use it to one up this creation arduino-controlled-html5-etch-a-sketch-using-node-js-and-websockets - the A/D converter is just the bonus I needed!!

    I wish you luck Tony! I don't want to have a collectors item!! :lol:
  • Don MDon M Posts: 1,652
    edited 2013-05-21 10:50
    I'm in for 1. Money sent via PayPal...
  • Brian RileyBrian Riley Posts: 626
    edited 2013-05-21 12:11
    I also just ordered one .... Tony, put me on your list of people to notify for the PPDB version. I still get a lot of use from the multisegment display on the PPDB using your control board.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-05-21 14:31
    tonyp12 wrote: »
    Price: $39.95 + $5.95 shipping
    First 5 early-bird orders ships in 2days, the rest will ship in 10 days.
    btn_buynow_LG.gif
    https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=NG6HSKAW5NGNE

    PropQuick3.jpg?psid=1

    Uses Texas Instruments CC3000 wifi module, that have many features like 4 tcp/udp ports at once etc.
    As bonus 12bit 4channel A/D converter on board : ADS1015

    Software driver is a project in progress and all features will be added over time.
    These SPIN objects have already been added.
    wifi.event
    wifi.macid
    wifi.policy(0)
    wifi.connect(string("MywifiSSID"),3,string("Pass12345"))
    wifi.socket(192,168,1,120,3001)
    wifi.send(string("HELLO123"))
    wifi.close_socket(0)

    Plain breakout board is soon also available that works with the PPDB board etc.
    Looks nice but it doesn't look like it's specifically designed for the QuickStart. Where does it plug in? Do you have any plans for a PropGCC driver?
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-05-21 15:20
    >Looks nice but it doesn't look like it's specifically designed for the QuickStart. Where does it plug in?

    Yes it is, it uses P22 to P27 and gnd+power, the mounting hole matches up with quickstarts upper right hole for a optional stand-off.
    It also share i2c with eeprom for the A/D, share P30 for optional A/D Irq flag.
    It uses the pins that is surrounded by white boxes in the pic.
    P0 to P21 is free for you to use with anything you want.

    >PropGCC driver?
    I have never written any code in C (C# though) and porting TI's C library would be more work than writing something from scratch in Spin/Pasm.
    640 x 208 - 46K
  • vanmunchvanmunch Posts: 568
    edited 2013-05-21 15:22
    I'd like to buy two, but it won't let me change the quantity.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-05-21 15:23
    tonyp12 wrote: »
    >Looks nice but it doesn't look like it's specifically designed for the QuickStart. Where does it plug in? Do you have any plans for a PropGCC driver?

    Yes it is, it uses P22 to P27 and gnd+power, the mounting hole matches up with quickstarts upper right hole for a optional stand off.
    It also share i2c with eeprom for the A/D, share P31 for optional A/D Irq flag.
    It uses the pins that is surrounded by a white boxes in the pic.
    P0 to P21 is free for you to use with anything you want.
    Thanks! I see how it fits now. Pretty nice!
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-05-21 15:36
    >I'd like to buy two, but it won't let me change the quantity
    As I build these by hand (with the help of a paste stencil) I have a limit 1 per person for now.
  • Ken GraceyKen Gracey Posts: 7,392
    edited 2013-05-22 17:00
    My order is placed, too. Will give it to one of our engineers to take a look, and see if we've got some s y n e r g y!

    Ken Gracey
  • TrapperBobTrapperBob Posts: 142
    edited 2013-05-22 17:12
    My order is in! Looking forward to working with coding.
  • rokickirokicki Posts: 1,000
    edited 2013-05-23 13:27
    David Betz wrote: »
    Looks nice but it doesn't look like it's specifically designed for the QuickStart. Where does it plug in? Do you have any plans for a PropGCC driver?

    I'm very intrigued by this.

    I encourage you to support bind() and listen() and sufficient base protocol code to support
    WebSocket use.

    With WebSockets support, a Prop bot can interact with and be controlled by a cell phone
    (or any other platform that has a browser) completely wirelessly.

    The sensors in the cell phone can also be made available to smarts that live either in
    the phone or in the Prop.

    This could be very cool!
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-05-23 14:25
    >I encourage you to support bind() and listen() and sufficient base protocol code
    Eventually.
    Using the Quick-WiFi to establish the connection is already there and is the preferred way if the Prop is battery operated to save juice.
    So as long the server on the other end is doing the listen(), full duplex communication over tcp is easy.
    I will post a simple C# server code later.
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-05-25 10:55
    How many do you have to make before the price goes down?

    Obviously WiFi is the direction everything is going, but the hand built units are still just a tad too expensive for my needs.

    Any ball park on cost for runs of 1,000? 10,000?
  • NWCCTVNWCCTV Posts: 3,629
    edited 2013-05-25 12:20
    @tonyp12, Are these primarily for use with a QS or will it work with a Prop Demo or BOE board also? I am currently using the Serial Wi-Fi module that Jeff @ Propeller Powered sells. What is the advantage of your device over this?
  • Mike GMike G Posts: 2,702
    edited 2013-05-25 13:02
    I ordered one too. Looking forward to some play time.
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-05-25 16:29
    >What is the advantage of your device over
    This wifi module is not some uart pass through, it can set up multiple sockets and the wifi settings can be changed on the fly by the Prop.

    > Are these primarily for use with a QS

    I made generic breakout version 6+2pins in a straight row, it does not have the onboard A/D.
    Onboard LED for visual data i/o.
    I will put these up for sale now for $34.95 + 4.95 Shipping.

    btn_buynow_LG.gif
    640 x 378 - 64K
  • Mike GMike G Posts: 2,702
    edited 2013-05-25 17:44
    >This wifi module is not some uart pass through, it can set up multiple sockets and the wifi settings can be changes on the fly by the Prop.
    Good!

    I've been messing around with a Roving Networks device this afternoon which uses a UART - and that's fine. However, it requires another layer to deal with the UART COM.
  • mindrobotsmindrobots Posts: 6,506
    edited 2013-05-25 18:25
    Hi Tony,

    Mine showed up in the mail today. I need to set aside some play time! Is there a link to the driver code someplace? It sure is a nice tiny little package to add WiFi to a Quickstart!
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-06-09 21:19
    Video of my BreakOut Version

    mqdefault.jpg
    OBJ
      wifi   :      "Wifi Serial Terminal"
      LED    :      "LED17v2"
    PUB Main
    
      LED.Display(@textBuffer)  
      wifi.Start(22)                                          'start cog,pingroup starts at P22 (not used yet)
      wifi.buffsize                                           'get buffsize.
      wifi.event                                              'declare event flags 
      wifi.macid                                              'yours will start with 0800
      'wifi.policy(0)                                         'set connection policy, eeprom saved needed just once
      wifi.connect(string("myssid"),3,string("password"))     '0=none 1=wep 2=wpa, 3=wpa2
      bytemove(@textBuffer,string("DHCP<>"),8)                'show that dhcp is done
      wifi.socket(192,168,1,120,3001)                          'socket on the pc
      repeat  
        wifi.send(string("Ready"))
        wifi.read(@textBuffer)
        waitcnt(cnt + (clkfreq/2))                            'wait 1/2 sec, run forever 
      wifi.close_socket(0) 
    
  • mindrobotsmindrobots Posts: 6,506
    edited 2013-06-10 05:43
    Mine's been working fine. Mostly just running your demo code for now as I figure out what I want to do with it and get some free minutes to string together.

    I like the demo video! I agree completely with the message! (I won't ruin the ending for everyone else!)
  • Brian RileyBrian Riley Posts: 626
    edited 2013-06-10 16:19
    Tony, I am getting nowhere with this code.

    It has an unresolved reference to textBuffer. I put that in.

    LED17 is in place on P0 and was checked with LED17v2Demo

    The WiFi breakout board is in an the wiring triple checked

    The program compiles and boots, no output to either LED17 nor serial console, just an endlessly blinking yellow LED on the WiFi Breakout board
    OBJ
      wifi   :      "Wifi Serial Terminal"
      LED    :      "LED17v2"
    PUB Main                                                                                                               
    
      LED.Display(@textBuffer)  
      wifi.Start(22)                                          'start cog,pingroup starts at P22 (not used yet)
      wifi.buffsize                                           'get buffsize.
      wifi.event                                              'declare event flags 
      wifi.macid                                              'yours will start with 0800
      wifi.policy(0)                                         'set connection policy, eeprom saved needed just once
      wifi.connect(string("Wulfden"),0,string(" "))     '0=none 1=wep 2=wpa, 3=wpa2
      bytemove(@textBuffer,string("DHCP<>"),8)                'show that dhcp is done
      wifi.socket(10, 0, 1, 55,3001)                          'socket on the pc
      repeat  
        wifi.send(string("Ready"))
        wifi.read(@textBuffer)
        waitcnt(cnt + (clkfreq/2))                            'wait 1/2 sec, run forever +
      wifi.close_socket(0)
    
    DAT
    textBuffer    byte "_-_-_-",0,0 '8 byte buffer but can be initial text.
    text1         byte "{[HI]}",0   'can be 1-6 letters in lenght in Uppercase/0-9
    
  • kuronekokuroneko Posts: 3,623
    edited 2013-06-10 16:25
    The program compiles and boots, no output to either LED17 nor serial console, just an endlessly blinking yellow LED on the WiFi Breakout board
    What are your _clkmode/_xinfreq settings? I'd assume that RCFAST isn't sufficient here.
  • Brian RileyBrian Riley Posts: 626
    edited 2013-06-10 16:53
    D'uuuhhhhhh [sound of the heel of Riley's palm impacting on his thick Irish skull]
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-06-10 17:37
    Yes, I used 16x PLL

    I also disabled the 10second time-out in tcp-read, just put a ' in front of "or"

    until word[@spi_buffer][3] == $1885 'or ((cnt - i) => clkfreq*10) '10sec timeout

    And wifi.policy(0) is only needed once as it's saved in the cc3000 nvram.

    Here is the tcp4 I use in the video. QuickSharp is a good little C# compiler.
    https://skydrive.live.com/redir?resid=6D7787B33D967B1A!1022

    The Video:
    https://skydrive.live.com/redir?resid=6D7787B33D967B1A!1023
  • Brian RileyBrian Riley Posts: 626
    edited 2013-06-10 23:19
    Up and running on PPDB now that I added clock freq and got TCP4.

    This " wifi.connect(string("Wulfden"),0,string(" ")) " gets me into an AP to the DHCP and assigns me an IP address ... how do I do the same thing but instead I tell DHCP what address I want?
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-06-11 07:32
    Though the cc3000 have an option to demand a fixed ip and also wifi.bind.
    I have work on those features in next update, and if Prop is on battery having it listen all the time is not the preferred option anyway.

    For now, tell your router
    http://www.dd-wrt.com/wiki/index.php/Static_DHCP

    It's also in your router you would set port forwarding, if you are expecting access from www.
  • Brian RileyBrian Riley Posts: 626
    edited 2013-06-13 14:45
    Tony,

    Would you please post the link(s) for the QuickSharp that you use.

    I tried Googling it and it seems like there is more than one program claiming to be "QuickSharp" !!!!! TNX
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-06-13 17:36
    http://sourceforge.net/projects/quicksharp/
    Don't click on big ad boxes saying download, as they are not the real thing.
    It should start downloading by itself after 3seconds.

    Though it have built-in console window that is used when you 'compile and run code' (right arrow icon)

    Some times my program don't like it so I just use compile (three arrows pointing down to a box icon)
    and test run my program the by double-clicking the exe file it created
    It will have same name as your source code name, but with .exe instead of .cs

    'C# + problem' is very google friendly due to not many unrelated sentences have C# in it.
  • dgatelydgately Posts: 1,630
    edited 2013-06-27 09:31
    Tony (first off, Thanks!),

    I get tcp4 and Wifi Serial Terminal Demo1.04 to connect and work together just one time... (they connect, then tcp4 sends my first 6 char length string to the Prop, the Prop receives the string, but that's it)...

    I actually recompiled tcp4.cs using Xamarin Studio (Mono) on Mac OS X and it appears to run, connect and continue to loop, waiting for the Prop (CC3000) to respond. The Prop runs, gets the first string I send from tcp4, but loops every 6 seconds, not receiving further strings from tcp4. I added some text output to "WiFi Serial Terminal.spin" for debugging each method (see screenshot)...

    Here's a screenshot of an execution (note that the Prop just keeps cycling without receiving new strings):
    TestTCP4.jpg


    I do notice that the following code is "unreachable" from Xamarin Studio's compile log, though your videos show that this code does get executed. It is not within the "while (true) {" loop in the tcp4.cs file that I got from skydrive. Is there a newer .cs source file?

    [/COLOR][FONT=Menlo][COLOR=#444444]    [/COLOR][COLOR=#444444]    [/COLOR][COLOR=#444444]client[/COLOR][COLOR=#444444][/COLOR][COLOR=#444444].[/COLOR][COLOR=#444444]Close[/COLOR][COLOR=#444444][/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444]([/COLOR][COLOR=#444444])[/COLOR][COLOR=#444444];[/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444] [/COLOR]
    [COLOR=#444444]    [/COLOR][COLOR=#444444]    [/COLOR][COLOR=#444444]newsock[/COLOR][COLOR=#444444][/COLOR][COLOR=#444444].[/COLOR][COLOR=#444444]Close[/COLOR][COLOR=#444444][/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444]([/COLOR][COLOR=#444444])[/COLOR][COLOR=#444444];[/COLOR][COLOR=#444444] [/COLOR]
    [COLOR=#444444]    [/COLOR][COLOR=#444444]    [/COLOR][COLOR=#3364a4]Console[/COLOR][COLOR=#3364a4][/COLOR][COLOR=#444444].[/COLOR][COLOR=#444444]WriteLine[/COLOR][COLOR=#444444][/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444]([/COLOR][COLOR=#f57d00]"[/COLOR][COLOR=#a53e00]\r[/COLOR][COLOR=#a53e00]\n[/COLOR][COLOR=#f57d00]Socket Closed[/COLOR][COLOR=#a53e00]\r[/COLOR][COLOR=#a53e00]\n[/COLOR][COLOR=#f57d00]----------------------------[/COLOR][COLOR=#f57d00]"[/COLOR][COLOR=#444444])[/COLOR][COLOR=#444444];[/COLOR][COLOR=#444444] [/COLOR]
    [COLOR=#444444]    [/COLOR][COLOR=#444444]    [/COLOR][COLOR=#3364a4]Thread[/COLOR][COLOR=#3364a4][/COLOR][COLOR=#444444].[/COLOR][COLOR=#444444]Sleep[/COLOR][COLOR=#444444][/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444]([/COLOR][COLOR=#f57d00]2000[/COLOR][COLOR=#444444])[/COLOR][COLOR=#444444];[/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444] [/COLOR][COLOR=#444444] [/COLOR][COLOR=#999988][I]//[/I][/COLOR][COLOR=#999988][I] [/I][/COLOR][COLOR=#999988][I]pause[/I][/COLOR][COLOR=#999988][I] [/I][/COLOR][COLOR=#999988][I]for[/I][/COLOR][COLOR=#999988][I] [/I][/COLOR][COLOR=#999988][I]2[/I][/COLOR][COLOR=#999988][I] [/I][/COLOR][COLOR=#999988][I]second[/I][/COLOR][COLOR=#999988][I].[/I][/COLOR]
    [COLOR=#444444][/COLOR][/FONT][COLOR=#333333]
    

    I would like to get the demo working before I start adding changes. It will be great to get the CC3000 working on my Stingray robot!

    Thanks,
    dgately





    1024 x 692 - 67K
  • tonyp12tonyp12 Posts: 1,951
    edited 2013-06-27 15:00
    Yes, some C# code part is unreachable as I did not include a break from the forever loop.
    You could test if user typed "$$exit" etc and then move on to close socket.

    Did you disable the 10second timeout in the Wifi Serial Terminal.spin
    just insert a ' before the or
    until word[@spi_buffer][3] == $1885 or ((cnt - i) => clkfreq*10) '10sec timeout

    I will try work on a wifi version that is a drop in replacement for parallax serial terminal,
    so people that don't want top dabble in C# can use a terminal program with the use of a tcp-to-com program.
Sign In or Register to comment.