Author Topic: DIY "GREEN DOT" Data Logger  (Read 61356 times)

0 Members and 1 Guest are viewing this topic.

Offline watson

  • Member
  • *
  • Posts: 8
Re: DIY "GREEN DOT" Data Logger
« Reply #125 on: November 28, 2013, 08:15:52 AM »
Quote
May I ask how you figured out the algorithm?

I spent a huge time looking at several valid "green dot" 128bytes patterns (looking for recurrences, cross-correlations, etc.)
Last week I finally had the right intuition :) I checked it immediately and It worked  =D>

Quote
...and when the world will actually get to see it?

For me it is not a problem to share with you my work. I would do it gladly.
What I wonder is whether it can be "a problem" for us that the world may know that the algorithm has been really broken, since... Davis is part of this world  :???:

I manage hundreds of weather stations (vp2). In the current economic difficulties, for me it is essential to have the opportunity to use my own hardware to directly interface with the console. My doubt is that the public dissemination of this algorithm could push Davis to change it (probably reinforcing it). This would mean more months of work to break it again  ](*,)

Am I wrong? What do you think about this?

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #126 on: November 28, 2013, 08:16:40 AM »
Torkel

I thought that I read that in the reply from Watson

Quote
No. The "Davis programmed" 64 bytes (first 64 bytes of Adesto Chip "Security Register") are always obtained from the Adesto chip "Factory Programmed" 64 bytes

But I could read it all wrong  :roll:

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #127 on: November 28, 2013, 08:49:17 AM »
Am I wrong? What do you think about this?

I had the pleasure of an informal lunch with an employee of a certain company when visiting CA and the Bay Area earlier this year. Having certain ...interests and helding associated memberships tend to open up some interesting communication channels. Now, what I learned was that (a) the "green dot"-policy wasn't too popular internally and (b) there's been a significant negative market feedback. Now, why would they risk even more negative PR and a lot of support fuzz by establishing *yet* another authentication scheme?

The VUE/VP2 product lines work quite OK. Surely - sooner or later - there will be a significant product upgrade, utilizing far more sophisticated technology than what's found in the present VUE/VP2 series. Two possibilities from there: open interface/API (fingers crossed, would be a huge benefit and a great selling point) or a *very* closed interface making use of some cheap, industry-standard encryption chip (read: as in a number of original printer ink cartridges).

I'll add that the present technology in the data logger units severely limits the authentication options.
« Last Edit: November 28, 2013, 08:51:32 AM by torkelmj »

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #128 on: November 28, 2013, 08:54:50 AM »
Quote
No. The "Davis programmed" 64 bytes (first 64 bytes of Adesto Chip "Security Register") are always obtained from the Adesto chip "Factory Programmed" 64 bytes

But I could read it all wrong  :roll:

The mentioned bytes reside on the memory chip in the data logger.
As long as *anything* can pretend to be a valid data logger, the authentication scheme isn't worth more than yesterday's newspapers. #-o

(And, sorry - I forgot: Happy Thanksgiving to our US friends).
« Last Edit: November 28, 2013, 09:01:50 AM by torkelmj »

Offline chief-david

  • Educational Weather
  • Forecaster
  • *****
  • Posts: 2005
  • Space Academy for Educators
    • Robbinsdale Middle School Weather
Re: DIY "GREEN DOT" Data Logger
« Reply #129 on: November 28, 2013, 08:56:55 AM »
It is times like this where I have to say

its over my head.

Happy Thanksgiving
« Last Edit: November 28, 2013, 09:00:19 AM by chief-david »
Vantage Pro Plus 6163
Robbinsdale, MN 55422@ 45 degrees North Latitude.
http://weather.rms.rdale.org

You can't phase me-I teach Middle School.

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #130 on: November 28, 2013, 09:08:25 AM »
Torkel

Thank you for explaining this  8-)
I thought the code was in the console.
So with the solution you and also Travis supplied every console can be used

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #131 on: November 28, 2013, 09:10:31 AM »
So with the solution you and also Travis supplied every console can be used

