Netduino Firmware v4.2.0 RC3 (all editions)
#1
Posted 21 October 2011 - 04:06 AM
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
- Doctor Bit and renasis like this
#2
Posted 21 October 2011 - 04:12 AM
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
Posted 21 October 2011 - 04:47 AM
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
#4
Posted 21 October 2011 - 05:25 AM
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#5
Posted 21 October 2011 - 05:53 AM
Attached Files
#6
Posted 21 October 2011 - 06:15 AM
#7
Posted 21 October 2011 - 07:32 AM
#8
Posted 21 October 2011 - 08:44 AM
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.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?
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
Posted 21 October 2011 - 08:49 AM
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.Does this version support OneWire? I couldn't find it in source code.
If not is there any ETA on this feature?
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
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
Posted 21 October 2011 - 11:40 AM
#12
Posted 21 October 2011 - 01:10 PM
#13
Posted 21 October 2011 - 01:30 PM
#14
Posted 21 October 2011 - 01:32 PM
Hi Alladdin and welcome to the forums!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.
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
Edited by Stefan, 21 October 2011 - 01:33 PM.
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#15
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
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
Posted 21 October 2011 - 02:23 PM
#17
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
#18
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?
#19
Posted 21 October 2011 - 03:21 PM
This looks a bit like this issue: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?
http://netduino.code....com/workitem/2
Or am I wrong?
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs
#20
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
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users