Hardware Details: Netduino Go (mainboard)
#1
Posted 06 April 2012 - 09:55 AM
That may be most prevalent on the Netduino Go mainboard itself.
Here are a few highlights...
USB circuitry
We think high-speed ESD protection in the USB circuitry is important. We integrated it into the traditional Netduinos, but the side-effect was that USB Client support was a bit tricky. With Netduino Go, we've switched out the nice ST device-side USB ESD chip for three discrete Littlefuse USB ESD chips.
Now we can re-enumerate on the fly...so the USB Client feature of .NET MF will be able to be fully supported on Netduino. You could use a Nwazet touchscreen with a Netduino Go to create your own touchscreen HID keypad, for example. Or turn off the NETMF debug channel and make your Netduino Go a custom USB HID serial-like device.
The USB fuse is the same as on Netduino. We really like that part. It's there to help protect your computer.
Power circuitry
On Netduino and Netduino Plus, we use a 3.3V power regulator to convert USB power into a 3.3V power supply usable by components. This is a fairly typical application (and we use nice LDO power regulators). But as you draw more current, these power regulators heat up. They basically waste the voltage difference (1/3 of the power) as heat.
With Netduino Go, we've included a premium DC-DC switch/inductor pair and a number of beefy 10uF caps to stabilize the PWM-driven power supply. This allows us to deliver a large amount of power at high efficiency. In fact, while USB delivers 500mA at 5V, we get 600mA+ of 3.3V power out of the DC-DC switch. Even after powering the Netduino Go's speedy MCU, we have enough power to drive around 500mA of 3.3V to the modules. And you can use that much power without heating up the DC-DC switch much.
The other really important thing here is that the DC-DC switch can respond to quick changes in power draw. So as modules require sudden increases in current, the effect on other modules in the system is minimized. This should help the stability of analog inputs, for example.
MiniJTAG
Some of you wanted to dig in and debug the .NET Micro Framework firmware on your Netduinos. Well, with Netduino Go you can. We included an industry-standard MiniJTAG port (officially called the Cortex Debug Port). Just solder on a 0.05" 2x5 male pin header. For about $40 you can get both a JTAG debug unit (STLink/V2) and a JTAG->MiniJTAG adapter (Texas Instruments) from Mouser. No $2,000+ JTAG debugger required.
And since Netduino Go has a beefy 1MB of flash, you can compile in your own native code if you'd like...and test it right on the board.
Power LED
Some of you asked if you could shut off the power LED. Well, now you can. The power LED turns on by default, but you can turn it off by opening up pin PC13 ((Cpu.Pin)45) as an OutputPort and turning it off. We'll be providing a method to shut off the socket LEDs as well.
Pushbutton
Like Netduino, we wanted a single all-purpose pushbutton. You can use it as a GPIO just like before. And if you hold it down during power-up, it takes you into bootloader mode.
But now, instead of an Atmel bootloader and TinyBooter...we've consolidated down to a single bootloader. When you boot into bootloader mode, the devices enters DFU (device firmware update) mode where you can use the ST DFU tools to erase or upgrade your board. We'll also be making custom tools available. No more worrying about mismatch of TinyBooter and TinyCLR versions...and we freed up another 40KB of space.
We'll also be enabling the pushbutton as a reset button...just like on Netduino. This feature couldn't be completed far enough before launch to get sufficient testing, but we'll be rolling it out in an update soon.
Finally...the button is now a surface mount button. We went through a lot of buttons before finding one that had the same feel as the one used on Netduino and Netduino Plus. We're trying to make these boards last a long time and be more easily recycled...and this is another step in that direction.
STM32F4 Microcontroller
Of course, Netduino Go uses a blazingly fast STM32F405 (Cortex-M4F) microcontroller. This chip runs at 168MHz and is, conservatively speaking, 4 times as fast as a traditional Netduino SAM7X microcontroller. It has 1MB of flash, letting us enable a full 384KB of flash and still have tons of room left over to fill with NETMF features like networking and OneWire.
The chip has 192KB of RAM: 128KB of regular RAM and 64KB of core-coupled RAM. The core-coupled RAM is extra-speedy (think of it like the speedy cache inside Intel chips), and we're storing the stack and buffers there. This allows us to allocate roughly the entire 128KB of the main SRAM to the .NET MF heap. The end result is lots of RAM for your app.
Go!Sockets
Perhaps the biggest difference with Netduino Go is the new virtualized IO and socket design. The sockets have some stand-out features. For one, they are plug-and-play sockets for expansion modules. These modules can be pre-built modules like potentiometers, motor controllers, or Ethernet connections. They can be IO boards like the Shield Base (or a breadboard module or a 16-port PWM module). They could even be a really rich device like a 3D printer.
Hardware-wise, we've put a dual-MOSFET on every socket. This allows us to switch on and off current to every socket individually. We have lots of uses in mind for this, but three of the most important are: (1) shutting on and off modules for reflashing; (2) low-power and battery operated scenarios; (3) making sure that nothing is active during boot.
The last item is a really important one. When you build a robot, for instance, you want to make sure its wheels don't just start spinning while the board is starting up. The go!bus and go!socket architecture keeps things in a well-known off state during boot.
Final thoughts
Your feedback this last year and a half has been really awesome, and hopefully we've incorporated some of your requests into this new hardware.
There are quite a few things we've designed into the hardware that will make more and more sense as we update the Netduino Go with software updates this year. We have a lot planned, and your hardware investment today will become even more useful as free open source software updates and additional modules ship.
I look forward to sharing this journey with you,
Chris
#2
Posted 06 April 2012 - 10:03 AM
#3
Posted 06 April 2012 - 10:14 AM
During development, we used the Sytech Ethernet+SD Gadgeteer module to test both Ethernet and SD features. If you tweak the firmware a bit, you can re-enable that support...although this is a "Z" module (manufacturer-specific) so we can't promise long-term support.You talk about Ethernet connections. Is there already anyway to have an Ethernet connection on Netduino GO ? Using the arduino ethernet shield maybe ?
We're now preparing for sample production of a Netduino Go Ethernet module (and an MMC/SD module). These are really nice and they use a brand new microcontroller which can keep up with the go!bus's fast transfer speed and do error checking at the same time. We'll have more information on these soon...and they will be the long-term solution for Ethernet networking on Netduino Go.
When the Shield Base gets along a little farther in the beta, you can certainly use one of the original Arduino Ethernet shields (or the DFRobot one). But if you can be patient for a bit, I'd recommend the Ethernet go!module...it'll give you the best performance, reliability, and deep integration with the System.Net namespace.
Chris
#4
Posted 06 April 2012 - 10:23 AM
#5
Posted 06 April 2012 - 12:44 PM
#6
Posted 06 April 2012 - 12:50 PM
Hi Mattster,regarding the JTAG to Mini-JTAG at Mouser, can you please specify a model or a part number? There seems to be a number of them there and they differ. Thanks.
I myself have these items:
- http://www.st.com/in...duct/251168.jsp
- http://elcodis.com/p...3/MDL-ADA2.html
But I think that any 20-to-10-pin converter will work.
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#7
Posted 06 April 2012 - 01:36 PM
#8
Posted 06 April 2012 - 02:20 PM
#9
Posted 07 April 2012 - 03:52 PM
Hi Nicolas,
During development, we used the Sytech Ethernet+SD Gadgeteer module to test both Ethernet and SD features. If you tweak the firmware a bit, you can re-enable that support...although this is a "Z" module (manufacturer-specific) so we can't promise long-term support.
We're now preparing for sample production of a Netduino Go Ethernet module (and an MMC/SD module). These are really nice and they use a brand new microcontroller which can keep up with the go!bus's fast transfer speed and do error checking at the same time. We'll have more information on these soon...and they will be the long-term solution for Ethernet networking on Netduino Go.
When the Shield Base gets along a little farther in the beta, you can certainly use one of the original Arduino Ethernet shields (or the DFRobot one). But if you can be patient for a bit, I'd recommend the Ethernet go!module...it'll give you the best performance, reliability, and deep integration with the System.Net namespace.
Chris
Will the go! ethernet module support SSL comms? As for me the lack of SSL is a real limitation with nearly all of the shields out there at the moment (and IMHO is a serious limitation to creating any "professional" system with the current generation of low cost development systems), and i would prefer to avoid using something like a digi connect or lantronix xport type device which does have all of that onboard. I presume the virtulised hardware of the GO should allow for the processing to be offloaded onto the module same as low level network stuff such as dns and icmp etc.?
#10
Posted 07 April 2012 - 08:09 PM
That's a fantastic idea. We don't have any plans for this right now, but we can investigate.Will the go! ethernet module support SSL comms? As for me the lack of SSL is a real limitation with nearly all of the shields out there at the moment (and IMHO is a serious limitation to creating any "professional" system with the current generation of low cost development systems), and i would prefer to avoid using something like a digi connect or lantronix xport type device which does have all of that onboard. I presume the virtulised hardware of the GO should allow for the processing to be offloaded onto the module same as low level network stuff such as dns and icmp etc.?
Chris
#11
Posted 09 April 2012 - 03:26 PM
Hi nakchak,
That's a fantastic idea. We don't have any plans for this right now, but we can investigate.
Chris
Hi Chris
Please let me know if i can be of any assistance, from my very breif look at the problem it appears that ST have an application note availible for the STM32F217XX MCU demonstrating SSL/TLS networking functionality using PolarSSL here
Nak.
#12
Posted 09 April 2012 - 07:54 PM
Thanks, Nak. I'll ping you in a few weeks on this. This would be a great feature to pull together...Please let me know if i can be of any assistance, from my very breif look at the problem it appears that ST have an application note availible for the STM32F217XX MCU demonstrating SSL/TLS networking functionality using PolarSSL here
BTW, OpenSSL is already built into NETMF. So it's mostly just an issue of figuring out if we can fit it on the board (i.e. flash and RAM). If that won't fit, SSL hardware offload (via virtualization) would be another option too.
Chris
#13
Posted 23 April 2012 - 02:56 AM
#14
Posted 04 June 2012 - 10:41 AM
MiniJTAG
Some of you wanted to dig in and debug the .NET Micro Framework firmware on your Netduinos. Well, with Netduino Go you can. We included an industry-standard MiniJTAG port (officially called the Cortex Debug Port). Just solder on a 0.05" 2x5 male pin header. For about $40 you can get both a JTAG debug unit (STLink/V2) and a JTAG->MiniJTAG adapter (Texas Instruments) from Mouser. No $2,000+ JTAG debugger required.
And since Netduino Go has a beefy 1MB of flash, you can compile in your own native code if you'd like...and test it right on the board.
I have been searching for that minijtag adapter, any partnumber? (I already have the STLink/v2).
And the male-pin header, can one use an shrouded one? (are nwazet or someone going to sell small bags of these?
(I guess that shrouded, means that one keep the orientation on the plug?)
--
Asbjørn
#15
Posted 04 June 2012 - 10:51 AM
You mean this?I have been searching for that minijtag adapter, any partnumber? (I already have the STLink/v2).
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#16
Posted 04 June 2012 - 10:59 AM
You mean this?
aha, with an partnumber I also found it at mouser now.. searching for "minijtag" there yielded no results.
so that 20pin thingy is direct compatible with the stlink one? then it's even better, I was thinking I had to use pins and clips..
(just wanting to prepare my shieldbase and Go for worstcase, if it can break, it will.. )
--
Asbjørn
#17
Posted 04 June 2012 - 11:42 AM
Yep, I used them combined without any issues.so that 20pin thingy is direct compatible with the stlink one?
Ohhh lovely(just wanting to prepare my shieldbase and Go for worstcase, if it can break, it will.. )
And yes, they can be broken. I already broken a mainboard. I even believe I was the first one doing so. Not sure if I should be proud or sad
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#18
Posted 18 June 2012 - 12:32 PM
--
Asbjørn
#19
Posted 18 June 2012 - 02:26 PM
For MiniJTAG, you can use the shrouded connectors...but I'd recommend picking up a standard unshrouded one for $0.77 + shipping. The MiniJTAG cable's connector goes the same way as the sockets (notch facing in).Nobody that sells the throughhole sockets so i can attach that debug adapter to netduino/shieldbase?
I found the links that points to mouser, but that was for the full reel.. that is a bit more than I need.
The surfacemount ones seems to be available in smaller purchases, but since there are holes, I guess it's easier for me to solder that (have no smd experience yet)
http://www.digikey.c...21111-00010T4LF
We're working on bringing in a few thousand of the shrouded connectors...and then selling them in 10-packs on Amazon. That'll be a little while though.
Chris
#20
Posted 18 June 2012 - 03:08 PM
--
Asbjørn
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users