Introduction

Hi everyone!

I’d like to introduce myself. My name is Kevin. I’m a 23 year old computer programmer, with my focus at the time specifically on PHP and jQuery.
A few days ago I decided to attempt to begin learning more about hardware, circuits, and how they’re programmed. Upon my searching I came across .NET Gadgeteer. I was impressed with how easy it looked, not only to attach Modules, but to program them. That day, I went online and purchased a FEZ Spider, along with a PIR Module, a Camera and an Ethernet Module; the idea behind my Gadget was that I’d have a motion sensor waiting to be triggered, once it’s triggered, it would snap a picture and then upload that picture to a web server. I decided that I’d start programming my Gadget that night, so that once I received my parts, I would simply have to connect my mainboard and test the code. Lucky for me, everything worked very well (other than sometimes I received errors when POSTing content to a web server), especially considering I didn’t know that I knew how to program in C# :P.

So, once I was done that, I was kind of at a loss. With the Modules that I purchased, I found it difficult to think of other ideas I was able to build using them, and even if I did have a decent idea, it would be far too simple to program.

So, that lead me to looking into circuits. Now, my only prior experience with circuits was (believe it or not) briefly in elementary school, and even more briefly in high school.
I got refreshed on Ohm’s Law (which I remembered having to use in high school) and began thinking of building a very simple circuit.

It might be good at this point to inform you all that I do not even know what all components do, nor how they work. I essentially have basic knowledge about resistors and LED lights. That’s the extent of my knowledge in terms of circuits.

So, I’ve decided that the first thing I wanted to attempt to build was an Infrared LED emitter, which would be able to send IR signals. With a bit of searching, I came across this video Assembling the IR LED Array Module for .NET Gadgeteer on Vimeo by G. Andrew Duthie, where he was building an IR LED Array Module for Gadgeteer. He even designed and had his own PCB built (this may be a standard, I don’t know, but it’s frickin’ neat – speaking of which, does anyone know of a company that creates PCBs based on your designs, that is very cost-effective?).

Now I have essentially two paths that I can go down, and your opinions would mean a great deal to me, as I don’t know which method has more benefits. With either of the options, I would still have to design my own circuit (using 1 resistor and 1 or more IR LEDs). The options I can pursue are the following:

  1. Using a Gadgeteer Socket, make my IR LED Array into a “Module” and connect it to my FEZ Spider mainboard. This includes having to program the Module; a seperate Module (like a Button) would trigger my new IR LED Array Module, and tell it to the the IR LED(s) on/off.
  2. Use pure circuits with no programming (using a battery to power the device). I believe this would include adding a switch (no idea how to use one, just thinking…) and maybe even a button to turn the switch on/off.

What I like about option 1) is that I can control my Module programmatically, and tell the LED light to turn on or off. What I dislike is the fact that (from what I’ve seen thus far) the FEZ Spider Mainboard must be attached via USB to my computer in order to power it. What I’m unsure of is, for example, the Camera module has pre-build functions like takePicture() and even delegated events. But, how is the Camera Module programmed to take a picture? If I had 3 IR LEDs, and wanted to turn the first one on, and the other two off, how on EARTH would I do that? I’m at a loss to understand this part.

What I like about option 2) is that it can be powered by a regular battery, doesn’t require me to program anything, but requires me to learn more about switches and buttons, and how to even control when a button is pushed (now that I think of it, does option 2) have ANY sort of programming? At all?)

Thanks for taking the time to read this, and understanding that I am a beginner.
I appreciate any help, advice or words of wisdom any of you have to offer.

Thanks again to Andrew Duthie for linking me here.

just wanted to say that I’ve read your post and wanted to welcome you to the community…

everything you described in the post can be done easily…
the spider doesn’t have to be attached your USB to be powered… you can powered from any wall wart adapter if you have the DP USb Module… it should have a USB and a jack barrel… or if you have the SP then you can use any of the USB Phone chargers (ex: IPhone Charger) to power your Spider.

as for the PIR and the camera. you can use the Events of the PIR that get triggered when something happens and put the takePicture in those events to take the picture i thing you have done this already… so remember each PIR Object has it own events that you can control separately so one PIR can take a picture when it is triggered and the other can sound a Piezo buzzer…

