Today we are excited to announce the final pre-release for our NETMF SDK. We made improvements to the G400 firmware including improving networking speed and serial handshaking reliability. We also included the 4.1 installer, however neither the 4.1 or the 4.2 SDKs will be installed by default anymore. Minor improvements were made to Gadgeteer and PPP. Also included in today’s release is a fix to EMX, where the EMX may lockup when exposed to extreme heat.
We highly recommend that you try this SDK release as this may be the last pre-release depending on any major issues that may be found. Any feedback is very much appreciated as we are getting close to the final 2015 NETMF release and we want to make sure it is as stable and bug free as possible.
So, you want bugs? Here is one. [em]ReservePin[/em] method is not working for Cobra II. It could be that it is not working for other boards as well, I have not tested them all.
Sub Main()
Thread.Sleep(4000)
Dim pinTest = GHI.Pins.FEZCobraII.Socket4.Pin7
'Dim pinTest = GHI.Pins.FEZRaptor.Socket1.Pin6
Port.ReservePin(pinTest, True)
Dim pinOut As New OutputPort(pinTest, False) ' Cobra II: no exception; Raptor: exception
Debug.Print(pinOut.Read.ToString())
End Sub
This is a major update internally and will be resolved on the next major release. This only effects floating point math but otherwise performance is where it should be, right?
@ Gus - Do you know the cause of this problem?
If it is something known and specific to this IO, then adding workaround code to release and reopen the IO on coming out of hibernate would be a simple matter until a fix is in.
On the other hand if the cause is unknown then it may be a buffer overflow, memory allocation error, etc which could cause problems with other IO lines or manifest itself in other ways depending on the build, run-time events, available memory, etc.
And the next major release will be available after 1 year? If so, I am not sure if it is good or bad news.
The Pi test has also produced some strange results when Panda III and G80 Dev boards were compared. Yes, I know that they both use the same SoC, but somehow time difference was about 30%.
The problem isn’t with a workaround for this specific instance, which is pretty simple, just release and recreate the port after return from hibernate to get it going again.
The real issue is that such a regression against what was working in 4.2 may be indicative of a host of possible problems that may come up on other IO, at other times, or in other circumstances. Unless the root cause can be pinned down to something very specific which only effects this IO at this time then the whole build must be suspect.
@ iamin - I was able to reproduce your ReservePin behavior going back to at least the latest 4.2 firmware. Since it’s been around for a while, it’ll be fixed for the 2016 SDK.
I was also able to reproduce the 60 second delay on the G30, G80, and Cerberus on 4.3 and 4.2 (for the Cerberus). Since you can manually stop debugging and it isn’t a new issue, this will be fixed for the 2016 SDK as well.
At this point in the SDK release, we will only fix critical issues like SPI not working at all on a board.