Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

What goes into building a Netduino!Go Module?


  • Please log in to reply
3 replies to this topic

#1 Arron Chapman

Arron Chapman

    Advanced Member

  • Members
  • PipPipPip
  • 289 posts
  • LocationOregon, USA

Posted 30 September 2012 - 08:18 PM

I currently have 1 module available for purchase and am in the process of bringing 3 more to market. I promise this isn’t an advertisement for any of them but I wanted to take a moment and explain the work that goes into building a module for your Netduino Go.

There are 6 basic steps;
  • Idea
  • Selection
  • Prototype
  • Design
  • Verify
  • Produce
Idea. This is arguably the most complicated step, one needs to have an idea for a module. For me these ideas are most commonly things I want for myself, though I also like to look at what the community is missing (where are the sensors!?). In the case of the ProtoModule it seemed that I’d want a stable rarely-changing, hard to screw up platform to prototype the rest of the modules I wanted to build. Breadboards are nice, but jumper wires are messy and can fairly easily come unplugged. So the ProtoModule was born.

Selection. This is the most time consuming step. This is the part where we have to define exactly what our requirements are error margins, physical limitations, electrical limitations, etc. In the case of the Temperature & Humidity Sensor module, we have to ask, what is an acceptable margin of error for the temperature and humidity, obviously 10 degrees Celsius is far too much. After we determine what margins are acceptable we then have to find parts that meet those requirements, this is somewhat easy. The hard part is that while we’d love to deliver a module with 0.000001C margin, the cost would be outrageous, so we have to balance delivering awesome with affordable. This step is mostly spent on my favourite parts supplier (Digikey) and Google. Reading dozens (feels like hundreds of thousands by the time you're done) of datasheets. Reading user reviews and any other source of information on the part.

Prototype. This is where it starts to get fun. At this point we have to order engineering samples or purchase the parts we’re going to use, set it up on a breadboard or ProtoModule and figure out how to use it. I’m not a C/++ developer and working so low level on the uC is a new process for me so I often start by making the device work with my Netduino Classic first. This lets me understand how to use the hardware before I try to write the firmware for it I also use this code to ensure that the part meets my requirements. Then I have to write the firmware for it. Most of the modules are using the STM8S so I have to write an 8-bit C driver (I could use C++ or ASM but I prefer C) for the part. Now that this is done, I have to add the Go!Bus communications to the firmware and write a Managed Code driver to run on your Netduino Go. Then we test it, while it’s still on a breadboard or ProtoModule. I do this now, so I can use the module for a bit to make sure that it meets the requirements we’ve laid out.

Design. This is the boring part of the process. Here we just have to layout the parts on a breadboard and get the traces routed. Again this has to keep in mind the requirements, when using analog sensors we want to avoid having the analog lines cross things they shouldn’t and the like. At this point we talk with Secret Labs who verifies that we comply with the Go!Bus protocol and grants us a license to use the Go!Bus Logo on our board.

Verify. This is the most exciting part. We order prototypes of the PCB we’ve designed. Waiting sucks, and while waiting for them to come in I tend to go over the design 3-4 more times. I will continue to feel like I’ve forgotten something until the day when they arrive. Then I promptly stop whatever I’m doing (eating can wait until later ) and assemble the first one. Flash the firmware, and it’s time to start testing. This is where I start to get a bit giddy if its working (ProtoModule) or rather crabby when it’s not (12-key keypad). When we have one working I’ll start to play with it and see what can be done to make it better. “Do we need an LED?” “Should this be moved?” If were happy with it we move on to the next step, if we're not it’s back to the Design step.

Produce. This is when we make pre-orders available. It’s time to send the designs off to the manufacturer to have the PCBs produced, order the hardware to go on them, and arrange the delivery with the assembly house. Then it’s back to waiting again, about a week for each assembly and manufacturing plus shipping on both. Once everything is in my hands we visually inspect and verify everything, then start flashing them with a test firmware to ensure that everything is behaving. Finally we flash them with the production firmware, update the quantity available on the website and ship any pre-orders.


This process usually takes me about 80-100 hours from beginning to end (even for simple modules) and usually has me collaborating with several people, whom also spend significant amounts of time on the project. It’s quite honestly the most fun I’ve had in in a long time as well. Many thanks to Dear Leader Chris Walker and the team at Secret Labs who’ve given the opportunity to have all this fun, and take what's been one hell of a fun ride learning how to do all of this.

When you talk EE use small words, I'm just a Software Developer :)
My Blog/Site and Everything Else

If my post helped you please consider pressing the "Like This" button in the bottom right-hand corner.

 

Oh my. So many things, so little money!!

 


#2 Nevyn

Nevyn

    Advanced Member

  • Members
  • PipPipPip
  • 1072 posts
  • LocationNorth Yorkshire, UK

Posted 01 October 2012 - 06:03 AM

This process usually takes me about 80-100 hours from beginning to end (even for simple modules) and usually has me collaborating with several people, whom also spend significant amounts of time on the project.

Problem comes when the 80-100 hours is spread out due to other commitments and the odd three week wait for stuff to turn up from manufacturers.

Regards,
Mark

To be or not to be = 0xFF

 

Blogging about Netduino, .NET, STM8S and STM32 and generally waffling on about life

Follow @nevynuk on Twitter


#3 Tombo

Tombo

    New Member

  • Members
  • Pip
  • 5 posts
  • LocationWisconsin

Posted 01 October 2012 - 01:20 PM

[quote name='Arron Chapman' timestamp='1349036329' post='36316']
I currently have 1 module available for purchase and am in the process of bringing 3 more to market. I promise this isn’t an advertisement for any of them but I wanted to take a moment and explain the work that goes into building a module for your Netduino Go.
done) of datasheets. Reading user reviews and any other source of information on the part.

