Main Site Documentation

Installation issues and Ethernet shield


#1

FedEx dropped off my new FEZ Domino today!

Installation was really rough. Mainly because nowhere did it mention that I needed to update the firmware before I could use the device. I tried to run a bunch of programs, but none of them worked. I looked at the pins with my O-Scope, and they were all at 2V, which I knew wasn’t right. Eventually, I found the firmware upgrade video and after completed the procedure, I am happy to say my FEZ is alive and well :smiley:

I had a question about the Ethernet shield: Will the Arduino’s Ethernet shield work with the FEZ? It is obviously pin compatible, but is the Enet shield GHI is selling the same as the one Sparkfun is selling? In other words, will the driver provided by GHI work for the Arduino Ethernet shield?

I noticed that the FEZ’s Ethernet shield had a similar layout to the Arduino’s sheild, but I was wondering if there might be subtle differences or something.

Thanks!


#2

Glad that you got it working!

Both the “Beginners guide to NETMF.pdf” and the “FEZ_Tutorial.pdf” talk about updating the Domino’s firmware to match the version of the “GHI NETMF SDK” that you are using.

Greg


#3

GregEigsti is correct. Follow the tutorial step by step and you get familiar with the device very fast.

Sparkfun’s Ethernet shield works on FEZ Domino with our driver it it has the same pin-out which it is the valid in your case I believe


#4

I have my Ethernet shield working (yay!) but it is pretty ouch and go. Can yo give an ETA for when the Ethernet functions will be built in to the firmware? Is there a beta I can help you guys test?


#5

What we are doing is moving the drivers internally so you can use “standard .NET” sockets. This is about 4 weeks of work only but it was delayed because we are finishing more important things. For example, we need the final release of the firmware (RTM) so no one would have to update firmware from now on. What will happen next is that we will branch into a separate beta release that will have the new features (like Ethernet driver).
Why all this? So new users do not have to worry about firmware updates. On the other hand, experienced users like yourself (who know how to update firmware) can get the beta firmware and try it out.

We expect the RTM to be released in about 2 weeks. I am not sure if Ethernet will come next as running VS2010 is more important. VS2008 will not be available soon so we need to support V2010. Plus we need to coordinate with Microsoft on the new NETMF release 4.1…etc. Our business is much larger than just FEZ so we are also taking care of the many other products we offer on GHI main website.

I do not think I have answered your question but tried to explain that we are committed to making the Ethernet driver but there are 10001 thing we are doing now :smiley:

…oh! just remembered the math library too :wink:


#6

Ok, great, thanks!

BTW: Do you know if it is possible to configure C# Express to use hard tabs instead of spaces for indenting?

My full copy of Visual Studio has this option, but I don’t see it in Express anywhere.

Speaking of which, is there any way to use the FEZ with my “full” (not Express) copy of Visual Studio? I have 2008, but I may upgrade to 2010.


#7

Yes you can use express or professional but you need 2008 with sp1. Soon 2010 will be spported


#8

Hmm. I cannot figure out hwo to get Visual Studio to work with the the .NET micro SDK. I installed SP1, (re)installed the SDK, downloaded from the link in the NETMF beginners guide, but nowhere in VS 2008 do I see an option to create a NETMF application. It works perfectly with C# Express, just not Visual Studio.

the interesting thing is that it is listed in the “about” screen, under “installed products”. I just don’t see an option to start a new project in it.

Any ideas?
Thanks!
PS: You guys have incredible support, thanks a lot!
:smiley:

EDIT: NEVERMIND! I found it. For some reason I didn’t see it, but it is there. :D:D:D


#9

Glad you found it :wink: and glad you like our support :smiley:


#10

Hello,

What is the status on the ethernet driver and code sample? Have you got an ETA for stable realease?

thanks for the support

Cheers


#11

We are currently not working on it. We are still very busy with higher priority things (we just release a production SDK :))
We expect to get to it by July


#12

The Ethernet code mostly works, but it is buggy. There are some instances where it only recvices half the characters that it should (the rest are whitespace)

