Netduino home hardware projects downloads community

Jump to content


Photo

Netduino Firmware v4.2.0 RC3 (all editions)


  • Please log in to reply
112 replies to this topic

#1 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 04:06 AM

Version: 4.2.0 RELEASE CANDIDATE (version 4.2.0.0 RC3)

This firmware requires use of the .NET Micro Framework v4.2 RTM SDK. Users must completely erase and reflash their Netduinos to use this firmware.

WARNING: This firmware is pre-release firmware. It may temporarily cause your Netduino to cease functioning properly. If this firmware does not work for you, you will likely need to erase your Netduino completely and re-flash the production v4.1.0.6 bootloader using Atmel SAM-BA tools and the production v4.1.0.6 firmware using MFDeploy.

NOTE: This beta firmware must be used with the production version of the Microsoft .NET Micro Framework SDK.

If you're an early adopter and would like to help us test and refine these new features, this beta release may be for you.

If you experience any blue screens or crashes with this release, please try out the new .NET MF beta drivers.

NETDUINO MINI NOTE: select the appropriate firmware zip file (RS232 or TTL) based on the deployment port you are currently using (RS232 = pins 1 and 2; 3.3V TTL UART = pins 11 and 12).

This firmware includes the following updates:
1. For Netduino Plus, 38KB+ RAM (10KB+ more than before)
2. Visual Basic support (including Visual Basic Express 2010)
3. StringBuilder support
4. Regular Expressions
5. IP broadcast support
6. Extension method support
7. Dozens of bugfixes

The following features are planned for the v4.2 release:
1. More feature-rich, core ADC and PWM classes
2. Etc.

This firmware also includes the following previous updates:
1. Early support for some 4GB+ MicroSD cards (courtesy of community member KodeDaemon)
2. Early UsbClient support (requires deploy/debug via serial)
3. Pushbutton (SW1) now returns true when pushed, false when not pushed
4. DHCP support now works on more/all routers
5. Network cable may now be plugged in at any time
6. I2C internal address ("repeated start bit") support
7. Bugfixes: SerialPort.DataReceived event should now fire properly
8. Bugfixes: SerialPort.Read() timeout now implemented properly
9. Bugfix: SD card support no longer interferes with digital pin 2
10. Variable-bit SPI (9 to 15 bit) capabilities
11. Enhanced Parallels, VMWare, and VirtualBox compatibility
12. RS232 and TTL UART deployment now selectable via software tool
13. Enhanced deployment reliability (software reset enhancements)
14. SPI bugfixes

Before deploying the attached firmware, you should erase your board completely and flash the v4.2 RC3 bootloader (included in the attached ZIP file).

You may update to this pre-release firmware using the MFDeploy tool:
1. Download and unzip the attached file to a directory on your computer.
2. Go to the Start Menu > Programs > Microsoft .NET Micro Framework 4.2 > Tools
3. Run MFDeploy.exe. Be careful to run MFDeploy.exe and not MFDeploy.exe.config (as file extensions are hidden by default)
4a. For Netduino and Netduino Plus: Plug your Netduino into your PC using a Micro USB cable. If your Netduino does not connect successfully, try plugging the USB cable into your Netduino first...and then your PC.
4b. For Netduino Mini: Plug your Netduino Mini into your PC using an RS232 or TTL UART cable.
5a. For Netduino and Netduino Plus: In the Device section at top, select USB instead of Serial. Your Netduino should appear in the drop-down; if not, select it.
5b. For Netduino Mini: In the Device section at top, select Serial. Select the serial port assigned to your RS232 or TTL UART cable.
6. Click "Browse..." and select the unzipped files from step #1 (ER_CONFIG and ER_FLASH).
7. Press "Deploy". It will take a few minutes to update your Netduino.
8. For Netduino Plus: Select the Target > Configuration > Networking menu. You will need to re-enter your IP address settings and MAC address. We will try to eliminate this step in the future.

Chris

#2 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 04:12 AM

Notes on new SD card support (for Netduino and Netduino Mini)
This firmware includes support for SD cards and System.IO filesystem support.

It includes two functions in the new SecretLabs.NETMF.IO namespace:
StorageDevice.MountSD(...);
StorageDevice.Unmount(...);

Both the MountSD(...) and Unmount(...) features are fully implemented.

You will need to manually add the SecretLabs.NETMF.IO assembly as a reference in your project to use the SD feature. You will also need to add the System.IO assembly.

