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.

Chris Walker

Member Since 18 Jul 2010
Offline Last Active Private
****-

#62539 New: Universal Netduino Application template (in the new 4.3.2 SDK)

Posted by Chris Walker on 09 May 2015 - 06:05 AM

Let's get rid of some unnecessary complexity.

With earlier SDKs, each Netduino mainboard had its own "New Project" template, its own HardwareProvider DLL, etc. While we had strong code reusability, we can do even better (and simplify things a bit in the process).

New Universal Netduino Applications
In the new Netduino 4.3.2 SDK, there is exactly one project template for Netduino. This single universal template creates a project for any modern Netduino mainboard (Netduino 3, Netduino Plus 2, Netduino 2 or Netduino Go).

universaltemplate.gif

Universal Netduino Apps using GoBus modules are completely portable between Netduino Go and Netduino 3 too. Once we add Shield Base virtual I/O support to the Netduino Go 4.3 firmware, you will even be able to seamlessly move an app using "Arduino headers/shields" from a Netduino 3 mainboard to a Netduino Go mainboard (with Shield Base) simply by redeploying.

Backwards-compatibile with existing code
We designed the new universal templates with full backwards compatibility in mind. Existing Netduino applications do not need to be rewritten. We have added intelligence to the 4.3.2.1 firmware so that all modern Netduino mainboards maintain strong backwards compatibility with existing code.

Legacy Netduino Templates (optional SDK add-on, for gen1 boards)
While the new universal Netduino Application template does not support the older gen1 boards, we want to make sure that makers can continue getting use out of their gen1 boards for many years. So we have added a "Legacy Templates" installer on the downloads page directly under the Netduino SDK.

Here is what the "New Project" templates look like with the legacy templates add-on installed.
pluslegacytemplates.gif

The Universal Future
At //build/ 2015, Microsoft showed off Netduino 3 Wi-Fi mainboards running new Universal Windows Platform (UWP)-derived APIs. As we move into the NETMF 4.4 timeframe, the new Universal Netduino Application template will be the foundation upon which new UWP-enabled apps are built as well. There is so much more to come as we innovate with Microsoft this year. Stay tuned!

Summary
The new universal Netduino Application project template makes it insanely simple for developers to use Netduino Apps on any mainboard. Start with Netduino 2. Switch to Netduino Go. Switch to Netduino 3. Simply redeploy.

Please let us know your experiences with the new universal template,

Chris


#62518 New feature: automatic reloading of MAC address after upgrades

Posted by Chris Walker on 08 May 2015 - 07:54 PM

Netduino Update makes upgrading mainboards a breeze. But until now we've still had to re-enter the board's MAC address in MFDeploy after the upgrade.

No more. The newest firmware (4.3.2.1+) for Netduino Plus 2 and Netduino 3 does away with this extra step: the firmware now automatically retrieves the default MAC address from write-once flash.

A few notes:
  • Netduino 3 Wi-Fi mainboards were already pre-programmed with a default MAC address.
  • The default MAC address is written into write-once flash, but can still be changed once or twice.
  • The current MAC address can be updated at any time using MFDeploy's Network Configuration. Reflashing later on will reload the permanently-stored default MAC address.
Here is a quick tutorial on how to permanently set the default MAC address in your Netduino Plus 2 board.

Step 1: Select your Netduino in Netduino Update; click Options...
step1.gif


Step 2: In the options dialog, switch to the new Network tab.
step2.gif


Step 3: Enter the default MAC address for your board (from the sticker on the back of your board).
step3.gif


Step 4: Close the options dialog to save your board's MAC address.
step4.gif

That's it! If you reflash your board and open up MFDeploy's Network Config dialog, you will see that your MAC address is reloaded automatically!

Please let us know your feedback/experiences with this new feature,

Chris


#62515 Netduino Plus 2 Firmware v4.3.2 (update 1)

Posted by Chris Walker on 08 May 2015 - 04:53 PM

Hi alesbedac,

1) 
I have only one general feedback, what should be helpfull for more users.
Integrate all installers and fw update tool into one installer - i hope that will be very helpfull.

Thank you for the feedback. We will look at including Netduino Update (with an auto-updater) in future versions of the Netduino SDK.

2) What is still missing me is the new FW for older Netduino 1 and Netduino Plus 1

