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....
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 site:
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
System Features
Powered from USB or 5 V external power source
System Connectivity
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!
...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:
(Available papers and documentation review -pdf's links to sites...)
https://reference.digilentinc.com/reference/microprocessor/basys-mx3/reference-manual
PIC32 Complete Family Reference Manual
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
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!
Search all of Microchip’s products with available electrical characteristics set as filter options. Do side-by-side compare, cross reference competitors, and more!
Find available debuggers, programmers, compilers, adapters, socket modules, accessories and demonstration boards for Microchip’s products.
Find the Data sheet for your exact device.
Microchip offers an extensive array of parametric data all at your finger tips with this convenient chart system.
CiSAR Customer Initiated Service Authorization
- 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)
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
http://microchip.wikidot.com/mplabx:mcc
and the support from community is available here:
http://www.microchip.com/forums/f293.aspx
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:
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:
Microchip’s offers a suite of full-featured, ANSI compliant high-performance C compilers. Click the link to learn more.
This is a list of code examples provided by Microchip.
http://microchip.wikidot.com/Developer Help Developer Help
“interaktive” tutorials -examples
with well described PIC32MX architecture
PIC32MX Family:
https://microchipdeveloper.com/pic32mx:start
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
as well as examples online:
MPLAB Xpress Code Examples
"mplabxpress"
https://mplabxpress.microchip.com/mplabcloud/example
microchip Code Examples
https://www.microchip.com/doclisting/TechDoc.aspx?type=CodeExamples
and many community forum posts
https://www.microchip.com/forums
unofficial picforum
PIC Tutorials
https://www.electro-tech-online.com/threads/pic-tutorials.32897/
MikroElektronika books
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
Learn from our Experience
http://www.theengineertutor.com/
http://mikepokeeffe.blogspot.com/
Foras:
www.microchip.com/forums/m424874-p2.aspx
OK - lets start
Hardware installation
After plug-in the drivers was insalled quick and properly
UART / USB drivers have ben installed smoothly
MPLAB X do not require any special fine -tuning to run BASYS projects
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
32bitPeripheralLibraryGuide.pdf
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
https://www.microchip.com/mplab/mplab-harmony
MPLAB Harmony v3 content repositories are maintained on GitHub.
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)
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
Overall description of testing methods - COURSEWORK
all recipes I found here:
https://store.digilentinc.com/embedded-systems-with-pic32mx370-and-basys-mx3-coursework/
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
Basysmx3coursematerial.rar
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
Hands On with the Digilent Basys MX3– Labs created by Dr. Greg Mason for a workshop at ASEE Conference 2018.
https://sumechanical.org/asee2018/
Sumechanical Example Projects
Forums
https://forum.digilentinc.com/?_ga=2.30823423.197403121.1575808025-724199384.1574094699
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 )
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
Using projects from the demo folder of Basys MX3 Library Pack
which consists of set of examples addressed to most Basys peripherals:
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)
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
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
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:
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 )
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)
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:
Check declared possibility of use of 16-bit Timers/Counters to create 32-bit timers
Conduct experiments with Peripheral Pin Select (PPS) functionality (https://microchipdeveloper.com/search:site?q=+Peripheral+Pin+Select&mini=true)
Learn how to use hardware DMA with automatic data size detection
Build application using Hardware Real-Time Clock and Calendar https://microchipdeveloper.com/search:site?q=Hardware+Real-Time+Clock+&mini=true
Introduce and check Low-power management modes (Idle and Sleep) https://microchipdeveloper.com/search:site?q=Low-power+management+&mini=true
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...
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
Going to the
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...
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.
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.
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
Top Comments
Good road test report.
DAB
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…
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…