Go to Post I think we can all remember, no matter our age, that we are always responsible for our own actions and reactions. - JaneYoung [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 21-08-2005, 17:48
sciguy125 sciguy125 is offline
Electrical Engineer
AKA: Phil Baltar
FRC #1351
Team Role: College Student
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Sunnyvale, CA
Posts: 519
sciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond repute
Send a message via AIM to sciguy125 Send a message via MSN to sciguy125 Send a message via Yahoo to sciguy125
dashboard protocol

I'm working on a dashboard program and I need some more info about the protocol (the documentation isn't very detailed and I don't have access to the controller right now).

Quote:
The data sent out the Dashboard port is a stream of bytes. There are 26 bytes in a packet. The packets are transmitted approximately 40 times per second.
I got the part about 26 bytes in a packet. However, it takes 3 packets to get all the data. So, how many packets are sent each loop (main program loop)? Is it just one packet at a time, or all 3? The reason I ask is that I want to encode some extra data into the user bytes, but I need more than the 6 byes available. My plan is to send some of the data the first time around, then the rest of it in another packet (or set of packets).

Quote:
The firmware in the Robot Controller (2004 or later) interlaces data packets.
Is this the to answer my above question (sending one packet at a time) or does it mean that the packets don't come in order?

Lastly, the documentation keeps refering to specific bits within certain bytes. But is bit 0 the LSB or the MSB?

Edit: One more thing: there's a byte called USER CMD, but I couldn't figure out what it is. Is it an extra "user byte" that I can play with, or does it actually do something important?
__________________

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GE/S/P a-- e y-- r-- s:++ d+ h! X+++
t++ C+ P+ L++ E W++ w M-- V? PS+ PE+
5- R-- tv+ b+ DI+++ D- G
------END GEEK CODE BLOCK------

Last edited by sciguy125 : 21-08-2005 at 18:04.
  #2   Spotlight this post!  
Unread 21-08-2005, 21:04
Rickertsen2 Rickertsen2 is offline
Umm Errr...
None #1139 (Chamblee Gear Grinders)
Team Role: Alumni
 
Join Date: Dec 2002
Rookie Year: 2002
Location: ATL
Posts: 1,421
Rickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant futureRickertsen2 has a brilliant future
Send a message via AIM to Rickertsen2 Send a message via Yahoo to Rickertsen2
Re: dashboard protocol

If this is not something you will be using during competition you might consider getting an RS-232<->802.11 converter and connecting it to the program port. Its alot simpler, higher bandwidthm, and has the advantage of being bi-directional. There is a good chance you will be able to upload programs remotely.
__________________
1139 Alumni

Last edited by Rickertsen2 : 21-08-2005 at 21:39.
  #3   Spotlight this post!  
Unread 21-08-2005, 21:32
Pat Fairbank's Avatar
Pat Fairbank Pat Fairbank is offline
Circuit Breaker
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Mar 2003
Rookie Year: 2001
Location: San Jose, CA
Posts: 2,132
Pat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond repute
Send a message via MSN to Pat Fairbank
Re: dashboard protocol

The controller only sends one packet every program loop, which means you only get all three roughly 13 times a second.

The interlacing means that although each packet is received the same way, the data it contains could be that of any of the three data frames described. The only way to figure out which information the packet contains is to read the control bytes.

Lastly, bit 7 is the MSB and bit 0 is the LSB.

Hope that answers your questions.
__________________
Patrick Fairbank
Team 254 | Mentor (2012-)
Team 1503 | Mentor (2007-2011)
Team 296 | Alumnus (2001-2004) | Mentor (2005-2006)

patfairbank.com

Last edited by Pat Fairbank : 21-08-2005 at 21:39.
  #4   Spotlight this post!  
Unread 21-08-2005, 23:05
sciguy125 sciguy125 is offline
Electrical Engineer
AKA: Phil Baltar
FRC #1351
Team Role: College Student
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Sunnyvale, CA
Posts: 519
sciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond repute
Send a message via AIM to sciguy125 Send a message via MSN to sciguy125 Send a message via Yahoo to sciguy125
Re: dashboard protocol

Is there any way for the code on the RC to know what data frame is about to go out? I was just rumaging through the code, but I couldn't find anything. It seems that the functions that handle the radio communications are distributed in binary form. Knowing what paricular frame is going out would make it easier to write the complementary RC code and also free up 2 more bytes to send data.
__________________

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GE/S/P a-- e y-- r-- s:++ d+ h! X+++
t++ C+ P+ L++ E W++ w M-- V? PS+ PE+
5- R-- tv+ b+ DI+++ D- G
------END GEEK CODE BLOCK------
  #5   Spotlight this post!  
Unread 21-08-2005, 23:19
Pat Fairbank's Avatar
Pat Fairbank Pat Fairbank is offline
Circuit Breaker
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Mar 2003
Rookie Year: 2001
Location: San Jose, CA
Posts: 2,132
Pat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond repute
Send a message via MSN to Pat Fairbank
Re: dashboard protocol

Nope, there's no way to tell what frame is being sent, since it's a function of the master microprocessor, not the user.

However, you might have noticed that all 16 PWM outputs are also sent out the dashboard, so if haven't got any Victors hooked up to some of those, you can use them to pass extra bytes.

If you need even more bandwidth, you could probably set up some interlacing of your own (e.g. use one of the user bytes to describe what data is in the other five).
__________________
Patrick Fairbank
Team 254 | Mentor (2012-)
Team 1503 | Mentor (2007-2011)
Team 296 | Alumnus (2001-2004) | Mentor (2005-2006)

patfairbank.com
  #6   Spotlight this post!  
Unread 21-08-2005, 23:36
Unsung FIRST Hero
Greg Marra Greg Marra is offline
[automate(a) for a in tasks_to_do]
FRC #5507 (Robotic Eagles)
Team Role: Mentor
 
Join Date: Oct 2004
Rookie Year: 2005
Location: San Francisco, CA
Posts: 2,031
Greg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond reputeGreg Marra has a reputation beyond repute
Re: dashboard protocol

My brother was working on some Dashboard code last year, but it being his first forray into the world of programming, he didn't meet much success. He ran into the problem of deciphering which data packet was the A, B, and C packets and couldn't figure it out in time for the season.
  #7   Spotlight this post!  
Unread 21-08-2005, 23:53
Billfred's Avatar
Billfred Billfred is offline
...and you can't! teach! that!
FRC #5402 (Iron Kings); no team (AndyMark)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: The Land of the Kokomese, IN
Posts: 8,554
Billfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond repute
Re: dashboard protocol

Quote:
Originally Posted by Pat Fairbank
Nope, there's no way to tell what frame is being sent
Not quite.

Look at http://www.innovationfirst.com/FIRST...2004-01-07.pdf at the data frames. CTRL_A and CTRL_C both have information in them that differentiates the frames.

(Now, how do you read that and get something useful from it? I'm not entirely sure...I'm no programmer.)
__________________
William "Billfred" Leverette - Gamecock/Jessica Boucher victim/Marketing & Sales Specialist at AndyMark

2004-2006: FRC 1293 (D5 Robotics) - Student, Mentor, Coach
2007-2009: FRC 1618 (Capital Robotics) - Mentor, Coach
2009-2013: FRC 2815 (Los Pollos Locos) - Mentor, Coach - Palmetto '09, Peachtree '11, Palmetto '11, Palmetto '12
2010: FRC 1398 (Keenan Robo-Raiders) - Mentor - Palmetto '10
2014-2016: FRC 4901 (Garnet Squadron) - Co-Founder and Head Bot Coach - Orlando '14, SCRIW '16
2017-: FRC 5402 (Iron Kings) - Mentor

94 events (more than will fit in a ChiefDelphi signature), 14 seasons, over 61,000 miles, and still on a mission from Bob.

Rule #1: Do not die. Rule #2: Be respectful. Rule #3: Be safe. Rule #4: Follow the handbook.
  #8   Spotlight this post!  
Unread 22-08-2005, 00:42
sciguy125 sciguy125 is offline
Electrical Engineer
AKA: Phil Baltar
FRC #1351
Team Role: College Student
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Sunnyvale, CA
Posts: 519
sciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond reputesciguy125 has a reputation beyond repute
Send a message via AIM to sciguy125 Send a message via MSN to sciguy125 Send a message via Yahoo to sciguy125
Re: dashboard protocol

Quote:
Originally Posted by Pat Fairbank
If you need even more bandwidth, you could probably set up some interlacing of your own (e.g. use one of the user bytes to describe what data is in the other five).
That's what I was planning LED Byte 2 has 5 unused bits. That gives me 6 bytes, and 5 bits to describe what they are. I'm trying to stay away from the PWMs because I want it to be as modular as possible. My goal is to just get all the ports through the dashboard interface then figure out how to interpret that information in my dashboard program. So far, I've figured that 6 bytes can get me all of the digital ports and the relay ports. I'm still trying to decide on how to handle the analog ports because each of the 16 would take a full byte. Does anyone know of any interesting encoding/compression algorithms?

Quote:
Originally Posted by Billfred
CTRL_A and CTRL_C both have information in them that differentiates the frames.
Well, that only gives me the information on my dashboard program. It doesn't tell me which packet is being sent during this given program loop on the RC, so that I can encode the correct data into the packet. As far as I can tell, they accessible to the user on the RC. EDIT: Oops, they are NOT accessible to the user on the RC.
__________________

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GE/S/P a-- e y-- r-- s:++ d+ h! X+++
t++ C+ P+ L++ E W++ w M-- V? PS+ PE+
5- R-- tv+ b+ DI+++ D- G
------END GEEK CODE BLOCK------

Last edited by sciguy125 : 22-08-2005 at 11:45.
  #9   Spotlight this post!  
Unread 22-08-2005, 17:42
Pat Fairbank's Avatar
Pat Fairbank Pat Fairbank is offline
Circuit Breaker
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Mar 2003
Rookie Year: 2001
Location: San Jose, CA
Posts: 2,132
Pat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond repute
Send a message via MSN to Pat Fairbank
Re: dashboard protocol

Quote:
Originally Posted by Billfred
Not quite.

Look at http://www.innovationfirst.com/FIRST...2004-01-07.pdf at the data frames. CTRL_A and CTRL_C both have information in them that differentiates the frames.

(Now, how do you read that and get something useful from it? I'm not entirely sure...I'm no programmer.)
Sorry for the confusion, Billfred - I meant that you can't tell which frame is being sent from the RC code (the sending side), but you're right in that you can tell which one it is on the receiving side by looking at CTRL_A and CTRL_C.
__________________
Patrick Fairbank
Team 254 | Mentor (2012-)
Team 1503 | Mentor (2007-2011)
Team 296 | Alumnus (2001-2004) | Mentor (2005-2006)

patfairbank.com
  #10   Spotlight this post!  
Unread 22-08-2005, 18:36
Billfred's Avatar
Billfred Billfred is offline
...and you can't! teach! that!
FRC #5402 (Iron Kings); no team (AndyMark)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: The Land of the Kokomese, IN
Posts: 8,554
Billfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond reputeBillfred has a reputation beyond repute
Re: dashboard protocol

Quote:
Originally Posted by Pat Fairbank
Sorry for the confusion, Billfred - I meant that you can't tell which frame is being sent from the RC code (the sending side), but you're right in that you can tell which one it is on the receiving side by looking at CTRL_A and CTRL_C.
Ah. Confusion abated.
__________________
William "Billfred" Leverette - Gamecock/Jessica Boucher victim/Marketing & Sales Specialist at AndyMark

2004-2006: FRC 1293 (D5 Robotics) - Student, Mentor, Coach
2007-2009: FRC 1618 (Capital Robotics) - Mentor, Coach
2009-2013: FRC 2815 (Los Pollos Locos) - Mentor, Coach - Palmetto '09, Peachtree '11, Palmetto '11, Palmetto '12
2010: FRC 1398 (Keenan Robo-Raiders) - Mentor - Palmetto '10
2014-2016: FRC 4901 (Garnet Squadron) - Co-Founder and Head Bot Coach - Orlando '14, SCRIW '16
2017-: FRC 5402 (Iron Kings) - Mentor

94 events (more than will fit in a ChiefDelphi signature), 14 seasons, over 61,000 miles, and still on a mission from Bob.

Rule #1: Do not die. Rule #2: Be respectful. Rule #3: Be safe. Rule #4: Follow the handbook.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
2004 Dashboard Protocal vs 2005 Dashboard Protocal Kyle T Programming 4 14-03-2005 22:19
Dashboard for .NET seanwitte Programming 8 16-02-2005 10:09
Battery Voltages in Dashboard Ian W. Programming 10 07-03-2004 16:50
New dashboard packet spec Ameya Programming 2 08-01-2004 19:59
Dashboard Protocol Library archiver 2000 9 23-06-2002 22:24


All times are GMT -5. The time now is 00:15.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi