BASYS MX3 Trainer Board - Review

Table of contents

RoadTest: BASYS MX3 Trainer Board

Author: noorpuri

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: As per my current knowledge, there is no such Training product in this price range with all such possibilities to learn about other than PIC32 like applications based on Inertial sensor , Motor control and Audio Signal processing.

What were the biggest problems encountered?: The biggest problem is to use and evaluate certain development tools after installation like MPLAB X IPE v5.30, configuration of Licensed Debugger, setting of Harmony software path.

Detailed Review:

Motivation of Participation:

First of all, I am thankful to Element14 for allowing me the evaluate this product. My main objective to participate was to re-connect with the PIC family based Microcontrollers over more than 10 years and evaluate BASYS MX3 Trainer Board not only with the perspective of a learning platform but also as a Rapid Prototyping/Proof of Concept Platform suitable for DIY, commercial and  industrial applications. I am going to describe my findings in the regard of both aspects.image


First Impression:

I found it Compact form factor, Rugged  and Well Finished PCB after opening its good packing. Everyone can see in the picture that there is lot of components and connectors  beside SMD ICs.



First Displeasure:
It is very exciting to power up any Development Kit to check about its functionality and any possible damage during delivery.



But when, I tried to power up the board via  Power Jack (J11). I have two power adapters of 12V but it was very disappointing for me to see the label (5V only). Then I found another possible way out that is powering the board via Micro-USB.

Recommendation 1:
Manufacture should modify the external power option from 5V  to 12V. Because in general, 12V adopter is more common and also for longer operating circumstance , end user can also use smart rechargeable 12V Li-Po Battery pack.



Electronics Components and Hardware Design:

Already there is lot of discussion in the already posted RoadTest Reviews  about electronics modules, components and connectors of  BASYS MX3 Trainer Board. There is only critical comments about  the the constituent parts of the board and design.

PIC32MX370F512L Microcontroller:

The key component of Microcontroller based Trainer or development Kit is it self  Microcontroller. Now there is lot of variety in the feature of Microcontrollers but  good Microcontroller has all common features of moder families and also some specialized functional blocks to attract the user,


PIC32MX370F512L Microcontroller is a 32-bit chip in 100 pin package with sufficient on-chip memory (128K RAM and 512K Flash), lot of GPIOs, Analog block, Serial communication channels  and 120 MHz/150 DMIPS performance, that is all necessary to develop a complex embedded application. Moreover, it offer specialized  Audio/Graphics/Touch HMI features to develop a robust audio or Graphics display  specific embedded systems.


Mass Storage (4 MB SPI Flash):



The mostly Trainer board provides the facility of SD/MMC card as Mass storage unit. But  there is also a good alternative in the form of high speed SPI Flash in BGA package, i.e., S25FL132K with a capacity of 4 MByte. It operates up to 50 MHz in Normal and up to 108 MHz in Fast Read Mode. The size and speed is enough to store and retrieve the data


Motor Driver


Motor control is now an essential feature of any industrial or consumer electronics product. Now a days vert sophisticated motor controller and drivers are available for system designer to develop an efficient motor control sub system with less complicated  piece of firmware.


DRV8835 Dual Low-Voltage H-Bridge motor driver (IC 7 on bottom side) is available  in tiny 12-pin WSON package for to learn about the control of a stepper motor and also up to two DC motors.  It provides 1.5-A Maximum Drive Current Per H-Bridge.


Recommendation 2:

Replace DRV8835 with DRV8825 i.e., Micro-stepping Stepper Motor controller with more functionality but also associate with the issue of 4-layer PCB as Heat Sink.


Interactive User Input/Out Interface (HMI) Block:


Display and User Input components are very important in the process of embedded system development in both ways i.e., as Debugging tool or as Human machine interface. No doubt , manufacturer has tried to include all basic optical displays from LED to  Character LCD. Similarly, there is a Potentiometer, 5 Push buttons and 7 Rocker switches to take certain user input.


Recommendation 3:

The manufacturer should replace fragile Rocker switches and  Potentiometer  with better quality and industrial grade alternatives. Because, these components are not as per price of  the BASYS MX3 Trainer Board. Because, low quality switches and POT are damaged after some time and such issue causes not only a bad name for the product but also for the manufacturer. An example of  goog Potentiometer is   PmodENC.


Recommendation 4:

LCD and 7-Segment Display can also be replaced with  SPI based small This revision will  cause to  available  more than 10 GPIO for other purpose.



Audio Signal Processing Block:

