NXP LPCXpresso54S018M + Display - Review

Table of contents

RoadTest: NXP LPCXpresso54S018M + Display

Author: gordonmx

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?: There are a multitude of ARM Cortex M4 boards currently available thru NXP, Cypress, Renesas, etc.

What were the biggest problems encountered?: Poor customer support, Issues with updating the IDE, poor example documentation

Detailed Review:

First off, I would like to thank NXP and Element 14 for the opportunity to evaluate the LPC54S018M-EVK: LPCXPresso54S018M Development Board (“the EVK”). 


TEST:  Before I start my review, can anyone tell me what the “S” in LPCXpresso54S018M stands for? See the end of the “Summary Conclusion” under “Pro” features for the answer. 


Summary Conclusion –

So far I have been impressed by not just the dev/eval board, but the new MCUXpresso IDE v11.2.0.  Although not unique to NXP’s IDE, the setup includes the online SDK Builder to easily create a customize environment for your ARM MCU and EVK.  The SDK includes many demo examples designed to explore individual system features like the SD card, audio circuit, touch panel, etc. as well as operating systems, although many examples do not directly target the LPC54S018.


The only real drawback to the kit was NXP’s customer support.  As mentioned earlier, the kit comes with a pre-installed set of self-tests/demos called the “spirit level demo” to highlight some of the board’s features. During an early attempt to run the SD card self-test I inserted a blank card and powered up the board only to find the demo program had been mysteriously erased.  The source code for the EVK spirit-level self-test (SLST) program was not included with the SDK sample code programs.  NXP’s customer support stated that the program has not been released and most likely never be available in the near (or not so near) future.  This on a product that has been sold and available for more than 1 1/2 years.


They are some other issues ranging from minor to semi-serious that are documented in the “Conclusion” Section VII at the end of this review.  The SDK sample code seems to be written for multiple boards and therefore some sample programs did not compile or download for this EVK.


The following is a list of some of the EVK pros and cons:


Pros –

  • Powerful ARM-based Cortex-M4 32bit MCU.
  • Hardware security features are included in the LPC54Sxx series.  NOTE:  Answer to today’s question – H/W Security
  • Familiar Eclipse-based IDE (free)
  • IDE supports GNU (free), Keil & IAR toolsets
  • Easy to use SDK builder.  Also see “Cons” section below.
  • Open source hardware and software.  NOTE: Also see “Cons” section below.
  • Free and easy to access my user community forum (https://community.nxp.com). NOTE:  Also see “Cons” section below.
  • All the components referenced in the documentation were loaded to the EVK.  I mentioned this because I have received eval boards from other manufacturers/vendors that have been only partially loaded to save cost, even though their guides lists them as included features.
  • Smooth touch screen feature, but limited.
  • Integrated power monitor hardware is included on the EVK board.


Cons –

  • Although useful for initially evaluating the board, neither the source code nor compiled binary files for the initial spirit level demo program are available to the engineer. NOTE:  See review for more details.
  • Many of the examples supplied through the SDK did not compile for the LPC54S018M-EVK due to board related issues, such as memory limits, non-supported or missing components, etc.  It almost seemed like the SDK was a generic set of source code that was supplied for many, if not all, the LPC family boards.
  • The documentation for the kit is limited and misses key components for some example programs.  I found errors and conflicting details in the user manual (see main section).
  • Poor customer support.  Although customer support was quick to reply to my inquiries, the general response to issues such as the spirit-level source code was greatly lacking.  If I wanted an answer to an issue I had to drive the communication.  After over 1 1/2 months of inquiries I still have no time frame for a resolution.  I found the same for the Community Forum.


Wish List –

  • Improve customer support communications.
  • Add a wireless interface
  • Add to the SDK readme which boards are supported by which compilers for the code examples.
  • Add the option to upload pictures and files to the user forum postings.
  • Add multi-touch capability demo to the touch screen.
  • Add double-sided tape to the EVK kit for attaching the display to the board. (minor issue)


Overall the design is very workable and I would recommend the LPC54S018M-EVK if you would like to explore the NXP’s ARM Cortex-M4 family of MCUs and the supporting MCUXpresso IDE and related toolset.


Useful Documentation & Tool Links-

NOTE:  Logging in to the respective websites may be required to access some of the documents.






Part I – What is the LPCXpresso54S018M Development Board (LPC54S018M-EVK)…

Before diving into my actual review of the NXP LPCXpress54S018M development board, P/N LPC54S018M-EVK, let’s take a look at what it is.  First off the user manual describes the board as a development board, but the part number gives a better description as a “-EVK” or evaluation kit since its main function is to demonstrate the features available through the NXP LPC54Sxxx family of 32-bit ARM Cortex M4 microcontrollers (MCU). This is not to say that the board is not impressive and useful in exploring these features.  From what I can piece together from various documentation and websites, the kit itself is a few years old.  The current User manual, rev 1.0, and schematics, rev A, are dated February 2019 and September 2018, respectively.  So the kit should be fairly stable, but it does beg the question about the support life of the components used in the evaluation board. As stated more broadly in the user manual the purpose of the LPCXpresso family of boards is to provide “a powerful and flexible development system for NXP’s LPC Cortex-M family of MCUs”.  Although there is some limited value as a development board, its main purpose is to actually showcase the very useful features of the LPC54S family of MCUs.  The main features of the kit are includes:

  • NXP LPC54S018J4MET180, 32-bit ARM Cortex-M4 Microcontroller with:
    • 360kB SRAM,
    • Floating Point Unit (FPU),
    • Memory Protection Unit (MPU),
    • Nested Vectored Interrupt Controller (NVIC),
    • Serial Wire Debug (SWD),
    • Secure Boot features
  • On-board, high-speed USB based, Link2 Debug Probe with CMSIS-DAP and SEGGER J-Link protocol options:
    • Link2 probe can be used with on-board LPC54S018J4M or external target,
    • UART and SPI port bridging from LPC54S018J4M target to USB via the on-board Debug Probe,
    • Support for external Debug Probe.
  • 3 user LEDs
  • Target Reset, ISP (3) and user buttons
  • On-board 3.3V regulator with external power supply options.
  • Built-in power consumption measurement for target LPC54S018J4M MCU.
  • Winbond 128Mb W9812G6JB-6I SDRAM
  • Knowles SPH0641LM4H MEM digital microphone.
  • Full size SD/MMC card slot.
  • NXP MMA8652FCR1 MEM accelerometer.
  • Stereo audio codec with line in/out.
  • High and full speed USB ports with micro A/B connector for host or device functionality.
  • 10/100Mbps Ethernet (RJ45 connector).
  • Expansion options based on popular standards:
    • Arduino UNO compatible expansion site with additional LPCXpresso V3 standard connections
    • PMod™ compatible expansion port
    • Host connection / general purpose expansion port


The review hardware also included the Rocktech RK043FN02H 272x480 4.3” TFT color LCD module with capacitive touch screen that is sold separately.


From the documentation, the following is the general block diagram and component layout of the board.




                                        Board Layout – Top



LPCXpresso54S018M Board Block Diagram (LCD display not shown)                            
























                        Board Layout – Bottom (with display connections)




LPC54S0xx Block Diagram


The kit comes with pre-installed full Spirit-level demo firmware for testing individual features, but more about that later.


Part II – The Unpacking: 

I have read many different views on the value and/or importance of the unpacking segment, but I feel it is important because it is often our first glimpse into what to expect in the product and support. I was excited to road test the “EVK” because of my past experience with them.  I was especially interested in their touchscreen technology.


The shipping box arrived undamaged, always a good sign, and well packed.  Obviously, it wasn’t shipped by Amazon 8^).

The box included the 1) LPC54S018M-EVK (with eval board and a USB Type-A to Type B mini cable for power & loading programs) and 2) the Rocktech RK043FN02H 272x480 color LCD with capacitive touch screen, packaged separately (as seen below).  NOTE:  Although a finely printed URL is printed on the front of the EVK box pointing to installation information, no other documentation is included.


The “Package” Contents





  Front View                                             Back View


The Link to instructional information


The Display


  Shipping Tag                                           Display in Box                                       Front View                                            Back View


The display installed on the EVK


Part III – Initial Board Power On: 