i suggest you go through some of the great tutorials here :

and read the internet of things e-book found in the support page also search codeshare for examples… look up for the link…

Hi Kevin and welcome to the Forum.

Its great that you have jumped into the world of Gadgeteer and are already looking to exand you knowledge.
Andrew (Devhammer) the guy who built the IR LED module had never really done anything with electronics and PCB’s before and found it a very rewarding practice.

Regarding Option 1. there are a number of places to get PCB’s made http://www.seeedstudio.com, PCB Order and http://oshpark.com/. You will need to get a copy of Eagle http://www.cadsoftusa.com/ which is free for personal use and learn how to use it. There are loads and loads of tutorials on the Cadsoft site.

Option 2 will naturally lead back into option 1 as you build more boards etc.

Lastly this forum is the premier Gadgeteer and .NetMF site in the world for community help and support (as well as the awesome Job GHI do) some be a regular visitor :slight_smile:
Again welcome to the community , you will find that Gadgeteer is so addictive it like electronic Crack!!!.

Hi Jay Jay,

Thanks for the quick reply. It’s good to know that what I’m talking about can be done easily. I have the USB SP, and it’s cool to know that I can use it with my phone. Having this understanding, is it safe to assume when you “Deploy” the Release of your Gadget, it will store the programming on the Gadget itself?

If this is the case, would it be simple to build a Battery Module, so that you can power your Gadget with say, for example, a 9V battery?

In terms of the PIR Module, I understand exactly how they work; my first Gadget worked the first time I ran it.

My question is more the following:

I create a “Module” called a IRLEDArray. The circuit works fine as long as power is being supplied to it. I then connect my FEZ Spider Mainboard to my IRLEDArray Module using a Gadgeteer Socket SMT and a Gadgeteer connector cable. When programming my Module in Visual Studio, I must define custom functions belonging to my Module.

As an example, I’ll say that I’ll create two functions, similar to functions for existing LED Modules, TurnLEDOn(int ledNumber) and TurnLEDOff (int ledNumber). int ledNumber would be able to be provided as 1, 2 or 3. 1, 2 or 3 representing one of the 3 IR LEDs on my Module. I then start up my FEZ Spider and the programStarted() function is run. Within my programStarted() function, I declare a new instance of my IRLEDArray Module, and then use the .TurnLEDOn(1) function. This is telling me that I should turn the first IR LED on my custom Module On. Once in my TurnLEDOn function, how would that function tell my PCB to turn the LED on? This is what I do not understand.

Also, would you recommend using pure circuits (with no programming) or .NET Gadgeteer to control my circuits programmatically?

Thanks a lot,
Kevin

Hi HughB,

Thank you too for your reply!
I was extremely impressed at how Andrew was able to build his IRLEDArray without prior electronics experience; I must say it gave me more confidence that I would be able to do it. Though, he sent me a picture of the circuit he used for one of his projects, and it looked like a totally different language to me!

I appreciate your link to get the PCBs and for CadSoft’s Eagle, I’ll definitely be checking them out.

Hearing the “Option 2 will naturally lead back into option 1 as you build more boards” was music to my ears. I was hoping I wouldn’t need to begin with pure circuits and work purely on routing electrical current and not programmatically. I guess I’ll stick with Gadgeteer from here on out! Though, I can see it possibly getting a bit costly depending on how many parallel projects I wish to work on.

Thanks for everything

You are welcome :slight_smile:

FYI GHI are hopefully releasing a battery module for gadgeteer soon (or so the rumour mill says) and there is a new SDK due out any day.

Also you are not alone when it comes to electronics knowledge, i dont have much experience either but im learning as much as i can in the very limited spare time i have. Also I hadnt really done any coding a year ago (other than a little VB6 many years ago). You will find that here thre are a number of people coming from both sides, electrical engineers who are new to programming and software and software guys who are new to hardware. There are some who are experts in both as well as some really hardocre coders who create some AMAZING stuff. Its all here.
I do recommend looking through the codeshare site too (link at top) thats where you will find loads of examples to play with. Its the first place i look when i’m starting a new project.

