
Building custom go!bus modules for Netduino Go
#1
Posted 16 April 2012 - 02:29 AM
- wreddenty likes this
#2
Posted 16 April 2012 - 04:21 AM
Where would you like to start the conversation? There's lots to cover. This should be a lot of fun, and the new ecosystem will enable a lot more people to get into open source electronics...and will enable a lot of new projects.
If we can lets start at the beginning

- The Go!Bus has 10 pins, what are they, and what are they for?
- The Schematic for the Go! [pdf] says there is SPI and UART on the Go!Bus what is the UART for it I already have SPI?
- I keep hearing about SWIM for flashing the modules, what is it and what does it mean that I can flash my modules?
- How much power can I consume on my modules, what if I need more?
- You've said the STM8S and STM32F are good uC to use on the modules, but how do I know which one to choose?
- What about mounting holes, is there a standard?
- Are there any design requirements?
- How about electrical requirements?
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!!
#3
Posted 16 April 2012 - 04:39 AM
That's quite the listIf we can lets start at the beginning
.

Here's the breakdown:
- The Go!Bus has 10 pins, what are they, and what are they for?
- The Schematic for the Go! [pdf] says there is SPI and UART on the Go!Bus what is the UART for it I already have SPI?
- 3V3
- 5V
- GPIO+/IRQ
- UART_RX (from module's perspective)
- UART_TX (from module's perspective)
- SPI_SS
- SPI_MOSI
- SPI_MISO
- SPI_SCK
- GND
The UART pins are solely used for reflashing modules, and for exclusive-channel support for Gadgeteer "U" modules. We're also using these on the shield base during the beta, in case there are bugs we need to fix (which ensures that they're not NETMF SPI-related).
STM8S microcontrollers are programmed via SWIM, which is basically a single-pin flash-and-debug protocol. You'll be able to reflash your modules via go!bus, or via a SWIM breakout connected to a socket breakout.
- I keep hearing about SWIM for flashing the modules, what is it and what does it mean that I can flash my modules?
A module can use up to 60mA of power at boot, and we'll provide a mechanism to request more power.
- How much power can I consume on my modules, what if I need more?
For now, choose STM8S. The first standard virtual I/O firmware will be for STM8S. STM32F is next.
- You've said the STM8S and STM32F are good uC to use on the modules, but how do I know which one to choose?
Once both firmware options are available, you'll want to pick the micro which has the right pin features (# of IOs, # of SPI buses, # of analog channels, voltage tolerance, etc.) and speed for your application. STM32F offers faster go!bus communication and faster virtualization. STM8S is less expensive. Together they provide a range of $0.30+ chips...so you can use the one that's right for your module.
Yes. Holes should be 3.0mm (tight fit) or 3.2mm (loose fit) in diameter. They need to be set on a 5mm grid (i.e. a multiple of 5mm between centerpoint of holes).
- What about mounting holes, is there a standard?
The sockets can be on the front or the back of modules. If near the edge, they need to be notch-facing-out.
- Are there any design requirements?
No soldermask color requirements, silkscreen requirements, etc. We wanted to have a very simple spec, from an electrical/design perspective...to give module builders lots of freedom.
Module drivers will need to be provided in C#/VB source code form. Compiled drivers and installers that put them into the "add reference..." box are preferred...we can help with that. We want to make sure that modules, whether open source or not, will not have any artificial/proprietary limitations keeping them from working with any go!bus-compliant mainboard.
Speaking of which...if you follow the go!bus spec, you'll be able to put the go!bus (G) logo on your modules to show that they're interoperable with go!bus-compliant mainboards. And we'll have a module directory so you can advertise that interoperability.
go!bus mainboards are guaranteed to be 5V tolerant, so you can run your MCU at either 3.3V or 5V. If you run an STM8S at 5V, you'll need to level shift the 3.3V signals coming from the mainboard into the input pins on the module. For most applications, running STM8S at 3.3V will work beautifully.
- How about electrical requirements?
Is that a good start?
Chris
#4
Posted 16 April 2012 - 04:41 AM
#5
Posted 16 April 2012 - 05:02 AM
Oh, that one is pretty easy. Exactly as you mentioned...you can use the current potentiometer schematic and firmware, and we'll automatically update it alongside the rotary potentiometer.1) A slide potentiometer first to get my feet wet. Circuit should be the same as the existing potentiometer module with a slider instead of a rotary control.
For a rotary encoder, STM8S should work well. Would you count the steps on the module? How would you expose these (via virtual IO)?2) A rotary encoder module.
Awesome. Thank youAnd I should add that both of these will be open source hardware and software.

