Something is missing here...

Hello,

I am brand new to Sparkfun, and not new to technology, but new to the embedded side of things. I have two suggestions I would like to present.

  1. It would be nice if when you buy something, your site would tell the buyer that they also must (unless you don’t want to for some reason) purchase X, Y and Z. I had to place two orders and found that frustrating.

  2. I hope you strongly consider a download section. The site is full of very interesting things, but I feel I am on an episode of CSI. Everything is hidden, if you can find it to begin with. An example, I purchased a MiRF setup. Went to compile the sample code (which WAS on the page) and come to find I need the STDIO.H file, which I cannot find anywhere. It would be nice to have a download section that had all these things in it.

I understand that these are hobby items, and I know there are a lot of folks on this forum that know this stuff cold. But by definition, a hobby should be fun and a learning experience. This has been a bit rough for me. In addition, the site claims to cater to various age groups (Not a direct quote). My kids would have given up already. I hope you consider this feedback, since I grew up in the electronic tinkering arena (given up for years for lack of time) and it really fills the “Heathkit” void.

Thanks for listening,

Karl Tomecek

STDIO.H is always part of a compiler installation.

Leon

Hello Leon,

I would have expected that too. I downloaded the free version of the CC5X compiler (per recommendations from this forum) and unless I did something wrong, it is not in there. The 16f88.h file is there, but not the stdio.h.

Regards,

Karl

I don’t think cc5x (at least the free version) comes with stdio. I just downloaded the most recent version and I can’t find it either. A few years back, Nathan created his own partial implementation of stdio for his purposes. Perhaps it is complete enough for your purposes or someone else has some cc5x code that they are willing to share.

http://www.sparkfun.com/tutorial/coding/Stdio.c

Thanks Ralph! I’ll give it a try…

I appreciate the help!

Regards,

Karl

A few weeks ago a student came into my office with zero previous programming experience, or exposure to programming, but wanted to take on a project that would involve a significant amount of code development. The scripting language being used was simple enough, and he seemed quite eager, though I still thought it a very tall order given his complete lack of knowledge in the area (and told him this). I still wrote the code for him, and gave him some pointers, amoung which was the requirement to read some introductory material on the language he was learning, and not to give up if something didn’t work correctly – tinkering and curiosity is a very large part of successfully learning development (and programming) skills.

Today, despite giving him instructions (that he largely ignored) and not reading any reference materials on coding in this language, he again came to my office quite unhappy that he didn’t understand anything, and that his code wasn’t working. I went through the instructions with him and told him to read reference material to at least gain a basic understanding, and he left happy now that things were starting to work.

I’m not saying that this is a completely analogous situation to the one you’re in. But I think that one of the messages in the story is the same, for many situations, and is one that I’ve heard so many times. Ask yourself if you feel that it would be possible for you to, easily, without any major issues, develop a complete working program for a processor you’ve never used before in a high-level language not designed for beginners (C) that you’re not familiar with. Regardless of your answer, the likely outcome is ‘probably not’, but there’s a lot more to the answer than that.

Sometimes a situation that we encounter isn’t that we don’t know how to do something (as in the above case), but it’s that we /don’t know/ what we don’t know, and so we can think something is easy when really we’re even unsure of the process we’d use to go about finding an answer. Thankfully this isn’t a bad thing at all, it’s a wonderful thing, and it’s how we acquire much of our knowledge – especially when we set ourselves to develop a project that interests us, but we have no idea how to accomplish it. We progressively learn the skills, one at a time, that take us ever closer to completing that project, and starting an ever more interesting and complex one.

Please don’t be discouraged that you may have set yourself up for a project that will take more learning that you originally thought, or that your current sources for learning these skills hasn’t provided you all that you’d hoped so far – remember, finding /excellent/ sources of information for learning at your personal skill level, level of knowledge, and learning style is not at all something you can assume will be easy to find.

