Home > ARM, Development boards, Reviews > Review: POWERAVR NXP LPC1768 board V2.0+3.2″LCD

Review: POWERAVR NXP LPC1768 board V2.0+3.2″LCD

Name: POWERAVR NXP LPC1768 board V2.0+3.2″LCD
Distributor: WayEngineer
Price: $70

Evaluation Type: Development Board
Application you used the part in: Development/evaluation of the LPC1768 part
Was everything in the box required?: Yes
What were the biggest problems encountered?: Examples only provided for the Keil uVision compiler

Product Performed to Expectations: 10
Specifications were sufficient to design with: 8
Demo Software was of good quality: 8
Demo was easy to use: 10
Support materials were available: 7
The price to performance ratio was good: 9
TotalScore: 52

In this review I will be demonstrating and reviewing the POWERAVR NXP LPC1768 board from WayEngineer. This is a development board for the LPC1768 chip with a huge amount of on board features. The board really gives you some features for a relatively low-cost. In the end you will find my conclusion, whether you should buy this board or not – whether you can use it as a starter board or not.

Video review
To start with please watch the Video review where some of the available demonstration applications are shown.

The board
I have been working with a lot of different ARM boards, so in my mind this evaluation board had some competitors.
I decided to give this board a shot because the list of on-board resources were so great. I was especially excited to know that the board had an on-board programmer (jLink) which makes it easier to get started, as you don’t have to invest in a programmer and debugger.
The board came with a 3.2″ Touch Screen display, a USB cable, an ethernet cable and a 5V power supply. This is pretty normal to development boards, so nothing overwhelming about this.
Though when I started looking at the detailed specifications of the on-board resources I got overwhelmed.

On-board resources

The board includes the following features:

  • LPC1768 Cortex-M3 processor with 512KB FLASH and 64KB SRAM
  • 2x RS232 serial interface
  • 2x CAN bus communication interface (CAN transceiver: SN65VHD230)
  • RS485 communication interface (485 transceiver: SP3485)
  • RJ45-10/100M Ethernet network interface (PHY Ethernet: DP83848)
  • Adjustable potentiometer (connected to AD input)
  • Speaker (connected to DAC output)
  • 3.2″ 320×240 Touch Screen color display
  • USB2.0 interface, USB host and USB Device interface
  • SD/MMC card (SPI) interface (capable of using FAT filesystems)
  • IIC interface (24LC02)
  • SPI serial FLASH interface (AT45DB161D)
  • 3x User buttons + 8x LEDs
  • 4-direction Joystick + Click

The board came pre-programmed with a LCD demonstration, showing how fast the LCD can be updated. Both schematic for the LCD board and the development board itself is provided, which makes it easy to make the low-level drivers, as you which pins is connected to what.
In my opinion the board includes all the necessary resources, for you to be able to test the LPC1768 features completely. I actually can’t come up with a thing that the board is missing – so this is a great sign.

The software
After visiting the WayEngineer website, downloading the ZIP-file, I noticed how many application examples that were actually included and running on the board.
Though as I had a newer version of Keil uVision, not all of the demonstrations would compile. Though most of the times this just required the removal of the chip/system files, as these had to be loaded from the compiler directory instead.
I later discovered that the board had the same connections as the Keil MCB1700. This made it possible to use the examples located in the Keil examples folder, for that specific board. It just required some minor changes:

  1. The LCD files should be replaced by the one from a WayEngineer example (GLCD_SPI_LPC1700.c etc.)
  2. The LED initializing and controlling part should be changed, as the LEDs isn’t connected in the same way
  3. If Analog inputs are used in the example this has to be fixed too, as in the Keil examples, the used Analog inputs are on one of the same pins as the LCD data bus.

Unfortunately as all of the examples is using the Keil uVision compiler, you have to download a use the evaluation period to test some of the examples (as they exceed the Lite version limit).
It would have been good if they had made a couple of demonstrations for the free GNU GCC compiler.

Regarding the Keil uVision everything works great. The On-board programmer and debugger integrates nicely with the Keil enviroment – so it is very easy to program and debug your application.
In the beginning though I had some problems getting Keil to recognize and program my board, without giving me some kind of error. I fixed this by doing the following steps in each project:

  1. Go to “Option for Target ‘…'” or press Alt+F7
  2. Go to ‘Utilities’
  3. Set programmer to “Cortex-M/R J-Link/J-Trace”
  4. Click ‘Settings’ and then click ‘Add’
  5. Find “LPC17xx IAP 512KB Flash”
  6. Click ‘Add’ to confirm the selection
  7. Finally tick ‘Program’, ‘Verify’ and “Reset and run”
  8. And check “Erase full chip”

