Netduino home hardware projects downloads community

Jump to content

The Netduino forums have been replaced by new forums at This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.


Member Since 20 Dec 2011
Offline Last Active Feb 20 2013 01:08 AM

Topics I've Started

Atlas Scientific ENV-RGB Sensor not responding

14 January 2013 - 12:08 AM

I just got a Atlas Scientific ENV-RGB sensor from sparkfun, and I've spent the last two days trying to get it to work. I hooked it up according to the datasheet with red going to 3.3V, black to ground, white (tx) to digital pin 0(rx) and  green(rx) to digital pin 1(tx) on the Netduino. Also I have the following code. 


public static void Main()        {            SerialPort sp;            try            {                sp = new SerialPort(Serial.COM1, 38400, Parity.None, 8, StopBits.One);                sp.Open();                sp.DataReceived += new SerialDataReceivedEventHandler(SerialDataReciever);                byte[] message = Encoding.UTF8.GetBytes("Er");                Debug.Print(new string(Encoding.UTF8.GetChars(message)));                sp.Write(message, 0, message.Length);                while (true) { }            }            catch (Exception e)            {                Debug.Print(e.StackTrace);            }        }        public static void SerialDataReciever(object obj, SerialDataReceivedEventArgs args)        {            SerialPort thePorts = obj as SerialPort;            if (thePorts.BytesToRead > 4)            {                byte[] buffer = new byte[30];                thePorts.Read(buffer, 0, thePorts.BytesToRead);                Debug.Print(new string(Encoding.UTF8.GetChars(buffer)));            }        }



The problem I'm having is that even though my SerialDataReciever method is getting called the bytes are empty when its called. Also by default it should return 5 bytes though the first time that SerialDataReciever is called it only contains 2 bytes, both of which are empty. Does anyone have any experience with this sensor? I'm not sure if I am using the SerialPort class correctly, but from what I've read I feel like it should work. Any help would be greatly appreciated. Thanks.

SPI and digital potentiometer (MCP4231)

09 February 2012 - 12:30 AM

First I would like to say in the month I have had my netduino I have learn a ton. These things rock.

Ok to my question. I am trying my hand at running a digital potentiometer(Specifically a MCP4231). I would like to use it as a variable voltage divider to mimic/replace a joystick from an electric wheel chair. So I've read through the datasheet and while I'm pretty sure that I understand how to connect it, I'm not sure that I have the SPI object initialized correctly, or if I do have it initialized correctly, if i am sending the correct commands. Any light shed will be greatly appreciated. Thanks!

Here is my code. Almost verbatim from the wiki.

        public static void Main()

            SPI.Configuration Device1 = new SPI.Configuration(
            Pins.GPIO_PIN_D10, // SS-pin
            true,             // SS-pin active state
            0,                 // The setup time for the SS port
            0,                 // The hold time for the SS port
            false,              // The idle state of the clock
            true,             // The sampling clock edge
            1000,              // The SPI clock rate in KHz
            SPI_Devices.SPI1   // The used SPI bus (refers to a MOSI MISO and SCLK pinset)
            SPI SPIBus = new SPI(Device1); 

            while (true)
                // Writes a single byte with value 255 to the SPI device
                byte[] WriteBuffer = new byte[2];
                WriteBuffer[0] = 0;
                WriteBuffer[1] = 0;
                WriteBuffer[0] = 0;
                WriteBuffer[1] = 120;

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.