Menu

Great Cow BASIC Ethernet support for ENC20j60

Anobium
2016-05-01
2021-11-26
1 2 > >> (Page 1 of 2)
  • Anobium

    Anobium - 2016-05-01

    Great Cow BASIC TCP/IP Stack capabilities are now available.

    You can serve web pages via the Great Cow BASIC HTTP Server, running on Great Cow BASIC programmed microcontrollers, utilising the Great Cow BASIC TCP/IP Stack.

    Great Cow BASIC Stack offers following features:

    • Portable across Great Cow BASIC across a wide range of microcontrollers
    • Cooperative multitasking TCP/IP stack
    • Use it as part of HTTP Server or custom TCP/IP based application
    • Multiple TCP socket support
    • HTTP Server with multiple connections support
    • Pages may be stored in internal program memory or external data EEPROM
    • PC based program to convert web pages into Great Cow BASIC File System (GCBFS)
    • Modular design to easily add new components

    The specifics of the TCP/IP are:

    • HTTP/TCP support
    • UDP support
    • UDP Echo support
    • Simple Network Time Protocol (SNTP) support
    • Telnet support
    • ICMP and therefore Ping
    • ARP
    • Maximum frame size of 1518 bytes
    • and, other key protocol items that are required for the TCP/IP stack

    We have developed. and adapted, many tools to test and validate the Great Cow BASIC TCP/IP stack. These tools will be part of the published package, along with demonstration programs.

    Enjoy.

     

    Last edit: Anobium 2016-05-01
  • Anobium

    Anobium - 2016-05-01

    NOTE

    Support for the Great Cow BASIC TCP/IP stack is only available from release of the Great Cow BASIC after 1st May 2016.

    You need the latest release to be able to use the Great Cow BASIC TCP/IP stack.

     
  • Anobium

    Anobium - 2016-05-01

    Want to join the TCPIP BETA program?

    You need....
    1. Some time
    2. Some patience
    3. A microcontroller with 1kb of RAM
    4. Some knowledge of HTML - basic needed
    5. An ENC28j60 Ethernet module

    Drop me a personal message and I can get you involved.

    This is a limited offer..... You get the latest Great Cow BASIC compiler... all nice and shiny plus compile times are now ULTRA fast!!!!

     
  • viscomjim

    viscomjim - 2016-05-04

    HOLY COW Evan, this is big. You guys keep amazing! I am just starting out with learning HTML, so I doubt I would be of much service. Will keep my eye out on this one. THANKS for all your hard work on this!!!!

     
  • Anobium

    Anobium - 2016-05-20

    Progress is slow, only because I am busy and this is the hardest thing I have ever done.

    Some screen shot of the protocol analysis.

    The source computer is running a browser or running command line instructions to create the traffic. This is using IP address 192.168.0.106

    The GCB úServer is on 192.168.0.103.

    You can see ARP, PING, UPD Echo and HTTP. HTTP works from the internet as expected via a router with the correct NAT settings (you dont have to use NAT but you would be mad not to!).

    I thought these would be worth sharing as I created them to evidence protocol compliance.

    Enjoy.

     
  • Anobium

    Anobium - 2016-05-20

    A sample, very simple web page looks like this.

    I have simple one pages supported, mutliple pages and AJAX support.

    The diagram is a very simple page - this is in-built within the solution to ensure a user gets something on the browser when using the µServer.

     

    Last edit: Anobium 2016-05-20
  • Anobium

    Anobium - 2016-05-20

    Latest fun facts...

    • Development is using an Xpress board (16f) with primary testing on 18f.
    • Goal is to have a mimimal HTTP server in a 16f, but will you can add/remove the protocol option to manage the overall memory usage
    • 18f is the same as above.. just more memory therefore can support more functionality
    • This is an SPI 4 wire solution. Add 3.3v and 0v and you should be working.
    • Currently, the cheapest ENC28J60 on eBay is 1GBP, less then $1.50 USD
     
  • Anobium

    Anobium - 2016-05-20

    A screen shot of stress testing the HTTP server.

    The sceen shot shows the command prompt window calling the GCB µServer using the command line utility wget.exe. This utility gets the web page from the GCB µServer. This window alse shows the http data stream obtained from the GCB µServer. This is running continually. This tests the memory stack, the packet handler and the full TCP/HTTP µServer. You can see that 352 bytes are identified, and saved, these bytes are the HTTP component of the wget call. These test executes about 5 times a second. The number of TCP/HTTP transactions is about 100 a second ( 50 packet incoming to the ENC28J60 and 50 outgoing). As the filtering on the ENC28J60 does not work (known bug) the microcontroller is handling several 1000 per second.

    The upper left screen shows the GCB µServer serial log. Address 192.168.0.106 has made an HTTP call (made by wget.exe), the number of bytes on the wire (B/Wire) is 451, and the TCP packet is 397 bytes, with a HTML payload of 349. We have less bytes than above.... wget.exe adds additional CRLFs to the HTML to complete the save operation.

    Top right - the web page being called. This is for reference only.

    All looks ok to me.

     
  • viscomjim

    viscomjim - 2016-05-21

    Amazing great work!!!!!!

     
    • Anobium

      Anobium - 2016-05-21

      Getting there slowly. Today, I have just got the quality assurance stamp from the W3C Markup Validation Service. Means the web page is valid and meets the mininum standard for web pages.

      This is another little step forward - the pages are compliant with the W3C standard. See attachment. There two warnings but these are no critical to the operation of the µServer.

       
  • Anobium

    Anobium - 2016-05-23

    Some progress... I have the TCPIP stack now responding to a single HTTP request which requires the HTTP server to respond with multiple packets. See attachment.

     
  • Anobium

    Anobium - 2016-05-23

    So, how do users use the Ethernet driver? The can publish web pages, web pages can get any data from anything, a register, a port, a variable and then using the two public user methods create a web page. When someone calls the Ethernet adapter IP address the page is published - just like a web server!!

    See the two attachments. #1) This shows the source code show HTTPPrint and the HTTPSend command. These are the two public methods to create and publish a web page. #2) Shows the web page produced. This is updated every 5 secs as specified in the user program.

    Getting there....

     

    Last edit: Anobium 2016-05-23
    • joe rocci

      joe rocci - 2016-05-23

      Anobium

      Do you plan to support HTML5 WebSockets? This can be very useful when making a GCB app that needs to communicate in real-time with a web app.

      From: Anobium
      Sent: Monday, May 23, 2016 2:44 PM
      To: [gcbasic:discussion]
      Subject: [gcbasic:discussion] Great Cow BASIC Ethernet support for ENC20j60

      So, how do users use the Ethernet. The can publish web pages, web pages can get any data from anything, a register, a port, a variable and then using two public user methods create a web page. When someone calls the Ethernet adapters address the page is published.

      See the two attachments. #1) Is the source code show HTTPPrint and the HTTPSend command. These are the two public methods to create and publish a web page. #2) Shows the web page produced. This is updated every 5 secs as specified in the user program.

      Getting there....

      Attachments:

      a.. UserCode1.JPG (119.3 kB; image/jpeg)
      b.. UserPage1.JPG (24.3 kB; image/jpeg)


      Great Cow BASIC Ethernet support for ENC20j60


      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/gcbasic/discussion/579125/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       
  • Anobium

    Anobium - 2016-05-23

    Static, user created with dynamic updating and Ajax are currently the plan.

    If i knew what HTML web sockets was i would have a potential answer...... I am sure this is possible but any socket application would be potentially be a single socket solution.

    Got a url with some good, simple information? I need more information.

     
    • joe rocci

      joe rocci - 2016-05-23

      There’s tons on the net about WebSockets, including a number of Arduino implementations. Having said that, I know little about how to implement/hook up the server side, though I’ve done a lot of browser-side Javascript to interface to the WebSockets server. It’s really great if you need continuous bi-directional data streaming.

      From: Anobium
      Sent: Monday, May 23, 2016 3:18 PM
      To: [gcbasic:discussion]
      Subject: [gcbasic:discussion] Great Cow BASIC Ethernet support for ENC20j60

      Static, user created with dynamic updating and Ajax are currently the plan.

      If i knew what HTML web sockets was i would have a potential answer...... I am sure this is possible but any socket application would be potentially be a single socket solution.

      Got a url with some good, simple information? I need more information.


      Great Cow BASIC Ethernet support for ENC20j60


      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/gcbasic/discussion/579125/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       
  • Peter

    Peter - 2016-09-23

    Is there any demo code/example available for this? I couldn't find one in my installed GCB or on SF.

    I've just received a couple of ENC20J60 boards and fancy trying them out (with the dreaded SPI.. :) )

     
    • Anobium

      Anobium - 2016-09-24

      I have a beta program available.

      Send me an personal message and we can restart the work in the second week of November. I have no time to package up or time to put my brain to the the final few capabilites required to release this driver.

      You will need....

      1. A lot of time
      2. A lot of patience
      3. A microcontroller with 1kb of RAM
      4. A lot of knowledge of HTML
      5. An ENC28j60 Ethernet module

      All that said.... Drop me a personal message and I can get you involved.

       
  • mr.Botsman

    mr.Botsman - 2021-11-24

    Hi all!
    Can anyone say something about enc28j60 support in Great Cow Basic?
    Who seen library and/or example with working network from Atmega328 to PC with ENC28j60?

     
    • Anobium

      Anobium - 2021-11-24

      I sent you a PM today. But, here is the summary.

      The libtary is not chip specific but the chip will need a lot of RAM.
      The stack supports ARP, PING, UPD Echo and HTTP. HTTP works from the internet as expected via a router with the correct NAT settings (you dont have to use NAT but you would be mad not to!).

       
      • mr.Botsman

        mr.Botsman - 2021-11-24

        Thank You!
        but I have a trouble with my e-mail., I add new address to account right now. Can You send again, please.

        (forgive me, I'm not experienced user of SourceForge, and don't know where personal message on this site)

         
        • Anobium

          Anobium - 2021-11-24

          No problem, just use this thread.

           
  • mr.Botsman

    mr.Botsman - 2021-11-24

    Ok!
    so... where I can download library/example and try to use it?
    I download latest version (GreatCowBASIC-UNIX-v0_98_07_r983), and try find library/demo in archive, but not found it...

     
    • Anobium

      Anobium - 2021-11-24

      OK. I will check (on my Thursday am London time). I will post after I have located etc.

      Evan

       
      • mr.Botsman

        mr.Botsman - 2021-11-24

        Thank You. I will waiting Your message with patience.

         
  • mr.Botsman

    mr.Botsman - 2021-11-24

    I found some files in Your profile on github... is this what I searching?

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.