That got me thinking - The Arduino costs about $30AUD, and the Ethernet board cost about $30AUD as well. That is a lot of money - Could I make a simple, dedicated remote controller for much cheaper? Why Yes I could. Could I make it the size of a credit card? Why Yes - I could!!
This project is my simple Arduino compatible controller that has embedded Ethernet, and the capacity to drive some extra I/O lines for projects, such as a Remote thermometer, a Remotely accessible Fridge controller, and a Remote Humidity sensor. I have to say from the start that I didn't write all of the software, my mate Mikal did that - but this instructable is about making your own controller board!
Lets start!
Remove these ads by
Signing UpStep 1Here is the Schematic Diagram
As you can see, there are a number of exposed header connectors that can be used to connect peripheral devices to.
The board is powered with a supply of between 7 and 12v. It contains voltage regulators to provide +5v and +3.3v for the Ethernet controller.
There is also a 4 position DIP switch that can be used to allow programmed functions to be modified. A failing of the standard Arduino Ethernet library is that the IP address for the board has to be set in code. Using the DIP switch, a block of addresses can be selected from as required. You can make 16 boards, and have each board automatically select a different address based on the switch setting. This is *really* handy when you have deployed 10 sensors around the house. All you need to do is set a switch and then they are configured.
The pinouts of the I/O connectors are;
I/O1 - 1 - PD5 (Arduino Pin 5)
I/O1 - 2 - PD6 (Arduino Pin 6 +pullup to +5v) - Used to connect a DS1820 Temperature sensor.
I/O1 - 3 - PD7 (Arduino Pin 7)
I/O1 - 4 - PD8 (Arduino Pin 8)
I/O1 - 5 - GND
I/O2 - 1 - +5v
I/O2 - 2 - GND
I/O2 - 3 - PD4 (Arduino Pin 4)
I/O2 - 4 - PC0 (Arduino Analog 0)
I/O2 - 5 - PD3 (Arduino Pin 5)
I/O2 - 6 - PC1 (Arduino Analog 1)
I/O2 - 7 - PC2 (Arduino Analog 2)
I/O2 - 8 - PC3 (Arduino Analog 3)
I/O2 - 9 - PC4 (Arduino Analog 4)
I/O2 - 10 - PC5 (Arduino Analog 5)
Arduino-Ethernet-schematic.pdf(595x842) 59 KB| « Previous Step | Download PDFView All Steps | Next Step » |













































