Connecting an Ethernet PHY to Arduino Due

I've looking forward to seeing what the folks down under will have when they release Black Diamond.

Me to :slight_smile:

The project is alive and well, there has been a lot of changes in the last 2-3 weeks, often due to input from interested parties. We froze the design about 3 days ago then had another bright idea, oh well better to try and get it as right as possible.

When implementing various comms, EMAC, SD, and external memory interfaces there are not many pins left for GPIO so don't expect a huge IO pin count. That said what we do have should be quite robust, not just raw pins connected to the big bad world.

I'll post more details on the Black Diamond thread soon.


Rob

New thread started about the successor to the Black Diamond.

http://forum.arduino.cc/index.php?topic=170901.new#new


Rob

ODwyerPW:
Took a look at it. This hardware kit can't be used simultaneously with your CTE LCD shields. Bummer. Split decision... lots of wires for the LCD or lots of wires for the Ethernet. Oh well. The DUE platform will get there eventually.

Ehm.. What does this mean? Arduino Due cannot have SD+TFT+Touch+ethernet - or does this just mean that shields are incompatible if they are not being wired? I am interested in a project that has a tft with touch.. And Sd.. And would be connected with ethernet.. Currently I have a shield from aqualed source for 5.0" tft - and was thinking I could use a ribbon cable to take ethernet connection "outside" - but does this then work or not?

Small web server example using Taijiuino.

As some of the followers of this thread know, I have been working porting the EMAC library and example from AS6 ASF SAM3X-EK to the Arduino Due environment. Even though I tried to put the Due in action, it is very hard under its actual design. Thus, I migrated to Taijiunio and AS-Sam3x (third parties Due based boards). So far, we have a very raw workable library but also we have been very busy to finish it. We have some plan to continue next month (Paul, Thibaut and me).
In the meantime of our EMAC library development and taking advantage that the raw EMAC library is working decently, I have decided to explore, what is, our next frontier: to use the potential EMAC cababilities of Arduino Due (now available in the Taijiuino board) an convert it in a small web server. Thus, I made a raw porting of the AS6 ASF lwIP Atmel example. This example features a basic HTTP web server using lwIP TCP/IP stack and the EMAC driver of the Taijiuino in mode standalone (without OS).

Plugging directly the Ethernet cable into the Taijiuino EMAC kit to my laptop and configuring the network to local mode setting up a 'point-to-point' network, now I can launch my Google Chrome web browser and typing the IP address assigned automatically to the Taijiuno (DHCP mode) and see an index.html page that comes with the example (converted into a static C struct, with HEX codes, with the help of a small Perl script).

Here attached a couple of pictures of the Taijiuino in action and the serial output. I have planned (of course) to polish and finish this raw code of the web server (it is messy and big now) into the Arduino IDE environment and create some input/output functions like turn on/off digital outputs using buttons in the web page, or change analog signals using a painted potentiometer or show status of some parameters in the board (temperature, voltage, etc.) but...that will take some weeks. Regards!

Missed out on this thread while it was active but read through it all. Nice work all.

What is the status on the demo code? I do see that the emac.h and emac.c files are in as of 1.5.3 now.

Tnx,
Greg

Hello Greg,

Thank you for asking about the EMAC code. Here a brief dossier about its status:

EMAC demo sample code is running OK using Arduino IDE 1.5.2 and a third-party Due-based board, enabling it to respond to a ping command sent by a computer. See reply #67:
http://forum.arduino.cc/index.php?PHPSESSID=5i6p7elee9gv585u7626tb7mn7&topic=142908.60

So far, I have a ported EMAC library (from AS6 ASF) with the Media Independent Interface (mii), mini IP structure (mini_ip) and the phy driver (conf_eth) files. I also had to modify the emac files (.c, .h) that you mentioned, and the variant files (.c, .h) from the IDE152. Notice that IDEs 1.53 and 1.54 do not have the emac pin definition/configuration. The next step is to create the EMAC class and overload some functions under the Arduino style. Regards!

Palliser:
Hello Greg,

Thank you for asking about the EMAC code. Here a brief dossier about its status:

EMAC demo sample code is running OK using Arduino IDE 1.5.2 and a third-party Due-based board, enabling it to respond to a ping command sent by a computer. See reply #67:
Connecting an Ethernet PHY to Arduino Due - Arduino Due - Arduino Forum

