I need to implement an Ethernet communication between one board with a pic micro-controller and 16-24 other boards with micro-controllers.

I don't know how to start even though i entered the microchip site and read some PDFs.

I am familiar with RS232. Is it similar? Please help me on how to start implementing this, really the basic

  • \$\begingroup\$ Dan, I think you need to step back a bit and try to make your question clearer and very specific. There is a lot of information on Microchip's web site about Ethernet and PICs and there are development boards that specifically allow you to test the functionality. For example, this one. However, it's a big subject and your question is a little too broad for a simple answer. \$\endgroup\$ – Roger Rowland Aug 1 '16 at 7:55
  • \$\begingroup\$ yeah i had a feeling... basically i am asking how to start? do i need to write the whole protocol? there is a lot of information but i feel i cant find the basics how to start \$\endgroup\$ – Dan Aug 1 '16 at 7:59
  • \$\begingroup\$ I recommend that you capitalise and punctuate your post properly too. It improves legibility and readers will take your question more seriously if you write it well. If you don't care enough to ask properly ... \$\endgroup\$ – Transistor Aug 1 '16 at 8:55
  • \$\begingroup\$ Start by punching "PIC Ethernet controller" into your favorite search engine. Read up until you have an actual, specific question. \$\endgroup\$ – David Schwartz Aug 1 '16 at 10:18
  • 3
    \$\begingroup\$ A "question" which would require a starter guide as an answer automatically is too broad for StackExchange sites. Also, "I need to use X to do Y and I need a starters guide for X" is generally a bad sign. If you don't know X at all, how did you come to the conclusion that it's suitable for Y ?! \$\endgroup\$ – MSalters Aug 1 '16 at 11:16

What you ask for is doable. But, since you're talking about "doing Ethernet", asking whether it's similar to RS-232, and your research consists of reading "some PDFs", this is currently way over your head. You are going to need someone that knows what they are doing for this project. If you're smart and attentive, you can learn from this project and maybe do it yourself next time. Do not try to do this on your own with your current level of knowledge and inexperience with Ethernet and networking in general.

Just to give you some idea, Ethernet is only the low level physical layer to get network packets from one place to another. Most likely, your "Ethernet" requirement really means networking using at least TCP/IP and or UDP/IP. There is considerable complexity in this, and it requires a network "stack" running on the micro. Even then, you have to know what you're doing at the application level to use such a network stack.

Hardware wise, all you need is a PIC 18F67J60, the Ethernet pulse transformers, and a RJ-45 jack. That PIC has a Ethernet MAC/PHY built in, and there are various network stacks available for it, including my own. However, there is much much more to "doing Ethernet" than just hooking up the hardware.

  • 1
    \$\begingroup\$ Thanks for the response. I understand what you are saying (regarding i am way over my head) and that is why i came to you guys.I have no one else (physically here) to teach me and i dont expect you guys to take me hand by hand. I was more hoping you know some links, webinars, papers that are more suitable for novice users. I know it will take me a lot of time. what if i was an unexpirence user using arduino? what i am saying is that i understand all that and i know its not a plug & play issue, but that is what i need to do at the moment.So any kind of guidance you have will be much appreciated \$\endgroup\$ – Dan Aug 1 '16 at 11:35

Using Ethernet is usually done by calling half a dozen C functions - once you have the Ethernet stack (big monolithic chunk of software) installed.

Download some of the demo code from microchip and get it going.

Maybe purchase one of their development boards as it is easier to get the demos going.

When the time comes to write your own code to send data over Ethernet you need a bit of knowledge about networking.

Read up on how client server programs work. Read up on how to use the socket library.



My recommendation would be to not reinvent the wheel. Buy a pre-made module. They're expensive, but save you tons of development time, so if you're not talking huge quantities it's worth it. I use these guys:


They're specialized for various industrial protocols, so they may be more expensive than you really need. I'm sure there are other people out there that do similar jobs.


What ethernet protocol? Are you rolling your own? Why use ethernet for 16-24 boards? Is it a requirement for the project? If so what else does the requirement state? Wired/wireless? gigabit? 10/100? Even before IoT there were a number of solutions (one uses a PIC even) now with IoT you have the ESP8266 as well as many others and they do a bunch of the work for you.

RS232 is an electrical and pin standard not a protocol standard, I assume you meant you were familiar with uart serial protocols instead of saying RS-232. Some of these parts support a uart interfaces, so it can really be a small matter of programming.

If you are not using a wiznet or esp8266 or other, then you might need to implement the stack. Doable in a PIC but I would be shopping for some other mcu to give you resource room and speed.

Depending on what you really need you could use a long distance uart solution (RS-422) and daisy chain, (or i2c or spi or mdio or can or other) you could use bluetooth, you could use infra red or IRDA, xbee/zigbee, etc.

Does everyone need to talk to everyone or is there one master and many slaves? What is the nature of the data, bursty, continuous, data rate, burst size, etc.

You are in no way ready to start talking about ethernet yet, you have a lot more reading to do. But before that you have to define your problem, full duplex, half duplex the nature of the data, continuous, bursty, unidirectional/bidirectional everyone sees everything or only master/slave, etc. That by itself may make the answer more obvious or at least reduce some that wont work. If someone gave you an "ethernet" requirement then there would have to be several other parameters than the word "ethernet" or "internet".

  • \$\begingroup\$ Ethernet is a requierment. \$\endgroup\$ – Dan Aug 2 '16 at 7:57
  • \$\begingroup\$ Ethernet is a requirement. There will be one control unit that will talk to all (for the simplicity now, lets say 2 other units) other units. The slaves do not talk to one another, but they do respond to the master. At the moment i just want to start something. I know i am over my head but one way or another, i am tackling this. Will love to get some help \$\endgroup\$ – Dan Aug 2 '16 at 8:06
  • \$\begingroup\$ wired or wireless or doesnt matter? what protocol or doesnt matter? \$\endgroup\$ – old_timer Aug 2 '16 at 8:26
  • \$\begingroup\$ Wired. Protocol dont matter. Is there a module to convert from uart to Ethernet? \$\endgroup\$ – Dan Aug 2 '16 at 8:41
  • \$\begingroup\$ google is your friend...I already mentioned a couple one wired one wireless. \$\endgroup\$ – old_timer Aug 2 '16 at 8:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.