Unfortunately, NETMF 4.3 is a bit larger than earlier firmware and is hard to fit on Netduino Plus 1's smaller flash. Once we ship the Ethernet version of Netduino.IP, if there is enough interest in supporting the older gen1 hardware, we could open up a community project to port the Netduino.IP stack to gen1. With that newer more modular network stack, we could then fit NETMF 4.3 on the older NP1 hardware.

Chris


#62508 Netduino Plus 2 Firmware v4.3.2 (update 1)

Posted by Chris Walker on 07 May 2015 - 09:13 PM

Version: 4.3.2 Update 1 (version 4.3.2.1)

Download link
Download Netduino v4.3.2.1 firmware now

Updates in this release
1. MAC Address now automatically repopulated after upgrade (from OTP flash)
2. Streamlined "Netduino Application" universal template now supported
3. Bugfix: COM2 flow control now enabled
4. Bugfix: System.Net HTTP classes now check for null during Dispose

Pre-requisites for this firmware
1. Visual Studio 2012 or Visual Studio 2013. Or Visual Studio 2015 (beta).
2. .NET Micro Framework SDK v4.3 QFE2 or newer
3. NETMF plug-in for Visual Studio 2012, NETMF plug-in for Visual Studio 2013 or NETMF plug-in for Visual Studio 2015 (beta).
4. Netduino SDK v4.3.2.1 or newer

How to flash this firmware
1. Detach your Netduino from your computer to turn it off.
2. Press and hold your Netduino's pushbutton while plugging it in via USB; this will put it in bootloader mode.
3. Run the Netduino Update tool (see link above).
a. If your device does not appear, install the STDFU drivers + tools v3.0.3.
b. If your device appears as "STM Device in DFU Mode", click on "Options", select your board type from the Product selection box and close the Options window.
4. Select the checkbox next to your device and press "Upgrade"
5. Wait while the upgrade operation completes. After flashing, your Netduino will reboot and will be removed from the upgrade list.
6. Optional: after flashing, set your network settings using MFDeploy. In MFDeploy, select the Target > Configuration > Networking menu. Re-enter your IP address settings and MAC address.

How to find your current version of Netduino firmware
1. Go to the Start Menu > Programs > Microsoft .NET Micro Framework 4.3
2. Run MFDeploy.
3. Plug your Netduino into your PC using a Micro USB cable.
4. In the Device section at top, select USB instead of Serial. Your Netduino should appear in the drop-down; if not, select it.
5. Select the Target menu > Device Capabilities option.
6. In the output box, find the "SolutionReleaseInfo.solutionVersion" value. This is your firmware version.

Enjoy, and please let us know if you run into any troubles.

Chris

Download link
Download Netduino v4.3.2.1 firmware now


#62484 Introducing Netduino 3 Wi-Fi

Posted by Chris Walker on 06 May 2015 - 06:34 PM

Hi beastyboy,

Will the Go sockets work with the Shieldbase ?
 
Or even better support multiple Shieldbases?

The production 4.3.2.0 firmware supports all RTM-firmware GoBus modules. It does not (yet) support the beta Shield Base module.

Some details on what we're doing: we have pulled out some of the virtual I/O code required for Shield Base, to upgrade Shield Base drivers and deliver the other new modules with the GoBus 1.5 virtual I/O profiles. We will be adding back in support for Shield Base's virtual I/O over the next 8 weeks as we complete that process.

And yes, with Netduino 3, you will be able to use up to three Shield Bases simultaneously. :) The main limitation there is making sure you have enough mA available to power the modules and anything plugged into them. [We will also be enabling up to two simultaneous Shield Bases on Netduino Go...and then removing that limit once Shield Base moves to SPI transport.]

Netduino Go is also getting an upgrade to 4.3.2.0 this week, as a beta, and we will add the new GoBus 1.5 profile support for Shield Base to that mainboard in parallel as we move it to 4.3.2 RTM firmware status.

Chris


#62459 "We are makers" video from Build 2015

Posted by Chris Walker on 05 May 2015 - 08:11 PM

Pete Brown: "Father, author, maker, C64, film director." :)

That's a really great video, Pete. It was awesome seeing NETMF featured in such a high-profile keynote.

Thanks so much for sharing this,

Chris


