• Stars
    star
    125
  • Rank 280,560 (Top 6 %)
  • Language
    C++
  • Created almost 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Ethernet library for Teensy (Wiznet W5100 / W5200 / W5500)

Teensy-Only Wiznet Ethernet Library

This copy of Ethernet for Wiznet chips is intended only for Teensy boards. For using with any non-Teensy board, please use Arduino's Ethernet:

https://github.com/arduino-libraries/Ethernet

Or use the copy of Ethernet from your board's vendor, if they publish a modified copy of Ethernet specifically for their boards.

A bit of history

Back in 2018, I worked on unifying support for all 3 Wiznet chips (available at that time) with many performance improvements I had developed for Teensy's copy of Ethernet. I tested on many boards and it was released as Arduino Ethernet version 2.0.0.

https://www.pjrc.com/arduino-ethernet-library-2-0-0/

For a brief time, I was officially the maintainer for Arduino's Ethernet library. However, months later Arduino changed their repository access requirements, which I could not meet. I also became very busy with developing Teensy 4.0, leaving little time for testing Ethernet on other hardware.

In 2020, we released Teensy 4.1 with native ethernet, which offers vastly better performance than using a Wiznet chip. I do not anticipate spending much development time on Wiznet support in the foreseeable future. If you use Ethernet with Teensy, please consider Teensy 4.1 for future projects. The performance is so much better.

If you use a non-Teensy board, this is not the Ethernet library for you. Please do not report issue or ask for technical support for non-Teensy boards on this Teensy-specific repository.

Improved Performance Ethernet Library

Wiznet chips W5100, W5200 and W5500 are automatically detected.

Efficient block mode of W5200 & W5500 are used for data and multi-byte register access.

Wiznet socket registers are cached, which greatly reduces SPI communication overhead, at the cost of a small increase in RAM usage. TCP connections and UDP packets accessed in small chunks typically see a substantial performance boost.

Adafruit's Ethernet.init(CSPIN) extension is supported, to allow use of different pins for the chip select signal. Optimized direct register I/O is used for most Arduino compatible boards.

http://www.pjrc.com/teensy/td_libs_Ethernet.html

Tested Hardware

Board Chip Shield / Module Internet Local (LAN)
Teensy 3.6 W5500 WIZ850io 212.59 1143.58
Teensy 3.6 W5200 WIZ820io 202.44 1102.71
Teensy 3.6 W5100 WIZ812MJ 180.76 274.14
ESP32 Feather W5500 Featherwing Ethernet 211.06 965.76
Teensy 3.2 W5500 WIZ850io 205.37 958.06
Teensy 3.2 W5200 WIZ820io 215.44 914.78
Teensy 3.2 W5100 WIZ812MJ 170.07 234.55
ChipKit Uno32 W5500 Seeed Ethernet W5500 177.19 858.81
ChipKit Uno32 W5200 WIZ820io 188.31 837.56
ChipKit Uno32 W5100 Ethernet R2 (clone) 159.72 272.18
Arduino Due W5500 Seeed Ethernet 214.44 689.69
Arduino Due W5200 WIZ820io 206.51 670.88
Arduino Due W5100 Arduino Ethernet R3 105.98 109.73
ESP8266 Feather W5500 Featherwing Ethernet fail (dns) 583.31
Teensy LC W5500 WIZ850io 200.51 479.73
Teensy LC W5200 WIZ820io 199.62 471.95
Teensy LC W5100 WIZ812MJ 126.40 137.77
Arduino 101 (Intel) W5500 Seeed Ethernet W5500 168.96 359.32
Arduino 101 (Intel) W5200 WIZ820io 169.37 349.35
Arduino 101 (Intel) W5100 Arduino Ethernet R3 42.39 43.60
Teensy 2.0 W5100 WIZ812MJ 81.07 84.85
Arduino Uno R3 W5500 Seeed Ethernet W5500 185.44 329.00
Arduino Uno R3 W5500 Arduino.org Ethernet2 195.32 329.60
Arduino Uno R3 W5200 WIZ820io 191.85 331.27
Arduino Uno R3 W5100 Arduino Ethernet R3 79.11 82.66
Arduino Uno R3 W5100 Ethernet R2 (clone) 79.27 82.66
Arduino Leonardo W5500 Seeed Ethernet W5500 179.98 328.14
Arduino Leonardo W5200 WIZ820io 183.69 330.30
Arduino Leonardo W5100 Ethernet R2 (clone) 78.75 82.28
Mega 2560 (clone) W5500 Seeed Ethernet W5500 179.58 323.36
Mega 2560 (clone) W5200 WIZ820io 172.73 325.44
Mega 2560 (clone) W5100 Ethernet R2 (clone) 74.31 77.44
Arduino Zero W5500 Seeed Ethernet W5500 183.13 305.26
Arduino Zero W5500 Arduino.org Ethernet2 181.60 305.28
Arduino Zero W5200 WIZ820io 177.53 298.53
Arduino Zero W5100 Arduino Ethernet R3 91.33 96.64
Arduino Zero W5100 Ethernet R2 (clone) 91.42 96.64
Arduino MKR1000 W5500 MKR ETH 181.27 298.93
Arduino MKR1000 W5200 WIZ820io 125.20 291.98
Arduino Uno Wifi Rev2 W5500 Seeed Ethernet W5500 163.86 213.36
Arduino Uno Wifi Rev2 W5500 Arduino.org Ethernet2 169.72 212.88
Arduino Uno Wifi Rev2 W5200 WIZ820io 161.94 212.19
Arduino Uno Wifi Rev2 W5100 Arduino.org Ethernet2 69.50 72.23
Arduino Uno Wifi Rev2 W5100 Ethernet R2 (clone) 69.55 72.30

For more information about these benchmarks: https://www.pjrc.com/arduino-ethernet-library-2-0-0/

ESP32 may require edit to SPI.h to add SPI.transfer(data, size) espressif/arduino-esp32#1623

More Repositories

1

Time

Time library for Arduino
C++
1,238
star
2

Audio

Teensy Audio Library
C++
955
star
3

OneWire

Library for Dallas/Maxim 1-Wire Chips
C++
542
star
4

Encoder

Quadrature Encoder Library for Arduino
C++
489
star
5

cores

Teensy Core Libraries for Arduino
C
474
star
6

TimerOne

TimerOne Library with optimization and expanded hardware support
C++
438
star
7

CapacitiveSensor

Detect touch or proximity by capacitve sensing
C++
360
star
8

teensy_loader_cli

Command line Teensy Loader
C
316
star
9

AltSoftSerial

Software emulated serial using hardware timers for improved compatibility
C++
308
star
10

SerialFlash

Library for using SPI Flash memory with a filesystem-like interface
C++
296
star
11

OctoWS2811

Control thousands of WS2811/2812 LEDs at video refresh speeds
C++
247
star
12

RadioHead

Version of RadioHead library for Teensy boards
C++
237
star
13

ILI9341_t3

Optimized ILI9341 TFT Library
C
224
star
14

XPT2046_Touchscreen

Touchscreen Arduino Library for XPT2046 Touch Controller Chip
C++
208
star
15

USBHost_t36

USB Host Library for Teensy 3.6 and 4.0
C++
166
star
16

TimeAlarms

Time library add-on, schedule alarms to occur at specific dates/times
C++
159
star
17

MahonyAHRS

C++
152
star
18

WS2812Serial

Non-Blocking WS2812 LED Library
C++
137
star
19

FreqCount

Measures the frequency of a signal by counting the number of pulses during a fixed time.
C
136
star
20

PS2Keyboard

PS/2 Keyboard Library for Arduino
C++
132
star
21

DS1307RTC

Use a DS1307 Real Time Clock chip with the Time library
C++
127
star
22

SPI

SPI library for Teensy & Arduino IDE
C++
119
star
23

MsTimer2

Run a function using a timer
C++
104
star
24

CoreMark

Benchmark CPU Performance on Arduino Compatible Boards
C
102
star
25

DmxSimple

C++
90
star
26

EEPROM

C++
76
star
27

TimerThree

TimerThree Library with optimization and expanded hardware support
C++
75
star
28

LittleFS

C
71
star
29

Tlc5940

16 channel PWM LED driver based on the Texas Instruments TLC5940 chip.
C
71
star
30

SD

C++
67
star
31

FreqMeasure

Measures the elapsed time during each cycle of an input frequency.
C
64
star
32

MotionCal

Motion Sensor Calibration Tool
C
63
star
33

NXPMotionSense

NXP Motion Sensors for Teensy and Arduino
C++
61
star
34

ILI9341_fonts

Extra fonts for use with ILI9341_t3
C
50
star
35

hid_listen

C
47
star
36

PulsePosition

Multiple High-Res Input & Output PPM Encoded Signal Streams on Teensy 4.x, 3.x & LC
C++
45
star
37

FreqMeasureMulti

Measures the elapsed time during each cycle of up to 8 input frequencies.
C++
34
star
38

ST7735_t3