Is it the responsibility of a company to tell you what you require to use a certain product? Well, probably so, but at the appropriate /level of knowledge/. It would be appropriate to say that you require 3 volts to power the device, but not to detail how one would build a power supply, what each of the parts in the supply does, why they’re important, how they work, and so on. In every field (and subfield), a certain basic level of knowledge and familiarity is assumed – otherwise people likely wouldn’t tend to communicate very effectively, or at least not very efficiently. I sympathize and encourage you to further develop your knowledge, and am happy to hear that you’re interested in embedded electronics, but it’s certainly not the responsibility of a company to teach you all of the skills and knowledge you’ll need to be able to use it in your project.

I hope that helps

silic0re,

Thanks for your comments. Perhaps what is missing in this whole thing is what the goal is. I am not sure that learning how to write header files which presumably exist already adds value to being able to compile a program. If the goal is to learn C (in any of its’ incarnations) and perhaps become an accomplished C programmer, then I would say your student comment fits. I am the type of person that learns by example. I compile, play around, change things, see what it does, break it, start again. I know there are many other ways to learn things. I am not a C programmer, but I don’t fear it either. I had to write a PHP script the other day (very custom). I am far from being an expert in PHP. I did the research and learned what I needed to do to get it working. My goal was not to learn PHP. I am not put off by not finding the stdio.h file. When I studied C in school (eons ago), these header files were available (as Leon mentions in his reply). I did not have to write them. That not withstanding, even if I never find an stdio.h file, it really was not the point of my post. For example, the sample code for the base is listed on the page for the key fob, not the base. It would be nice if they were organized it a place where they could be found, rather than spread out. I’m not sure that is a bad thing to suggest. But it is not my site, just customer feedback. If Sparkfun doesn’t think it is what they want to do, its’ their call. I just felt remiss not to mention it, because clearly they have a great idea going as evidenced by their growth. In the About Us section of Sparkfun’s website they state “During his junior year, Nathan was designing one of his first microcontroller projects when his programmer sparked and burned out. Looking for an affordable replacement, he noticed a lack of resources and online stores catering to developers and prototypers.” While I can’t speak for him, I imagine that Nathan would have preferred to buy an inexpensive replacement programmer rather than learning how to build one from scratch. I assume that was not his goal.

As far as to what level a vendor wants to suggest required as well as additional items for sale is up to them too. It seems like a prudent business opportunity, but again, not my call, just another customer suggestion. If I didn’t like what I saw at Sparkfun, I would not waste my time posting here. But I rather like the idea of what they are doing. As a rule, I never get into academic discussions on forums because they tend to have a negative air about them. My hope here is to look at this as positive meaningful dialog. As such, I appreciate your post and it is why I respond in kind.

I sure would like to hear some feedback from the Sparkfun folks!

Thanks,

Karl

I agree that there is value in providing at least some information about what is needed to get started so the purchaser can get off to a running start. Even though I work with electronics and software on a day-by-day basis, I don’t have a lot of time to tinker with personal projects. In fact, I’m months behind with some of them and even later on getting them documented and posted. There have been occasions where I didn’t order everything I needed and didn’t get around to ordering the rest of the items until weeks or months later. That has resulted into lost revenue for Sparkfun. Not a lot, but some. If I am able to order everything that I need for a project, for example, XBee module, breakout board, 2mm and .1" headers, I’m much more likely to have a positive experience building my project, and I am much more likely to attempt another projects, leading to further purchases. Not having this information available is not a deal killer, but it could lower the bar for entry into this fascinating hobby.

That being said, I know that the Sparkfun site is always evolving and there is a commitment to make it a useful resource. There are areas in the site that try to let you know what is needed. Three places that come to mind are the “PIC processor is not included” in the Olimex dev boards section, the suggestion that you will want the 2mm x 10 and .1 headers in the XBee breakout board entry, and the related products listed after a catalog entry. I think there are some starter kit products as well. As Sparkfun continues to grow, I’m sure their site will become even better. They have also added a place to post your comments about the site on the main page as well.