#62426 Introducing Netduino 3 Wi-Fi

Posted by Chris Walker on 04 May 2015 - 05:28 PM

Hi energywave,

It's possible to add an external EEPROM (for a dollar or so) to store data via I2C/SPI on Netduino 2s today, but no internal storage mechanism (outside of deploying data with your code).

I'll add a +1 to the "simple storage" feature request.

Chris

P.S. Glad you like the improvements on Netduino 3. There are a lot of improvements we haven't covered yet too ; more to come :)

P.P.S. Any photos you can share on your project with the N2s? We always love seeing the cool stuff that community members are building with Netduinos!


#62418 A very early look at some STM8S GoBus 1.5 code

Posted by Chris Walker on 04 May 2015 - 07:40 AM

I am putting together the STM8S code for the RS-232 module (GoBus 1.5 compliant), pulling in pieces from code we wrote earlier and testing each piece.

I thought you guys might find the code interesting, so I'm uploading it to our GitHub repo as I go :) This is very early and very still-in-process.

Here are the first few hundred lines of code:
https://github.com/netduino/GoBus

Description
The RS-232 module takes care of its GPIO initialization, and then calls a GoBus init routine. The GoBus code handles all SPI traffic and will set a flag when a complete frame is received. The module code will then retrieve the GoBus frame, call its appropriate function, and then return a response to the caller.

Current state
The current code I uploaded is early, and there is a lot I still need to pull in from our codebase. But it's an early sneak peek. [In the gobus.c file, you'll notice that it fills up the buffer there--but nothing is reading from that buffer quite yet. The SPI/UART/GPIO initialization is complete however.]

SPI RX buffer filling:
/* SPI interrupt handler */ 
#pragma vector = SPI_vector 
__interrupt void SPI_IRQHandler( void ) 
{ 
  if(SPI->SR & SPI_SR_RXNE) 
  { 
    /* SPI 1-byte (register) receive buffer is filled */ 
    if (_rxFrameBufferIndex < FRAME_SIZE - 1) 
    { 
      _rxFrameBuffer[_rxFrameBufferIndex++] = SPI->DR; 
    } 
  } 
}
The module startup code:
/* initialize our clock (8MHz = HSE 8MHz / 1) */ 
MasterClock_Initialize();   

/* turn off all peripheral clocks; we'll enable the ones we need after this. */ 
STM8S_DisableAllPeripheralClocksAfterReset(); 

/* initialize all of our module's unused GPIOs to input mode, pull-up enabled, interrupt disabled */ 
GPIO_InitializeToSafeDefaults(); 
 
/* configure our module-specific pins */ 
GPIO_Configure(); 

/* configure our module's non-GPIO peripherals */ 
/* UART peripheral */ 
UART_Initialize(); 

/* enable our UART */ 
UART_Enable(); 
 
/* configure GoBus SPI slave transport */ 
GoBus_Initialize(); 
 
/* important: after initializing all peripherals and features, enable interrupts */ 
__enable_interrupt(); 
Some of the nitty-gritty behind the scenes... This is the clock initialization routine; we have one version for an external 8MHz clock (included here) and one version for using the built-in lower-accuracy 8MHz clock. We need the external clock on the RS-232 module for UART bps accuracy.
void MasterClock_Initialize( void ) 
{ 
  /* configure master clock as: (HSE 8MHz / 1) */ 
  
  /* configure HSE as clock master */ 
  CLK->SWR = CKL_SWR_SWI_HSE; 
  
  /* wait for the target clock source (HSE) to be ready; we are now for the switch */ 
  while (!(CLK->SWCR & CLK_SWCR_SWIF)); 
  
  /* clear the SWIF flag */ 
  CLK->SWCR &= ~CLK_SWCR_SWIF; 
 
  /* switch master clock to HSE */ 
  CLK->SWCR |= CLK_SWCR_SWEN; 

  /* wait for master clock switch to complete */ 
  while (CLK->SWCR & CLK_SWCR_SWBSY); 
   
  /* stop switching the clock */ 
  CLK->SWCR &= ~CLK_SWCR_SWEN; 
     
  /* disable HSI */ 
  CLK->ICKR &= ~CLK_ICKR_HSIEN; 
} 
What's next?
The next step is to set the appropriate FrameReceived flag in our SPI receive function, parse the buffer in the main function loop, and then free up the RX buffer once the command is processed (so that another frame can be received). Then we need to add in the error checking code, the error recovery code, and the code which lets data flow in the other direction. And the module-specific code that lights up the ACT LED.