This is my code


        /*
         *  public static string sendHTTPRequest(byte[] server, ushort port, string url)
         *  
         * Send an HTTP request and return the HTTP response
         * */

		public static string sendHTTPRequest(byte[] server, ushort port, string url)
		{
			// Wait until enet is no longer in use
			while (eNetInUse)
				Thread.Sleep(10);

			eNetInUse = true;

			// Connect to the server
			socket.Connect(server, port);

			// Get a byte array for the GET request and send it
			byte[] sendB = Encoding.UTF8.GetBytes("GET /"+ url +"\r\nHTTP/1.0\r\n\r\n");
			socket.Send(sendB, sendB.Length);
			
			// Recive the HTTP response and cast the byte[] into a string
			byte[] recv = new byte[socket.AvilableBytes];
			socket.Receive(recv, recv.Length);

			// Disconnect and return the HTTP response (minus headers)
			socket.Disconnect();
			eNetInUse = false;
			return bytesToString(recv);
		}

At first, I thought it might have been the fact that I have two threads going that are both using that function, so I put in the if (eNetInUse), although I have not noticed a change.

It works, but beware.


#13

Chris:

With a preemptive tasking functionality, such as METMF provides, you can not use a variable (eNetInUse) in the manner you did as a mutex. It is not reliable.

You might want to use a Lock() on the socket before writting to it. That would be reliable.


#14

Hi Mike,

I am not even sure if that is the issue though. The second thread only actually does something every 45 minutes, so it would take a big coincidence to make the two calls collide.

I think the driver is just a bit buggy.


#15

I’ve been looking over old threads and thought I should add to this one instead of making a new one regarding the Sparkfun Ethernet Shield. I’ve got 2 kinds the official Arduino ones and one from NKCElectronics (both have Wiz5100s). My question is regarding the ICSP pins which are required to get the board to work. As the FEZ Domino doesn’t have the SPI connectors lined up with the Arduino connectors (used for SPI connectivity to the shield) how can it possibly work? If I had more room between the board and the shield I could patch from other pins but I’d really have to unsolder the connector to get it to work.

I noticed that the DFRobot board sold on this site doesn’t have the ICSP connector and should work.

Can someone confirm use of the Sparkfun shield without modification? thanks in advance! I linked the page to the products I’m referring to.

http://www.sparkfun.com/products/9026
http://www.nkcelectronics.com/nkc-ethernet-shield-for-arduino-mega–duemilanove–diecimila-diy-kit.html


#16

The shield from sparkfun should work just fine.

Why not use the one from this website?


#17

No reason other than I already own a bunch of them and don’t really feel like buying more if I can use one that I already own. I can always rewire a board to get to the ICSP pins. I do not believe it will work without modification. Specifcally from the Arduino site,

There is no connection to pins 11, 12 and 13 via any other means than the ICSP port located at the bottom of the shield.


#18

jr57k:

[quote]There is no connection to pins 11, 12 and 13 via any other means than the ICSP port located at the bottom of the shield.
[/quote]
That right! Arduino Wifi Shield was made to be compatible for both Arduino and MEGA so they eliminat the trace on pin 11 12 and 13 and then moved the SPI to the ICSP connector instead.

This problem had beed discuss on this thread as well, look at the end of the thread:

http://www.tinyclr.com/forum/1/1439/#/2/


#19

I see. You do not have to buy anything then…

You only need to add 3 wires from the ICSP header to the SPI pins. Both are female headers so you can just stick the wires in there.

the three pins are (see this image on where to connect them http://www.tinyclr.com/images/products/TCLR-0001_large.jpg)

  • SCK (it is pin 3 on ICSP) to connect to pin 13 on domino
  • MOSI (it is pin 4 on ICSP) to connect to pin 11 on domino
  • MISO (it is pin 1 on ICSP) to connect to pin 12 on domino

The SSEL (CS) line is already connected to pin 10

We also recommend connecting reset as described in the brochure.

… if you are still not sure, ask and I will help more. Remember to make a wiki page explaining how you got it working so others can benefit from your work :slight_smile:

Edit: yes the post that sam pointed out already shows it all.

Sam, where is the wiki page for that explanation? :wink:


#20

Gus:

I thought about write the instruction a while back.
I’ll do it sometime next week.