At this time I normally power up the kit to get a feel for whether the unit will show any sign of life.  Since the LCD display is not normally part of the EVK, my initial turn on only included the EVK board.  There are two USB ports that can be used for powering the board: 1) J1, USB external 5V power only and 2) J8, USB external 5V power/debug connectors. The debug connector will be used for programming the board using the IDE.  For this section I will use J1, power only.


The good news is it did power up (i.e. no smoke).  Following the instructions in the user manual, section 4, “Self-test demo application” I was easily able to connect to the board’s spirit-level demo program.


Cool stuff and very easy, but I’m getting ahead of myself.  First, since I’m running on Microsoft Windows 7 there was the issue with drivers.  Section 4.1, points the user to NXP’s tool utility web page (see “Useful Documentation and Tool Links” section) for the LPCScrypt flash programmer (FP).  Installation of the FP will also install the USB driver needed to communicate with the board.  The system information and USB device manager screenshot are shown below.


The final step is to connect to the board through a terminal emulator.  In my case I use Tera Term.


I know it sound too simply, but now for the shoe to drop *^(.


The Shoe Drops…

In my evaluations, when possible, I will run through some of the default, pre-installed programs to get a little feel of the board before I really starts recording (i.e. take some pictures, grabbing some screenshot, etc.) results.  This is not always a good move, but I was excited about the possibilities of the EVK.


Level Self-Test -

Using the terminal emulator since I hadn’t installed the display yet, I ran the first self-test on the menu, “level”. This is the default test loaded when you power up the board and uses the on-board accelerometer to control the lighting of the user LEDS.  For video of this test you can go to the “Get Started w/ the LPC54S018M-EVK website”.


SDRam Self-Test –

So far so good, so I moved to the next self-test on the menu, “sdram”.  Having set the JP14 and JP15 jumpers to “SD” per the user manual, the test ran perfectly. Sorry no screenshot, but the results did display on the terminal.


SDCard Self-Test –

Now feeling very confident, I move to the “sdcard” test.  I selected the test and inserted the card, as per instructions, but nothing happen.  I used a 32GB card, but the manual didn’t mention any size restrictions.  I tried again with the same results (or in this case no results).  The manual gave no indication as to what to expect.  So, I tried something different and powered off the board before plugging in the SD Card.  After the card was installed I plugged in the power.  This time I had a very unexpected (and undesirable) result. The EVK pre-installed firmware had been completely erased.


Rats!!  But I had run in similar situation on other projects.  The solution was to download the spirit-level demo program and reload the program.


The Search begins…

For most dev/eval kits the source code for any pre-installed software is available so I head to NXP website.  I couldn’t find the code, but I still had to install the MCUXpresso IDE and EVK associated SDK, so maybe it will be there. NOTE:  I will cover the IDE installation in the next section.  After installing the IDE and SDK, the source code was still not there. The next stop was the NXP community forum because maybe someone else had seen the issue.  Nope.  I left a note on the community site, but after 1 1/2 month without a reply I don’t have a lot of hope.  I checked on GitHub where I found Anand Singh’s LPC54S018M SDK repository, which had the same content as the SDK build from NXP’s website, but still no spirit-level demo program code.  Also Google turned up nothing, so finally I headed to the NXP support center.


Say What??

I logged my request for the demo source code and receive a gather cryptic reply than I could understand. Unfortunately I didn’t save the reply because you may have gotten a good laugh too.  Anyhow I sent the reply back to the support center for clarification and received on 08/31/2020:


“We asked to MCU ecosystem team, and unfortunately, that looks like a cut and paste error. The code wasn’t released to this point because the new restrictions about code release came in around the time the product was launched.

Sorry for the inconvenient to you.”


Interesting, the EVK has been released and in production for over a year yet the pre-installed firmware has not been released.  Maybe that is why it tanked too easily.  I pushed back a little and received the next reply on 09/01/2020:


“Sorry the source code isn't published, our AE need to go through black duck scans before it can be released, I will start that process and keep you inform once the code was released.  Thanks”

Now we’re getting somewhere, but after a few more emails and 1 1/2 months later I received:


“At this time , I also can't get the source code, and in my personal opinion, recommend you first give up (on) the source code. While I will continue fellow up this case, will tell you once it have any information.  Sorry again.”


So the search to continue testing the pre-installed demo program ends here, but there are some example programs included with the SDK so let give a few a try.


Part IV - Installing the MCUXpresso IDE Software:

As mentioned in the previous section, I’m running under Windows 7 Home Premium, which shouldn’t be a problem according to the MCUXpresso IDE installation manual.  Before downloading the software, you must register on the NXP website.


The Easy Way…

After registering and logging in type LPC54S018M-EVK into the search engine.  About a 1/3 of the way down on the EVK product page, click the link under Get Started with the LPC54S018M-EVK under Design Resources-> Get Started. The link a set of 3 getting started instructions/videos: 1) Plug It In!, a short video demonstrating the pre-installed F/W, 2) Get Software, instructions for downloading and installing the need programs and finally 3) Build, Run instruction for downloading and run your program.


