Showing posts with label User Experience. Show all posts
Showing posts with label User Experience. Show all posts

Saturday, August 11, 2012

What I really think when I see an Error Code in Code Composer Studio


I have another blog where I like to post little short digestible tid-bits I find when I'm trouble shooting or dealing with documentation with my tools or students.

At the time of posting that one, I had to restrain myself from putting my translations next to each of these.

However, in this post I've put my thoughts in. (Perhaps because I'm hoping I'm not the only person who feels this way and am looking for the Code Composer equivalent to a Gym-Buddy).

 My inner voice is typed in green. 


/*Begin Post*/
TITLE: Code Composer Studio V5 Error Codes
Not sure anyone else is like this but I hate it when I get an error code in debug/run and can't figure out what it means. This possibly could be helpful. Really, it's a nice sigh of relief if I manage to do a compile without a million errors called out. Almost as if Code Composer is giving me a little shout out, "Yay, you actually know what the heck you are doing.".
Embedded in the MSP430 C/C++ Compiler guide there is a chart. Not sure why this was so hard to find, but it's there on page 36 in document http://www.ti.com/lit/ug/slau132g/slau132g.pdf 

  • A fatal error indicates a problem so severe that the compilation cannot continue. Examples of such problems include command-line errors, internal errors, and missing include files. If multiple source files are being compiled, any source files after the current one will not be compiled.   I am a  moron and I forgot to copy a big chunk of the header file or probably mis-typed the include files...
  • An error indicates a violation of the syntax or semantic rules of the C/C++ language. Compilation continues, but object code is not generated.  I cannot type and possibly suffer from a form of typing dyslexia. 
  • A warning indicates something that is valid but questionable. Compilation continues and object code is generated (if no errors are detected).  That Rockstar feeling when I get a clean run... a little diminished. Almost like winning a beauty contest but only because the competition was disqualified and you were the only contestant. Hey, most times I'll take it though. The minimum would not be the minimum if it was not acceptable to ... well the compiler, but that means I have no breathing room for any errors. 
  • A remark is less serious than a warning. It indicates something that is valid and probably intended, but may need to be checked. Compilation continues and object code is generated (if no errors are detected). By default, remarks are not issued. Use the --issue_remarks compiler option to enable remarks.  I am glad these are suppressed. I already have the in-line editor that gives me enough grief... not sure how I would feel about additional error flags in the debug window...

    Typical *sigh*

Tuesday, July 31, 2012

Widgets for Website Navigation

I applaud some of the business units in TI for trying to make navigating their portfolio easier.
One of the ones that I particularly like is what they have on the TI Home Page-- Web Bench.
I think the most effective marketing is marketing that serves to educate first and then pull through products second... this tool does this perfectly.


Playing around with the tool you can play with optimizing for size, cost, heat... and a variety of design considerations. What's nice is that you don't have to dig around in a data sheet to get the equations required to calculate to model the different considerations.

I wish I had thought to do these exercises real time to give the screenshots... on my to do list for a revision of this blog post.

Things that I noticed/ see opportunity in:
1. ) you can choose a "optimization" this is kinda like a paradigm that all of the selection of parts fall into. I would love to see the groupings that drive this, what characteristics and what parameters make it fall into these buckets. I'd like to make available to other tool/software companies to make better and more intergrated tools.

2.) If the above is too much... I wish that they would let me "turn off" these optimziations... or at least output a "The reason why we selected this was because you choose ..."  That way I'm aware of why the part was in there.

Way I can use this right now...
The LED Design tool is going to be helpful while we are working on the LED power curtain project I have my interns working on :-)

 (Also, no wonder why so many of the students I talked to LOVE this tool... they probably are turning this information out as lab reports).

In conclusion-- I need/want to see more of these types of tools out there. Tools that help solve a problem first... and by doing so add value... THEN sell something.



Tuesday, June 19, 2012

USB- I hate you

Let me preface this may be a bit of a rant.
After a particularly grueling day where I have been running around with my head chopped off-- only to realise that it's already 5:00, my email is overloaded and I haven't even gotten to item 4 on my epic TO DO LIST-- I had the following voicemail on my mobile (I removed his name):

"Hi, This is J_______ from University of _______, I am calling because I cannot get a response out of your e2e forum. I posted a question and didn't get someone to answer it. I am having a lot of problems with the USB that is found on the TI Launchpad. The computer doesn't seem to see that there is anything attached. I reinstalled the software. Please call me back to fix the issue with your chip and development platform." -Message left at 3:41 PM CST duration 1:44 minutes

Um...Not a yelling message, but it was definitely the calm condesending tone that an older brother would take with a younger sibling that got me irritated.
Irritation is one of those things that will quickly foul up any situation for me.
I am as transparent as they come-- so in order to still be professional--I had to take a break from the situation and  get out of my head. In particular, the irritating closing, "Please call me back to fix the issue with your chip and development platform," bit.

After typing for a few minutes (I find free writing really helps me purge nasty thoughts)-- I realised my issue.

I hate USB.

I'll clarify that I don't actually hate the standard USB, but rather the perception that it creates with certain people...
On one hand-- it's vastly convienent and a standard and everyone seems to understand it-- and on the other? It's so common and prolific that people take it's operation for granted!

Where do I think this perception came from?
... the wall outlet.
The fact that people are able to plug a USB cable into a charger and charge a device, just like they used to plug in a wall adapter-- makes them think that it's the same deal when you plug into your computer.


**Side note***It's funny because other standard interface products don't deal as much with these issues. 
Perhaps not as prolific, but you don't see HDMI wall outlets today... nor people using Ethernet cables to charge their smartphones.


More often than not, problems with Development Tools before Development happens-- are often things that can be solved with a little bit of training. 

Once upon a time, my company used to put these sorts of documents out for mass consumption:
These were vastly useful. 
Before every set of datasheets on a particular product, it would step you through the reason why that particular chip's function existed. 
Perhaps that's a different issue to be talked about on a different day-- but these types of documents are only available in pdf form now. I'm lucky that I happen to work in an office where people are constantly coming by and giving them to me (perhaps my reputation as a books hoarder precedes me). 

Although the document is slightly outdated (it only covers USB 1.1),  in preparation I was able to put together a semi-explainitory email that stepped him through checking all of the steps for why his MSP430 Launchpad was not getting picked up by his computer.

An Aside** Oddly, my approach when I am helping solve technical support issues-- comes from my mother. When I was a child, my mother used to solve every issue in the house with the process of elimination. She would ask, "WHO DID xyz". To which my sister and I would respond. If both my sister and I denied the action she would then go into, "Well, If I didn't do it. And Serena (my sister) says she didn't do it... and there are only three people in the house... then I ask you again, who did xyz?" Although it wasn't always actually the third person who lived in the house--- it was effective in getting the conversation started. **

So, with a USB problem there are three players here.
There is the Device
The Host
and the user.

So before I went digging into what would possibly be wrong with the Launchpad Development Kit's USB--- I had to go through the exercise and determine who was the most likely to blame.

1.) Tell me about your launchpad? Did you just receive it? Have you ever used it before? Did it ever work before?

2.) What type of computer are you using and what Operating System? Do you know if your drivers are up to date? (Most machines this is a given for the current operating system, but every so often, it's a custom Linux machine or it's a really old computer!)

3.) This may sound silly, but can you describe how you connected your device to the computer?
Step by Step, you got the box, opened the ESD Bag, pulled out the board--- then what?

Only 1 out of the 3 is directly my company's responsibility. The best we can do for 2 and 3 is try and make it as easy as possible. Save mandating a custom connector and a PC that we control (once upon a time Texas Instruments made PC's)-- there is a lot of extra consideration that we have to afford to be able to get one of our devices running on a computer.
That's at least 3 major operating systems, with 100's of hardware systems + multitude of drivers that are available... all things that don't deal directly with our core competency of : Making Silicon Chips...
Then-- add user error into the mix... and our platforms get a lot of blame for things that may not have been part of the initial product design. 

(I will say, we've gotten a whole lot better in solving them, but the point should be made that we have now learned how to do that after years of cranky USB issues). 

So armed with my excellent USB Guide-- Combination of the TI Bus Solutions Interface Databook (SLA067A- which is not in available anymore in data book format) and one of the best websites about USB-- Here-- I called the professor back. 

I found out he was using, the brand new launchpad I had handed him at ASEE conference, a Windows 7 HP Dell Laptop... the interesting issue was #3...
He scoffed that I asked him about the process to hook up the launchpad...
"Well, I opened the launchpad and connected it using a USB cord to the PC's USB Port."
"Did you use the cord that came with the launchpad?"
"No, I just used the one I use for my phone all the time."
"Can you do me a favour and use the one that came with the launchpad?"
"Okay..."
"I just need to know for sure that it's not the cord, USB cables sometimes are really picky..." 
I heard the computer in the background and stayed silent...
"Oh, it appears that the cable may have needed to be changed, " he drew out...
"No problem. I'm glad it's that simple... "
"I guess the phone cable I was using doesn't have the data pinned out."
"Yeah, that happens periodically, well good luck and I'm glad that the it wasn't the platform's issue!"

We ended the phone with some niceties and I sent him my preparation email anyways-- just as a reminder. If we still did databooks-- I amy have included that in my next care package to his school. 

Rant aside-- I am glad I didn't have to chase down a USB driver problem-- because that's not my area of expertise. I just wish that it wasn't so easy to blame our development kits.