The excellent feature of this Board is its Audio block that is comprised of  a Microphone, Speaker and  Line out connection. The presence of  good quality audio components i.e., Audio Amplifier IS31AP4991 and Analog Microphone  Knowles SPA2410LR5H with volume control is helpful to any new learner and as well as to the student to learn about  basic of Digital signal processing  with fundamentals of Audio Signal processing. User can easily learn out the audio signal acquisition and audio generation.image


Recommendation 5:

The manufacturer of the board can also introduce the Array of 4/8 Microphone and also Array of 4/8 Micro-Speaker to in additional bundle or as a separate module to not only to give an opportunity to learners to understand about  Array Signal Processing but also for value addition of the Kit.


Connectivity and Expansion Connectors:



There are lots of possibilities for the addition of external interfaces and module thorough different on chip communication peripherals i.e., UART, I2C and SPI; and on-board necessary circuitry like FDTI USB-UART Chip, IRDA Tranceiver. in addition, several Analog and Digital Pins are available on  PMOD A, PMOD B and Analog Discovery Connectors.

Recommendation 6:

J6 (SPI)  and  J7 (I2C ) connectors should be route to relatively at better position for better accessibility for expansion.  Now J6 is just below the PMODA and J7 is at near to  the middle of board. Both of connectors are not an easy to use without any disturbance of connectivity and placement of attached module.


Development Tools and Libraries:


The following web links are much useful for to start to learn this Trainer board with lots of resources and guidelines. These blogs and reviews are published by one of active participant "14rhb " of Element 14 to provide easement to other learners.image

BASYS MX3 Trainer Board - Review

Digilent BASYS MX3: #2 The LibPack Demo Projects


A Big Disappointment Arduino

First, I wanted to avoid the heavy installation of a complete tool chain of MPLAB and other tools. So I decided to upgrade the Arduino with Digilent Core for Arduino for Basys-MX3 after reading following weblink.

Installing the Digilent Core for Arduino


I came to know  after installation that, Arduino Bootloader should be flashed on the Basys-MX3. So, I had decided to install a full tool chain of MPLAB to program the bootloader that is available on following link

Basys-MX3-library/Arduino Bootloader/


After uploading the Arduino Bootloader, I tried many times to program simple code on the Basis MX3 but always I got a message on the screen about errors in bootloader. I spent 2-3 days to sort out this issue but failed. So I decided to use conventional methods of software development by using MPLAB tool chain.

A SIGH OF RELIEF (MPLAB Tool Chain and Basys-MX3 library master):


Basys-MX3 library master

I have explored the Basys-MX3 library master before starting to execute given sample programs on the board by using the MPLAB XIDE, IPE and XC32 on the backend. The documentation and structure of library code are much helpful to learn about the functions and its uses. Moreover, this library not only contains the basic function, but also all necessary higher abstraction functions as well that helps user to rapidly develop the desired application or further evaluation of the specific module or component.


MPLAB Tool Chain

I am interacting with Microchip development tools after many years. Now they are not less than their competitors. The addition of Harmony plugin that is similar to the Processor expert of Codewarrior or CubeMX of STM32 is a big advantage for user to rapid configuration of basic and advanced features of peripheral before starting of application development.


BASYS MX3 Trainer Board as Rapid Development Platform:

As I have earlier mentioned that my core objective to evaluate this board to estimate the probability to use it as an standalone commercial or industrial electronics system.

As per   

  1. Recent advances in embedded systems design are allowing engineers and makers to use off-the-shelf hardware and software to create complex products faster and more easily than ever before.
  2. Development boards play a crucial role in any product design cycle – idea, evaluate, prototype, test, manufacture. They provide a great platform at early stage of design to help easily evaluate a specific type or range of controllers/processor or even to help understand a specific type of technology.
  3. Designers can also easily add functionality to their boards using accessories and add-on/daughter boards or HATs and the final hardware design can then be taken directly from the development board design and customised to fit individual project requirements.


The Sample Applications:

I have developed three different tasks by taking advantage of Accelerometer presences on the board and also Rocker switches/Push Buttons/Potentiometer. I have customized the  demo project "ACLDemo.X" by adding  files and  code. The following tasks are included in the attached project.

  • ACL_TILT();                     (Low-g Value based application code to calculate the Tilt angle)
  • ACL_Vibration();             (High-g Value based application code to detect the Vibration/Shock)
  • Serial_Command_Unit(); (A UART and HMI block based application idea to replace a PC Software to control a Process Controller)

Further Plan and Conclusion:

I have decided to discuss in detail about the theory, mathematical calculation and further enhancement  above mention application tasks as separate blogs. Conclusively it is a very good product but still some margin of improvement.Further, the issue of Arduino core must be consider to be solve as soon as possible.