Hi Chris,
I am new to this forums and this is my first post. Recently I have purchased a few ND2s. I setup a very small serial communication program and unfortunatey it didn't work as expected. Here is the setting:
On netduino, I am using COM4, the connection to the PC as:
ND -----> PC
SDA(RX) ---- TX
SCL (TX) ---- RX
Program runs on the ND:
private static SerialPort _serialPort; public static void Main() { _serialPort = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One); _serialPort.Open(); System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding(); byte[] bytesToSend = encoder.GetBytes("abc"); while(true){ _serialPort.Write(bytesToSend, 0, bytesToSend.Length); } }
Program runs on the PC:
public Program() { _serialPort = new SerialPort(); _serialPort.PortName = "COM3"; _serialPort.BaudRate = 9600; _serialPort.DataBits = 8; _serialPort.DiscardNull = true; _serialPort.StopBits = StopBits.One; _serialPort.Parity = Parity.None; _serialPort.DataReceived += _serialPort_DataReceived; _serialPort.Open(); } private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { var _buffer = new byte[_serialPort.BytesToRead]; _serialPort.Read(_buffer, 0, _buffer.Length); Console.WriteLine(System.Text.ASCIIEncoding.UTF8.GetString(_buffer)); }
Basically, I wanted to let ND to keep sending string "abc" to the PC. After I have tried different Baud rates, i.e. 9600, 4800, 2400. I am always getting very wired result at PC end, please see the attached screenshot.
I suspect there might be the Baud rate mismatch. However, I have tripple checked my code, both sides have identical settings on the serial port.
I spent many hours googling with no luck.
On other weird thing was, I needed to set 'DiscardNull = true' on the PC end, otherwise I am getting massive '0x00' bytes from ND.
I am using VS2010, Micro Framework 4.2, Netdunio SDK 4.2.2.2. I started with VS2013, Micro Framework 4.3, and Netduino SDK 4.3.2.1, unforturnately I couldn't debug the program on ND. I always get error "The debuging target is not in an initialized state; rebooting......", So I have reverted everything back to VS2010, then I could debug the program.
I have also attached the output from "Device capabilities" in the MSDeploy FYI.