Chris
#6
Posted 16 April 2012 - 05:04 AM

Does the above reflect the pinout correctly?
Total BOCS Traveled Distance: 9708 miles | States Visited: 5
Track the Box
#7
Posted 16 April 2012 - 05:07 AM
Yessir, that's perfect from the module's perspective.
Does the above reflect the pinout correctly?
Chris
#8
Posted 16 April 2012 - 05:22 AM
- Updated MIDI Module (my current one works with the GO in compatibility mode only)
- Also working on the Big MIDI Brain. Not sure yet if this will replace the MIDI module or be something separate.
- Mondo Servo controller module (lots-o-servos)
- Very large button matrix, which would also work for things like synthesizer keyboards, computer keyboards, and controllers like the Monome
- Atari Joystick/Paddle/Trakball module (almost done)
- MOS SID module
- 4 Axis Motor Interface / CNC Controller capable of running small CNC/3d printers, but not limited just to very the low amp NEMA 15 motors like most similar offerings.
- Various synthesizer components for a specialized type of modular synthesizer
- Rotary encoder module with LED rings
- MIDI to CV
- 8 way slide potentiometer module (someone beat me to this in Gadgeteer land)
- Rotary encoder module with RGB LED rings (price of this may be too much for the market, as RGB SMD LEDs are crazy expensive. TBD)
- Commodore drive and/or cartridge interface for augmenting the C64 with NETMF. Just trust me here
I mentally add to the list regularly, but the above are the ones I've actually written down and/or started designing.
Pete
I work for Microsoft. Opinions expressed here are my own and do not necessarily reflect those of my employer,our partners or customers.
#9
Posted 16 April 2012 - 05:23 AM
#10
Posted 16 April 2012 - 05:34 AM
Here's the SMD socket for go!bus:Where can one find the bill of materials for the existing Secret Labs go modules? In particular I would like to know the manufacturer, part number and sourcing information for the socket.
FCI 20021521-00010T1LF
http://search.digike...21521-00010T1LF
And here's the through-hole version:
FCI 20021511-00010T1LF
http://www.mouser.co...kTNcJ8wnslDRg==
Would it help if we bought a few thousand of each and bundled them in 10-packs for $9.95?
Chris
P.S. All of the PNs are in the .BRD design files.
#11
Posted 16 April 2012 - 05:36 AM
That's a pretty awesome listTo be completely open, here are the modules I have in various stages of planning and development.
...
You can see that my interests tend to be ... specialized.

