The "MuIn dsNav" is a versatile board based on the Microchip dsPIC33FJ motor controller family. Those DSCs, thanks their unique features, are capable of driving two motors in a closed loop with aid of two high-resolution encoders and current sensing.
The 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 software available both as source code or as a HEX file. Muin dsNav is based on an open-source project by Guido Ottaviani as an evolution of his original award-winning dsPIC30F based board.
Details about the theory on which dsNAV is based, and an example on how to use this board as the heart of an autonomous robotic platform, can be found at Guido's site and in articles published in Circuit Cellar Magazine #224 (March 2009), #225 (April 2009) and #236 (March 2010).
The board is equipped with one of Microchip's most powerful Digital Signal Controllers, the dsPIC33FJ128MC802. The chip comes programmed with a bootloader so that new firmware can be uploaded simply by connecting an RS232-to-TTL or USB-to-TTL adapter such as the 990.004. As the chip is socketed, you can replace the chip with a compatible DSP, and an ICSP connector is provided for programming in that case.
dsPIC33FJ Motor Control Board 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 (header sockets on board)
- 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
- DSC: dsPIC33FJ128MC802, 16-bit Digital Signal Controller with DSP core
- Power supply: 6-12V
- Current consumption: 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: 10× or 1× (selectable)
dsPIC33FJ Motor Control Board Connectors Please refer to the following diagrams along with the descriptions below. Top pinout Bottom pinout
H-Bridge Connectors There are two H-Bridge connectors marked as PWM 1 and PWM 2:
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 function of current consumption by H-Bridge. The input of feedback current can be amplified by 10× using the dedicated CS1gain and CS2gain jumpers.
- 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 use)
Temperature feedback is designed for use with the LM35 temperature sensor. The software performs the temperature conversion in °C. The LM35 analog output is linear and feeds 10mV for 1°C. You can use a similar temperature sensor but the output voltage must not exceed 3V or the MCU will be damaged.
A low-pass filter can be enabled on temperature plugs by closing the two dedicated jumpers TS1 and TS2 on the bottom side of the board (by default they're closed already).
Encoder Connectors The pinout of ENC1 and ENC2 reflects those used by US Digital encoders. The encoder power supply is selectable by a jumper Venc on the bottom side. By closing 1 and 2, the encoder's power supply will be 5V. By closing 2 and 3, it will be 3.3V. Nothing is closed by default.
UART Connectors UART1 and UART2 are used for individual TTL-level serial communication. On the UART connectors, a power supply pin is available. The voltage level of this pin is selectable by using the V COM1 and V COM2 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 the XBee. If an XBee module is installed, UART2 cannot be used.
ICSP Connector The ICSP header is used for in-circuit serial programming with compatible programmers. Since the board comes with a preloaded bootloader, you don't need a programmer; one is needed only if you want to change bootloader or load firmware 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 the PWM connectors. You must leave them opened if you want to use ICSP feature.
RS485 Connector The RS485 header is used for RS485 communication. Two connectors are available. RS485 TX and RS485 RX can be enabled individually by closing the dedicated RS485 enable jumpers on the bottom of the board (they're open by default).
Termination and BIAS can be enabled by the TERM and BIAS jumpers on the bottom of the board (open by default).
Power Connector The Power connector uses a supply from 6 to 12V DC.
LEDs There are five LEDs on the board:
- Power: Indicates when the board is powered
- L1: User defined
- L2: User defined
- ASSOC: Used by XBee if installed. Indicates XBee ready
- RSSI: Used by XBee if installed. Flashes when signal is received
dsPIC33FJ Motor Control Board Resources