IoT5500 +P8 Ethernet Server "LAN ANT" ultra-compact module

2»

Comments

  • D.PD.P Posts: 790
    edited 2015-01-07 - 19:19:41
    D.P. received a shipment of these modules and was asking about where to get the socket strips which these modules could plug into. Of course pin headers themselves are easy to get but not so socket strips and they vary a lot in quality and price. So I had an idea that if I used stacking socket strips in such a way that the module could be mounted upside down into a pin header and that it would be flush with the pcb that it is mounted on. Anyway I tried it out and it looks good and it's gotta be the smallest flush mounting wired network server out there.

    IOT5500+P8-VS
    attachment.php?attachmentid=112698

    And this follows the standard in that the ethernet contacts face down so that dust doesn't settle on the electrical leads, yup really,
    220px-10P10C-socket_pinout.svg.png
  • Peter JakackiPeter Jakacki Posts: 9,088
    edited 2015-03-16 - 20:29:30
    If anyone is interested in getting hold of these modules then there are a couple of ways you can order them If you are in the US you might be able to order some from D.P. who should have stocks of these but you will have to check with him as D.P. seems to be absent from the forums lately.

    If you are elsewhere or have trouble getting hold of them then you can order them directly from me. Just email me with a request and you can PayPal me (peterjakacki@gmail.com) in US dollars is the best way. Shipping is still a problem but I believe airmail for small parcels is quite cheap and I will come back and confirm shipping costs. First one to order gets shipping free (so I can check costs).

    MJB will be able to handle local distribution in Europe once he comes back from Spain :)

    Eventually if all goes well then these will be available from WIZnet and their distributors but don't hold your breath because it won't happen overnight.

    If ordering directly from me then my current pricing for one offs are as follows (in USD):

    IoT5500-VS - W5500 Module fitted with vertical stack headers - $18

    IoT5500+P8-VS - W5500 module with 96MHz Prop + microSD socket (no card) fitted with vertical stack headers for normal or inverted mounting. - $32

    IoT5500+P8M-VS - same except has 128Mbit serial Flash - $35

    +P8 - 96MHz Propeller module with 1Mbit EEPROM + microSD socket - $16

    +P8M - 96MHz Propeller module with 1Mbit EEPROM + microSD socket + 128Mbit serial Flash - $19


    Pricing is based on relatively low volume and is just above actual costs with all things factored in although larger runs of a few thousand are necessary to bring costs down further. Email me for quantity pricing and I will see what I can do as it's a bit hard to work out in general since the margins look a bit slim.

    The P8 is preloaded with Tachyon networking software just waiting for a microSD card although I am looking at having it work with some basic files in EEPROM and I will probably interface the optional serial Flash devices into EASYFILE as well.

    If you are integrating the IoT5500 into your own Prop system and software you can also use the edge connect headerless version by simply having a cutout in your pcb where the contact fingers mate up. Just specify IoT5500-SM for this part.

    email: pbjtech@gmail.com
  • Cluso99Cluso99 Posts: 16,170
    edited 2015-03-17 - 23:38:32
    Peter,
    Best shipping via Aust Post Airmail is the letter rate (with green customs form from PO) which can be up to about 20mm thick - they have a slot that they put the envelope thru.
    use padded (bubble) bags. It was ~$2.65 for <250g. Therefore it is best if you don't solder the long pin sockets on the pcb as this makes the thickness too big, and it costs $$$.
  • MJBMJB Posts: 1,154
    edited 2015-03-18 - 01:18:33
    If anyone is interested in getting hold of these modules then there are a couple of ways you can order them

    MJB will be able to handle local distribution in Europe once he comes back from Spain :)
    As soon as there are modules in stock ...
    I am there the week after easter.

    So if anybody is interrested here in Europe send your preorders to Peter
    ASAP
    so he can put the required numbers in a single package and we can save on transport.
    I can do the local mail forwarding here then.
  • For given reason I want to bring this to the focus again ;-)
  • For given reason I want to bring this to the focus again ;-)
    A batch of IoT5500+P8 has arrived here in good old germany and now steep learning curve is starting. Very steep.
    The first and final goal is to create a IPSERIAL application, that is, ASCII text is fed from PC via Ethernet to IoT and routed to the serial port P31/30. This final goal will be stretched.
    preinstalled:
    Tachyon V24150126.1930
    Easynet.fth 150101.0800
    W5500.fth 141122.1200
    1.: Are those current versions?
    Bootup message: "*** Tachyon Forth EASYNET Network.... and EASYFILE File Server ***"
    2.: EASYFILE is missing, not loaded?

    A connection from ICEWEASEL can be established, but due to missing file system no web pages are accessible.

    3.: How can IPSERIAL be used?
    Telnet is working and uses the same port 10001 as IPSERIAL, but we could not send data to the serial port via ethernet. Is there a tool so do IPSERIAL needed on the PC, like netcat, or the address line of the browser?
  • ErNa wrote: »
    For given reason I want to bring this to the focus again ;-)
    A batch of IoT5500+P8 has arrived here in good old germany and now steep learning curve is starting. Very steep.
    The first and final goal is to create a IPSERIAL application, that is, ASCII text is fed from PC via Ethernet to IoT and routed to the serial port P31/30. This final goal will be stretched.
    preinstalled:
    Tachyon V24150126.1930
    Easynet.fth 150101.0800
    W5500.fth 141122.1200
    1.: Are those current versions?
    Bootup message: "*** Tachyon Forth EASYNET Network.... and EASYFILE File Server ***"
    2.: EASYFILE is missing, not loaded?

    A connection from ICEWEASEL can be established, but due to missing file system no web pages are accessible.

    3.: How can IPSERIAL be used?
    Telnet is working and uses the same port 10001 as IPSERIAL, but we could not send data to the serial port via ethernet. Is there a tool so do IPSERIAL needed on the PC, like netcat, or the address line of the browser?

    Although they are not the most current the preinstalled version should work fine, as long as you have a FAT32 microSD loaded with the file names in 8.3 format everything should be fine. The startup is only showing those modules whose names are in the hub dictionary as the names for the other modules have been moved to the EEPROM. This is a little detail that I will fix up when I remember to one day. You can type .EEMOD and that will list all the modules.

    IPSERIAL should be straightforward and the reason telnet is on 10001 is simply for my convenience but we could assign telnet back to 23 and give you multiple IPSERIAL sockets that are configured to whichever pins and baud rate you need. I will look at that in the morning and post an update.


  • Nice to see this thread alive again. For any US based Tachyon or other language users I have some of these modules in two parts unassembled, that is the Ethernet and the Prop board with the headers to mount them together. Not a sales pitch, they are sent at cost. Limited quantity for prototyping, see Peter for production quantities and such.

    Also MJB let me know when you get your hands on one, would really like to start up where we left off with the AJAX and <fth /fth> syntax enhancements to EasyNet!

    dp
  • Hello there,
    I'm fighting with the sdcard format. As far as I know your are also using unix. Can you give an advice how to format an/a sdcard for use in IoT5500?
    I tried:
    fdisk /dev/mmcblk0
    
    deleted all existing partitions, create one new and gave type 'b' (W95 FAT32).
    Then I formatted
    mkfs.vfat /dev/mmcblk0p1
    
    copied IoT5500.rom etc. to the device, plugged into IoT but on Tachyon console
    LS
    
    didn't work.
    Is this the correct procedure for a tachyon usable sdcard?

    STOP! I tried another ... also not working. Is it possible that 2GB (µ-)sdcards are not supported?
    Thanks, proplem
  • proplem wrote: »
    Hello there,
    I'm fighting with the sdcard format. As far as I know your are also using unix. Can you give an advice how to format an/a sdcard for use in IoT5500?
    I tried:
    fdisk /dev/mmcblk0
    
    deleted all existing partitions, create one new and gave type 'b' (W95 FAT32).
    Then I formatted
    mkfs.vfat /dev/mmcblk0p1
    
    copied IoT5500.rom etc. to the device, plugged into IoT but on Tachyon console
    LS
    
    didn't work.
    Is this the correct procedure for a tachyon usable sdcard?

    STOP! I tried another ... also not working. Is it possible that 2GB (µ-)sdcards are not supported?
    Thanks, proplem

    Any 4GB card or more is an SDHC card which is what you want which as the standard for SD cards was upgraded to SDHC in 2006 (ten years ago!). It is practically impossible to buy 2GB standard SD unless you are willing to pay more for them than you would for a 16GB. So supporting old technology that has been a problem sourcing for a few years now doesn't make sense and especially when it's even very hard to find 4GB cards but why bother when I can pick up 8GB locally for the price of a cheese burger.

    BTW, SDHC cards are preformatted with FAT32
  • OK, know how is important, as we see. Still we are hanging around with IPSERIAL. We realize that we do not get the concept. Is IPSERIAL a protocoll? Does easynet route incoming messages to the serial io 30/31 default? How to prevent port 10001 from running telnet? It would help to have a hands on advice. As we have to learn a lot, we are stumbling over and over.
  • ErNa wrote: »
    OK, know how is important, as we see. Still we are hanging around with IPSERIAL. We realize that we do not get the concept. Is IPSERIAL a protocoll? Does easynet route incoming messages to the serial io 30/31 default? How to prevent port 10001 from running telnet? It would help to have a hands on advice. As we have to learn a lot, we are stumbling over and over.

    Sending serial over IP can be sent UDP or TCP but is identical to telnet except that telnet connects to a command shell which in this case is Tachyon itself. All we need to do is route receive data from the IPSERIAL socket (10001 etc) to the serial transmit routine and vice-versa where we receive serial data on a pin and transmit that data to the IPSERIAL socket. There is a low-level LANKEY and LANEMIT routine that works in the same manner as the serial KEY and EMIT defaults. There is no default routing of any data to any pins but it is simple to do.
  • Ok, Peter, we understand: there is a distance between my technical understanding and my dog's, and your's and mine's. They are about equivalent.
    Is IPSERIAL a word? Or just a concept? I believe to be on the right track, that tachyon interprets the input as telnet, but have no idea how to change this. Tried to move telnet to another socket, so free port 10001, but that didn't work. Is IPSERIAL prepared and only has to be configured or is this a word I have to write on my own?
  • ErNaErNa Posts: 1,382
    edited 2016-06-05 - 21:18:17
    I FOUND: "*" LANEMIT sends a "*" to an open telnet session!!!
    But no expression for LANKEY ;-(

    Update: now use teraterm (no longer putty) to be in line with others. In Putty I had echoed my input in telnet session, but do not know if this is local echo or reflected from tachyon. In teraterm I have to activate local echo to see my input
  • Peter JakackiPeter Jakacki Posts: 9,088
    edited 2016-06-06 - 01:06:11
    The code for LANEMIT and LANKEY is shown below as taken from W5500.fth and as you can see it is very simple. Once a TCP connection is made say to a telnet session in a Windows cmd shell which implements a "serial over IP" then anything you type on the keyboard is sent character by character (inefficiently) over TCP and can be read character by character with LANKEY which btw is not normally accessed directly but through the revectorable KEY routine. Likewise on the Tachyon end anything you send via LANEMIT will appear on the terminal end. But some telnet terminals are configured to buffer a line before sending in which case this is not very helpful as it is not interactive. The basic setup for telnet to Tachyon is to send character by character with no local echo.

    Replace the telnet session on the PC with a "serial over IP" driver and the same thing happens. Two Props can also talk to each other remotely over IP but one has to initiate the connection as a client and that is one of the things that I will try and setup today and make happen. So all the bits are there for what you want but I just need to bundle it together in a neat little package so that you will be able to say something like this if you wanted two remote Props to talk to each other:

    &67.104.29.61 10001 LINK IF PRINT" ACTIVATE ALL SPRINKLERS" CR ELSE <MSG PRINT" Failed to establish connection" CR MSG> THEN

    That's a bit much all on one line but it just shows how I might send a command to a remote Prop and in this case the master just talks and doesn't listen although it could have included a response parser using GETWORD and timeouts as is necessary for all virtual connections.

    BTW - the MSG words are just used to echo messages to the Prop console depending upon the message level that has been set.

    If you let me know exactly what you are aiming to finally achieve with serial over IP then I can implement the structures for you to configure as you like.

    These two routines are the equivalent of EMIT and KEY for sending and receiving serial over IP.
    --- send out a character through the WIZnet - either block mode or autosend
    pub LANEMIT ( ch -- )
     	DUP @txwr W@ @TX LC!					--- write character to buffer
      	@txwr W++ CNT@ txtime !					--- update local write index and activity
     	txsize ++						--- keep count of how much might be accumulating in the h/w buffer
    	$0A = autosend C@ AND					--- SEND if this is an CRLF end of line and autosend is active
     	txsize @ $3F0 > OR 					--- or AUTOSEND if buffer size is large enough already
    	  IF LANSEND THEN					--- Update WIZnet chip and command it to send what it has
    	;
    
    pub LANKEY ( -- ch )
     	RXSIZE@
     	IF
     	  RXREAD LW@ DUP @RX LC@ 				--- read a character from the receive buffer
     	  SWAP 1+ RXREAD LW! sRECV				--- update read index
     	ELSE
     	  keypoll W@ ?DUP IF CALL THEN				--- implement a keypoll for when LANKEY is doing nothing
     	  0							--- return with a null character
     	THEN
    	;
    
  • Hi Peter,

    I want to implement a socket connection between a PC and an IoT5500 to transmit measurement data between them.

    Because I'm not as far to understand how TELNET, FTP, HTTP are working I thought that implementing a TCP echo Server on the IoT5500 could be an exercise which I'm probably able to achieve. Here are my first steps:

    I load V3.0 Kernel EASYFILE and EASYNET, set the IP-configs then I paste:
    1 == protECHO   --- assign socket 1 to ECHO
    FORGET sECHO
    pri ?pollECHO
    	protECHO 1 ADO
     	I SOCKET
    	CONNECTED?
    	  IF
     	    "H" constat C!
    	    ON QUIET								--- Disable interactive mode prompts
    	    KEEPALIVE
    	    LANSKT								--- Let the same socket talk to the foreground Forth console when it switches back
    	  THEN
     	  DISCONNECTED? IF "h" constat C! CON THEN
     	LOOP
    	;
    
    pub ?sECHO
    	?LED
    	SKT@ socket 1+ C! 							--- swap current socket between foreground and background
     	filesel C@ fsave C! 0 FILE 						--- use foreground file
    	?pollECHO 								--- Poll the ECHO server
    	?SENDPOLL
    \\\	?FTP 									--- Poll the FTP server
    \\\	?HTTP 									--- Poll the WEB server
    \\\ 	5 SOCKET SKT@ 5 = IF CONNECTED? IF REBOOT THEN THEN			--- 911 reset
    	?SDCARD
      	TRUE 8 0 DO I SOCKET sCLOSED? AND LOOP IF CON THEN			--- force console back to serial if not busy
     	socket 1+ C@ SOCKET 							--- restore foreground socket
     	fsave C@ FILE								--- restore foreground file
      	DEPTH 8 > IF !SP THEN							--- clean up abnormal stack
    	1 netflgs SET? ?EXIT							--- skip controls if flag is set
    	;
    
    pub sECHO
    	!SP
    	!WIZ #150 ms								--- Setup WIZnet chip
    	#5000 @RTR LW! 16 @RCR LC!						--- setup retry counters
    	CR PRINT" *** Tachyon Forth ECHO Network Server *** " CR CR
    \	MOUNT
    	4 ledon C! 								--- just setup an LED blink time
    	ON READYLED 								---  Now init the IP addresses (stored in high 64K EEPROM)
    	protECHO SOCKET sCLOSE TCP #12345 PORT!  sOPEN sLISTEN			--- Setup ECHO on port 12345
    	1 second
    	PRINT"  ... ready! " CR
    	ifconfig 								--- report WIZnet status
      	constat C~~
    \\\	' ?EASYNET +POLL							--- Poll the server in the background
    \\\	' ?CTRLS +POLL								--- process console shortcuts
      ' ?sECHO +POLL
    	CR PRINT" * ECHO server running * "
    	CR
     	;
    

    With this I'm able to do a
    netcat 192.168.2.124 12345
    
    and the connection is established. Hooray, but now I need some advice to get FORTHer.

    If I send an ascii string from the PC (via netcat) where does this go in Tachyon? What/where do I have to look at?

    Thanks in advance,
    proplem
  • MJBMJB Posts: 1,154
    just found this on WIZNETs site

    https://wizneteu.wordpress.com/tag/iot5500/
    proplem wrote: »
    Hi Peter,

    I want to implement a socket connection between a PC and an IoT5500 to transmit measurement data between them.

    Because I'm not as far to understand how TELNET, FTP, HTTP are working I thought that implementing a TCP echo Server on the IoT5500 could be an exercise which I'm probably able to achieve. Here are my first steps:

    I load V3.0 Kernel EASYFILE and EASYNET, set the IP-configs then I paste:
    1 == protECHO   --- assign socket 1 to ECHO
    FORGET sECHO
    pri ?pollECHO
    	protECHO 1 ADO
     	I SOCKET
    	CONNECTED?
    	  IF
     	    "H" constat C!
    	    ON QUIET								--- Disable interactive mode prompts
    	    KEEPALIVE
    	    LANSKT								--- Let the same socket talk to the foreground Forth console when it switches back
    	  THEN
     	  DISCONNECTED? IF "h" constat C! CON THEN
     	LOOP
    	;
    
    pub ?sECHO
    	?LED
    	SKT@ socket 1+ C! 							--- swap current socket between foreground and background
     	filesel C@ fsave C! 0 FILE 						--- use foreground file
    	?pollECHO 								--- Poll the ECHO server
    	?SENDPOLL
    \\\	?FTP 									--- Poll the FTP server
    \\\	?HTTP 									--- Poll the WEB server
    \\\ 	5 SOCKET SKT@ 5 = IF CONNECTED? IF REBOOT THEN THEN			--- 911 reset
    	?SDCARD
      	TRUE 8 0 DO I SOCKET sCLOSED? AND LOOP IF CON THEN			--- force console back to serial if not busy
     	socket 1+ C@ SOCKET 							--- restore foreground socket
     	fsave C@ FILE								--- restore foreground file
      	DEPTH 8 > IF !SP THEN							--- clean up abnormal stack
    	1 netflgs SET? ?EXIT							--- skip controls if flag is set
    	;
    
    pub sECHO
    	!SP
    	!WIZ #150 ms								--- Setup WIZnet chip
    	#5000 @RTR LW! 16 @RCR LC!						--- setup retry counters
    	CR PRINT" *** Tachyon Forth ECHO Network Server *** " CR CR
    \	MOUNT
    	4 ledon C! 								--- just setup an LED blink time
    	ON READYLED 								---  Now init the IP addresses (stored in high 64K EEPROM)
    	protECHO SOCKET sCLOSE TCP #12345 PORT!  sOPEN sLISTEN			--- Setup ECHO on port 12345
    	1 second
    	PRINT"  ... ready! " CR
    	ifconfig 								--- report WIZnet status
      	constat C~~
    \\\	' ?EASYNET +POLL							--- Poll the server in the background
    \\\	' ?CTRLS +POLL								--- process console shortcuts
      ' ?sECHO +POLL
    	CR PRINT" * ECHO server running * "
    	CR
     	;
    

    With this I'm able to do a
    netcat 192.168.2.124 12345
    
    and the connection is established. Hooray, but now I need some advice to get FORTHer.

    If I send an ascii string from the PC (via netcat) where does this go in Tachyon? What/where do I have to look at?

    Thanks in advance,
    proplem

    I would suggest you first try out the existing 'wheels' before you invent a new one.

    so after you configured the IP address etc.
    AND start the server

    you do a ping from the PC to verify

    then open a terminal program with TELNET to the Prop and you have Tachyon prompt waiting for you

    ... play a bit

    then open a FTP client on the PC and connect to the prop with SD in.
    now you can access the Prop-SD filesystem to read / write / files from/to

    so - what more do you need now??

  • proplemproplem Posts: 233
    edited 2016-10-29 - 11:13:49
    Hi MJB, thanks for the reply.

    What I want to implement is an ethernet (TCP) connection between the PC and the IoT5500 with continuous data exchange between pc and an intelligent propeller subsystem. The IoT5500 shall first be the control unit and second function as a gateway between the pc and the embedded propeller application.

    The connection shall be used to receive and send process data from/to the (intelligent) embedded system.

    Data shall be measurement data from sensors in the embedded system (I will call them `measurement channels'). Furthermore data shall be control values sent from pc to the intelligent embedded subsystem (`control channels').

    Therefore I have to implement a service (server) with Tachyon on the IoT5500 which talks a special protocol which I want to implement myself to be free in every direction.

    I don't want to get a burst or chunk of recorded data (which your advice to ftp directed to) I want to implement a bidirectional data stream to measure and control the subsystem. Recording will be done on the pc if necessary.

    BTW you are right: FTP is nevertheless useful to get bursts of very fast on the propeller recorded data.

    That's the longtime plan :-)
    ====================

    But the first step for me is to implement an echo server as an exercise: just sending and receiving single newline delimited lines between Tachyon and the PC to learn how the things are working.

    So back to my question: I want to send a line (not single characters) from pc via netcat to Tachyon (IoT5500) and reply (echo) this line as a complete unit back with the media given by Tachyon/EASYNET? Can someone give me the direction how this could be implemented?
  • MJBMJB Posts: 1,154
    I can only repeat my suggestion from above ...

    and when you can do this -
    THEN
    look into the code and you will see almost all you need is already there ...
    just needs a little repackaging ...

    just take FTP, TELNET and WebServer as examples of how to use the socket layer
    and how to implement a higher protocol on top of it ...

  • As the IoT5500 is tiny, and has no 5V supply and because of what ever, we created a little mother board, that can host three IoT5500, creates 3.3 V, has individual reset buttons, 2 LEDS and prop plug connectors. Plus a prototyping area. The form factor is 3" x 4" like the propeller protoboard.
  • D.PD.P Posts: 790
    edited 2016-12-15 - 19:48:49
    Neat board, are they for sale, trade? I have a bunch of IoT5500 modules.

    What is your intended use for this design?

    With 12K free code space loaded up _After_ easyfile (SD filesystem) and easynet (tcp, udp, http, telnet, ftp access layer) loaded there is plenty of space for a ???

    EDIT Tachyon V4 that is
  • The IoT module is very handy, but must be embedded. During development and test it makes sense to have a proto board and today making a PCB is fast and in the end better and more reliable than soldering wires. We will assemble 10 boards and do not use all ourself. Peter: I'll ship one to you as soon as possible.
  • Hi ErNa, this is a neat board. It inspires to build an iot5500 based education board like https://www.parallax.com/product/32900 with iot connectivity for boys without soldering qualification. But i don't know marketing possibilities.
Sign In or Register to comment.