Karl, you make an interesting comparison with Heathkit. I hadn’t thought about before you mentioned it. I really enjoyed building the Heathkit products when they were available and the Sparkfun items help fill the void for experimenting and building things. The posts and tutorials gave me the encouragement to try the reflow technique for SMD board assembly, which enabled me to build projects that I thought would be out of my capacity to build.

ktomecek:
Hello Leon,

I would have expected that too. I downloaded the free version of the CC5X compiler (per recommendations from this forum) and unless I did something wrong, it is not in there. The 16f88.h file is there, but not the stdio.h.

Regards,

Karl

I just had a look at the source code, and it requires stdio.c, not stdio.h!

I was using the MiRF units, and have the file with the rest of the code I downloaded. If you can’t find it I can let you have a copy.

Leon

Leon,

Thank you for the offer…If you have them it would be great. Ralph was nice enough to point the stdio.h file, but in my haste, I did not notice I needed the io.h file as well. Here is a direct cut and past from the code:

#include <stdio.h>

#include <avr/io.h>

So it is looking for the .h files, not .c. The name of the file is “Nordic-FOB-Tester-v10.c” and can be found:

http://www.sparkfun.com/commerce/produc … ts_id=8602

Under the heading:

Example receiver firmware

Ralph,

When I was about 15 or 16 I somehow convinced my parents to buy me a Heathkit Electronic Organ Kit (They must have sacrificed a lot to do it, because it could not have been cheap and we were not well off). I remember there actually used to be a Heathkit store in Long Island (I am originally from NY) where you could go and see all the kits they offered. Back then everything was through hole and very doable without a microscope. It took me months to build the thing and was an amazing experience. I remember it did not work at first. I actually had to take the whole thing in because they figured a kid put it together and so I had to have made mistakes. So they were going to charge lots to fix. In the end, each note had its’ own oscillator, which it then split up to make each octave. so there was what, 13 of them or something like that? The HK documentation incorrectly documented the orientation of the transistors on the modules, so I installed them per instructions, but they were wrong. At least they were honest and fixed it, admitted the mistake and I got a working organ out of it! I do miss the Heathkit days and I am reminded about it with Sparkfun.

Well thanks to both of you gentlemen for reaching out to me. Again, any pointers to get these files would be super appreciated.

Thanks,

Karl

I thought you were using the PIC code for the MiRF. The code you just mentioned is for the AVR - the files should be part of the WinAVR gcc distribution.

Leon

Hey Leon,

Don’t I just need the correct io.h file? I looked at the code in the application and it appears to me that there is no processor specific code, rather just some I/O routing. I am speculating that the comments as well as the AVR path in the io.h are leftover from some reused code.

What say you?

Cheers,

Karl

If you are trying to port the AVR gcc code to a PIC, it is going to be rather difficult. The compilers are quite different.

Leon

OK…Well thanks for your help Leon and thanks for following this…I appreciate the help!

Regards,

Karl

I just took a look at the code; porting it to the PIC will take a bit of work but shouldn’t be too hard. The code bit-bangs an spi port on some GPIOs, so all you need to do is use the PIC’s version of “set I/O pin hi” and “set I/O pin low” (sbi/cbi in the AVR case). The timer stuff is only used to get delay_us to work, and the UART is only used for the printfs in the tester code. It’s not a drop-in but doesn’t look too bad.

It looks like there’s some PIC code for the same chip at

http://www.sparkfun.com/commerce/produc … cts_id=691

so that may be a better starting point.

n1ist,

Yes, this sure looks like a much better set of code to try out. I am glad you pointed me to this. I will give it a try on Monday and see how it goes!

Thanks a bunch!

Regards,

Karl

n1ist,

Yep that code works for me! Thanks for pointing it out! I appreciate it.

Regards,

Karl

Glad to be of help.

/mike