CW2's Content - Netduino Forums
   
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.

CW2's Content

There have been 148 items by CW2 (Search limited from 28-April 23)


By content type

See this member's


Sort by                Order  

#59469 Windows on Devices? When?

Posted by CW2 on 30 July 2014 - 03:49 PM in General Discussion

Good news is coming.....

 

  1. ... "soon"
  2. ... "likely in the next few weeks"
  3. ... "in the coming weeks and months"
  4. ... "in the future"

:P




#59798 Windows on Devices? When?

Posted by CW2 on 20 August 2014 - 03:50 PM in General Discussion

Running a simple .NET console app on the Intel Galileo with Windows by Pete Brown




#58907 Windows on Devices? When?

Posted by CW2 on 26 June 2014 - 11:31 AM in General Discussion

In the dotnetConf 2014 session New Innovations in .NET Runtime Andrew Pardoe said:
 

38:45 "It is a full x86 computer... and it boots Windows..."
...
"The IoT team is working closely with .NET team..." ... "The IoT team of course has .NET Micro Framework..." "We also work closely with IoT team to make sure that the .NET Framework will work on devices like the Intel Galileo..."




#59997 Windows on Devices? When?

Posted by CW2 on 05 September 2014 - 06:09 AM in General Discussion

Well arduino still doesn't have RTOS, Threading or whatever...

 

Not from my own experience, as I don't use RTOS on any Arduino, but quick check reveals that ChibiOS, BeRTOS, FreeRTOS support AVR (and there is about 40 more in the Wikipedia list that mentions AVR).




#56736 Netduino Plus 2 Firmware v4.3.1

Posted by CW2 on 10 March 2014 - 11:17 AM in Netduino Plus 2 (and Netduino Plus 1)

Finally, I succeeded compilation. TinyBooter is working. But TinyCLR doesn't. It wasn't detected on MF deploy.
 
What should I do?

 

I guess you have not set the proper cpu architecture - I think without it the compiler generates some ARM code, which is not supported on Cortex-M cores and TinyCLR is stuck in an fault handler. You'd need to add <DEVICE_TYPE>cortex-m3</DEVICE_TYPE> to Netduino2.settings; and also Microsoft.Spot.system.MDK.Targets might need some additional changes.




#59249 Beta: Visual Studio 2013 support

Posted by CW2 on 16 July 2014 - 12:35 PM in Visual Studio

I think the most recent is comment by Sal Ramirez on the official .NET Micro Framework blog (posted on 7/11/2014):
 

Yes, we are working on Visual Studio 2013 support and we should have preview bits to release to the community soon, likely in the next few weeks.




#57039 Adafruit Ultimate GPS with N+2. Any experiences?

Posted by CW2 on 23 March 2014 - 10:20 PM in Netduino Plus 2 (and Netduino Plus 1)

I taped the GPS breakout right into my roof-light powered by 3 AA batteries and not connected to the Netduino board. It got a sat fix after about 2-3 mins (rainy weather outside).

 
Was Netduino running during that time?
 

Next I used a 9V battery to power the Netduino and connected the GPS breakout to the Netduino´s 5V and GND to power it.


How far is Netduino from the GPS module?

Have you tried adding some shielding to Netduino? If not, try placing a grounded metal sheet between Netduino and the GPS module, or carefully wrap Netduino in aluminium foil and connect it to ground - but make sure it does not short out the pins on the bottom, better to place some paper or tape there.



#57050 Adafruit Ultimate GPS with N+2. Any experiences?

Posted by CW2 on 24 March 2014 - 07:47 AM in Netduino Plus 2 (and Netduino Plus 1)

I´m pretty sure that the (my?) Netduino brings some kind of noice to it´s 3,3V and 5V outputs used to power the GPS. And this is obviously not noice from the mains voltage since the battery powered Netduino/GPS combination also behaves very strange.

 
Thanks for all the information. IMHO the other options has been ruled out and power noise is what remains. There is a switching regulator (ST1S12GR, datasheet) on board and also the microcontroller itself is source of high frequency noise, so it seems some connection is picking that up. The GPS module datasheet states "The VCC ripple must be controlled under 50 mVPP", which should be within the ST1S12GR specification (*). 
 
(*) Reference load regulation typ. 0.0025 %VO/mA, for VO = 3.3V and IO = 170 mA it is 0.0025*170 % of 3.3V = 14 mV.
 

An oscilloscope would be helpful. I´m trying to get one...


