uM-FPU v3.1 Floating Point Math Coprocessor DIP18




$19.95 ea.

The uM-FPU V3.1 math coprocessor is a full featured standalone math engine that is capable of crunching even the toughest of mathematical equations.

Description [Hide]

The uM-FPU chip can be interfaced to virtually any microcontroller via a SPI interface (3-Wire) or I2C (2-Wire) interface, making it ideal for applications requiring floating point math, including sensor readings, robotic control, GPS, data transformations and other embedded control applications. The uM-FPU V3.1 chip supports 32-bit IEEE 754 compatible floating point and 32-bit integer operations.

Update: The uM-FPU now features Arduino / Freeduino compatible libraries. Make your Freeduino a match genius!

uM-FPU V3.1 Key Features

  • New for V3.1:
    • Busy/Ready Status on OUT1 pin
    • SEROUT / SERIN instructions for serial data transfer & GPS (NMEA) inputs
    • WRBLK for transferring 32 bit values from microcontroller to uM-FPU
    • RDBLK for transferring 32 bit values from uM-FPU to microcontroller
    • MOP instructions (for matrix operations)
    • STRBYTE for storing the lower 8 bits of register 0 to string buffer
    • STRINC for incrementing the string selection point
    • STRDEC for decrementing the string selection point
    • RET,cc for conditional return from user-defined functions
    • READVAR offers two new values for retrieval
    • Auto-Start Function Call for setting chip behavior on reset
  • 10 to 20 times faster than uM-FPU V2 for all floating point operations
  • Up to 70 times faster for advanced instructions
  • 256 byte instruction buffer
  • 128 general purpose 32-bit registers for storing floating point or long integer values
  • 8 temporary 32-bit registers to support parentheses in calculations
  • 2048 bytes Flash memory for user-defined functions
  • 1024 bytes EEPROM for data storage or user-defined functions
  • Supports 2.7V, 3.3V and 5V supply voltage
  • I2C compatible interface up to 400 kHz
  • SPI compatible interface up to 15 MHz
  • Expanded instruction set, matrix operations, A/D conversion, string handling

Supported Functions:

Floating Point Operations

  • Set, Add, Subtract, Multiply, Divide, Power
  • Sqrt, Log, Log10, Exp, Exp10, Root
  • Sin, Cos, Tan, Asin, Acos, Atan, Atan2
  • Floor, Ceil, Round, Min, Max, Fraction, Mod
  • Negate, Abs, Inverse
  • Multiply and Accumulate, Multiply and Subtract from Accumulator
  • Unit Conversions
  • Read, Write, Compare, Status

    Long Integer Operations

  • Set, Add, Subtract, Multiply, Divide, Unsigned Divide
  • Negate, Abs, Increment, Decrement
  • And, Or, Xor, Not, Shift, Test, Min, Max
  • Read 8-bit, 16-bit, and 32-bit
  • Read, Write, Compare, Unsigned Compare, Status

    Matrix Operations

  • Scalar Add, Subtract, Multiply, Divide, Power
  • Element-wise add, Subtract, Multiply, Divide, Power
  • Matrix multiply
  • Count, Sum, Average, Minimum, Maximum
  • Matrix copy

    Fast Fourier Transform Operation

  • uses matrix to store FFT data points
  • single instruction if all FFT data points fit in matrix
  • used iteratively in stages for larger FFT data sets
  • inverse transform also supported

    Conversion Functions

  • Convert 8-bit and 16-bit integers to floating point
  • Convert 8-bit and 16-bit integers to long integer
  • Convert long integer to floating point
  • Convert floating point to long integer
  • Convert floating point to formatted ASCII
  • Convert long integer to formatted ASCII
  • Convert ASCII to floating point
  • Convert ASCII to long integer
  • Serin, Serout for serial data communications

    User Defined Functions

  • Can be stored in Flash or EEPROM memory
  • Conditional execution
  • Table lookup
  • Reverse table lookup (float and long integer)
  • Nth order polynomials
  • Ret - for conditional returns

    Analog to Digital Conversion

  • Two 12-bit A/D channels
  • External input, timer or manual triggers
  • Optional scaling and conversion to floating point
  • Up to 10,000 samples per second

    String Handling

  • Select, insert, append
  • Search for characters
  • Search for fields (e.g. parsing a GPS NMEA sentence)
  • Convert selection to floating point or long integer


  • Checksum to calculate checksum for uM-FPU code
  • Left & Right for saving/moving registers
  • Readvar

Documentation [Hide]

Related Products [Hide]


Ultra Bright LED

These water-clear standard sized (T1-3/4) LEDs are considerably brighter than most other LEDs in their class. Available in red, green, yellow, blue and white.

$0.90 USD


uM-FPU64 Breakout Board

The uM-FPU64 28-pin breakout board provides for convenient mounting and access to all uM-FPU64 pins.

$2.99 USD


Super Bright 5mm LED

Is an ultra LED not bright enough? Kick things up a notch with these SUPER BRIGHT LEDs!

$1.10 USD



Hey look, an Atmel chip! Amazing! Well, it is a nice improvement on the popular ATtiny45 in that it now offers 8kB of programmable Flash.

$2.85 USD


0.001µF Monolithic Capacitor

Low value 0.001µF capacitors are useful with high-frequency applications.

$0.25 USD


DPDT 5V Relay

This DPDT 5V relay is used for a good many robot projects, usually for motor power routing.

$3.50 USD



This unit is a higher-capacity version of the ATmega168 - more than TWICE the flash memory for sketches (30K available instead of 14K), TWICE the RAM (2K instead of 1K), TWICE the EEPROM (1K instead of 512b)

$3.50 USD


0.1µF Monolithic Capacitor

0.1µF monolithic ceramic capacitor with many general purpose electronic applications.

$0.25 USD


3.3V Regulator TO-220 Pkg

Look, it's another voltage regulator! Look at it go! Vroom, vroom! (They go vroom, right?)

$2.05 USD


16MHz Through-Hole Crystal for Arduino

16.000MHz. That's pretty darn precise. And exactly the value needed to run an ATmega8/168/328 microcontroller at Arduino-compatible frequency!

$2.50 USD





Remember Me

Forgot Your Password?

Don't Have an Account?
Sign Up!