BASYS MX3 Trainer Board - Review

Table of contents

RoadTest: BASYS MX3 Trainer Board

Author: MARK2011

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?: other Microchip Development Boards

What were the biggest problems encountered?: Nothing significant until now! The only restriction was abilities and skills of the roadtester…

Detailed Review:

At the beginning I would like to thank Digilent and element14 for giving me chance to deal with such extraordinary and complex board.

With the "heart" - or "brain" from Microchip, genuine and convenient peripherals I get perfect set for learning/ designing/ testing  basic, intermediate as well as extended projects in microelectronic.

The adventure with the Basys and supported learning programme was amazing

besides it consumed much more time I supposed... and declared participated that Roadtest....

 

 

Overall technical overview

Basys MX3 is an MCU trainer board

Digilent declared, it is "designed from the ground up to teach embedded systems"

Its heart is the Microchips PIC32MX370F512L.

Microcontroller is sourended with all necessary peripherals which let to experiment and build sophisticated projects of embedded systems.

The set is well described and documented.

I think the best path to go is following original imagesite:

https://reference.digilentinc.com/reference/microprocessor/basys-mx3/start

 

Trying to avoid copying decumentation and instruction I will citate only main information about the BASYS board/set

 

  • Processor/IC: Microchip PIC32MX370F512L Microcontroller
  • MIPS32® M4K® core runs up to 96 MHz using onboard 8 MHz oscillator
  • 512 KB of Program Flash Memory
  • 12KB of Boot Flash Memory
  • 128 KB of SRAM
  • Four Direct Memory Access (DMA) Modules
  • Two SPI, Two I²C, and Five UART serial interfaces
  • Parallel Master Port (PMP) for graphics interfaces
  • Five 16-bit Timers/Counters
  • Five Input Capture Modules
  • Five Output Compare Modules
  • 85 I/O pins
  • 54 pins support Peripheral Pin Select (PPS) for function remapping
  • Software
  • Designed for use with MPLAB X IDE

System Features

  • 4 MB SPI Flash
  • Onboard USB UART
  • Supports baud rates up to 1.25 MBaud

Powered from USB or 5 V external power source

  • Standard barrel jack for 2.0 mm internal-diameter plug
  • No jumper select required

System Connectivity

  • USB-UART Bridge

 

 

 

Unboxing

At the very beginning I feel obliged to assess the quality and esthetic of the shipment

I hope following photos could depict well the excellent quality of delivery, packing etc!

imageimage

 

 

 

 

 

 

 

 

 

 

 

image

image

image

 

Summary of parameters

...and features of the board/ microcontroller and peripherals.

 

As written above all documentation is available on Digilent site.

Details about peripherals are easy available thanks to links to Microchip and other manufacturers.

regarding peripherals ,

the list is impressive:

image

  • Interaction and Sensory Devices
    • 8 Slide Switches
    • 5 Buttons
    • 1 Reset Button
    • 8 LEDs
    • 1 RGB LED
    • Onboard 3-axis, 12-bit accelerometer
      • Programmable Motion Detection
      • I2C Interface with Programmable Interrupt
    • Onboard FIR-compatible IrDA Module
      • Built-in Remote Control Transmission Function
      • Supports speeds up to 4 Mbps
    • Onboard Audio Input and Output
      • MEMS Microphone with Adjustable Gain
        • Thumbwheel potentiometer for adjusting mic volume
      • PWM driven mono audio output with onboard speaker
        • Thumbwheel potentiometer for adjusting speaker volume
        • 3.5 mm jack for line out connection to external amplifier/speaker system
    • Onboard Displays
      • 2x16 LCD Character Display with LED backlight
      • 4-Digit Seven Segment Display with red LEDs
  • Motor Control
    • Onboard Dual H-Bridge Motor Driver
      • Supports up to two 1.5 A Brushed DC Motors or one stepper motor
      • Supports motor voltages up to 11 V
      • Terminal block provides easy connection to motors
    • 2 Servo Connectors
  • Analog Input Control (AIC)
    • Thumbwheel potentiometer for varying analog input between 0 to 3.3 V
    • Two wire loops for ground and AIC
  • Expansion Connectors
    • Two 2×6 Pmod host ports
      • SPI, UART, GPIO, PWM, analog in
    • Terminal block for two DC motors or one stepper motor
    • Two R/C servo connectors
    • One I²C connector
  • Debugging
    • On-board 30-pin Analog Discovery 2 connector
    • On-board USB programmer/debugger
      • Program/debug the PIC32MX370 directly from MPLAB / MPLABX

 

