Teensy 3.6 on-board Ethernet, software status?

Status
Not open for further replies.

adamrnelson

New member
I have used Teensys for years, have incorporated every 3.x model - including the pink edition - into the numerous test fixtures I build and am a regular reader of the forum. So, I’m slightly ashamed to ask this elementary question here:

What is the current state of software to support the 3.6 on-board Ethernet? I’d be very appreciative if someone in the know could summarize the progress to date.

I have one 3.6-based board ready for fab that, among other things, incorporates a PHY and required misc. Luckily, I have been able to press the metaphorical pause button on that project, while searching this forum and elsewhere for an answer to the above question. I am also in the planning stages of another board, for a different project. Again, I’d like to use 3.6’s, but am very unclear how much work would be required to get the basic Ethernet functionality the project requires.

In part because I’d ultimately like to use custom Ethernet frames (e.g. PROFINET) at ~1KHz, I don’t believe that external modules like the 5500 will suit my needs.

I am an experienced software engineer and am slow, but capable with hardware design. I would be more than happy to contribute to an existing project, time allowing, but I am anything but clear as to where I should begin. I genuinely appreciate the prototype/performance testing work on the projects I have found so far, but is there a project/repo with more than proof-of-concept status?

What’s essential for my work: a reasonably stable library that supports UDP at >= 1KHz rates.

Other things that would definitely help, but are not deal-breakers:
  • TCP
  • 1588 (precision time protocol) tagging would be awesome but I’m not holding my breath
  • <1ms latency from the time of pushing the data to the IP stack to the packet appearing on the wire would be a real plus.
  • An IRQ on packet receipt would be highly desirable.

Many thanks to the community.

PS. If this should be posted in “Project Guidance”, I’ll be happy to move it. I wasn’t sure where this thread would best be placed.
 
Thanks. There is a lot of good information in there. Also, the lwip work discussed in https://forum.pjrc.com/threads/45647-k6x-LAN8720(A)-amp-lwip looks to be a snazzy bit of coding. The proof-of-concept performance is also encouraging.

I guess what I’m trying to puzzle out is why quirks like the hard coding of the MAC address still exist and why seemingly promising progress appears to have fizzled about two years ago. What is that for lack of interest? Did problems arise? Or perhaps the library was deemed stable and effective enough that future work produced diminishing returns?

Nothing is perfect, and I certainly do not expect that. However, I am still wondering if the K6x lwip is ready for “prime time“? Maybe it’s simply time for me to breadboard something (there seem to be plenty of PHYs on eBay) or solder up the OSH Park board to start testing latest myself.

Any recommendations, however brief, would be appreciated.
 
Supporting TCP/UDP/IP requires packet arrival management, buffer management, and timer management (timeout and retransmit). The beta testing on T3.6 used polling and lwIP. mbed and NXP SDK have more robust implementations of TCP/IP for the K66 using lwIP and RTOS. The Teensy development environment is more suited to off-loading the TCP/IP to network processors (Wifi/ESP32 or hardwire/WIZnet). There just didn't seem to be much interest in TCP/IP in the interrupt driven Teensy environment. The new T4 did not bother to bring the Ethernet pins out (at least for this first form-factor).

lwIP is a fairly stable/complex TCP/IP library. You'd be a brave developer to undertake developing your own TCP/IP stack! if you have limited UDP-like communication requirements, you could develop a light-weight UDP stack (but you'd still need ARP, DHCP, ICMP ...). In the T3.6 beta, we started with raw Ether frames, then added a basic UDP, and even did a faux-TCP on top of basic UDP ... then worked on integrating lwIP.

Maybe if your project can develop a working TCP/IP environment for the T3.6 ethernet, interest in T3.6 TCP/IP will grow.
 
Status
Not open for further replies.
Back
Top