# The NUCLEO F411RE Works with float point?

I need a MCU to works with Wifi and Floating point for PID application. In the later I acquire a Wifi expansion board, but I wants know if the STM32 NUCLEO FR11RE works with a Floating Point. I don't find this information in web. http://www.st.com/en/evaluation-tools/nucleo-f411re.html

• Yes it does, it does doulbles and floats depending on your complier – Voltage Spike Aug 11 '17 at 4:12
• I don't know what the PID applies to, but in most cases you are receiving data from an ADC and sending data to a DAC. Neither of these use floating point. In between, there is no need for floating point. If you organize your algorithms well, you can avoid its use entirely. And should. Fixed point often isn't correct, either. Instead, you examine your requirements and arrange the operations appropriately to maintain monotonic behavior and retain needed precision throughout. FP is useful when the dynamic range is insane (like galaxies and stars and atoms) or unknown. Or your skills are lacking. – jonk Aug 11 '17 at 5:35
• Rather than add wifi to an MCU, consider if you can run your whole algorithm in something like an ESP8266. But if you really want a Cortex M4 + WiFi, many of the WICED platforms are that. – Chris Stratton Aug 11 '17 at 13:28

In the NUCLEO-F411RE datasheet table 2 states that this particular model has STM32F411RET6. Datasheet of STM32F411RET6 clearly says:

The STM32F411XC/XE devices are based on the high-performance ARM® Cortex® -M4 32- bit RISC core operating at a frequency of up to 100 MHz. The Cortex®-M4 core features a Floating point unit (FPU) single precision which supports all ARM single-precision dataprocessing instructions and data types.

It is a common Cortex-M4F. It supports only single precision floats (ie. float in C, not double). Some tips.

I looked through the awful PDF's to see if there was some floating point arithmetic instructions, but then I realized that it doesn't really matter.

Because... is speed that important to you? There are libraries that implement the floating point data type and handles the floating point arithmetic through software. It's being done on every Arduino board. On microcontrollers that doesn't even have floating point arithmetic hardware.

But... if speed is important to you, then you wouldn't use floating points, you would use fixed point arithmetic.

This is what you would call an XY-problem.

• Ridiculous answer. Bunch of your opinions. Not the answer, just the comment. What have you realised is an absolute rubbish. What is the point to take the part in the discussion on the topic you have no knowledge? FYI it was enough to open STM website. No pdf needed, no instruction searching nessesary. All F3 & F3 have the float FPU + vector DSP. All F7 have the double precision FPU – P__J__ Aug 13 '17 at 0:12
• @PeterJ - beware of attacking answers that may well provide more practical advice than your own. – Chris Stratton Aug 13 '17 at 2:17
• @Chris Stratton This is not the answer this is the comment. About something else. Comparing fast FPU on fast 32bit uC with slow software implementation on the prehistoric 8 bit micro controller. – P__J__ Aug 13 '17 at 9:06
• @PeterJ - no, you have no basis to know that the speed matters to that degree. This answer proposes two solutions, both of which may well be more suitable to the actual need. For example, I've seen quadcopters fly with Cortex M0 running multiple soft float PIDs controlling tiny airframes that respond effectively instantly. If I were writing it I'd probably use the integer option, but soft float worked fine. – Chris Stratton Aug 13 '17 at 14:07
• @Chris Stratton and........ I saw in the computer museum the Apollo mission computer and it has computing power probably lower than 8051. Nowadays we have a huge choice of the uC and can choose the correct one. Stm32f303 with FPU cost less than \$3 now. There is no point to limit ourselves. – P__J__ Aug 13 '17 at 14:14

All STM32F3, F4 & F7 micros have FPU. F3 & F4 single precision, F7 double precision. So you can choose which one you need. It is a bit tricky to configure compiler & linker to force use FPU instructions instead of math functions. Always check what has been generated by the compiler :)

• While factually correct, it's not presently clear if this capability will be of any actual use to the poster. – Chris Stratton Aug 13 '17 at 2:17
• @Chris Stratton - OP asked about about floating point, he knows the best what he needs. So I struggle to understand your comment – P__J__ Aug 13 '17 at 9:04
• No, Peter, posters who write questions worded this way generally don't know what they need - the question is from an inexperienced person who got an idea in their head - it's almost a given that someone who actually knew what they need wouldn't have had to ask this question at all. It's not established either that floating point is the only solution, or that hard float is necessary. One could even argue that it's not clear that a single precision float would be enough, though likely it would be. – Chris Stratton Aug 13 '17 at 14:03
• (speed)On the architecture chosen by the OP it actually does not matter if he uses integer or float arithmetics. The speed will be the same. I am not going to judge the OPs knowledge, if he wants FP that is his choice. – P__J__ Aug 13 '17 at 14:08