Hehe darn, if no battery module was in the works I totally would have hopped on the bang-wagon!

Thanks for the reassurance! I do have one technical question, if anyone here has some spare time.
While looking at the IR LED’s PCB example made by Devhammer (Located at Assembling the IR LED Array Module for .NET Gadgeteer on Vimeo), I’m trying to figure out which parts are on the board.
It looks like he’s using the Gadgeteer 10-pin Socket, a resistor to limit the current sent to the transistor (the resistor to limit how many volts are sent to the transistor-- I’ve got no idea what a transistor does, though!), and this is where I get lost.

He has 3 LEDs at the top. For the sake of argument, I’ll assume that all 3 light up at the same time. Since there are 3 LEDs, there obviously requires enough current to be able to power all 3 simultaneously. What I don’t get is, how is the current able to be passed through all 3 (in a linear line, where you’d expect the brightness to dissipate alot after passing through each LED)? And if I wanted to turn the first LED on programmatically (a command sent from my programStarted() function), how would I go about that?

I’m at a total loss on how to control my own Modules programmatically :s

Welcome aboard! I too am a developer and not an electronics guy, but because of this site I am learning!

I’ve not learned enough to answer your other questions though :slight_smile:

From my understanding, DevHammer’s goal was to amplify the IR signals from the remote to control his helicopter, to increase the range (other than him wanting to build his own module). So I don’t think he built that finite control into his board – essentially they all light up all at once.

Also keep in mind that these LEDs emit light that is large imperceptible to human vision.

Hi mhectorgato,

Always good to expand your knowledge :slight_smile:

I can’t wait until I figure out the answer, it’s the only thing I realllyyy don’t know how to do on my own!

Another question: When using a breadboard, what type of wire would you recommend me using?

I just started to play with breadboards, so my electronics experience is hardly vast :slight_smile:

But I got some solid core 22awg from RadioShack, (I bought in my local store but here’s the link: http://www.radioshack.com/product/index.jsp?productId=2049745) as well as some jumper wires (https://www.sparkfun.com/search/results?term=Jumper+Wires&what=products).

The jumper wires have pins on the male ends to make it easy to insert/remove from a breadboard.

Isn’t RadioShack now The Source? I’m an hour or two away from heading out to pick up my first supplies (LEDs, resistors, batteries, alligator clips, and an auto-ranging digital multi-meter). I wonder if all of this can be purchased there.

Is it possible to use a breadboard to test a Module before it’s sent out to be made into a PCB? If so, how would we go about connecting the 10-pin Socket?

Thanks

Extender Module : http://www.ghielectronics.com/catalog/product/273

@ KevinD89

“the Source” in Canada ? which city ? there must be a better place .

These are custom modules by forum member ransomhall:

Also see this: http://www.tinyclr.com/forum/topic?id=8093 (check out page 9 to see how ianlee74 used the module)

A different orientation can be found here: http://www.ransomhall.com/Pages/MakeBread.aspx

Hi Rajesh,

Thanks for the link to the Extender Module. A question, though… Why are there two Sockets? Wouldn’t I only need to attach one Socket from my Mainboard to my Extender Module, then directly wire the 10 wires into my breadboard?

And as for The Source, quite frankly I’m not sure where to pick up these materials! I essentially had 3 stores in mind, The Source (RadioShack, yes in Canada - Montreal specifically), Canadian Tire and Reno Depot. I’ve never required these types of components/products before, do you have any other recommendations?

it gives you back the socket in case you want to add another module…

remember that each socket has about 10 pins, and modules usually don’t use all of those pins… some use may 3 to 4 depending on the module, so the extender gives you the ability to break out the socket and use any of the pins…

Woops, thanks Jay Jay for the link to the Extender Module, and thanks mhectorgato for the MakeBread Module.

Jay Jay, I thought 10-pin sockets were the standard for Gadgeteer Modules? Could you give me an example of when not all of the pins would be required (Sorry, I’m still a noob!)

@ Kevin

ABRA Electronics Corp
5465 Cote de Liesse
Montreal, QC
H4P 1A1

http://www.abra-electronics.com/pages/Montreal-Store.html

That should be a fun trip :slight_smile: