• 990.011 MuIN dsNAV - Datasheet [EN]


    MuIn dsNav is a versatile board based on Microchip dsPIC33FJ motor controller family. Those DSCs, thanks their's unique features, are capable to drive two motors in a closed loop control through aid of two high resolution encoders and current sensing.

    990.011 MuIN dsNAV can be used as a development board for new projects or as a full working navigation board with odometry, dead reckoning and field mapping, using the software available both as source code or HEX file.

    Muin dsNav is based on the open source project by Guido Ottaviani as an evolution of original award winning, dsPIC30F based, board: http://www.circuitcellar.com/microchip2007/winners/DE/MT2155.html
    More details about the theory on which dsNAV is based and an example on how to use this board as the hearth of an autonomous robotic platform, can be found at URL: http://www.guiott.com/Rino/index.html and in articles published on Circuit Cellar Magazine #224 (March 2009), #225 (April 2009) and #236 (March 2010).
    The board is equipped with one of the most powerful Microchip Digital Signal Controller, a plenty of operating RAM and flash programming space: dsPIC33FJ128MC802 (but can be replaced in the future with other compatible DSP).

    Its DSP features, together with 40 MIPS speed, allows you to concentrate in a single chip all the software a robot needs to navigate autonomously in an unknown environment. Using a single chip simplifies a lot the development of an autonomous mobile platform system, because all the low level procedures can talk each other directly without the need of fast, synchronous communication lines and protocols.

    The enhanced PWM interfaces and a double QEI (Quadrature Encoder Interface) are perfect for a differential steering mobile platform.

    Example of differential steering mobile platform:


    The available, open source, software controls both motors with a fast PID to closely maintain desired speed. A sophisticated dead reckoning performed via odometry, controls the system in different ways to drive at a fixed speed, in a fixed direction or toward a specific coordinates. Thanks to the large amount of memory, a big portion of the field can be mapped performing an efficient SLAM (Simultaneous Location And Mapping).

    Each set of operations can be driven via an internal scheduler or remotely through the use of a GUI (available as open source as well) and optional Xbee modules. The same GUI can be used to remotely monitor every parameters on the robot: speed, actual position on a XY reference system and motor current (if provided by the power driver). All the parameters of the platform (wheels diameter, encoder resolution, PID K parameters, etc.) can be set remotely through the GUI.

    In optimal condition dsNav board, allows an accuracy better than 1% on positioning, optimizable to 0.1% after an accurate calibration. All the calibration procedures are available as a part of the whole project.

    For an optimal speed control is adviced the use of high resolution encoders mounted directly on motor shaft such as quadrature optical encoders with a 300CPR revolution (Easy Roller 300CPR adviced - software by default will use this encoder). Motor control must be performed with H-Bridges in LAP mode (cannot be used S/M mode).

    Technical specifications

    • DSC: dsPic33FJ128MC802, 16 bit Digital Signal Controller with DSP core
    • Power supply: 6-12V
    • Current consuption: about 250 mA (typical, encoders included)
    • Encoders power supply:3.3V or 5V (selectable)
    • Encoders input:TTL and CMOS 3.3V compatible
    • Current sensing amplification: 10x or 1x (selectable)


    Main features:

    • TTL and CMOS compatible inputs
    • Encoder inputs compatible with open drain type
    • Amplified current sensing input
    • Double TTL serial interface, one of them RS485 compatible
    • XBee ready
    • 2 LEDs to monitor Xbee operations
    • 2 LEDs available for system operation monitoring
    • On board voltage regulators
    • ICSP connector
    • Open Source Code for firmware
    • Open Source Code for Graphical Interface available on Mac OSX, Linux and Windows operating systems

    The board comes with a preloaded bootloader. Available firmware and the free GUI are just for demonstration purposes, we don't give any warranty. Firmware is open source, you are free to modify it and use it for studying, learning and testing the capabilities of the dsNav Board. We will be very happy if anyone will share their software with other Users on our Forum. For any question or help with the firmware and the GUI, ask to our Forum, we do not provide direct support on software.

    H-Bridge connectors

    There are two H-Bridge connectors marked as "PWM 1" and "PWM 2":

    GND: common ground
    P1: PWM +
    P2: PWM -
    S1: optional current feedback from H-Bridge
    S2: optional H-Bridge temperature feedback or H-Bridge Enable
    S3: not used (reserved for future uses)
    Current feedback
    can be used to limit motor current in case the H-Bridge is near the maximum tolerance. This feedback must be an analog value between 0 and 3.3V and must have a linear variation in fuction of current consumption by H-Bridge. The input of feedback current can be amplificated by 10x factor using the dedicate jumpers:



    Jumper closed (default condition) -> Gain : 1x
    Jumper open -> Gain: 10x

    Temperature feedback
    is designed for use with LM35 temperature sensor. Software performs itself the temperature conversion in C. The LM35 analog output is linear and feeds 10mV for 1C. You can use other similar temperature sensor but the output voltage must not exceed 3Volts or MCU will be damaged.

    A low-pass filter can be enabled on temperature plugs by closing the two dedicate jumpers on bottom side of the board (by default they're closed already):



    Encoder connectors


    Pinout reflects the same used by US Digital encoders:
    B: encoder B channel
    - : common ground
    A: encoder A channel
    +: power supply for encoders

    Encoder power supply selection
    Encoder power supply is selectable by a jumper on bottom side:



    By closing 1 and 2, encoders power supply will be 5V, by closing 2 and 3 power supply for encoders will be 3.3V volts. By default nothing is selected.
    UART connectors



    Are used for 2 individual, TTL-level serial communication. On UART connector, a power supply pin is available, the voltage level of this pin is selectable by using jumpers on the bottom side for each UART plug:



    UART1 is shared with RS485, if RS485 is enabled, UART1 cannot be used.
    UART2 is shared with XBee module, if an XBee module is installed, UART2 cannot be used.


    ICSP connector

    Is used for in-circuit serial programming by use of compatible programmers. Since the board comes with a preloaded bootloader you don't need a programmer. Programmer is needed only if you want to change bootloader or load firware without the use of a bootloader.

    PGC (clock) and PGD (data) pins used for ICSP can be isolated from the rest of circuitry by using two jumpers marked as "PGD" and "PGC" near PWM connectors. You must leave them opened if you want to use ICSP feature:




    RS485 connector


    Is used for RS485 communication, two connectors are available. RS485 TX and RS485 RX can be enabled individually by closing the dedicate jumpers on the bottom (default open):



    Termination and BIAS can be enabled by two jumpers on the bottom side (default open):



    Power connector

    Use a power supply from 6 to 12Vdc

    LEDS
    There are 5 led on board:
    Power: indicates when board is powered
    L1: its function can be user defined in software
    L2: same as L1
    ASSOC: used by XBee module if installed. Indicates XBee is ready
    RSSI: used by XBee module if installed. Flashes when signal are received
    Pinout and jumpers overview




    Connections examples