RoadTest: NXP LPC4330-Xplorer Board
Evaluation Type: Evaluation Boards
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?: Maple, Arduino, Freescale KL25Z, Coridium ArmMite Pro, BeagleBone, Raspberry Pi
What were the biggest problems encountered?:
I received the LPC4330-Xplorer Board and was immediately struck by the overwhelming amount of information available for this board and this processor. That was probably the most daunting part of this evaluation. I spent a good week dedicated to discovering all of the documentation, sample code, and libraries available. Additionally there was the task of finding the tools, IDEs, compilers, etc...
I’m a linux guy. It is my preferred os, so I look for tools and development kits that support this environment. I was pleased to find that there was a modified version of Eclipse (LPCXpresso) that was available for this board. I was able to download LPCXpresso from Code Red and get started with some of the sample code that was available. The only issue I encountered was that the supplied JTAG debugger board did not seem to be supported under my configuration. It appears to only be supported under the Keil MDK development tool suite under Windows. By searching around the net I was able to discover that there was a dfu boot mode supported by the board that was controlled via micro switches located on the board. Since I was familiar with using the Leaf Labs Maple, the linux utility dfu-util was something that I had used before. I compiled the Blinky example and attempted to upload the image to the board. It was then that I discovered that the image needed to have a header prepended in order to be successfully booted and executed. The algorithm for generating the header is described in the LPC43xx ARM Cortex-M4/M0 dual-core microcontroller User Manual, but I was also able to find an executable that I was able to run using wine on linux (imageManager.exe) that would prepend the appropriate header to the image and allow me to successfully upload and execute the Blinky image to the board. Once that was complete, my environment was validated and I knew I could continue.
One of the things I mentioned in my Road Test application for this board was to develop an application to remove the vocals from an audio music stream. This turned out to be very simple using this board and the supplied sample code. The algorithm I used was a very simple one that I had developed many years ago to use against pre-recorded files such as .wav and .mp3 files, I would open the file, pass the digital data into my algorithm, and write out the altered bytes to a new file with the vocal data removed. The difference with this board was I would read the digital audio data from the rxfifo, apply my algorithm, and write the data back out to the txfifo, allowing this board to be inserted between something like an mp3 player on the audio in and an amplifier/mixer on the audio out allowing for real time karaoke using pre-recorded commercial audio from my favorite artists. I simply needed to intercept the data in the I2S0_IRQHandler(). Very simple.
The board itself has a wide range of peripherals, USB controllers, Micro SD Card interface,Ethernet, Audio, and it is Dual Core, sporting both a Cortex M4 processor as well as a Cortex M0, the 2 processors are located on the same chip and can communicate via inter processor communication routines that are included in the sample code.
Compared to other devices in its price range I would say that this is a very capable unit. While the base price is higher than an Arduino or a Maple the fact that it has so many peripherals built in more than offsets the cost. Either one of the above mentioned boards with a USB shield, Ethernet shield, and SD card controller would easily exceed the $102 suggested price tag. While not as full featured as a BeagleBone or Raspberry Pi, it is a better environment for learning bare metal programming as opposed to simply writing code to interface with an OS. A word of caution though, this is not a board for a beginner, if you are just starting out with microcontrollers I would recommend the Arduino or similar, but if you are past that stage and really want to get your hands dirty this may be the board for you.
In conclusion I would say that the LPC4330 XPlorer is a very well thought out and well put together board. It has plenty of peripherals to experiment with and the sample code is more than adequate. The tools available are satisfactory whether you use windows or linux. There is a lot of information available for this board and you could easily spend way more spare time than you would like to learning all about it and using it to its full potential. I didn’t encounter any issues that couldn’t be resolved by quickly searching the web for the answer.