After that is done, I'll wrap things up by adding in GoBus enumeration and any required basic informational frames. And then we will ship a GoBus driver, flash a bunch of modules, and make this first GoBus 1.5 module available for order.

Modularization
BTW, one of the goals with the new code is to modularize the peripherals a bit--so that it is easy for third parties to make GoBus-compliant modules (which work on Netduino Go, Netduino 3 and via GoBus hubs). You can see some of that in the current code but there is more work to do before we get to that point.

If you have any questions on how the STM8S firmware is being designed, just let me know!

Chris


#62380 New Netduino.IP hybrid stack for TI CC3100 Wi-Fi chip!

Posted by Chris Walker on 02 May 2015 - 03:16 AM

Hi xmen,

For me, I need AP functionality more. It would be nice, if we can initialize the WiFi with its settings, either be an AP or connect to a router without changing the firmware. Please do add option for it.


Noted. If we enabled the AP feature as an option in the root Netduino 3 Wi-Fi firmware, it would be an AP for one device (so you could easily connect a device _to_ the Netduino 3 Wi-Fi). Would that be super-interesting to a lot of you?

Also, is it possible to use "STM32F4 Discovery" chip in Netduino 3 ? That would be just awesome. Please take a look once.


Even better: we're using the brand new STM32F427VI Rev 3 chip from ST on Netduino 3 Wi-Fi. With 2MB flash (dual-bank) and 256KB RAM. :) http://www.netduino.com/netduino3wifi/

Chris


#62369 Introducing Netduino 3 Wi-Fi

Posted by Chris Walker on 01 May 2015 - 10:19 PM

Hi Joshk,

For my 70 Netduino Plus 2 I have spend $700 in cards.

I've put "simple storage" on the feature request list. This is something community members can attack and we can incorporate into the firmware. Or it's something we can attack, once we get a few other items out of the way... I do understand where this would be valuable.

Chris


#62353 From //build/ 2015: Netduino 3, .NET MF 4.4, Universal Windows Platform API c...

Posted by Chris Walker on 01 May 2015 - 06:30 PM

.NET Micro Framework is getting a big upgrade.

A few highlights from //build/ 2015:
  • Netduino 3 Wi-Fi was announced this week.  With built-in SSL and Azure support.  And lots more.
  • .NET Micro Framework 4.4 is adding support for (converging with) the new Universal Windows Platform (UWP) APIs for GPIO, I2C, PWM, SPI, ADC, etc.  This leverages the best of NETMF with platform consistencies of the new-and-improved Win10 APIs. 
  • Microsoft held QuickStart labs where attendees could program both Netduino 3 Wi-Fis and WinIoT CPUs with the same UWP APIs.  Using a SparkFun weather shield.  And Azure!
  • .NET Micro Framework is getting AllJoyn support--a critical new piece of code which will enable NETMF-based gadgets to connect to and integrate with the larger world of IoT devices.
Microsoft re-iterated its commitment to IoT and is simplifying its line-up to focus on the overall Windows 10 IoT picture--which includes NETMF.
  • Windows 10 and NETMF are both part of the same simplified continuum, both important parts of the Windows Developer Program for IoT.
  • NETMF apps are in many ways becoming "Windows apps for the devices at the big end of the IoT pyramid" which is a very exciting thing.
On the upgrade to .NET MF 4.4:
  • Netduino 2/Plus 2 and Netduino Go will be getting the upgrade to .NET MF 4.4.
  • Netduino 3 will be getting the upgrade to .NET MF 4.4. It was designed for the future of NETMF.
  • GoBus 2.0 will be integrated with the new converged UWP APIs as well--for both Netduino 3 and Netduino Go.
On timelines:
  • Netduino 3 Wi-Fi is shipping now, with the new Netduino.IP hybrid networking stack for TI CC3100.
  • There are a few betas planned for NETMF 4.4.  We anticipate rolling out networking bugfixes (including Netduino.IP) for Netduino gen2 and gen3 with beta 1, and then the converged UWP APIs and AllJoyn support in follow-up betas.
  • Netduino 2 and Netduino 3 will be getting some other upgrades in parallel this year.