Get Software –

The first step is pretty straight forward so let look at segment 2, Get Software.  This segment is broken up into 4 components: 1) the SDK, 2) the IDE and toolchain, 3) IDE Config tools and 4) serial terminal emulator.



Step 2.1, clicking [Get SDK] will take you to the MCUXpresso SDK Dashboard where you will 1) select the board using the 2) search bar, then initializing the action 3) to build the SDK.


The next step before the building of the SDK is to configure it by:


  a) Selecting the SDK version.  I chose version 2.8.2.


  b) Selecting the Tool Chain.  I chose GCC ARM Embedded which allows for Redlib, Newlib & NewlibNano library build configurations


c) Select your PC operating system (again my PC’s OS is Windows)


  d) Press [Select All] software packages.  NOTE:  Not all packages are used by the EVK, but it is easier to select all


  e) The SDK should now be configured, so click [Download SDK]


When the SDK build is complete a EULA will appear, click [I Agree], then a download popup will appear. Download the SDK zip file and documentation file.


Step 2.2a, clicking [Get MCUXPRESSO IDE] will take you to the MCUXpresso IDE home page, and then click [Download].  NOTE:  You may also want to check out the Documentation tab and download the user guides


On the next page you can select the version of the MCUXpresso IDE on the next page.  I choose the latest version, v11.2.0, at the time of my install and clicked [I Agree] to the license agreement (of course after you read it).  NOTE:  At the time of this report the current version was v11.2.1.  The use of software and any example code is “royalty free”.  Choose the download file for the operating system of your PC.  My Windows install file was a little over 800KB.  I also downloaded and installed the MCUXpresso_Config_Tools_v8_x64.exe and the SDK file set, but I’m getting ahead of myself. Once the download is complete, continue to Step 2b.


Step 2.2b, installing the IDE is very simple.  I just followed the install program prompts using the default settings.  There is also a video in the Get Software->Install you toolchain segment that is very helpful.


Step 2.3, clicking [Get MCUXPRESSO CONFIG TOOLS] will take you to the MCUXpresso Config Tools home page.  NOTE: This may be a remnant an earlier version of the install process since you may have notice in your IDE install the option to download the configuration tools has already been addressed.  In either case, from the MCUXpresso Config Tools home page, click [DOWNLOAD] for the tool installer corresponding to your PC operating system.


Step 2.4, is more of a note reminding us that although the IDE has a built-in serial terminal emulator, an external emulator such as Tera Term or Putty is recommended.  I have tried both, but prefer Tera Term.  The external emulator communicates through either J1 or J5 USB ports.


Build, Run –

At this point the IDE should almost be ready to configure, build and run your program on your EVK.  In the “Build, Run” segment of the tutorial, you will learn how to configure your IDE by installing your EVK’s SDK


  Step 3.1 just reiterates the content of the SDK zip generated in the previous section.  The following is the sample programs included in the

  SDK_2.8.2_LPCXpresso54S018M SDK



Step 3.2 contains a very straight forward video that starts off again by reiterating how the SDK is generated and then processes to shows 1)how to drag and drop it into the IDE, 2)open, 3)build and 4)run an example program (led_blinky).  All in a less than 5 minutes video.