Yes. In these solutions, we're just replying by sending already-known accepted values back to the console. 

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #132 on: November 28, 2013, 09:19:04 AM »
Check  ;)

Offline watson

  • Member
  • *
  • Posts: 8
Re: DIY "GREEN DOT" Data Logger
« Reply #133 on: November 28, 2013, 09:59:51 AM »
@Torkel:

I basically agree with your beliefs.
So, let's bare it all.
Have fun guys.


Code: [Select]

u8 const GreenDot_Table[256] =
{
0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C, 0x21, 0x25, 0x29, 0x2D, 0x31, 0x35, 0x39, 0x3D,
0x46, 0x42, 0x4E, 0x4A, 0x56, 0x52, 0x5E, 0x5A, 0x67, 0x63, 0x6F, 0x6B, 0x77, 0x73, 0x7F, 0x7B,
0x8C, 0x88, 0x84, 0x80, 0x9C, 0x98, 0x94, 0x90, 0xAD, 0xA9, 0xA5, 0xA1, 0xBD, 0xB9, 0xB5, 0xB1,
0xCA, 0xCE, 0xC2, 0xC6, 0xDA, 0xDE, 0xD2, 0xD6, 0xEB, 0xEF, 0xE3, 0xE7, 0xFB, 0xFF, 0xF3, 0xF7,
0x18, 0x1C, 0x10, 0x14, 0x08, 0x0C, 0x00, 0x04, 0x39, 0x3D, 0x31, 0x35, 0x29, 0x2D, 0x21, 0x25,
0x5E, 0x5A, 0x56, 0x52, 0x4E, 0x4A, 0x46, 0x42, 0x7F, 0x7B, 0x77, 0x73, 0x6F, 0x6B, 0x67, 0x63,
0x94, 0x90, 0x9C, 0x98, 0x84, 0x80, 0x8C, 0x88, 0xB5, 0xB1, 0xBD, 0xB9, 0xA5, 0xA1, 0xAD, 0xA9,
0xD2, 0xD6, 0xDA, 0xDE, 0xC2, 0xC6, 0xCA, 0xCE, 0xF3, 0xF7, 0xFB, 0xFF, 0xE3, 0xE7, 0xEB, 0xEF,
0x31, 0x35, 0x39, 0x3D, 0x21, 0x25, 0x29, 0x2D, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x04, 0x08, 0x0C,
0x77, 0x73, 0x7F, 0x7B, 0x67, 0x63, 0x6F, 0x6B, 0x56, 0x52, 0x5E, 0x5A, 0x46, 0x42, 0x4E, 0x4A,
0xBD, 0xB9, 0xB5, 0xB1, 0xAD, 0xA9, 0xA5, 0xA1, 0x9C, 0x98, 0x94, 0x90, 0x8C, 0x88, 0x84, 0x80,
0xFB, 0xFF, 0xF3, 0xF7, 0xEB, 0xEF, 0xE3, 0xE7, 0xDA, 0xDE, 0xD2, 0xD6, 0xCA, 0xCE, 0xC2, 0xC6,
0x29, 0x2D, 0x21, 0x25, 0x39, 0x3D, 0x31, 0x35, 0x08, 0x0C, 0x00, 0x04, 0x18, 0x1C, 0x10, 0x14,
0x6F, 0x6B, 0x67, 0x63, 0x7F, 0x7B, 0x77, 0x73, 0x4E, 0x4A, 0x46, 0x42, 0x5E, 0x5A, 0x56, 0x52,
0xA5, 0xA1, 0xAD, 0xA9, 0xB5, 0xB1, 0xBD, 0xB9, 0x84, 0x80, 0x8C, 0x88, 0x94, 0x90, 0x9C, 0x98,
0xE3, 0xE7, 0xEB, 0xEF, 0xF3, 0xF7, 0xFB, 0xFF, 0xC2, 0xC6, 0xCA, 0xCE, 0xD2, 0xD6, 0xDA, 0xDE
};