Notes on new "variable bit SPI" feature:
We've created an "ExtendedSpiConfiguration" class. To use it:
1. Add the attached ExtendedSpiConfiguration.cs class to your project.
2. Instead of creating a SPI.Configuration instance, use ExtendedSpiConfiguration. It is a subclass of SPI.Configuration and can be used in its place.
3. In the ExtendedSpiConfiguration constructor, you can provide the number of bits per transfer (data bits) as the final paramter.

Notes on new "I2C internal address/repeated start bit" feature:
To use the enhanced I2C capabilities, we've posted a set of easy-to-use functions in another thread.

Please note that we will be including the final version of these new classes in a future version of the Netduino SDK--so you will not need to add them manually. Also, we may change the names of classes, methods, etc.

If you use these new features, please post your experiences here...

#3 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 04:47 AM

There are a few known errata with the .NET MF 4.2 RTM SDK (or the Netduino 4.2 RC3 firmware).

I'll make a list here as we find and verify them; if you experience an issue which is not on this list, please post a message about it in this thread.

Known Errata
  • StringBuilder.Replace can cause corruption
  • Int64.Parse and Double.Parse throw NotImplementedException
  • "Caught Exception" in debug window immediately after boot (cosmetic only)

Configuration Issues
  • AppDomains support is set to False
Chris

#4 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 21 October 2011 - 05:25 AM

Wohoo! It's online! :D
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#5 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 05:53 AM

Also...here is the source code (apply as patch on top of .NET MF 4.2 PK). We will be posting the 4.2 source to netduino.codeplex.com as well. Chris

Attached Files



#6 Stalker

Stalker

    Member

  • Members
  • PipPip
  • 16 posts
  • LocationCzech Republic

Posted 21 October 2011 - 06:15 AM

Awesome news! Does this version support OneWire? I couldn't find it in source code. If not is there any ETA on this feature? Thanks

#7 Stavros Tekes

Stavros Tekes

    Member

  • Members
  • PipPip
  • 17 posts
  • LocationThessaloniki, Greece

Posted 21 October 2011 - 07:32 AM

