Mbed library for ENC28J60 Ethernet modules. Full support for TCP/IP and UDP Server, Client and HTTP server (webserver). DHCP and DNS is included.

Dependents:   mBuino_ENC28_MQTT Nucleo_Web_ENC28J60 Nucleo_Web_ENC28J60_ADC Serial_over_Ethernet ... more

Library for ENC28J60 Ethernet modules.

/media/uploads/hudakz/enc28j60_module01.jpg

Ported to mbed from Norbert Truchsess's UIPEthernet library for Arduino. Thank you Norbert!

  • Full support for persistent (streaming) TCP/IP and UDP connections Client and Server each, ARP, ICMP, DHCP and DNS.
  • Works with both Mbed OS 2 and Mbed OS 5.

Usage:

  • Import the library into your project.
  • Add #include "UipEthernet.h" to main.cpp
  • Create one instance of the UipEthernet class initialized with the MAC address you'd like to use and SPI pins of the connected Mbed board.

Example programs:

Import programWebSwitch_ENC28J60

HTTP Server serving a simple webpage which enables to remotely turn a digital output on/off. Compile, download, run and type 'IP_address/secret/' (don't forget the last '/') into your web browser and hit ENTER.

Import programHTTPServer_Echo_ENC28J60

A simple HTTP server echoing received requests. Ethernet connection is over an ENC28J60 board. Usage: Type the server's IP address into you web browser and hit <ENTER>.

Import programTcpServer_ENC28J60

Simple TCP/IP Server using the UIPEthernet library for ENC28J60 Ethernet boards.

Import programTcpClient_ENC28J60

Simple TCP/IP Client using the UIPEthernet library for ENC28J60 Ethernet boards.

Import programUdpServer_ENC28J60

Simple UDP Server using the UIPEthernet library for ENC28J60 Ethernet boards.

Import programUdpClient_ENC28J60

Simple UDP Client using the UIPEthernet library for ENC28J60 Ethernet boards.

Import programMQTT_Hello_ENC28J60

MQTT Client example program. Ethernet connection is via an ENC28J60 module.

Revision:
8:4acb22344932
Parent:
4:d774541a34da
Child:
9:a156d3de5647
--- a/utility/uip-conf.h	Tue Apr 26 18:37:14 2016 +0000
+++ b/utility/uip-conf.h	Fri Jun 30 19:51:28 2017 +0000
@@ -3,7 +3,7 @@
  * Copyright (c) 2013 Norbert Truchsess <norbert.truchsess@t-online.de>
  * @{
  *
- * uIP has a number of configuration options that can be overridden
+ * UIP has a number of configuration options that can be overridden
  * for each project. These are kept in a project-specific uip-conf.h
  * file and all configuration names have the prefix UIP_CONF.
  */
@@ -35,19 +35,19 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * This file is part of the uIP TCP/IP stack
+ * This file is part of the UIP TCP/IP stack
  *
  */
 #ifndef __UIP_CONF_H__
-    #define __UIP_CONF_H__
+#define __UIP_CONF_H__
 
-    #include <inttypes.h>
-    #include "uipethernet-conf.h"
+#include <inttypes.h>
+#include "uipethernet-conf.h"
 
 /**
  * 8 bit datatype
  *
- * This typedef defines the 8-bit type used throughout uIP.
+ * This typedef defines the 8-bit type used throughout UIP.
  *
  * \hideinitializer
  */
@@ -56,7 +56,7 @@
 /**
  * 16 bit datatype
  *
- * This typedef defines the 16-bit type used throughout uIP.
+ * This typedef defines the 16-bit type used throughout UIP.
  *
  * \hideinitializer
  */
@@ -66,7 +66,7 @@
  * Statistics datatype
  *
  * This typedef defines the dataype used for keeping statistics in
- * uIP.
+ * UIP.
  *
  * \hideinitializer
  */
@@ -85,15 +85,15 @@
  *
  * \hideinitializer
  */
-    #define UIP_CONF_MAX_LISTENPORTS    4
+#define UIP_CONF_MAX_LISTENPORTS    4
 
 /**
- * uIP buffer size.
+ * UIP buffer size.
  *
  * \hideinitializer
  */
 
-    #define UIP_CONF_BUFFER_SIZE    98
+#define UIP_CONF_BUFFER_SIZE    98
 //#define UIP_CONF_BUFFER_SIZE     118
 
 /**
@@ -102,7 +102,7 @@
  * This is should not be to set to more than
  * UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN.
  */
-    #define UIP_CONF_TCP_MSS    512
+#define UIP_CONF_TCP_MSS    512
 
 /**
  * The size of the advertised receiver's window.
@@ -114,7 +114,7 @@
  * \hideinitializer
  */
 
-    #define UIP_CONF_RECEIVE_WINDOW 512
+#define UIP_CONF_RECEIVE_WINDOW 512
 
 /**
  * CPU byte order.
@@ -122,7 +122,7 @@
  * \hideinitializer
  */
 
-    #define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN
+#define UIP_CONF_BYTE_ORDER UIP_LITTLE_ENDIAN
 
 /**
  * Logging on or off
@@ -130,7 +130,7 @@
  * \hideinitializer
  */
 
-    #define UIP_CONF_LOGGING    0
+#define UIP_CONF_LOGGING    0
 
 /**
  * UDP support on or off
@@ -147,7 +147,7 @@
  *
  * \hideinitializer
  */
-    #define UIP_CONF_UDP_CHECKSUMS  1
+#define UIP_CONF_UDP_CHECKSUMS  1
 
 /**
  * UDP Broadcast (receive) on or off
@@ -157,11 +157,11 @@
  */
 
 /**
- * uIP statistics on or off
+ * UIP statistics on or off
  *
  * \hideinitializer
  */
-    #define UIP_CONF_STATISTICS 0
+#define UIP_CONF_STATISTICS 0
 
 // SLIP
 
@@ -170,15 +170,15 @@
 
 void            uipclient_appcall(void);
 
-    #define UIP_APPCALL uipclient_appcall
+#define UIP_APPCALL uipclient_appcall
 
 typedef void*   uip_udp_appstate_t;
 
 void            uipudp_appcall(void);
 
-    #define UIP_UDP_APPCALL uipudp_appcall
+#define UIP_UDP_APPCALL uipudp_appcall
 
-    #define CC_REGISTER_ARG register
+#define CC_REGISTER_ARG register
 
-    #define UIP_ARCH_CHKSUM 1
+#define UIP_ARCH_CHKSUM 1
 #endif /* __UIP_CONF_H__ */