u8 const Adesto_Factory_Programmed[64] =
{
  // put here AT45DB011D Security Register from byte 64 to 127
};

u8 OneTime_User_Programmable[64];

OneTime_User_Programmable[0] = 0x00; // or whatever you want
OneTime_User_Programmable[1] = 0x00; // or whatever you want
OneTime_User_Programmable[2] = 0x00; // or whatever you want

u8 n, value;

for(n=3;n<64;n++)
{
value = (u8)(Adesto_Factory_Programmed[n] + n);
OneTime_User_Programmable[n] = GreenDot_Table[value];
}


Online Bushman

  • Forecaster
  • *****
  • Posts: 6679
    • Eagle Bay Weather
Re: DIY "GREEN DOT" Data Logger
« Reply #134 on: November 28, 2013, 10:15:57 AM »
I retract my OPW comment.  Brilliant! 

You know, I don't know why Davis just does not build in the interface (USB/serial) to the console and just up the price.  In these everything connected days I suspect most eventually hook the wx stn to the net.

Offline Beaudog

  • Forecaster
  • *****
  • Posts: 1206
Re: DIY "GREEN DOT" Data Logger
« Reply #135 on: November 28, 2013, 10:52:13 AM »
And I don't understand why they keep the different setup for USB loggers.   It would save a lot of confusion and probably  support calls it they would just have everyone setup in serial mode.

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #136 on: November 28, 2013, 10:58:00 AM »
Very nice. Thanks for sharing. And for the effort put into figuring this out. Yes, some of the values in that 256-byte table look very ...familiar. ;)

A few interesting evenings ahead...

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #137 on: November 28, 2013, 11:06:11 AM »
Torkel,

Is it possible that this code can be used in the already made programming?

Offline DeKay

  • Forecaster
  • *****
  • Posts: 397
    • Mad Scientist Labs
Re: DIY "GREEN DOT" Data Logger
« Reply #138 on: November 28, 2013, 02:01:03 PM »
@Torkel:

I basically agree with your beliefs.
So, let's bare it all.
Have fun guys.


Code: [Select]

u8 const GreenDot_Table[256] =
{
0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C, 0x21, 0x25, 0x29, 0x2D, 0x31, 0x35, 0x39, 0x3D,
0x46, 0x42, 0x4E, 0x4A, 0x56, 0x52, 0x5E, 0x5A, 0x67, 0x63, 0x6F, 0x6B, 0x77, 0x73, 0x7F, 0x7B,
0x8C, 0x88, 0x84, 0x80, 0x9C, 0x98, 0x94, 0x90, 0xAD, 0xA9, 0xA5, 0xA1, 0xBD, 0xB9, 0xB5, 0xB1,
0xCA, 0xCE, 0xC2, 0xC6, 0xDA, 0xDE, 0xD2, 0xD6, 0xEB, 0xEF, 0xE3, 0xE7, 0xFB, 0xFF, 0xF3, 0xF7,
0x18, 0x1C, 0x10, 0x14, 0x08, 0x0C, 0x00, 0x04, 0x39, 0x3D, 0x31, 0x35, 0x29, 0x2D, 0x21, 0x25,
0x5E, 0x5A, 0x56, 0x52, 0x4E, 0x4A, 0x46, 0x42, 0x7F, 0x7B, 0x77, 0x73, 0x6F, 0x6B, 0x67, 0x63,
0x94, 0x90, 0x9C, 0x98, 0x84, 0x80, 0x8C, 0x88, 0xB5, 0xB1, 0xBD, 0xB9, 0xA5, 0xA1, 0xAD, 0xA9,
0xD2, 0xD6, 0xDA, 0xDE, 0xC2, 0xC6, 0xCA, 0xCE, 0xF3, 0xF7, 0xFB, 0xFF, 0xE3, 0xE7, 0xEB, 0xEF,
0x31, 0x35, 0x39, 0x3D, 0x21, 0x25, 0x29, 0x2D, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x04, 0x08, 0x0C,
0x77, 0x73, 0x7F, 0x7B, 0x67, 0x63, 0x6F, 0x6B, 0x56, 0x52, 0x5E, 0x5A, 0x46, 0x42, 0x4E, 0x4A,
0xBD, 0xB9, 0xB5, 0xB1, 0xAD, 0xA9, 0xA5, 0xA1, 0x9C, 0x98, 0x94, 0x90, 0x8C, 0x88, 0x84, 0x80,
0xFB, 0xFF, 0xF3, 0xF7, 0xEB, 0xEF, 0xE3, 0xE7, 0xDA, 0xDE, 0xD2, 0xD6, 0xCA, 0xCE, 0xC2, 0xC6,
0x29, 0x2D, 0x21, 0x25, 0x39, 0x3D, 0x31, 0x35, 0x08, 0x0C, 0x00, 0x04, 0x18, 0x1C, 0x10, 0x14,
0x6F, 0x6B, 0x67, 0x63, 0x7F, 0x7B, 0x77, 0x73, 0x4E, 0x4A, 0x46, 0x42, 0x5E, 0x5A, 0x56, 0x52,
0xA5, 0xA1, 0xAD, 0xA9, 0xB5, 0xB1, 0xBD, 0xB9, 0x84, 0x80, 0x8C, 0x88, 0x94, 0x90, 0x9C, 0x98,
0xE3, 0xE7, 0xEB, 0xEF, 0xF3, 0xF7, 0xFB, 0xFF, 0xC2, 0xC6, 0xCA, 0xCE, 0xD2, 0xD6, 0xDA, 0xDE
};