Awesome news indeed. Chris is AppDomains set to true for this one? "CreateInstanceAndUnwrap" is firing again a 'System.NotImplementedException'.. :( UPDATED: Checked and turns out AppDomains is set to false. Were there issues that made you keep it to false for the RC3 version too? Thanks
Stavros

#8 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 08:44 AM

Hi Stavros,

Chris is AppDomains set to true for this one? "CreateInstanceAndUnwrap" is firing again a 'System.NotImplementedException'.. :(

UPDATED: Checked and turns out AppDomains is set to false. Were there issues that made you keep it to false for the RC3 version too?

For the first build based on RTM, we used all "new" defaults as implemented by the .NET Micro Framework team in the core source code. With changes to AppDomains in .NET MF 4.2, the core .NET MF added/changed this setting...which is what we're seeing here.

These are the kind of changes we want to uncover. I will add it to the "known issues" post above.

We can certainly change the AppDomains settings and see what this does to firmware size and memory requirements. Or if necessary, we could always make a special build. And of course since it's open source, you can always compile it that way too.

Chris

#9 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 08:49 AM

Hi Stalker,

Does this version support OneWire? I couldn't find it in source code.
If not is there any ETA on this feature?

There is a OneWire support library for .NET MF 4.2 but it does not appear to be open source. So the current plan is to build a version of the firmware with CW2's OneWire libraries baked in.

We will do this once the bugs are worked out in the 4.2 firmware (i.e. it goes from beta to release). We'll also compile a build with Corey Kosak's latest and greatest.

Chris

#10 Robert L.

Robert L.

    Advanced Member

  • Members
  • PipPipPip
  • 98 posts

Posted 21 October 2011 - 11:38 AM

Hi Stalker,

There is a OneWire support library for .NET MF 4.2 but it does not appear to be open source. So the current plan is to build a version of the firmware with CW2's OneWire libraries baked in.

We will do this once the bugs are worked out in the 4.2 firmware (i.e. it goes from beta to release). We'll also compile a build with Corey Kosak's latest and greatest.

Chris


Have the cryptology methods been re-introduced? .NET MF 4.2 (RTM) apparently has put them back in, does that mean they will be now available on the Netduino Plus in this release?

#11 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 11:40 AM

Hi Robert, The crypto features take up extra room. I don't believe they are in the core, although there may be slower managed code versions of some crypto algorithms available on the Internet. Chris

#12 Alladdin

Alladdin

    New Member

  • Members
  • Pip
  • 5 posts

Posted 21 October 2011 - 01:10 PM

Hi, I have problems with this firmware. I tried to upload it to my Netduino Plus (v 4.1.0.6). Whole upgrade procedure works fine, but on the end tinyclr not responding. When I flash it back to version 4.1.0.6 then everything works ok. I tried new bootloader and another usb cable with no luck. Alladdin

#13 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 01:30 PM

Hi Alladdin, Very interesting. After flashing, did you try unplugging and re-attaching your Netduino Plus? Also...did you erase your Netduino Plus first (using the gold erase pad) and then flash the new TinyBooterDecompressor.bin using SAM-BA? Chris

#14 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 21 October 2011 - 01:32 PM

I have problems with this firmware.

I tried to upload it to my Netduino Plus (v 4.1.0.6). Whole upgrade procedure works fine, but on the end tinyclr not responding.

When I flash it back to version 4.1.0.6 then everything works ok.

I tried new bootloader and another usb cable with no luck.

Hi Alladdin and welcome to the forums!

Did you flashed everything in the correct sequence?
1. Tinybootloader (http://wiki.netduino...ep-by-step.ashx)
2. Firmware (http://wiki.netduino...ep-by-step.ashx)

Between the steps, power down the Netduino.


-edit- Darn, Chris was ahead of me :D

Edited by Stefan, 21 October 2011 - 01:33 PM.

"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#15 Alladdin

Alladdin

    New Member

  • Members
  • Pip
  • 5 posts

Posted 21 October 2011 - 01:57 PM

Hi Alladdin and welcome to the forums!

Did you flashed everything in the correct sequence?
1. Tinybootloader (http://wiki.netduino...ep-by-step.ashx)
2. Firmware (http://wiki.netduino...ep-by-step.ashx)

Between the steps, power down the Netduino.


-edit- Darn, Chris was ahead of me :D


Yes, I tried it multiple times even with erase script in SAM-BA.
Upload of new firmware in MFDeploy ends correctly without errors (ends with signature check), but after restart of netduino, then no response from tinyclr.

#16 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7142 posts
  • LocationNew York, NY

Posted 21 October 2011 - 02:23 PM

Very interesting. A puzzle! :) If you ping the device in MFDeploy (after flashing the bootloader and before uploading TinyCLR) what message do you get? Also, if you hold down the pushbutton on your Netduino Plus after plugging it into your PC...and then press Ping in MFDeploy, what message do you get? Chris

#17 Stavros Tekes

Stavros Tekes

    Member

  • Members
  • PipPip
  • 17 posts
  • LocationThessaloniki, Greece

Posted 21 October 2011 - 02:30 PM

Known Errata

  • StringBuilder.Replace can cause corruption
  • Int64.Parse and Double.Parse throw NotImplementedException
  • "Caught Exception" in debug window immediately after boot (cosmetic only)


System.Math.Pow seems not to be implemented too
Stavros

#18 Stavros Tekes

Stavros Tekes

    Member

  • Members
  • PipPip
  • 17 posts
  • LocationThessaloniki, Greece

Posted 21 October 2011 - 03:02 PM

System.Math.Pow seems not to be implemented too


I am also getting strange some results on performing math equations with double. For example:
doubleVar = (double)((3000.0 * someInt) / 16777216.0);

In the above case when the int is 824280, the result should be 1473.9282131195068
However the result in doubleVar is -62.07177734375.

I stopped in debug and I can get the correct result in the immediate

Am I missing something?
Stavros

#19 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 21 October 2011 - 03:21 PM

I am also getting strange some results on performing math equations with double. For example:

doubleVar = (double)((3000.0 * someInt) / 16777216.0);

In the above case when the int is 824280, the result should be 1473.9282131195068
However the result in doubleVar is -62.07177734375.

I stopped in debug and I can get the correct result in the immediate

Am I missing something?

This looks a bit like this issue:
http://netduino.code....com/workitem/2
Or am I wrong? :)
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#20 Stavros Tekes

Stavros Tekes

    Member

  • Members
  • PipPip
  • 17 posts
  • LocationThessaloniki, Greece

Posted 21 October 2011 - 03:24 PM

This looks a bit like this issue:
http://netduino.code....com/workitem/2
Or am I wrong? :)


Could be yeah.

Didnt know people started uploading issues there. If it proves to be different than the one you posted, I will post it there too. Thanks Stefan
Stavros




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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