CAUTION:  This is a little word of warning to those looking to examine the pre-install spirit-level self-test (SLST) demo program.  When you download a new program to the EVK the current program is overwritten. So once you build and download your first program to the EVK the spirit-level demo is deleted forever since the source code for the SLST is not released or available to restore to the board.  So make sure you check out the SLST before trying any other examples.


Step 3.3, “Run the LPCXpresso54S018 board at over 180MHz” is a dead link with no content.


After completing the tutorial you should be able to successfully build and run a number of the sample programs. Part IV of my review will demonstrate a few of those example from the SDK, but first a few general (or specific) observations:


  1)  As noted in Step 3.3 above, some links to information either never existed or never was updated.  For a product that has been out in the field for a while someone in support should be correcting this.


  2) Although the list of sample code supplied by the SDK is extensive, not all the programs are buildable or downloadable to the LPCXpresso54S018M-EVK board.  For example the EVK does have any WiFi circuitry to run the WiFi code.  As another example, a number of sample program compiled into code that was too large to fit into the available memory.


For one of the emWin sample programs the memory requires ranged from 129 to 145% of the available memory


NXP AN11244 – emWin Startup Guide (Rev 1, 08/2012) https://www.nxp.com/docs/en/application-note/AN11244.pdf


Redlib (semihost-nf) GCC

Memory region        Used Size  Region Size  %age Used

          SRAMX:      254248 B      192 KB 129.32%

    SRAM_0_1_2_3:          0 GB      160 KB      0.00%

NewLib (semihost) GCC

Memory region        Used Size  Region Size  %age Used

          SRAMX: 284624 B      192 KB    144.77%

    SRAM_0_1_2_3:          0 GB      160 KB      0.00%

NewLibNano (semihost) GCC

Memory region        Used Size  Region Size  %age Used

          SRAMX:      255116 B      192 KB 129.76%

    SRAM_0_1_2_3:          0 GB      160 KB      0.00%


NOTE: In all fairness, this last example may be due to the compiler (GCC) used in the builds.  Different compilers may optimize better.


  3)  I did find some errors in the documentation.  As an example, in the EVK user manual (UM11192) the picture on page 6 (jumper locations) shows the Link2 LPC4322 boot mode is disabled when JP5 shorted. On page 7, the text states the Link2 LPC4322 boot mode is enable when JP5 is shorted.  Of course once this error is easy to test and the latter is correct.


  4)  For an eval board that is targeted for security applications, remember the “S” in its part number, I found very little in the SDK sample programs that highlighted this feature.


These are few issues, but for now let’s move on.


Part IV – Let The Programming Begin…

If this was an actual software project I would start with a “Hello World” program and there is one such sample code program, but there is a board involved so “LED_Blinky” is the one I chose. Using the example in the tutorial video from the previous section, each step was easy peasy (or in normal speak, without issue), compiling, downloading and run as expected.  My confidence of good things to come was building. (sorry no pictures)


Since I was having fairly good luck so far and since I always interested in touch screens, I installed the TFT LCD display.  The installation went very smoothly and I was ready compiled the “touch_cursor” demo program. Again the program build, downloaded and ran without issues.  The display was a very simply array of boxes and a cursor that could be moved by touching the screen.  The touchscreen was a single (vs multi) touch control and was limit to only the cursor movement.  Again I’m sorry I have no pictures of the display, but I’ll expand later.  I will add that I did try out the integrated power monitor circuit using the touch cursor program and will talk about it in the next section.


As mentioned in the last section, I did try a number of other sample programs, such as the emWin temperature control, since it included the LCD display, but ran into limitations due to compiled versus available board memory size.


My last example was the emWin slide show demo program.  I have included a short video of the demo.


Part V – Integrated Power Monitoring

One interesting feature of the EVK is the built-in integrated power monitoring circuit (PMC).  The PMC uses the Maxim Integrated MAX9634TEUK+T current sensing amplifier to an ADC to monitor the voltage across the 2 x 1 ohm sense resistors.



Following the instructions in the MCUXpresso IDE LinkServer Power Measurement User Guide, Rev. 11.2.0, the power monitor panel within the IDE can be configured to display various information and waveforms relating to the voltage and current usage of the EVK. For my measurements I used the touch cursor demo program.


Steady-State Current Measurement -                                Current draw during screen touches -


By measuring across pins JP4-1 and JP4-4 with a differential probe, we can also measure the current draw of the board.


Part VI – OOPs!

I’ve been known to do some bonehead things when I get excited and here’s another one.  I had mentioned that I like to try some things before I do a final pass at documenting a test.  Sometime that means I miss taking a screenshot or photo that can add detail to a result.  Don’t misunderstand.  I do take notes of each run, but if something goes wrong, you sometimes can’t go back for that picture.  So, as I was getting ready for the final pass on my tests I did a stupid thing. Normally once I start a series of tests, I try not to change or update things that don’t need to be changed or updated.  As I was saying, a couple weeks back I was getting ready for my final test pass when I received an email from NXP about a MCUXpresso IDE minor update.  I was wondering if the update might solve some issue I had noted, so I downloaded and installed the update.  What it did do was break my Redlink server link on my PC which meant no more downloading to the EVK.  I have try to restore the link, but with no success and therefore some of my comments in this review lack photo of the board.



As I was thinking about this issue late last night (10/19) I decided to run a search of my PC for the redlinkserv.exe file and found that it had been erased during the recent IDE update.  I did find a copy of the file in the directory of an early version of the MCUXpresso IDE (v10.3.0_2200).  On a wild shot I copied the older version of the redlinkserv.exe file into the current version’s binaries directory and low and behold I can now download programs to the EVK board.


Part VII – Conclusion

My main goal in my evaluations and review of any product is does it do what the manufacturer said it does.  In this case does it successfully demonstrate the features of the LPCXpresso54S018M.  My secondary goals are 1) does the product include everything the end user needs to use the product (Yes), 2) if additional items are needed, are they identified clearly in the documentation (N/A), 3) is the documentation accurate and clear (Yes), 4) is technical support easily available (No), and finally 5) does the product/course perform as specified (Sort Of). My wish is to provide feedback to NXP concerning the dev board, and relative documentation, so as to improve their engineering customers’ experience. 


With this in mind my comments tend to be mixed.  I have enjoyed the ease of working with the LPCXpresso54S018M, but I believe it could be a much more productive experience with a little extra effort.  The basic documentation could be easily found on either their product website and/or community site.  The videos were very helpful and concise.  Where the documentation was not so helpful was with customer support. Most replies had to be driven by me for a simple request.  My final interpretation was “don’t hold your breath”. 


Not everything was distressing. I really did enjoy working with the board and supporting toolsets.  To beat a dead horse, the Eclipse-based MCUXpresso is a very versatile IDE, but more time should be placed of verifying the demo source code and instructions.  The integrated power monitor feature was very interesting.  The instructive video by NXP (see Useful Document section) was also very helpful and recommended viewing.  The touchscreen is limited.  I would like to see more touchscreen features demonstrated in the sample program.  Maybe mutli-touch.


Please check the “PROs & CONs” section for more details.


What I didn’t try

With the IDE update which broke my Redlink server there were a few test still left on the table like security features.


What’s next?

I would like to get my Redlink server link working again so I plan to uninstall and reinstall the IDE (Fixed, see “Late Breaking News” comments in the last section).  If by any miracle the spirit-level self-test source code ever gets released, I would like to compile and download it.


More Later breaking News (10/27/2020)…

Having given up hope of seeing the spirit-level self-test source code, I decided to ask for the .bin file used in production. I received the file today and was able to restore the pre-install demo.  The instructions for running the self-test shown in the user manual is very limited and somewhat confusing, but I was able to successfully run them.  I was particularly interested in the “sdcard” test since that was the one that caused the original code to be erased.  This time the test ran, but also broke my USB LPC-LinkII UCom Port connection to my PC.  This was not the only self-test program to cause this problem.  To regain my connection, I had to power cycle the board, erase its memory and re-load the code again.  A have attached a copy of the selt-test .bin file if needed.  To load the file to the board I used the [GUI Flash Tool] found on the MXCXpresso IDE tool bar.  Remember to erase the board memory first loading the code.


Please let me know if I missed something in the documentation.  Also please pardon my typos.


Gordon Margulieux

Twin Falls, ID USA