u8 const Adesto_Factory_Programmed[64] =
{
  // put here AT45DB011D Security Register from byte 64 to 127
};

u8 OneTime_User_Programmable[64];

OneTime_User_Programmable[0] = 0x00; // or whatever you want
OneTime_User_Programmable[1] = 0x00; // or whatever you want
OneTime_User_Programmable[2] = 0x00; // or whatever you want

u8 n, value;

for(n=3;n<64;n++)
{
value = (u8)(Adesto_Factory_Programmed[n] + n);
OneTime_User_Programmable[n] = GreenDot_Table[value];
}



I will admit I was getting skeptical after we hadn't heard from you for a bit, and am glad you proved me wrong.  You've just re-enabled the cottage industry for third-party dataloggers that was temporarily shut down in a short-sighted act by Davis that screwed their own customers.  So let me just say...

THANK YOU!    \:D/

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #139 on: November 28, 2013, 07:27:57 PM »
It all seems to verify OK. :)

If it hadn't been for the necessary evil called work, maybe - MAYBE - I'd gotten there myself, at least a bit further than what I actually did. Leaving out the first three numbers - I didn't get that far. I made a blind guess at variants of the CCITT-16 algorithm already implemented in the console FW. Once a few more details were revealed in this forum - the same number in the same index in two different IDs, yielding the same number at the same index in the security register - that's a strong hint and I worked on a matrix containing 128 values. :)

I bet you've got a number of data loggers available, to fill the entire matrix with the missing values ... here's what I'm getting, based on three different known original IDs and security register values.


I'll repeat myself and say thank you for sharing - and for devoting your time to digging into this.
« Last Edit: November 28, 2013, 07:30:13 PM by torkelmj »

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #140 on: November 28, 2013, 07:43:30 PM »
Is it possible that this code can be used in the already made programming?

It's of *significantly* more value to those who'd like to build data loggers themselves - using the same dataflash chips as Davis does, now being able to program them with security register values which will validate with the green dot consoles.

Also, I wouldn't be surprised if ANY random 64-byte device ID now can have corresponding, validating security register values. In that case, maintaining a "blacklist" of device IDs used to spoof the green dot consoles becomes a no-can-do.   \:D/

Offline watson

  • Member
  • *
  • Posts: 8
Re: DIY "GREEN DOT" Data Logger
« Reply #141 on: November 28, 2013, 08:17:24 PM »
Glad to have provided you a nice stuff  ;)