EEVblog #594 – How To Measure Power Supply Ripple & Noise  ;)




#56883 I2C Bus Problem - Debugging

Posted by CW2 on 17 March 2014 - 10:13 PM in General Discussion

That file lives in two places:

C:\MicroFrameworkPK_v4_3\DeviceCode\Targets\Native\Netduino_STM32\DeviceCode\STM32_I2C\STM32_i2c_functions.cpp

and

C:\MicroFrameworkPK_v4_3\DeviceCode\Targets\Native\STM32\DeviceCode\STM32_I2C\STM32_i2c_functions.cpp

 

(I modified both)

 

For Netduino 2 you need to modify only files in Targets\Native\Netduino_STM32. The STM32 folder contains the original Oberon's implementation, which is not used - Netduino_STM32 is basically STM32 + Secret Labs' modifications.

 

In fact, you could delete all subdirectories in Targets\Native and Solutions that do not have Netduino,Template or Windows in their name - I usually do that to reduce code search result noise...




#58446 Netduino Fritzing part

Posted by CW2 on 28 May 2014 - 06:37 AM in General Discussion

Would it be possible to add the mini-jtag for the Netduino (Plus) 2?

 
I have Netduino Go! socket (through-hole and SMD version) in my Fritzing repository, which has the same pin pitch. It should not be hard to modify the svg file to fit your needs ;)




#58437 Creating a custom board with Netduino firmware?

Posted by CW2 on 27 May 2014 - 05:54 PM in Netduino 2 (and Netduino 1)

For example, pin "PA2" is called "PA2/UART2_TX". Is that the pin-configuration that just the Netduino firmware uses, so that when I create the Fritzing part I should name the pins with the shortname?

 

That pin configuration is microcontroller-specific. It means the GPIO pin is shared (multiplexed) with another peripheral - it can be configured as third pin of GPIO port A, or TX line of UART2. There is a big table in the datasheet  :P that describes pin functions - most pins have more than one features (I think theoretically up to 15 in ST micros) and sometimes the same signal can be enabled on different pins (e.g. UART2 TX is available also on PD5).

 

Regarding the names in schematic symbols, it depends - you'd probably need to include at least the GPIO identifier and maybe the alternate function when it is important in your design - like in the above example, "PA2/UART2_TX" indicates the use of TX serial line. Listing all the available features on each pin would require quite large symbol, but I have seen such schematics too (usually, the part is split into several symbols that contain logically grouped features). I think in Fritzing, you can have additional information in the pin description, which is displayed in form of tooltip...




#59622 Creating a custom board with Netduino firmware?

Posted by CW2 on 08 August 2014 - 08:44 PM in Netduino 2 (and Netduino 1)

Impressive. Hats off to doing it all in Fritzing.




#58428 Creating a custom board with Netduino firmware?

Posted by CW2 on 27 May 2014 - 02:08 PM in Netduino 2 (and Netduino 1)

Have a look at the description in the datasheet, it explains it in great detail.

  • When BOOT0 is logic 0, the code executes from flash - this is what you want for 'normal' operation,  i.e. .NET MF running; the pull-down resistor R12D ensures the logic 0 level,
  • When BOOT0 is logic 1 (switch pressed) then BOOT1 determines if the code executes from system memory (logic 0, ROM Bootloader), or embedded SRAM (logic 1). You usually want the ROM bootloader to be executed, hence the second pull-down resistor R11D. BOOT0 is a dedicated pin, while BOOT1 is shared with GPIO (PB2) - it is sampled a few cycles after reset, then it can be used as regular GPIO.

The use of the rest of bootloader pull-up/down resistors is described in the Application Note 2606: basically, when a peripheral (USART, CAN, USB) is used to connect to the bootloader, its "pins have to be kept at a high or low level and must not be left floating during the detection phase".




#57323 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 03 April 2014 - 10:20 AM in Beta Firmware and Drivers

Don't get me wrong but can maybe also explain the advantages, why I should use that? What's the benefits or what problem is solved? Just have no clue and ask myself if I should take a look at it ;-)

 

Well, you don't have to use that (if you mean the firmware source). Adding GCC support allows you to use free GCC-based toolchains to compile the firmware - otherwise, you have to pay several thousand dollars for commercial ARM toolchains (such as Keil MDK).




#56879 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 17 March 2014 - 04:58 PM in Beta Firmware and Drivers

Those are libraries and stubs for tools and Windows2 solution, which do not need to be rebuilt when you make changes to a particular solution (your firmware).

 

There are a few 'clean' targets, you can display them for example by launching

msbuild Solutions\Netduino2\dotnetmf.proj /t:Help 

For a 'complete clean' build, delete the build output directory

rmdir /s /q BuildOutput



#56876 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 17 March 2014 - 03:57 PM in Beta Firmware and Drivers

Does this affect the Netduino build? Do I need to install .Net2.0 framework?

 

No, you can safely ignore this warning. IIRC it is caused by incorrect ToolsVersion attribute value in a few project files, which causes MSBuild 3.5 to be run, instead of 4.0. I have already fixed such issues, but in separate 'cleanup' branch, which will be integrated into a future release...




#56874 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 17 March 2014 - 03:46 PM in Beta Firmware and Drivers

So it appears there are some more Prerequisites that should be in the top list. I've got Visual Studio 2013 Ultimate installed, and it contains Visual C++.


According to .NET Micro Framework Porting Kit 4.3 ReleaseNotes.txt "Either Visual Studio 2012 (Express edition or greater) or both .NET Framework 3.5 and Windows SDK for Windows" is required.
 
In order to get Visual Studio 2013 working, you'd have to modify setenv_base.cmd - add %VS120COMNTOOLS% to the block of conditions, or simply change the existing %VS110COMNTOOLS% to 12. However, I am not sure this would be enough, due to the MSBuild 2013 changes and several project files having incorrect and/or missing ToolsVersion attribute.




#56866 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 17 March 2014 - 12:39 PM in Beta Firmware and Drivers

Prerequisites

 

How to build the firmware with GCC

  • Install GCC, preferably to short path with no spaces, e.g. C:\GCC
  • Install .NET Micro Framework Porting Kit 4.3 QFE1 (C:\MicroFrameworkPK_v4_3)
  • Copy C:\MicroFrameworkPK_v4_3 to C:\Netduino2
  • Extract Netduino 2 Firmware v4.3.1 source to C:\Netduino2, overwrite all
  • Extract Netduino 2 Firmware v4.3.1 source for GCC to C:\Netduino2, overwrite all
  • Launch cmd.exe
    cd \Netduino2
    setenv_gcc 4.8.3 C:\GCC
    msbuild Solutions\Netduino2\dotnetmf.proj /p:Flavor=Release /v:m
    
  • The build should succeed, with a few warnings
  • Extract NetduinoUpdate_4.3.1.0.zip (C:\NetduinoUpdate_4.3.1.0)
  • Copy the firmware image C:\Netduino2\BuildOutput\THUMB2\GCC4.8\le\FLASH\release\Netduino2\bin\tinyclr.hex\ER_FLASH to C:\NetduinoUpdate_4.3.1.0\Firmware\Netduino2_4_3_1_0\ER_FLASH.s19 (rename - add extension)
  • Open ER_FLASH.s19 in you favorite text editor and delete the first line (starts with S0), save.
  • Launch NetduinoUpdate.exe, plug in your Netduino 2 and update the firmware.

 