http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&itemSeq=114871490&uq=634731994935675812
DC resistance 100mOhm sounded okay.
Cheers!
I have not tried it, so I can't provide firm advice on what works well.
Very nice project, very nice.
I see it's based on the ENC28J60 chip, and unfortunately I haven't managed to do what I want to do: just an GET request.
Is it possible with this one? I guess not.
Thanks in advance!
http://www.nuelectronics.com/download/projects/etherShield.zip is one.
I believe works put of the box with this and includes a simple web server. In the example etherShield_web_switch it uses GET to change the status of an LED.
I tried with that library some time ago, and with no results.
It is possible (and not very complicated) to make it work and receive get http requests, but to make the arduino work as a client was impossible to me.
However, nowadays the WIZ based shield is pretty cheap, so I don't need to fight with the ENC anymore.
Thanks anyway!
i didnt use the customized PCB, i used a perfboard instead so followed ur schematics. The only thing that is missing in ur schematic is 74HC08 not connected to gnd and 5v.
I had a faulty 25mhz crystal which makes the ethernet connection fail and took me a long time to find out the problem. so for guys who cant connect the LAN please try to check ur crystal.... Hope this help
Thanks anyway...
Doug
Could you please help me with it?
BTW, thank you very much for this great project.
The Magjack is actually fairly important. I was very surprised to see that liodel had it working. The transformers in the jack remove common mode noise from the ethernet signal that may be there because of ground loops between the decice sending the data and the project.
You will not see any voltages on the input and output pins of the enc28j60, as the voltages are small, and very high speed (10Mhz).
There are a couple of possibilities,
1. You may have your computer set to a different network address than the project - They both have to be on the same subnet. You can adjust the address my modifying the line in the code....
2. You may have the transmit and receive pairs swapped - the project will not auto swap that cabling - so it may pay to double check that.
Have a look at those things, and let me know..
I inseterd a serial.println(plen) I Think, and determined the mega was not receiving the ethernet chip.
After powering the AND gate, the board started to work and plen did not equal 0 anymore.
Sorry is the variable name is wrong and for the spelling, I'm at work with no spell check.
The leds blinking twice only indicate the ethernet chip is receiving the mega, not the other way around.
I connected it to my switch so it will swap the pairs automatically. I have my LAN subnet set to 192.168.0.0/24, so I set the IP to 192.168.0.50. I think that one LED should stay on (and also LED on the switch) to indicate that the cable is connected, so there is most likely problem with connection.
So I'm considering buying the magjack abroad. Will this one work? http://cgi.ebay.com/5-pcs-RJ45-connector-magnetics-LED-/280549645136?pt=BI_Electrical_Equipment_Tools&hash=item41520fdb50
the ebay link looks great - you may have to fiddle the layout a bit, based on the pinout, but that is trivial - well done on finding a suitable component.
:-)
That's when I saw you project and it seems really useful to me because I really don't need to use any ready-made boards.
So what I wanna know is that what are the changes i should do in this board transform it into a HTTP web-server, or should I use a separate MCU with this board?
Can I do this by using ATMega644( which has enough Flash to hold webpage) instead of ATMEGA168?
Im really new in this...
Its a great help.. I was to do this with a PIC 18F4620 and enc28j60 with TCPIP stack... But its too difficult for me.
http://www.nuelectronics.com/download/projects/etherShield.zip
I believe works put of the box with this and includes a simple web server.
I
Yoy wrote below that L1 is just piece of wire with a ferite bead on it.
So do i ubderstand that the piece of wire just goes through the bead? No turns at all?
Found local shop that sells the enc chip, if I can find a shop that sells the RJ45 adapter there is no reason to postpone building it. :-)
Doug
By the way, seems some company has dipped into yr design:
http://www.nuelectronics.com/download/projects/Ethernet_v1_0.pdf
or accidentally came upp with almost the same. Still not a bad deal at 12.50 (pounds)
I have a question while reviewing the diagrams, you interface the INT pin of the ENC28J60, but the interrupt is not used in the software library anyway. Am I wrong that you can omit connecting that pin whatsoever? I also cross-checked with similar projects like NaNode and Open Sprinkler and they too leave INT unconnected.
Thanks
Martin
While the 3.3v should be interpreted as a high, operating without a buffer will significantly decrease the noise margin on the input. In reality - it will probably work fine for hobbyist electronics.
Doug
The only thing you have to worry about is to use the 3th parameter in the begin function. The library defaults CS to pin 8, meanwhile this project has that connected to pin 10. So, if you add the 10 to the begin function, it works like a charm.
Ej:
in the examples:
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println( "Failed to access Ethernet controller");
change to:
if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)
Serial.println( "Failed to access Ethernet controller");
how much does the materials cost?
Awesome project, I am really keen to build one of these. My only issue is I need access to the SPI bus to control an SD card reader however from the look of the schematic these lines are tied to the ethernet controller and aren't available?
Also, I read the other comments and you talk about the power supply not having much room but having enough to power a few sensors. I want to run a few WS2801 -channel constant current LED drivers chips for controlling a few LED strips. Or course the LEDs will be powered externally but I wanted to power the chip from the board.
Thanks,
Sam
There is no reason why you can't use different pins for the Ethernet controller. it is not an SPI device.
Also with the voltage regulator, Why not use a bigger, low drop out regulator.
Doug
Thanks for the swift reply.
I had a look a the datasheet for the Microchip ENC 28J60 - DIP and they all say it has an SPI interface. But thats not to much of an issue, i'll have a go at reworking the layout so pins PB5, PB4 and PB3 have header pins.
I dont suppose you have a recommendation on what regulator to use? I'm much more of a software guy who has recently become fascinated by hardware.
I think for what I want I should implement this as a shield. If that were the case would the following work? Excuse the hack job edit :-) I'll need to change the PCB layout unless of course you have one handy?
Thanks again,
Sam