Netduino continues to be the premier platform for .NET Micro Framework development, and we will continue open sourcing our community's innovations to benefit all NETMF mainboards and derived commercial products.

This is a really exciting year for Netduino, .NET Micro Framework and Microsoft-powered IoT.  Lots more to come!
 
Chris
 
P.S. Colin Miller wrote a great blogpost about the NETMF activities at //build/ as well.  Thanks Colin!


#62334 Introducing Netduino 3 Wi-Fi

Posted by Chris Walker on 01 May 2015 - 02:57 AM

Hi Sukasa,

We have looked at making a Netduino 3 Ethernet PoE--but the added cost would put it out of the range of most makers. This is certainly something we could do for commercial customers in volume.
One good alternative I have seen for many maker applications is a PoE splitter.

What are you favorite things about Netduino 3 Wi-Fi?

Chris


#62329 Introducing Netduino 3 Wi-Fi

Posted by Chris Walker on 30 April 2015 - 11:56 PM

Dear Friends,

The future is wireless.

Over the last four and a half years together, tens of thousands of you have built amazing projects with Netduino. But we have been holding you back, literally, with a network cable.

Today we introduce a new flagship Netduino. Minus the wires. And with built-in SSL.

Introducing Netduino 3 Wi-Fi, the next-generation wireless Netduino.
Netduino 3 Wi-Fi Specs
Where to Buy (resellers)

[And yes, we know that sometimes you want to use a network cable. Netduino 3 Wi-Fi has an Ethernet-based next-generation cousin. We'll talk about that separately.]

Netduino 3 Wi-Fi builds upon the best features of previous Netduinos. And then adds a lot of great new features.
 
Here are a few highlights of what is new and improved with Netduino 3 Wi-Fi:
  • Micro: STM32F427VI Rev 3
    2MB dual-bank flash (twice as much as NP2)
    256KB RAM including 64KB core-coupled RAM (33% more than NP2)
  • Wi-Fi: TI CC3100, 802.11b/g/n (2.4GHz)
    Supports open networks, WEP and WPA2
  • Built-in support for the latest SSL security (including TLS 1.2)
  • Three GoBus 2.0 ports (for plug and play components)
  • Support for even more Arduino shields (with ICSP header pads)
  • New miniature shield-friendly pushbutton
  • Brand new power subsystem and power management
  • Over half of all components are new.  Too much to cover here.
On the software side, Netduino 3 Wi-Fi uses a special Netduino.IP hybrid networking stack (fully integrated into the CLR).  Just write regular NETMF code using System.Net.Socket, HttpWebRequest, SslStream, etc.
 
And of course Netduino 3 Wi-Fi is awesome for projects using Microsoft Azure.  AMQP support?  You're covered.
 
This board is engineered with the future in mind, and also great for today's Internet-connected projects.
 
Netduino 3 Wi-Fi is also firmware upgradable (including built-in firmware upgrade functionality for CC3100) and will gain even more rich functionality over time.
 
I am super excited about this new generation of Netduino hardware.  And even more excited to see the projects you build with the new functionality. 
 
Let's build the future together,
 
Chris

P.S. Even the MicroUSB jack is new.  We obsessed over finding a jack which gave users a satisfying "click".  And then obsessed over a lot of other seemingly-insignificant-but-important things.  This board is over-engineered, as usual; we admit it. :)

Attached Files




#62328 New Netduino.IP hybrid stack for TI CC3100 Wi-Fi chip!

Posted by Chris Walker on 30 April 2015 - 09:31 PM

That's interesting, on the cc3100 boosterpack, one need an extra board to upgrade firmware, but on this board one doesn't need that?

Nope, you're good to go. On Netduino 3 Wi-Fi, we actually wired up both SPI and UART to the CC3100. We have power management, reset support, and more. And of course your MFDeploy network config settings just work.

When we build platforms, we tend to be thorough; we believe in building high-quality, well-engineered gear.

Chris


#62327 New network chip driver: Asix AX88796C

Posted by Chris Walker on 30 April 2015 - 09:29 PM

That would be Netduino...

Official announcement coming shortly. :)

Here's a big hint:
http://www.amazon.co...=A15S1YSPRYIXOQ




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.