Documentation and the software

(Available papers and documentation review -pdf's links to sites...)

Basys MX3 Reference Manual

https://reference.digilentinc.com/reference/microprocessor/basys-mx3/reference-manual

PIC32 Complete Family Reference Manual   

PIC32MX370 Datasheet   

Schematic   

Honestly - I'm a little confused of amount of it...

Instructions are available at Digilent. All necessary papers could be taken from Microchip as well.

Moreover GitHub resources and foras with members ready to support...

 

e.g.  all informations of XC32 family architecture are available here:

https://microchipdeveloper.com/32bit:start

image

PIC32M FAMILY REFERENCE MANUAL

https://microchipdeveloper.com/32bit:frm

Microchip’s Support Tools page.

Here, you can explore applications that help you further diagnose your issues and learn how to use the Microchip Support System to help you find answers quicker!

MAPS

Search all of Microchip’s products with available electrical characteristics set as filter options. Do side-by-side compare, cross reference competitors, and more!

DTS    Development Tool Selector

Find available debuggers, programmers, compilers, adapters, socket modules, accessories and demonstration boards for Microchip’s products.

Data Sheet Finder

Find the Data sheet for your exact device.

Parametric Charts

Microchip offers an extensive array of parametric data all at your finger tips with this convenient chart system.

CiSAR   Customer Initiated Service Authorization

The software

- presentation of software used in the roadtest + comparison

MPLAB X + MPLAB Harmony first

and attempt to use arduino library later - Installing the Digilent Core for Arduino   

Obviously, the Microchips device PIC32MX can be easyly programmed/ debugged using MPLAB-X suite.

 

MPLAB® X Integrated Development Environment (IDE)

image

image

https://www.microchip.com/mplab/mplab-x-ide

 

I tested the example from:

https://microchipdeveloper.com/harmony:middleware-graphics-training-v2

 

MCC:

MPLAB Code Configurator (MCC):

http://www.microchip.com/mplab/mplab-code-configurator

image

image

image

image

 

http://microchip.wikidot.com/mplabx:mcc

image

 

and the support from community is available here:

http://www.microchip.com/forums/f293.aspx

image

 

Saving/Importing Individual Peripheral MCC Configurations

http://microchipdeveloper.com/mcc:peripheralconfig

MLA Microchip Libraries for Applications

http://www.microchip.com/mplab/microchip-libraries-for-applications

http://microchipdeveloper.com/hif2131:mla-installation

MLA includes:

  • Prebuilt projects for MPLAB® X IDE
  • Support for XC compilers

Starting with the 2013-12-20 release, the MLA will only include pre-built projects for MPLAB X IDE.Not all legacy demos have been ported to the new version of the MLA.

Please see the Legacy MLA tab below if you need:

  • Pre-built projects for MPLAB 8 IDE
  • Support for TCP/IP with Ethernet and Touch
  • Legacy demo support

image

 

Microchip C Compilers

Microchip’s offers a suite of full-featured, ANSI compliant high-performance C compilers. Click the link to learn more.

Code Examples

This is a list of code examples provided by Microchip.

http://microchip.wikidot.com/Developer Help Developer Help

“interaktive” tutorials -examples

image

with well described PIC32MX architecture

PIC32MX Family:

https://microchipdeveloper.com/pic32mx:start

image

 

Sometimes, especially for small projects, installation of huge MPLB-X isn't required!

here we have:

Mplabcloud Ide Compiler online:

https://mplabxpress.microchip.com/mplabcloud/idehttps://mplabxpress.microchip.com/mplabcloud/ide

image

 

as well as examples online:

MPLAB Xpress Code Examples

"mplabxpress"

https://mplabxpress.microchip.com/mplabcloud/example

image

microchip Code Examples

image

 

https://www.microchip.com/doclisting/TechDoc.aspx?type=CodeExamples

and many community forum posts

https://www.microchip.com/forums

unofficial  picforum

image

http://picforum.ric323.com

                                               

PIC Tutorials

https://www.electro-tech-online.com/threads/pic-tutorials.32897/

MikroElektronika books

https://www.mikroe.com/ebooks

 

http://www.mikroe.com/en/books/picbook/0_Uvod.htm A good starting point covering just about everything on PICs

http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm Covers the basics with lots of examples

http://www.winpicprog.co.uk/pic_tutorial.htm Lots of good examples including circuits of hardware modules

http://www.hobbyprojects.com/microcontroller_tutorials.html Covers basic registers, timers and interrupts

http://www.piclist.com/techref/member/jwn-hotmail-f41/TIMER_TUTORIAL.htm Another good timer tutorial

http://www.amqrp.org/elmer160/lessons/index.html

Elmer 160 course…

http://www.phanderson.com/PIC/index.html

 

http://www.talkingelectronics.com/te_interactive_index.html

PICmicro x14 Basic Training Modules

http://techtrain.microchip.com/x14/                               

 

Many more here http://www.microchip.com/videos.aspx                                                                 

The Engineer Tutor

Learn from our Experience

 

http://www.theengineertutor.com/

image

 

image                           

http://mikepokeeffe.blogspot.com/

 

Foras:

image

www.microchip.com/forums/m424874-p2.aspx

 

RUN the BASYS

OK - lets start

Hardware installation

After plug-in the drivers was insalled quick and properly

image

 

UART / USB drivers have ben installed smoothly

image

image

 

image

image

image

image

image

MPLAB X do not require any special fine -tuning to run BASYS projects

image

 

PIC32 Peripheral Library

some projects and solutions may require PIC32MX peripheral libraries

Starting with XC32 V1.40, PIC32MX peripheral support libraries are no longer installed as part of the compiler’s installation.

These libraries are now installed as a second setup, after the installation of XC32 compiler.

https://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library

image

 

32bitPeripheralLibraryGuide.pdf image

 

Software and Hardware Solutions for the 32-bit Designer 30009962D.pdf

Quick Guide to Microchip Development Tools 50001894D.pdf

PIC32 Legacy Peripheral Libraries PIC32 Legacy Peripheral Libraries.zip

image

image

Harmony

https://www.microchip.com/mplab/mplab-harmony

MPLAB Harmony v3 content repositories are maintained on GitHub.

Install and Run the MPLAB Harmony v3 Configurator

After you have downloaded MPLAB X IDE, follow these steps to download MPLAB Harmony v3 repositories:

Step 1: Open MPLAB X IDE

Step 2: Select Tools > Plugins Download and click Go to MPLAB X Plugin Manager

Step 3: Check the Install box next to MPLAB Harmony Configurator 3, click the Install button and follow the directions given by the Plugin Installer (select Restart Now when prompted)

image

image

image

Step 4: When MPLAB X IDE restarts, select Tools > Embedded > MPLAB Harmony v3 Framework Downloader to copy (clone) the repositories to a selected folder on your computer

 

image

image

image

image

 

image

image

 

 

COURSEWORK

Overall description of testing methods - COURSEWORK

all recipes I found here:

https://store.digilentinc.com/embedded-systems-with-pic32mx370-and-basys-mx3-coursework/

image

There is also supporting materials on element14 site: Learn Embedded Systems with Basys MX3, PIC32MX Trainer Board with simple description of all 7 labs.

Course Material is available on digilent pages as the "interactive" blog  Basys MX3 Coursework Guide:

https://blog.digilentinc.com/basys-mx3-coursework-guide/

it can be also download

Course Material

image

Basysmx3coursematerial.rar

image

 

Digilent Inc - "ACADEMIC" site offers also lot of materials to learn BASYS and MCU in general.

https://sumechanical.org/asee2018/?_ga=2.264752908.2000687616.1576428090-724199384.1574094699

imageHands On with the Digilent Basys MX3Labs created by Dr. Greg Mason for a workshop at ASEE Conference 2018.

https://sumechanical.org/asee2018/

image

image

Sumechanical Example Projects

image

Forums    

https://forum.digilentinc.com/?_ga=2.30823423.197403121.1575808025-724199384.1574094699

 

Laboratory

Starting to prepare testing "laboratory": and calculating external & supporting devices, measurement/ control equipment etc.

I realized, that thanks to good equipment BASYS board is reach of all necessary elements (definitely more over 14 image)

 

I planned to conduct review of attached 7 teaching units

Honestly going through all 15 labs consumed too much time, I decided to try my skill with selected LABS

Moreover I have tested it individually and tried to use labs/lessons  to teach microelectronic my teenagers childs

In short words, it was a very interesting experience, all collected assumptions and remarks are in the last part of the report

 

 

My additional experiments/ projects/ applications

 

Using projects from the demo folder of  Basys MX3 Library Pack

which consists of set of examples addressed to most Basys peripherals:

  • ACL (accelerometer)
  • ADC (Analog to Digital converter)
  • AUDIO
  • BTN (buttons)
  • IRDA
  • LCD
  • LED
  • MIC (microphone)
  • MOT (motors)
  • PMODS
  • RGBLED
  • SPIFLASH
  • SSD
  • SWT (Switches)
  • UART

I could experiment more witch proven codes as well as my concepts.

Example Projects and Libraries  Basys MX3 Library Pack    https://github.com/Digilent/Basys-MX3-library)

image

Programing using convenient libraries was very pleasant.

First I took the BASYS "intro" project:

"BasysMX3_User_Demo"

Which gave the effect known well from the beginning of my adventure with the BASYS:

genuine, initial BASYS demo sequence

 

 

That project is the perfect basis to make own program versions, experiment with the code,

test BASYS capabilities as well as own programming skills

 

Then I follow my plan to check interesting (from my point of view) functionalities

Simplest task - try to employ BASYS IOs

Thanks to use of dedicated libraries, taking onboard equipment - switches, LEDs etc

the work is simple.

 

Basys is the great tool for beginners as well as advanced programmers. The PIC32MX microcontrollers family

and particularly PIC32MX370F512L chip give wide possibilities offering a lot of features and functions.

During my test I tried to experiment or al least learn how to employ many functionalities of the chip

image

 

     following the link: (https://microchipdeveloper.com/search:site?q=CTMU&mini=true)

     we can try to make experiments with Charge Time Measurement Unit (CTMU) feature

     using using microelectronica peripheral board we can test mTouch

     capacitive touch sensing  (https://microchipdeveloper.com/search:site?q=mTouch&mini=true)

     it is possible also to test the high-resolution time measurement

     and On-chip temperature measurement capability  (https://microchipdeveloper.com/search:site?q=+On-chip+temperature+&mini=true)

Next task was to review all communication channels (Codec and serial)

We have obviously UART "on board" as well as   I2S/SPI    (https://microchipdeveloper.com/search:site?q=SPI+&mini=true )

I encountered some problems with fluent run of  RS (UART) communication,

but on the other hand, thanks to serial code libraries, SPI programming went smooth

below -   SPI Flash demo project results

 


 

And, following our microcontroller features I tried to  review of Audio/Graphics/Touch HMI Features

Building application for external graphics interface wasnt as easy as I hoped.

The most interesting feature from the "graphic family" is the Parallel Master Port (PMP) for graphics interfaces - one of additional features of PIC32MX.

External graphics interface let us control up to 34 PMP pins to interface to external graphics controller.

BASYS have capabilities of driving LCD directly with DMA and internal or external memory.

 

The chip offers  interfaces I2S, LJ, RJ ( and BASYS can support it)

and many solutions for Audio Data Communication as well as SPI / I2C for Audio data control

Test features of Audio data master clock was really challenging undertaking

      • generation of fractional clock frequencies
      • synchronization with USB clock
      • check turning in run-time

are the group of experiments I haven't managed yet but really need to be done!

I didn't test possibilities of building applications with MEMS Microphone with Adjustable Gain.

That still remains as the ambitious plan but on the other hand is necessary to complete that complementary test of really complex device

 

Some other interesting functions:

Audio data master clock with generation of fractional clock frequencies

that can be synchronized with USB clock as well as  tuned at run-time

 

And also worth to be implemented:

  • Charge Time Measurement Unit (CTMU):
  • mTouch® capacitive touch sensing

 

One peripheral is from the task which "have to be done"

- Onboard SSD - seven segment display, which is  supported with the library that lets make simple text like projects easy:

below - my SSD "Hello world" project results

 

 

SSD 7.2 seven segment display and  BTNC button test using simple counter and reset

 

Audio/Graphics/Touch Interfaces

 

 

 

 

Benefits of use of MCC plugin to MPLAB X

 

Timers & Input Capture/Output Compare/PWM  can be tested following (https://microchipdeveloper.com/32bit:mx-arch-peripherals-overview )

    • Check of Peripheral Pin Select (PPS) feature functionality
    • Conduct Simple and extended tests of PWM outputs
  • Five 16-bit or up to two 32-bit timers/counters
  • Five Output Compare (OC) modules
  • Five Input Capture (IC) modules
  • Real-Time Clock and Calendar (RTCC) Module

 

MOTORs

Basys is designed to easy control popular motors and offer "small laboratory" to learn and experiment with these equipment

There is Dual H-Bridge Motor Driver (for two 1.5 A Brushed DC Motors or one stepper)

I played with it trying to compare with my previous solutions based on Ti DRV88XX series of motor drivers and develop it  using examples and support from:

 

  (https://microchipdeveloper.com/search:site?q=H-Bridge&mini=true)

 

Accelerometer

Test of Onboard 3-axis, 12-bit accelerometer and review features of “Programmable Motion Detection”

from Libraries demo and support of (https://microchipdeveloper.com/search:site?q=accelerometer+&mini=true)

 

above - presentation of project by Cristian Fatu from Basys-MX3-library demos

initializes the ACL (accelerometer ) pins and calls specific functions for reading the ACL values

The X, Y and Z axes values are then displayed on the LCD

What have been tested or learned at least:

 

Next to truly challenging projects which I managed to run, on the other hand, I encountered some troubles ewen with extremely simple code:

 

Using coursework instructions I tried to attach switches.h which made some troubles with building the project

Soon I realized that the program run well without it

... - simply common roadtest reality...

Debuggers

Thanks the Basys I could appreciate  benefits of usage of onboard USB programmer/debugger

Comparing  it with with external PICKIT 3 for  PICs programming shows, next BASYS benefit in the scope of easy handling.

The software drivers for the development tool are built into the MPLAB®X software installation. The firmware is automatcally recognized, selected and upgraded. I remmembed some issues regarding risk of lost PIC programmed during such automatic “calibration”, now it can be neglected.

The most obvious difference is that PICKIT and other external debuggers are required  if Hardware Programmer isn’t “onBoard”.

Some theory regarding PIC ICSP

ICSP Implementation Configuration

Connecting a PIC® MCU to a programmer/debugger uses a connection scheme called In-Circuit Serial Programming (ICSP). It's through the PGC and PGD connections that the device is programmed with the application software. These connections can be built on an electrical breadboard or circuit board per the schematic shown.

Figure: ICSP™ Application Circuit

ICSP_schematic.jpg

Going to the

Summary

I must emphasize that:

My remarks concerning  data computation/ readouts/ acquisition

Some tests with  measurements and data processing went easy, the implementation was easy, thanks to good documentation and instructions

Above let me to easy visualise data on SSD or LCD

I neglected power and capacity tests/ measurements.

To avoid risk of usb port damage most experiments was conducted using 5V supply. That is required only for Motor tests but I tried to be more secure.

Check of general system immunity passed well. No issues with interferences, power failures, noise etc...(moreover! Basys seems to be protected for such a crazy electronic as me!!!)

Mechanical question- quality of implementation, form factor, compatibility with other boards/ etc - To be honest I neglected arduino compatibility tests (The only move was implementation of BASYS library in arduino ide and simple coding.

I know the big potential of Basys in that matter anyway --- to be continued...

 

Roadtest results

In simple worlds:

The great board,

the powerful MCU,

easy to use peripherals - oll together,

Almost no need to wire the board and tune it for different projects

the great system at all

fine instructions

and the amazing learning system

 

In most reports there is place to explain problems and issues - if they arises

But honestly in the matter of BASYS The only restriction was abilities and skills of the roadtester… thus it’s hard for me to give advices/ recommendations...

For sure that’s not because I'm not brave enough to suggest something… Just I found the BASYS set as fine suite for learning and experimenting.

I wasn't disappointed (at all) with capabilities of PIC MCU I must admit, I feel fondness do good old PICs, I spend many times mostly with 8bit PICs families, but here PIC32MX shows its brilliant power I realized that I couldn’t use all its features, anyway it wait for further projects.

General Conclusions

Despite almost three months passed, I’am afraid the roadtest still isn’t finished. On the other hand I can’t state that I lost time.

Getting more and more familiar with some instructions explained well in lab’s consumed some hours, I realized that my knowledge of microchips programming still require learning (PIC32 series especially)

I must confirm, succeeding time, documentation both Digilent and Mixcrochip tutorials are useful but most  brilliant is the COURSEWORK. It’s really a pleasure to use it. I tested it as quite experienced pic programmer but even secondary school students can use it or higher engineering school graduate as well I suppose!

BASYS is very pleasant to deal with. I mean mostly well selected peripheral equipment. I know it doesn’t employ all features of PIC32MX370F512L or its power yet as its possibilities in the meaning of designing advanced system is outstanding.

With “multi communication” capabilities BASYS became very universal tool for challenging projects. My intention is to continue my work of course.

I regret some parts of the roadtest were neglected or disappeared from the primary plan. I miss it very much. I hope to continue and conduct the missing parts soon.

Bibliography

Digilent  papers and website               -          Digilent  Inc. -       http://www.digilent.com/

Microchip papers and website             -         Microchip , Inc.     https://www.Microchip.com

 

Sumechanical workschop papers,

examples and instructions                     -      Sumechanical      https://sumechanical.org/

 

 

 

Thank you again for selecting me as the roadtester.

I must also apoliogize for the significant delay

Marek

Anonymous
  • Good road test report.

     

    DAB

  • Thank you for your good words,

    Thank you for encouraging me to publish the final report, at last!

    Concerning Microchip examples -  funny - for me it was obvious and I knew I would start with their projects.

  • Wow, a huge wealth of information and great links. I'm wondering why I didn't look at the Microchip examples - I didn't even think about looking at them either but I will now, thank you.

     

    It's amazing how the time for a roadtest passes so quickly from the product arriving to needing to write all the findings into a blog post/review. I'll keep a look out for anything else you decide to make with this board in your own leisure time image