Prototype. This is where it starts to get fun. At this point we have to order engineering samples or purchase the parts we’re going to use, set it up on a breadboard or ProtoModule and figure out how to use it. I’m not a C/++ developer and working so low level on the uC is a new process for me so I often start by making the device work with my Netduino Classic first. This lets me understand how to use the hardware before I try to write the firmware for it I also use this code to ensure that the part meets my requirements. Then I have to write the firmware for it. Most of the modules are using the STM8S so I have to write an 8-bit C driver (I could use C++ or ASM but I prefer C) for the part. Now that this is done, I have to add the Go!Bus communications to the firmware and write a Managed Code driver to run on your Netduino Go. Then we test it, while it’s still on a breadboard or ProtoModule. I do this now, so I can use the module for a bit to make sure that it meets the requirements we’ve laid out.

Aaron I have a question on prototype. Do you have a standard program (Init/startup) I can load into your protomodule to see if I can just light up the Netduiono Go Channel light when I plug it in? If you could just go into a little more depth here on taking your protomodule and loading it with SW to just get it on the Gobus.

Thanks

#4 Arron Chapman

Arron Chapman

    Advanced Member

  • Members
  • PipPipPip
  • 289 posts
  • LocationOregon, USA

Posted 01 October 2012 - 05:00 PM

Aaron I have a question on prototype. Do you have a standard program (Init/startup) I can load into your protomodule to see if I can just light up the Netduiono Go Channel light when I plug it in? If you could just go into a little more depth here on taking your protomodule and loading it with SW to just get it on the Gobus.


The ProtoModules currently ship with the RGB Led Firmware. You should be able to plug it in and create an instance of RgbLed. If you'd like to talk about how to move forward with it, feel free to stop by chat, I always seem to be there.

When you talk EE use small words, I'm just a Software Developer :)
My Blog/Site and Everything Else

If my post helped you please consider pressing the "Like This" button in the bottom right-hand corner.

 

Oh my. So many things, so little money!!

 





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.