Teensy 3.x Optimized Version of Adafruit_ST7735 (1.8 inch TFT Display)
C
32
star
39

X-Plane_Plugin

TeensyControls Plugin for X-Plane Flight Simulator
C
31
star
40

MakerFaire2017

Monolith Synth
C++
24
star
41

Bridge

Communicate between Teensy & Raspberry Pi - similar to Arduino Yun
Arduino
24
star
42

RSA_signature_speed

Simple CPU speed benchmark
C
24
star
43

ARM-Toolchain

Shell
23
star
44

PWMServo

Control RC Servo motors with interrupt-resilient PWM
C++
23
star
45

Teensyduino_Examples

Examples for Teensyduino, installed into Arduino's File > Examples > Teensy menu
C++
22
star
46

teensy41_psram_memtest

C++
21
star
47

teensy41_extram

C
20
star
48

Wire

Wire library used on Teensy boards
C++
20
star
49

LedDisplay

Print text to an Avago HCMS-29xx LED display
C++
19
star
50

FrequencyTimer2

Create a zero jitter frequency output, and run your own function on each period.
C++
19
star
51

teensy41_ethernet

C
15
star
52

CryptoAccel

Assembly
15
star
53

TouchGuitar

Arduino
13
star
54

arm_math

C
11
star
55

k66_ethernet

Experiments with K66 Ethernet
Arduino
10
star
56

USB-Serial-Print-Speed-Test

How many lines/second can your Arduino print to the serial monitor?
C++
10
star
57

AVR_DTMF

Efficient 8 bit AVR-based DTMF Decoding
C
10
star
58

Tectonic_Pitch_Shift

C++
9
star
59

FreqCountMany

Measure 10 frequencies with Teensy 4.0 & 4.1
C++
9
star
60

ARM_Toolchain_2014q1_Source

GCC ARM Toolchain Source - for running Arduino on Raspberry Pi
Shell
9
star
61

secure_plugin

Teensy 4 Security plugin for Arduino IDE
Java
8
star
62

SoundfontDecoder

Python
8
star
63

ST7789_t3

C++
7
star
64

Arduino-1.8.9-Teensyduino

Java
7
star
65

ht1632c

Objective-C
7
star
66

Arduino-1.8.5-Teensyduino

C
7
star
67

TopOctaveGenerator

C++
6
star
68

Verify_All_Arduino_Libraries

Perl
6
star
69

teensy_size

C
6
star
70

AudioZero

Allows playing audio files from an SD card.
C++
6
star
71

Arduino-1.8.13-Teensyduino

Java
5
star
72

Arduino-examples-for-Teensyduino

The slightly modified examples for Teensyduino
Arduino
5
star
73

TalkieKeyboards

Five 104-key keyboards trigger speaking 520 words
C
5
star
74

LargeSamplePlayer

C++
5
star
75

Arduino-1.6.0-Teensyduino

C
5
star
76

USB_Tester

C++
5
star
77

hab_tests

C
5
star
78

teardown2018

LED Visualization Shown at Teardown 2018 Hardware Conference
C++
5
star
79

Arduino-1.8.19-Teensyduino

Java
4
star
80

timecode_now

C
4
star
81

Arduino-1.8.8-Teensyduino

Java
4
star
82

Arduino-1.8.10-Teensyduino

Java
4
star
83

Lighting_Controller

C++
4
star
84

SerialDiscovery_JSON

C
4
star
85

Phazerville-Screen-Capture

C++
4
star
86

Arduino-1.8.7-Teensyduino

Java
3
star
87

MyFault

C
3
star
88

Arduino-1.8.12-Teensyduino

Java
3
star
89

ARM_Toolchain_2016q3_Source

Shell
3
star
90

precompile_helper

Help arduino-builder to generate a precompiled Arduino.h header, to speed up compiling Arduino sketches
C
3
star
91

Arduino-1.6.4-Teensyduino

C
3
star
92

AudioWorkshop2015

Audio Workshop at Hackaday Supercon 2015
3
star
93

antplus

Stand-alone Ant Plus code from Michael McElligott
C++
3
star
94

Arduino-1.8.14-Teensyduino

Java
3
star
95

Video_Start_Button

C
2
star
96

Noritake_VFD_CUY

Noritake_VFD_CUY: C++ code library and demo files
C++
2
star
97

Arduino_Dev_List_Topics

2
star
98

Servo

C++
2
star
99

Magnetometers_Test

Simple Magnetometer Testing
C++
2
star
100

StepperPulse

Experiments with DMA to efficiently generate stepper pulse & direction
Arduino
2
star