|
1 |
| -`Arduino_10BASE_T1S` |
| 1 | + Arduino Single Pair Ethernet (10BASE-T1S) Library |
2 | 2 | ====================
|
3 | 3 | [](https://github.com/bcmi-labs/Arduino_10BASE_T1S/actions?workflow=Compile+Examples)
|
4 | 4 | [](https://github.com/bcmi-labs/Arduino_10BASE_T1S/actions/workflows/spell-check-task.yml)
|
5 | 5 | [](https://github.com/bcmi-labs/Arduino_10BASE_T1S/actions/workflows/sync-labels.yml)
|
6 | 6 | [](https://github.com/bcmi-labs/Arduino_10BASE_T1S/actions?workflow=Arduino+Lint)
|
7 | 7 |
|
8 |
| -**Note**: This library works for Arduino [Zero](https://store.arduino.cc/products/arduino-zero), Arduino [R4 WiFi](https://store.arduino.cc/products/uno-r4-wifi) and Arduino [R4 Minima](https://store.arduino.cc/products/uno-r4-minima). |
9 |
| - |
10 |
| -### How-to-compile/upload |
11 |
| -```bash |
12 |
| -arduino-cli compile -b arduino:renesas_uno:unor4wifi -v examples/UDP_Client -u -p /dev/ttyACM0 |
13 |
| -``` |
14 |
| - |
15 |
| -### How-to-[`EVB-LAN8670-USB`](https://www.microchip.com/en-us/development-tool/EV08L38A) |
16 |
| -**Note**: Keep [this application note](https://microchip.my.site.com/s/article/EVB-LAN8670-USB-Enablement-for-Debian-Ubuntu-Raspbian) in mind when building for Debian based systems. You may need to revert back to legacy network configuration tools. |
17 |
| - |
18 |
| -* Disconnect `EVB-LAN8670-USB`, if it is already connected. |
19 |
| -* Build kernel driver: |
20 |
| -```bash |
21 |
| -cd extras/evb-lan8670-usb-linux-6.1.21 |
22 |
| -make |
23 |
| -``` |
24 |
| -* Load kernel driver: |
25 |
| -```bash |
26 |
| -sudo insmod microchip_t1s.ko enable=1 node_id=0 node_count=8 max_bc=0 burst_timer=128 to_timer=32 |
27 |
| -``` |
28 |
| -* `dmesg` output when connecting the USB dongle: |
29 |
| -```bash |
30 |
| -[ +0,124736] usb 1-2.3: New USB device found, idVendor=184f, idProduct=0051, bcdDevice= 2.00 |
31 |
| -[ +0,000016] usb 1-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 |
32 |
| -[ +0,000006] usb 1-2.3: Product: 10BASE-T1S |
33 |
| -[ +0,000005] usb 1-2.3: Manufacturer: MCHP |
34 |
| -[ +0,000005] usb 1-2.3: SerialNumber: 0000465 |
35 |
| -[ +0,004338] smsc95xx v2.0.0 |
36 |
| -[ +0,582091] LAN867X Rev.B1 usb-001:025:00: PLCA mode enabled. Node Id: 0, Node Count: 8, Max BC: 0, Burst Timer: 128, TO Timer: 32 |
37 |
| -[ +0,000176] LAN867X Rev.B1 usb-001:025:00: attached PHY driver (mii_bus:phy_addr=usb-001:025:00, irq=190) |
38 |
| -[ +0,000285] smsc95xx 1-2.3:1.0 eth2: register 'smsc95xx' at usb-0000:00:14.0-2.3, smsc95xx USB 2.0 Ethernet, 00:1e:c0:d1:b9:4b |
39 |
| -``` |
40 |
| -* Configure IP address for `eth1`: (*Note*: it could also be another `eth` interface, you need to check and compare MAC address against `dmesg` output). |
41 |
| -```bash |
42 |
| -sudo ip addr add dev eth1 192.168.42.100/24 |
43 |
| -``` |
44 |
| -* You can take a look at the registered Ethernet device via `ip link show eth1`: |
45 |
| -```bash |
46 |
| -3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 |
47 |
| - link/ether 3c:e1:a1:b8:e9:76 brd ff:ff:ff:ff:ff:ff |
48 |
| - inet 192.168.42.100/24 scope global eth1 |
49 |
| - valid_lft forever preferred_lft forever |
50 |
| -``` |
51 |
| -* Bring `eth1` interface up via `sudo ifconfig eth1 up`. |
52 |
| -* Verify `eth1` via `ifconfig eth1`: |
53 |
| -```bash |
54 |
| -eth1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 |
55 |
| - inet 192.168.42.100 netmask 255.255.255.0 broadcast 0.0.0.0 |
56 |
| - ether 3c:e1:a1:b8:e9:76 txqueuelen 1000 (Ethernet) |
57 |
| - RX packets 0 bytes 0 (0.0 B) |
58 |
| - RX errors 0 dropped 0 overruns 0 frame 0 |
59 |
| - TX packets 0 bytes 0 (0.0 B) |
60 |
| - TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
61 |
| -``` |
62 |
| - |
63 |
| -### How-to-`tcpdump` |
64 |
| -```bash |
65 |
| -tcpdump -i eth1 |
66 |
| -``` |
| 8 | +This library implements the **10BASE-T1S** standard (Single Pair Ethernet) for selected Arduino boards. |
| 9 | + |
| 10 | +It enables low-speed Ethernet connectivity over a single twisted pair, ideal for industrial and automotive applications. |
| 11 | + |
| 12 | +### What is 10BASE-T1S? |
| 13 | +10BASE‑T1S is an Ethernet physical layer standard defined by IEEE (part of IEEE 802.3cg) that enables Ethernet communication over a single twisted pair cable at speeds up to 10 Mbps. |
| 14 | + |
| 15 | +## 📖 Documentation |
| 16 | +For more information on the features of this library and how to use them please read the documentation [here](./docs/). |
| 17 | + |
| 18 | +## ✅ Supported Boards |
| 19 | + |
| 20 | +This library was tested and validated on the following Arduino boards: |
| 21 | +- [Arduino Zero](https://store.arduino.cc/products/arduino-zero) |
| 22 | +- [Arduino UNO R4 WiFi](https://store.arduino.cc/products/uno-r4-wifi) |
| 23 | +- [Arduino UNO R4 Minima](https://store.arduino.cc/products/uno-r4-minima) |
| 24 | + |
| 25 | +> [!IMPORTANT] |
| 26 | +> These boards do not include a native 10BASE‑T1S PHY or transceiver. |
| 27 | +To enable Single Pair Ethernet communication, you must connect an external and compatible 10BASE‑T1S transceiver to your board via SPI. |
| 28 | + |
| 29 | +> [!NOTE] |
| 30 | +> The library may work on other boards, but they are not officially supported. |
| 31 | +
|
| 32 | +## 📕 Further Reading |
| 33 | +- [Arduino UNO SPE Shield](https://docs.arduino.cc/hardware/spe-shield/) |
| 34 | + |
| 35 | +## 🐛 Reporting Issues |
| 36 | + |
| 37 | +If you encounter any issue, please open a bug report [here](https://github.com/arduino-libraries/Arduino_10BASE_T1S/issues). |
| 38 | + |
| 39 | +For questions, comments, or feedback on this library, please use the official [Arduino Forum](https://forum.arduino.cc/). |
| 40 | + |
| 41 | +## 🫂 Contributing |
| 42 | + |
| 43 | +Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. |
| 44 | + |
| 45 | +## ⚖️ License |
| 46 | + |
| 47 | +This library is released under the [MPL-2.0 license](http://mozilla.org/MPL/2.0/). |
0 commit comments