Quote
I bet you've got a number of data loggers available, to fill the entire matrix with the missing values

Uhm... well.. you do not need so many valid patterns to guess it ;) Look carefully at the matrix (my GreenDot_Table).
All you need is to get first 64 bytes (and you almost ALREADY got it! It's the 64 bytes answer to all "0xFF", left shifted by 1 pos).
The other 192 bytes of the GreenDot_Table is a stupid "copy and paste" of the first 64 bytes, with very poor permutations.
I show the first 4 coloumn (I do not think you'll struggle to find other..):



It was relatively simple. Much simpler than I feared.

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #142 on: November 29, 2013, 05:01:46 AM »
Torkel,

Looking to what is found so far...

Do we have to change the programming with the new information ?


Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #143 on: November 29, 2013, 05:06:14 AM »
Do we have to change the programming with the new information ?

No. No need to fix something which already works.

Offline torkelmj

  • Contributor
  • ***
  • Posts: 125
    • My weather station, etc.
Re: DIY "GREEN DOT" Data Logger
« Reply #144 on: November 30, 2013, 01:25:05 PM »
Just a quick follow-up. Burning some midnight oil, I couldn't resist using the watson-provided algorithm to see if one of my VP2 consoles would accept just about any device ID and associated security register values. It seems that it does.  =D&gt;

A certain document has been updated to include a working BASCOM-AVR (AVR Studio is a bit too heavy for the PC used for fun stuff) implementation of a random device ID and corresponding security register values. I'm presently on my 56th console boot process, each one having been successful so far - with a different device ID being used at each boot.

Thanks to all of you, for your contributions. Now I'll walk the dog.

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #145 on: November 30, 2013, 03:03:13 PM »
Thanks  \:D/

Offline weatheroz

  • Contributor
  • ***
  • Posts: 144
    • http://www.jimboombaweather.com
Re: DIY "GREEN DOT" Data Logger
« Reply #146 on: December 01, 2013, 08:08:53 PM »
You know, I don't know why Davis just does not build in the interface (USB/serial) to the console and just up the price.  In these everything connected days I suspect most eventually hook the wx stn to the net.

Very late in to this thread, and disgusted that Davis has done this to their very loyal customers.

I'm about to replace my old and sun aged VP2 6162AU to a 6163, and was horrified to think that I wouldn't be able to use my old serial data logger with it.


But whilst you have a good idea of building in the USB/Serial interface, I think it would make the IP interface problematic.


With this green dot rubbish, I'm now thinking of going the IP datalogger, and just run a ethernet cable from the station in to my network, and have Weather Display grab the data from their instead of the serial interface.


Very well done to those who have gone the extra mile to create your own dataloggers for your Davis stations !!  :grin:
Brendan,
vk4blp
IRLP 6857 Echolink 672767


Offline belfryboy

  • Forecaster
  • *****
  • Posts: 479
  • waiting for the rain.....
    • Belfryboy Blog
Re: DIY "GREEN DOT" Data Logger
« Reply #147 on: December 05, 2013, 04:18:08 AM »
I have been playing with this for a few days and have just successfully programed the security register on one of my clone loggers \:D/ . I need a guinea pig to try out the interface, any volunteers?

Offline JohnA

  • Member
  • *
  • Posts: 18
Re: DIY "GREEN DOT" Data Logger
« Reply #148 on: December 05, 2013, 04:49:44 AM »
Can you be a little more specific?
Do you mean to test it in a logger that Travis designed?

John

Offline belfryboy

  • Forecaster
  • *****
  • Posts: 479
  • waiting for the rain.....
    • Belfryboy Blog
Re: DIY "GREEN DOT" Data Logger
« Reply #149 on: December 05, 2013, 05:00:19 AM »
Nope, if you trawl the forum you'll find that I was one of the first to supply 3rd party loggers, based on Dekays design. I have programmed the register on one of my clone loggers that uses the same chip as a davis logger, but i do not have a console to test it with.