So far, I have a ported EMAC library (from AS6 ASF) with the Media Independent Interface (mii), mini IP structure (mini_ip) and the phy driver (conf_eth) files. I also had to modify the emac files (.c, .h) that you mentioned, and the variant files (.c, .h) from the IDE152. Notice that IDEs 1.53 and 1.54 do not have the emac pin definition/configuration. The next step is to create the EMAC class and overload some functions under the Arduino style. Regards!

Impressiv as usually what you did, cool stuff

Hi Palliser and all the rest interested in utilising the EMAC built in to the SAM3X8E

Let me introduce the Duet:

Its a 3D Printer (or other stepper driven robot) controller board that uses the SAM3X8E, along with its onboard EMAC, HSMCI SD 2.0 interface and other peripherals. Alot more info is available on this blog post:

It uses the KSZ8051RNL PHY, I wrote about this initial work back in post #72: (Connecting an Ethernet PHY to Arduino Due - #73 by system - Arduino Due - Arduino Forum). The firmware is linked from the blog and runs a web server to control the 3D Printer. Thanks for all the work by Pallister and all the other contributors to this forum - it was useful to see the other implementations.

Nice-looking board.


Rob

Cheers! your pin out diagrams feature on my wall art!

:), thanks, I do like that diagram.


Rob

Hi Tony,
I am very happy and surprised with your Duet. Also anxious to watch the video. It reassures me that every grain of sand distilled from the forum can inspire people like you. I take my hat off to you guys. Best regard! Palliser

That's just an incredible piece of work! Thanks for sharing.

EDITED:

While investigating ways to interface (at high speed) two sam3x8e mcu's, I've discovered this thread. What fantastic work many have accomplished here!

When development of the Ethernet PHY Due driver resumes, I'm curious if it would be easy to implement a "direct connect mode" that couples 2 due compatibles together for diagnostic or communication purpose (no external PHY boards required - just a jumper cable).

Here is the link to the TI paper:

Due compatible to Due compatible jumper cable connection (incomplete):

Also, I've recently found a similar driver for reference that might be of interest: "The internal Ethernet Controller consists of a fully integrated media access controller (MAC) and network physical (PHY) interface (Stellaris M3 family only). The Ethernet Controller conforms to IEEE 802.3 specifications and fully supports 10BASE-T and 100BASE-TX standards."

At the following link, scroll down and click the "Libraries" tab, then click "ETHERNET LIBRARY":

Regards - dlloyd

Hi all,

First of all thank you very much for investing so much time in writing and testing this library!
I just wanted to ask, what is the status of your library? Are you still developing/testing? Have you already uploaded your library to github?
I am planning to use an ethernet plug with a digistump digix board (this is a due clone where the ports are available on the board)
I have read the whole thread and also the infos on the taijidue site. but the site links to this thread...

Thank you!
An00bIS

Hello An00bIS,

The EMAC library for Due remains very raw. You can download it with an sample sketch here:

I tried to conform a work team about a year ago but this has not really been possible for a number of reasons. I also corroborated the library with a sample of a basic HTTP web server using lwIP TCP/IP stack (see reply#92) but that is not on github yet. Feel free to use the library 'as is' but again, it is raw and will work as a base for more developments. Regards,

p

Hi Palliser

thank you for your quick reply! i will check it out!

thanks :slight_smile:
An00bIS

Hello everybody,

At the beginning, sorry for my bad english but i try my best...

And now i need some help. I have an adruino taijiuino and the DM9161 PHY and i want to use UDP. Can I use the existing libraries or do I have to write a new one???

Kellermaaan

Hi all,

TAIJIUINO Due seems out-of-stock on the ElecHouse website.
It just says a new revision "R3 will come soon".

Furthermore, did anyone read this: ?

Any ideas if any new board Arduino due with ethernet phy might be arriving soon ?

Thanks,

the_sensor:
Hi all,

TAIJIUINO Due seems out-of-stock on the ElecHouse website.
It just says a new revision "R3 will come soon".

I'd recommend you to look at ebay. So far, Taijiuino and its Ethernet PHY module have been my best option.

p