Page 2 of 3

Re: RAW to percentage/temperature

Posted: 06 Jan 2011, 15:09
by mattallen37
Where is it? I would like to see it, even though I don't know if I will get much from it.

Re: RAW to percentage/temperature

Posted: 06 Jan 2011, 15:30
by gloomyandy
You can download it from the Lego Mindstorms site...
http://mindstorms.lego.com/en-us/suppor ... x#Firmware

If you want to explore it make sure you use a good ide with good search tools to let you follow the code around (something like NetBeans or Eclipse, or if you are a command line sort of guy make sure you have grep etc. available)...

Andy

Re: RAW to percentage/temperature

Posted: 06 Jan 2011, 15:40
by gloomyandy
Sorry, wrong link. The correct one is here...
http://mindstorms.lego.com/en-us/suppor ... x#Advanced
scroll the horizontal scrolling thing until you can choose "open source firmware" and download that!

Andy

Re: RAW to percentage/temperature

Posted: 06 Jan 2011, 18:22
by afanofosc
Here's the important bit (from the enhanced NBC/NXC firmware which is slightly different than the standard firmware):

Code: Select all

      else if (sType == TEMPERATURE)
      {
        if (InputVal < 290)
          InputVal = 290;
        else if (InputVal > 928)
          InputVal = 928;
        InputVal = TempConvTable[(InputVal) - /*197*/ 290];
        InputVal = InputVal + 200;
        InputVal = (UWORD)(((SLONG)InputVal * (SLONG)1023)/(SLONG)900);
The TempConvTable is here:

Code: Select all


const     SWORD TempConvTable[] =
{
/* 1500,  1460,  1430,  1400,  1380,  1360,  1330,  1310,  1290,  1270,  1250,  1230,  1220,  1200,  1190,  1170,
   1160,  1150,  1140,  1130,  1110,  1100,  1090,  1080,  1070,  1060,  1050,  1040,  1030,  1020,  1010,  1000,
    994,   988,   982,   974,   968,   960,   954,   946,   940,   932,   926,   918,   912,   906,   900,   894,
    890,   884,   878,   874,   868,   864,   858,   854,   848,   844,   838,   832,   828,   822,   816,   812,
    808,   802,   798,   794,   790,   786,   782,   780,   776,   772,   768,   764,   762,   758,   754,   750,
    748,   744,   740,   736,   732,   730,   726,   722,   718,   716,   712,   708,   704,*/ 700,   696,   694,
    690,   688,   684,   682,   678,   674,   672,   668,   666,   662,   660,   656,   654,   650,   648,   644,
    642,   640,   638,   634,   632,   630,   628,   624,   622,   620,   616,   614,   612,   610,   608,   604,
    602,   600,   598,   596,   592,   590,   588,   586,   584,   582,   580,   578,   576,   574,   572,   570,
    568,   564,   562,   560,   558,   556,   554,   552,   550,   548,   546,   544,   542,   540,   538,   536,
    534,   532,   530,   528,   526,   524,   522,   520,   518,   516,   514,   512,   510,   508,   508,   506,
    504,   502,   500,   498,   496,   494,   494,   492,   490,   488,   486,   486,   484,   482,   480,   478,
    476,   476,   474,   472,   470,   468,   468,   466,   464,   462,   460,   458,   458,   456,   454,   452,
    450,   448,   448,   446,   444,   442,   442,   440,   438,   436,   436,   434,   432,   432,   430,   428,
    426,   426,   424,   422,   420,   420,   418,   416,   416,   414,   412,   410,   408,   408,   406,   404,
    404,   402,   400,   398,   398,   396,   394,   394,   392,   390,   390,   388,   386,   386,   384,   382,
    382,   380,   378,   378,   376,   374,   374,   372,   370,   370,   368,   366,   366,   364,   362,   362,
    360,   358,   358,   356,   354,   354,   352,   350,   350,   348,   348,   346,   344,   344,   342,   340,
    340,   338,   338,   336,   334,   334,   332,   332,   330,   328,   328,   326,   326,   324,   322,   322,
    320,   320,   318,   316,   316,   314,   314,   312,   310,   310,   308,   308,   306,   304,   304,   302,
    300,   300,   298,   298,   296,   296,   294,   292,   292,   290,   290,   288,   286,   286,   284,   284,
    282,   282,   280,   280,   278,   278,   276,   274,   274,   272,   272,   270,   270,   268,   268,   266,
    264,   264,   262,   262,   260,   260,   258,   258,   256,   254,   254,   252,   252,   250,   250,   248,
    248,   246,   244,   244,   242,   240,   240,   240,   238,   238,   236,   236,   234,   234,   232,   230,
    230,   228,   228,   226,   226,   224,   224,   222,   220,   220,   218,   218,   216,   216,   214,   214,
    212,   212,   210,   210,   208,   208,   206,   204,   204,   202,   202,   200,   200,   198,   198,   196,
    196,   194,   194,   192,   190,   190,   188,   188,   186,   186,   184,   184,   182,   182,   180,   180,
    178,   178,   176,   176,   174,   174,   172,   172,   170,   170,   168,   168,   166,   166,   164,   164,
    162,   162,   160,   160,   158,   156,   156,   154,   154,   152,   152,   150,   150,   148,   148,   146,
    146,   144,   144,   142,   142,   140,   140,   138,   136,   136,   136,   134,   134,   132,   130,   130,
    128,   128,   126,   126,   124,   124,   122,   122,   120,   120,   118,   118,   116,   116,   114,   114,
    112,   110,   110,   108,   108,   106,   106,   104,   104,   102,   102,   100,   100,    98,    98,    96,
     94,    94,    92,    92,    90,    90,    88,    88,    86,    86,    84,    82,    82,    80,    80,    78,
     78,    76,    76,    74,    74,    72,    72,    70,    70,    68,    68,    66,    66,    64,    62,    62,
     60,    60,    58,    56,    56,    54,    54,    52,    52,    50,    50,    48,    48,    46,    46,    44,
     44,    42,    40,    40,    38,    38,    36,    34,    34,    32,    32,    30,    30,    28,    28,    26,
     24,    24,    22,    22,    20,    20,    18,    16,    16,    14,    14,    12,    12,    10,    10,     8,
      6,     6,     4,     2,     2,     0,     0,    -2,    -4,    -4,    -6,    -6,    -8,   -10,   -10,   -12,
    -12,   -14,   -16,  - 16,   -18,   -20,   -20,   -22,   -22,   -24,   -26,   -26,   -28,   -30,   -30,   -32,
    -34,   -34,   -36,   -36,   -38,   -40,   -40,   -42,   -42,   -44,   -46,   -46,   -48,   -50,   -50,   -52,
    -54,   -54,   -56,   -58,   -58,   -60,   -60,   -62,   -64,   -66,   -66,   -68,   -70,   -70,   -72,   -74,
    -76,   -76,   -78,   -80,   -80,   -82,   -84,   -86,   -86,   -88,   -90,   -90,   -92,   -94,   -94,   -96,
    -98,   -98,  -100,  -102,  -104,  -106,  -106,  -108,  -110,  -112,  -114,  -114,  -116,  -118,  -120,  -120,
   -122,  -124,  -126,  -128,  -130,  -130,  -132,  -134,  -136,  -138,  -140,  -142,  -144,  -146,  -146,  -148,
   -150,  -152,  -154,  -156,  -158,  -160,  -162,  -164,  -166,  -166,  -168,  -170,  -172,  -174,  -176,  -178,
   -180,  -182,  -184,  -186,  -188,  -190,  -192,  -194,  -196,  -196,  -198,  -200/*,-202,  -204,  -206,  -208,
   -210,  -212,  -214,  -216,  -218,  -220,  -224,  -226,  -228,  -230,  -232,  -234,  -236,  -238,  -242,  -246,
   -248,  -250,  -254,  -256,  -260,  -262,  -264,  -268,  -270,  -274,  -276,  -278,  -282,  -284,  -286,  -290,
   -292,  -296,  -298,  -300,  -306,  -308,  -312,  -316,  -320,  -324,  -326,  -330,  -334,  -338,  -342,  -344,
   -348,  -354,  -358,  -362,  -366,  -370,  -376,  -380,  -384,  -388,  -394,  -398,  -404,  -410,  -416,  -420,
   -428,  -432,  -440,  -446,  -450,  -460,  -468,  -476,  -484,  -492,  -500,  -510,  -524,  -534,  -546,  -560,
   -572,  -588,  -600,  -630,  -656,  -684,  -720,  -770 */
};
John Hansen

Re: RAW to percentage/temperature

Posted: 06 Jan 2011, 22:50
by mattallen37
Ok, thank you. Hopefully I will be able to learn from it.

Re: RAW to percentage/temperature

Posted: 24 Jan 2011, 21:10
by nxtreme
I hate to bump up old posts but I found something rather interesting that I thought you might want to know. While reading the Spanish Wikipedia entry for Lego Mindstorms (which, IMHO is way better than the numerous English entries) I came across a simple equation that supposedly calculates the temperature from the raw value. Keep in mind that I haven't tested this, the main reason being that I don't have a Legacy Temp sensor. I also remember finding an equation for raw-to-temp in the Extreme NXT book (second edition) but for some reason didn't bookmark it...

-Edit- Post 100! :lol:

Re: RAW to percentage/temperature

Posted: 24 Jan 2011, 21:38
by h-g-t
The formula is on page 80 of the book.

Re: RAW to percentage/temperature

Posted: 24 Jan 2011, 22:37
by nxtreme
Or, page 82 in the second edition. Ok, I thought that equation was to calculate which thermistor would be best as far as similarity to the Legacy sensor. I thought I'd found a different, simpler, equation elsewhere in the book, I must be mistaken :shock:.

Re: RAW to percentage/temperature

Posted: 25 Jan 2011, 01:00
by mattallen37
Thanks, I'll be sure to try it out. Just so you don't have to go looking, here are the formulas according to that page.

Code: Select all

Light = 146 − RAW / 7

Temp = (785 − RAW) / 8

if (RAW>450)              //touch = 1
Edited for accuracy.

Re: RAW to percentage/temperature

Posted: 25 Jan 2011, 01:34
by nxtreme
I think that when you copied the Light equation over you might have missed some of it :oops:. Complete version below.

Code: Select all

Light = 146 − RAW / 7
-EDIT- Now I messed up! Copied over the Temperature equation instead of the Light equation :oops:.