Important notes

  • GCC support added and verified only for Netduino 2 (mainly due to resource/time constraints),
  • Other GCC toolchains might work or need only minor changes, but make sure they have support for long-long and long-double (IIRC Yagarto does not have it by default) - otherwise formatted string output for C# long and double does not work,
  • Included are a few bug fixes and modifications from my NETMF Fork project (which will be released probably later this year):
    • Fixed MMP : error MMP0000: 0x80131700 (#221, #2202),
    • Fixed GCC compiler errors in BitConverter.cpp (#2216),
    • Added ABORTS_REDUCESIZE symbol to exclude interactive debugging code (#1908),
    • Added support for recent Keil MDK-ARM toolchain (#1795)

 

Attached Files

 

Edit 2014-03-18 19:30 UTC: Added Visual Studio to prerequisite list




#56884 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 17 March 2014 - 10:42 PM in Beta Firmware and Drivers

Well, assuming that you don't have JTAG/SWD in-circuit debugger, the options are... ...challenging  ;)

  • At first, modify the value of <OEMSystemInfoString/> in Solutions\Netduino2\Netduino2.settings - you can then verify (e.g. in MFDeploy) that the device is running your updated firmware,
  • For diagnostic output that appears in the debugger (Visual Studio or MFDeploy) use CLR_Debug::Printf(...) (#include <TinyCLR_Debugging.h> or #include <TinyCLR_Runtime.h>).
  • For low-level diagnostic output you could use hal_printf or debug_printf; it is usually better to reconfigure STDIO and DEBUG_TEXT_PORT to serial port (e.g. COM1) instead of USB (default).
  • The above functions significantly affect code timing and might not be available/should not be called in a particular context (such as interrupt handler) - there you are left with pin toggling (LED blinking, logic analyzer).



#57195 Netduino 2 Firmware v4.3.1 with GCC support

Posted by CW2 on 28 March 2014 - 11:06 PM in Beta Firmware and Drivers

One clarification please. When you say Netduino 2 only - do you mean that no support for ND Plus 2?

 

Yes, the GCC-related modifications have been made for Netduino 2 firmware only. But the most-important ones were made in the core .NET Micro Framework source code and are shared by Netduino Plus 2 firmware too - basically, adding a proper scatterfile and fixing possible GCC compiler errors in the additional libraries the Plus 2 firmware uses (network etc.) should be all that is needed to make GCC built firmware for the Plus 2.

 

Any thoughts on how to keep this work up to date as new versions of the MF and SL firmware are released over time?

 

Well, the modifications are available under Apache 2.0 license, so both Microsoft .NET Framework and Secret Labs teams can easily integrate them into their respective code  ;)  And there are always alternative ways  :P




#59621 High Resolution Quad Encoder Problem

Posted by CW2 on 08 August 2014 - 08:40 PM in General Discussion

I know nothing about that. So, cant use or comment on something I do not know about. Apparently it is a secret?

 

If you are referring to quadrature encoder inputs then no, it is not a secret. It is described in the STM32 datasheet, in fact many [modern] microcontrollers have such interface. For STM32F4 there is firmware with QuadratureEncoder class by NicolasG (for FEZ Cerberus, but it should not require too much work to port it over to Netduino gen 2).




#59616 High Resolution Quad Encoder Problem

Posted by CW2 on 08 August 2014 - 07:19 PM in General Discussion

... the Netduinos cant really depend on accurate timing.

 

They cant, but some of them (gen 2) have [hardware] timers with quadrature encoder inputs  :P




#57316 .NET MF 4.3 QFE1 RTM

Posted by CW2 on 03 April 2014 - 06:46 AM in General Discussion

The SDK and Porting Kit Documentation link was fixed today  ;)




#59386 Control 80V DC Motor/Bulb Using Netduino 2

Posted by CW2 on 25 July 2014 - 11:50 AM in General Discussion

You cannot switch voltage polarities, you'd need to use different kind of transistor (N-channel vs. P-channel MOSFET).

 

Technically, you can change values, as long as the difference is the same. Voltage is electrical potential difference between two points, so 0 .. 60V is the same as -60 .. 0V which is the same as 37.2 .. 97.2V (because 60 - 0 = 0 - (-60) = 97.2 - 37.2 = 60V); but switching wires 60 .. 0V is different (0 - 60 = -60V, negative). You can destroy electrical parts with wrong voltage.

 

If you don't connect Netduino ground and your power supply ground, the circuit most likely will not work (unless there is a common ground connection, for example when you power the Netduino from the same power supply as the motor/bulb).

 

By moving the resistor, you've completely changed the circuit behavior - previously, the resistor (between gate and ground, "pull-down") ensures safe 'off' state, it means the switch is guaranteed to be off until you set Netduino pin to high. Now, the resistor in series (between Netduino pin and gate) just limits the current - it does not do any harm, but it is also useless, because MOSFET is driven by voltage, not by current (you'd need this resistor for BJT transistor, to limit base current). Additionally, you've lost that 'safe-off' feature, and you could get unexpected behavior, because Netduino pin is in 'floating' (high-impedance) state during startup, until you create the OutputPort instance, thus switching it to digital output mode.

 

If you really want to understand how the electronic works, have a look at sites like All About Circuits or Electronics Tutorials, they can explain it much better than me :)




#59382 Control 80V DC Motor/Bulb Using Netduino 2

Posted by CW2 on 25 July 2014 - 08:22 AM in General Discussion

The voltage naming notation is a little bit confusing in the article - just use "GND" (0V) for the black wire and and "+V" (12V .. 80V) for the red one. The transistor in the circuit act as a switch that terminates or connects the load to GND (ignore the voltage numbers in the picture):

 

tr8.gif

 

 





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.