Pros and Cons

  • Great number of on-board resources
  • On-board USB programmer and debugger


  • LEDs are connected to the same bus as the LCD
  • LCD is actually 16-bit, but is connected to the microprocessor thru an 8-bit latch – so speed is limited
  • Application examples only provided for the Keil uVision compiler. No examples for either IAR or the free GNU GCC

This development board is great way to get started using the NXP LPC1768 chip. It includes a great number of on-board resources, and there are at least ONE example for all of them. This makes it easy to get started developing your own applications, especially if you are a beginner, as you can just cut and paste from the different examples.
The price is low-cost compared to all the features you get. And as the board also includes the 3.2″ Touch Screen display, I think it’s a bargain. The Keil MCB1700 costs around $375 USD, and it includes less features than this.
So if you can accept that the board is made in China, you get a high-end development board for a low price of $70.

To get the standard Keil MCB1700 running on this board you need to change the GLCD files and other stuff like LEDs and ADC. I have uploaded the modified LCD_Blinky example to show you the required changes.
Modified LCD_Blinky for MDK-ARM >= V4.21
Modified LCD_Blinky < V4.18

Categories: ARM, Development boards, Reviews Tags:
  1. Wim
    September 8th, 2012 at 17:39 | #1

    I think you have to press Key 2 (P2.12) to enter USB bootloader.

  2. November 16th, 2012 at 10:33 | #2


    i’m working on same board MCB 1700, we are starting on TCP/IP communication part, i don’t know how to start? will u please guide me on this topic.


  3. November 17th, 2012 at 00:22 | #3

    Dear Sumithra.
    Have you had any chance to look at the examples that is provided and comes with the board?
    Examples, including TCP/IP web server demonstration, can be downloaded.
    In our case with this board, which is similar to the MCB1700 you are using, different example projects could be downloaded from the following link: http://www.wayengineer.com/download/boardata/POWERAVR-LPC1768.zip

    I hope these examples can give you a better starting point for your project.

    Best Regards
    Thomas Jespersen

  4. November 17th, 2012 at 08:23 | #4

    Thanks for your fast reply…

  5. November 23rd, 2012 at 05:22 | #5

    hi, i have some files which support keilMDk 2 & 3 but i have keilMDK 4.1v, i want to compile those files in keilMDK 4.1v what i need to do? i want TCP/IP protocol FTP sample code for MCB1700 board. please guide me.


  6. November 23rd, 2012 at 05:33 | #6

    I downloaded from that link, it contains projects which support Keil mdk2 &3 version but i have version 4.12, i can’t able to check it up please give solution for this….


  7. November 25th, 2012 at 14:11 | #7

    Hi both of you.
    One solution I found to the problem was to use an original MCB1700 example provided with Keil, for the version you have, as a reference for “porting” the projects from the ZIP file to the never Keil version.
    You should simply move and copy the code but remember to let the linker files and device periphiral drivers stay.

    Have in mind that the initialization routines should be changed to match any changes to the Keil compiler structure -- but only if any compiler errors appear when you have merged the ZIP file project into an original Hello World MCB1700 project.

    Regards Thomas

  8. November 28th, 2012 at 06:21 | #8

    I need more memory for my LPC 1768 project. Can I add 4M of E2PROM for LPC 1768? If yes, can I use external E2PROM in the same way as internal SRAM?


  9. Syri
    November 28th, 2012 at 19:25 | #9

    Dear Tomas,

    I watch your video, and I must say that is a good tutorial.
    From the examples of WayEngineer, I compile the project EasyWEB, and nothing happens with that ip address who is in the tcpip.h module.
    Can you provide the project from your video presentation for EasyWEB ?


  10. November 29th, 2012 at 11:25 | #10

    I want upload images on to the GLCD (MCB 1700 board), any software which support GLCD
    Please guide me…


  11. February 3rd, 2013 at 21:25 | #11

    Hi Rose.

    You can’t add and use an EEPROM as the same way as you do with the internal SRAM. And this has never been the intentions of an EEPROM either.

    An EEPROM is usefull for saving configuraiton parameters etc. that won’t be changed a lot, as the EEPROM has a limited number of erase cycles together with the relatively slow time it takes to execute a write cycle.

  12. murat
    March 23rd, 2013 at 16:12 | #12

    I am so regretful for purchasing this development board because all documentaion is not English , almost all is chinese . I think , if you plan to sell a divice all world , you must use international language . But producer does not use . Because of this problem , I can not develop my project. For example , I can not success that a image is shown to GLCD

  13. March 23rd, 2013 at 18:34 | #13

    I would definitely say that it depends. Usually we won’t even read the documentation/manual as long as we have a schematic and some demonstration code.
    For this development it comes with both, and you can even also use some of the example projects provided by Keil Uvision for the board.

    So of course we are sorry to hear that you haven’t managed to get your board working, but I would not solely blame the missing English manual for that.

  14. murat
    March 24th, 2013 at 22:36 | #14

    @Thomas Jespersen
    you said that “So of course we are sorry to hear that you haven’t managed to get your board working, but I would not solely blame the missing English manual for that.”

    I guarantee you my background so well , and all program examples are good and I use them always , but I trouble glcd becuse there is no any explanation about glcd , header , c , or image2lcd program .

  15. March 24th, 2013 at 23:07 | #15

    Well, the example projects I’m showing you in the video uses the GLCD -- and those are examples from the Keil MCB1700 examples folder, just modified slightly to work on the GLCD of this board.

  16. murat
    March 25th, 2013 at 00:36 | #16

    @Thomas Jespersen

    I want to ask a question , how to use image2lcd program I mean that which option I should use to use image file in the your example . Thanks ..

  17. March 26th, 2013 at 19:31 | #17

    Inside the LCD_Blink example fx you will find a Bg_16bpp_b.c file etc. This is an image file that can be displayed with the GLCD_Bmp(x, y, w, h, *bmp) function.

    You should actually be able to use the image converter I have made, except for some minor changes you will need to make after the file has been generated.
    Here you can download our Binary Image Creator

    When you start the program you should can open any JPEG or BMP file.
    Press the “Save Binary Image File” and select a location for the generated header file.

    1. When the file has been saved you should first rename it from ‘.h’ to ‘.c’.
    2. Inside of the file you should remove the 4 first items of the array
    3. Finally you should change the array naming line to the following sequence

    unsigned char your_image_name[] = .....

    Then you should be able to display the image by calling

    GLCD_Bmp(x, y, image_width, image_height, your_image_name)
  18. murat
    March 26th, 2013 at 21:25 | #18

    @Thomas Jespersen

    thanks so much , but again ı was unsuccesfull . I follow your step explained me but image is not displayed .

    I use the LCD_Blink example Bg_16bpp_b.c file ,this time image is displayed .

  19. murat
    March 26th, 2013 at 21:33 | #19

    @Thomas Jespersen

    I think that problem is my image because they are not form 16 bpp . I can found any converter to image this form . can you share with me if you have such a converter ?

  20. March 26th, 2013 at 21:35 | #20

    You should download and use our Binary Image Creator as described in the post above.
    It can be downloaded here: http://www.tkjelectronics.dk/uploads/BinaryImageCreator.exe

  21. murat
    March 26th, 2013 at 22:01 | #21

    @Thomas Jespersen

    I already use your Binary Image Creator and I follow your step that you was explained me ,but image is not displayed .
    I think that problem is my image because they are not form 16 bpp . They are almost 32 bpp I can not find any converter to image this form .If I can find converter my image to 16 bpp format,then I can use your Binary Image Creator to create c file and image can be displayed.

    can you share with me if you have such a converter ?

  22. March 26th, 2013 at 22:05 | #22

    The Binary Image Creator I have made converts the chosen image to the required 16-bit format, so there should be no issue there.
    Then I don’t know which kind of image converter you can use to generate proper formatted images.

  23. murat
    March 26th, 2013 at 22:24 | #23

    @Thomas Jespersen

    can you send me a image that is dispayed by you ? and how you showed it explain me ?
    If you sen me ,I can try on this image .


  24. masaro
    December 3rd, 2013 at 18:57 | #24


    do you check your GLCD lib in Vertical mode?

    when i use it in this mode (HORIZONTAL 1) it doesn’t work correctly!


  25. Flee
    December 4th, 2013 at 05:41 | #25

    http://www.tkjelectronics.dk/uploads/BinaryImageCreator.exe is broken. Would you please send me a copy of your BinaryImageCreator please? I would like to know how to use and what the formula for converting used.


  26. January 18th, 2014 at 10:44 | #26

    Hi Flee.
    The download link should be fixed again now. Can you please try and download it again?
    In general what the converter does, is to take and read every pixel from the image and convert them to 16-bit (2 bytes) color codes. These color codes are then written in the correct order into, ready to display.
    The formula for finding the 16-bit color value from a 24-bit RGB color code in the RGB565 format that is used for this display, is:

    ColorValue = ((RED >> 3) << 11) | ((GREEN >> 2) << 5) | (BLUE >> 3);

    Regards Thomas

  27. Salar
    January 22nd, 2014 at 19:48 | #27

    Thanks for this fantastic information,helped me a lot.

  28. Salar
    January 22nd, 2014 at 19:51 | #28

    How can I change LCD to vertical mode?

  29. January 23rd, 2014 at 18:11 | #29

    It is not that easy to do with the current LCD library.
    First of you would have to send some changed parameters to the LCD to change the orientation. But furthermore you would also have to change the way the library writes to the display and sets the cursor.

  30. April 5th, 2014 at 06:04 | #30

    please guide me..
    how to connect hayperterminal and lpc1768 m3 board.can you send me example code..

  31. May 23rd, 2014 at 22:02 | #31

    You need a USB to RS232 adapter to connect the UART port of the board, to your computer, and read it with HyperTerminal or similar.
    Example projects for using the UART port can be found within the Example CD zip file: POWERAVR-LPC1768.zip

    Regards Thomas

  32. diganth
    February 24th, 2015 at 07:40 | #32


    I m trying to read and write files from SD card .. using keil uvision 4 and LPC 1768 is the device.. i downloaded example code from keil mcb1700_sd_file but it is not compiling giving errors.. can u please provide me a code to read/write SD card using LPC1768

  33. March 1st, 2015 at 00:59 | #33

    It is quite a while ago since I’ve worked with the development board.
    Please have a look at ChaN’s FAT library for the LPC17xx family as it includes an example for the LPC1768: http://siwawi.bauing.uni-kl.de/avr_projects/arm_projects/arm_memcards/#chanfat_lpc_cm3

  34. May 6th, 2015 at 09:59 | #34

    Hello.. I don;t get this procedure as I was trying to replace the rotating “ARM” animation…

    Picture conversion procedure:
    1. Convert picture to 16 BPP (R -- 5bits, G -- 6bits, B -- 5bits)
    2. Remove header from bmp by hex editor, remaining file size should
    be equal to (width * height * 2) bytes
    3. Convert prepared file without header to C array

    How do we go about this animation exactly.. any rules we need to follow?
    if (pic++ > 8) pic = 0; // i am guessing its n 8 array of image in 1
    LCD_Bmp (99, 165, 120, 45, &ARM_Ani_16bpp[pic*(120*45*2)]); // i am lost here

    i was just replacing the original ARM_Ani_16bpp file with some sprite i took from the net.. i was expecting that the display above will actually gives some cuts of the whole image.. guess m still a newbie..
    Thank you Thomas

  35. May 6th, 2015 at 22:01 | #35

    @Firdouz Bahtiar
    The ARM_Ani_16bpp array contains all the 16-bit pixel data for all 8 images which the animation consists of. The picture is 120x45 pixels hence the array notation [pic*(120*45*2)].
    By doing this it will jump to the next image in the animation indicated by the index ‘pic’.
    So you would need to create eight 120x45 images, convert them to a 16-bit C-array and then append them all together.

  36. Douglas Moncada
    June 2nd, 2015 at 05:19 | #36

    Hi Thomas , to compile in keil and press load , the message ” core is locked ” is displayed. Originally the card was bringing Micrium loaded operating system. As this Micrium is removed so it can be programmed ?

  37. June 12th, 2015 at 09:48 | #37

    @Douglas Moncada
    Core is locked could potentially mean that the device has been write protected. In this case you would need to open your JTAG programming environment and force an unlock of the device, usually by executing a Full Erase.

  38. Mohammad Yosuefi
    June 21st, 2015 at 06:57 | #38

    Hi. Thanks for the amazing video demonstration. where can I download the example of the board (because it didn’t ship with the board) and also I’m having a problem after updating the firmware of the board (http://forum.segger.com/index.php?page=Thread&threadID=2467) ?

  39. June 21st, 2015 at 10:50 | #39

    @Mohammad Yosuefi
    In the bottom of the store page for the board you can find a download link for examples and materials: http://www.wayengineer.com/download/boardata/POWERAVR-LPC1768.zip

  40. Alex
    July 24th, 2015 at 09:49 | #40

    people pls HELP !
    i have a Landtiger lpc1768.
    BUT i cant program it, what i mean..i am trying to program it with some examples like blinky but when i press load button from μVision i got some errors.
    why is that ? because i CANT find this “Cortex-M/R J-Link/J-Trace” and i cant find this “LPC17xx IAP 512KB Flash”
    i dont know i searched a lot but in debug and on utilities settings there are not optios like this to add or to choose :( what can i do guys ? this is a big problem because i cannot even start with something :(

Comment pages
1 2 1323
  1. March 23rd, 2013 at 22:02 | #1