Chris
#12
Posted 16 April 2012 - 05:38 AM
Where can one find the bill of materials for the existing Secret Labs go modules? In particular I would like to know the manufacturer, part number and sourcing information for the socket.
Thanks.
Most of the main suppliers will only sell by the reel of 800 or so. Mouser has them in their catalog, but they haven't been in stock for a bit. Chris has the part number
You can also contact Samtec and order a sample (of 10 or so) for evaluation. They're really good about that. Samtec part is SHF-105-01-L-D-SM, but you have to use their builder thingy to specify the part. Normally they're about $2.00 each. The samtec ones are especially nice for hand-soldering, though, as they have an undercut to give you room to get in there with an iron. To compensate when using the less expensive part, I've made the pads on the socket part in Eagle a bit larger.
Finally, these are the same sockets that are used for .NET Gadgeteer, so you may find them at Gadgeteer suppliers too. One community member is selling them for $0.50 each until May 1. Email Valentin at scout119 @ gmail dot com
Pete
I work for Microsoft. Opinions expressed here are my own and do not necessarily reflect those of my employer,our partners or customers.
#13
Posted 16 April 2012 - 05:40 AM
Would it help if we bought a few thousand of each and bundled them in 10-packs for $9.95?
Chris
P.S. All of the PNs are in the .BRD design files.
What would be even better would be a couple of sockets and pre flashed STM8S bundled together for $4.95
#14
Posted 16 April 2012 - 05:47 AM
In our production process, we've been flashing 1000s of STM8S-based modules. After they're already built...no need to pre-flash.What would be even better would be a couple of sockets and pre flashed STM8S bundled together for $4.95
We could put together a pack--but pre-flashing the MCUs (before they're mounted) might be pretty expensive to do in small quantities.
We'll make it really easy for you to program your modules (in just a few seconds each, plus the time it takes to plug them in). This also has the side-effect of making sure that all of your socket-to-pad connections are good and lets you create a simple test app for your modules to make sure they were assembled properly.
As part of this conversation, we should put together a workflow of best practices for building modules.
Chris
#15
Posted 16 April 2012 - 05:48 AM
You can also pick up the SMD ones from DigiKey for about $1 each, in 10-unit quantity.Most of the main suppliers will only sell by the reel of 800 or so. Mouser has them in their catalog, but they haven't been in stock for a bit. Chris has the part number
http://search.digike...21521-00010T1LF
Chris
#16
Posted 16 April 2012 - 05:54 AM
As part of this conversation, we should put together a workflow of best practices for building modules.
Chris
Absolutely! That would be great. Lets also have a workflow for prototyping modules.
#17
Posted 16 April 2012 - 06:17 AM
In production now:
- Piezo Buzzer
- Ethernet
- MMC/SD Card
- Photoresistor (light sensor)
- Temperature Sensor
- Accelerometer/Compass/Gyro
- Motor/Servo
- XBee
- RS232
- Distance Sensor
- Motion Detector
- GPS
- IO Expansion Modules
- RFID
- Thumb Joystick
- WiFi
Edited by Chris Walker, 09 September 2012 - 11:52 PM.
Updated "longer-term modules (conceptual)"
#18
Posted 16 April 2012 - 06:47 PM
Would it help if we bought a few thousand of each and bundled them in 10-packs for $9.95?
Chris
I would buy a ten-pack for $9.95. Mouser only sells the thru-holes in quantity 990 at $.55.
This would be for populating the JTAG
#19
Posted 16 April 2012 - 07:53 PM
I am looking in to a 1-Wire bus module, although I have a feeling someone else is already working on this?
Chris in terms of your temperature sensor, is this going to be an air temperature module or a module you can attach certain probes to.
Phidgets do a ton of modules here is their temperature probe one, but you should check out their other modules there are some really good ideas!
Also interfacing with atlas scientific stuff would be really cool, perhaps a module that can integrate the atlas stuff in to Go bus?
I'd also really like to see a breadboard module that allows you to prototype modules accessing all the features of the STM8 or STM32, but with this part of the circuit already done to safe time. Just an idea but it could also standardise the STM circuit on modules.
Last thing, are there any plans or possibilities for usb peripheral support and also are the new boards capable of processing video i.e. from a usb web cam?
Perhaps with an STM324F module for the usb web cam interface which processes the video and contains the driver for the usb, then the processed video is then sent back to the main Go module which can be streamed via the future Ethernet module? (Sorry excited rambling now...)
Andy
#20
Posted 16 April 2012 - 07:57 PM
http://10rem.net/blo...-to-solder-them
Hopefully that helps someone.
Pete
- czi likes this
I work for Microsoft. Opinions expressed here are my own and do not necessarily reflect those of my employer,our partners or customers.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users