I had some design updates for “Rev B” of my Mini-Monkey design that I wanted to get in the "queue" for testing. For the next revision, I wanted to try PCB:NG for the board fabrication and assembly. PCB:NG is an “on-demand” PCB assembly service focused on turnkey prototypes via simple a web interface. The pricing looked attractive and it appeared that the Mini-Monkey fit within their standard design rules. The Mini-Monkey design uses an NXP LPC55S69 microcontroller that is in a 0.5mm pitch VFBGA98 package. NXP offers guidance on how to use this device with low-cost design rules and I thought this would be a great test for PCB:NG. I had success with Rev A at Macrofab and thought I would give PCB:NG a shot.
Getting your design uploaded is straightforward with PCB:NG. You can upload your Gerber files and get a preview of the PCB. As you move through the process, the web interface will give you an updated price:
Figure 1: PCB:NG Gerber Upload
The online PCB:NG interface includes a Design For Manufacture (DFM) check. The check is exhaustive and includes all the common DFM rules such as trace width, clearance, drill hits etc. In my case, I had some features that violated minimum solder mask slivers and copper to board outline clearances. The online tool allows you to “ignore” DFM violations that may not be an issue. I was able to look through all the violations and mark which ones were of no concern.
Once the Gerber files are uploaded, you can add your parts and as well as the pick/place data. The PCB:NG interface will show you part pricing and availability as soon your Bill of Materials (BOM) is uploaded. You have the option to mark parts as Do Not Place (DNP) if you do not want them populated. In my case, I had 2 components on the Mini-Monkey BOM (a battery and a display) that I did not include as they required some manual assembly steps that I was going to perform once I had the units in hand.
Figure 2 : PCB:NG BOM Upload
Along with the BOM, you must upload XYRS placement data. The XYRS data can be combined in the spreadsheet file used for the BOM. The PCB:NG viewer will also show you where it thinks all the placements are and can make manual adjustments if necessary.
Figure 3 : PCB:NG Part Placement Interface
I had placed my order on 2020-06-10. Throughout the process, PCB:NG sent email updates when materials were in house, when production started, etc. I did have to send in a note that one of the parts (a MEMs microphone) was sensitive to cleaning processes. I received a response the same day noting the exception (PCB:NG uses a no-clean process) and they would add the part to their internal database of exceptions.
I had placed the order when they were in the middle of some equipment upgrades. When I checked the price a few day ago I found that it was lower ($ 380 vs $496) after the new process upgrades. I consider the service a huge value given that they handle some potentially difficult parts. Getting the BGA packages microcontroller and the LGA packaged MEMs soldered professionally was well worth the price. The boards shipped out 2020-06-29. It was a bit longer than the published lead time but communication during the process was good. I think I caught the team in the middle of some equipment upgrades which may have delayed things a bit. PCB:NG took some extra time to get me photos from the X-tay inspection of the BGA and LGA parts. Getting these photos was well worth the wait!
Figure 4: LPC55S69 VFBGA98 Post Assembly X-ray - View 1
Figure 5: LPC55S69 VFBGA98 Post Assembly X-ray – View 2
Figure 6: MEMS Microphone (LGA) Post Assembly X-ray
As you can see of the X-ray images, the solder joints were good. It was also cool seeing the via structures in the PCB and bond wires in the IC packages. You can even see tiny little via structures in the VFBGA98 package itself. How did the build turn out? Here is a video of the Mini-Monkey Rev B:
The experience with PCB:NG was excellent. The boards turned out a great and I was able to test all my changes quickly. Having someone else handle part procurement and assembly is a huge value to me as it allows me to focus on other aspects of the design such as firmware develop for the board bring-up. One possible improvement with the online PCB:NG interface would be to be able to submit ODB++ or IPC-2581 data. These formats bake in more information and could really streamline design upload. I will certainly be using PCB:NG in the future for my prototypes. The on-demand model is helpful, especially when you are busy and need to get some help accelerating your development efforts.
Onward to Revision C! I think I may add eMMC storage and improve the battery circuit. If you want to see the current raw design files, they are available on BitBucket in Altium Designer format.
The Mini-Monkey is now officially “out the door”. I just sent the files to Macrofab and can’t wait to see the result. Before I talk a bit about Macrofab, we will look at what going to get built. A few weeks ago, I introduced a design based upon the LPC55S69 in the 7mm VFBGA98. The goal was to show that this compact package can be used with low cost PCB/Assembly service without having to use the more expensive build specifications. The Mini-Monkey board will also be used to show off some of the neat capabilities of the PowerQuad DSP engine in future design blogs. Here is what we ended with for the first version:
Figure 1. Mini-Monkey Revision A
Lithium-Polymer battery power with micro-USB Charging
High-speed USB 2.0 Interface
SWD debug via standard ARM .050” and tag-connect interface
3 push buttons. One can be used to start the USB ROM bootloader
External Power Input
11 dedicated IO pins connected to the LPC55S69. Functions available:
Dedicated Frequency Measurement Block
State Configurable Timers (Both input and output)
Additional ADC Channels
The HS-SPI used for the IPS display is also brought to IO pins
I am a firm believer in not trying to get anything perfect on the 1st try. It is incredibly inexpensive to prototype ideas quickly so I decided to try to get 90% of what I wanted in the first version. As we will see, it is inspesive to iterate on this design to work in improvements. Without too much trouble, I was able to get everything I wanted on 2 signal layers with filling in a power reference on the top and bottom sides. If this was a production design, I would probably elect to spend a bit more to get two solid inner reference planes by using a 4-layer design. Once a design hits QTY 100 or more, the cost of using a 4-layer stack-up can be negligible. A 4-layer stack-up makes the design much easier to execute and compliant with EMI, RFI requirements. For most of my “industrial” designs where I know that it won’t be high quantity, I always start at 4-layer unless it is a simple connector board.
For this 1st run, I wasn’t trying to push the envelope with how much I could get done with low cost design rules and a 2-layer stack-up. The VFBGA leaves quite a bit of space for fanning out IO. Quite a bit can be done on the top layer without vias. I had a few IO that ended up in more difficult locations, but routing was completely quickly.
Figure 2. Mini-Monkey VFBGA Fanout
As you can see, I did not make use of all the IO. If I had used a 4-layer board I would be simpler to get quite a bit more of the IO fanned out. Moving to smaller vias, traces and a 4-layer stack-up would probably allow one to get all IO’s connected. For this design, I was trying to move quickly as well as use the standard “prototype” class specs from Macrofab. This means 5 mil traces, 10 mil drills with a 4-mil annular ring. If you can push to 3.5mil trace/space, NXP AN12581 has some suggestions.
I did want to take a minute to talk about Macrofab. I normally employ the services of a local contract manufacturer but this time I elected to this online service a try. After going through the order process, I must say I was thoroughly impressed! The 1st step is to upload your PCB design files. I use Altium Designer PCB package and Macrofab recommends uploading in OBD++ format. Since this format has quite a bit more meta-data baked than standard Gerbers, the online software can infer quite a bit about your design.
Figure 3. Macrofab PCB Upload
The Macrofab software gives you a cool preview of your PCB with a paste mask out of the gate. Note that this design is using red solder mask as that is what is included in the prototype class service. Once you have all the PCB imported, you can now upload a Bill of Materials (BOM).
Figure 3. Macrofab BOM Upload
Macrofab provides clear guidance on how to get your BOM formatted for maximum success. Once the BOM is uploaded, the online tool searches distributors and you can select what parts you want to use. The tool also allow one to leave items as Do No Place (DNP). I was impressed that it found almost everything I wanted out of the box. Pricing and lead time are transparent.
Next up is part placement:
Figure 4. Macrofab Part Placement
Using the ODB++ data, the Macrofab software was able to figure out my placements. I was thoroughly impressed with this step as it was completely automatic. The tool allows you to nudge components if needed. Once placements are approved, the tool will give you a snapshot of the costs.
Figure 5. Cost Analysis and Ordering
What I liked here was how transparent the process was. Using the prototype class service, a single board was $152. This is an absolute steal when you consider that all the of the setup costs, parts and PCBs are baked in. If you consider the value of your time, this is an absolute no brainer. I also like that it gives you a cost curve for low volume production. In the future, I am going to have a hard time using another service that can’t give me much data with so little work.
I ended up ordering 3 prototype units. Total cost plus 2-day UPS shipping was $465.67. Note, I did end up leaving one part off the board for now: the 1.54” IPS display. This part requires some extra “monkeying” around as it is hot bar soldered and needs some 2-sided tape. I decided to solder the 1st three prototypes on my bench to get a better feel for the process of using this display. However, I am more than happy to push the BGA and SMT assembly off to someone else.
It looks like board are going to ship on the 1st of May. I’ll post a video and update when they come in. So far, the experience with Macrofab has been quite positive and I am eager to see the results. Once I get the design up and running, I’ll post documentation to bitbucket.
Now that we have discussed the LPC5500 series at a high level and investigated some of the coolfeatures, it is time to roll up our sleeves work on some real hardware. In this next series of articles, I want to step through a simple hardware design using the LPC55S69. We are going to step a bit beyond the application notes and going through a simple design using Altium Designer to implement a simple project.
Many new projects start with development boards (such as the LPC55S69-EVK) to evaluate a platform and to take a 1st cut at some of the software development work. Getting to a form-factor compliant state quickly can just as important as the firmware efforts. Getting a design into a manufacturable form is a very important step in the development process. With new hardware, I like to address all of my “known unknowns” early in the process so I almost always make my own test PCBs right away. The LPC5500 series devices are offered in some easy to use QFP100 and QFP64 packages. Designers also have the option of a very small VFBGA98 package option. Many engineers flinch when you mention BGA, let alone a “fine pitch” BGA. I hope to show you that it is not be bad as you may think and one can even route this chip on 2 layers.
Figure 1. The LPC55S69 VFBGA98 Package. QFP100 comparison on the bottom.
The LPC55S69 is offered at an attractive price but packs a ton of functionality and processing power into a very small form-factor that uses little energy in both the active and sleep cases. Having all of this processing horsepower in a small form-factor can open new opportunities. Let’s see what we can get done with this new MCU.
The “Mini-Monkey” Board
In this series of “how to” articles, I want to step through a design with the LPC55S69 in the VFBGA and *actually build something*. The scope of this design will be limited to some basic design elements of bringing up a LPC55S69 while offering some interesting IO for visualizing signal processing with the PowerQuad hardware. Several years ago, I posted some projects on the NXP community using the Kinetis FRDM platform. One of the projects showcased some simple DSP processing on an incoming audio signal.
The “Monkey Listen” project used an NXP K20D50 FRDM board with a custom “shield” that included a microphone and a simple OLED display. For this effort I wanted to do something similar except using the LPC55S69 in the VFBGA98 package with some beefed-up visualization capabilities. There is so much more horsepower in the LPC55S69 and we now have the potential to do neat applications such as real time feature detection in an audio signal, etc. Also given the copious amounts of RAM in the in the LPC55S69, also wanted to step up the game a bit in the display. The small VFPGA98 package presents with an opportunity to package quite a bit in a small space. So much has happened since the K20D50 hit the street!
I recently found some absolutely gorgeous IPS displays with a 240x240 pixel resolution from buydisplay.com. They are only a few dollars and have a simple SPI interface. I wired a display to the an LPC55S69-EVK for a quick demonstration:
Figure 2: The LPC55S69EVK driving the 240x240 Pixel 1.54” IPS display.
It was difficult for me to capture how beautiful this little 1.54” display is with my camera. You must see it to believe it! Given the price I figured I would get a boxful to experiment with for this design project!
Figure 3: 240x240 Pixel 1.54” IPS display from buydisplay.com
The overarching design concept with the “mini-monkey” is to fit a circuit under the 1.54” display that uses LPC55S69 with some interesting IO:
LIPO Battery and Charger circuitry
Digital MEMs microphone
Access to the on-chip ADC
I want to pack some neat features beneath the screen that can do everything the “Monkey Listen” project can, just better. With access to the PowerQuad, the sky is the limit on what kinds of audio processing that can be implemented. The plan is to see how much we can fill up underneath the display to make an interesting development platform. I started a project in Altium designer and put together a concept view of the new “Mini-Monkey” board to communicate some of the design intent:
Figure 4: The “Mini-Monkey” Concept PCB based upon the LPC55S69 in the VFBGA98 package
While this is not the final product, I wanted to give you an idea of where I was going. The “Mini-Monkey” will be a compact form fact board that can be used for some future articles on how to make use of the LPC5500 series PowerQuad feature. There will be some extra IO made available to enable some cool new projects to showcase the awesome capabilities of the LPC55S69. Got some ideas for the "Mini-Monkey"? Leave a comment below!
In the next article we will be looking at the schematic capture phase and how we can use NXP’s MCUXpresso SDK to help automate some of the work required in Altium Designer. I will be showing some of the basic elements to getting an LPC55S69 design up and running from scratch. We will then look at designing with the VFBGA98 package and get some boards built. I hope I now have you interested so stay tuned. In the meantime, checkout this application note on using the VFBGA package on a 2-layer board:
LPCXpert V3.4 is the latest release of a freeware expert tool for the CORTEX-M based LPC families of microcontrollers. This tool simplifies the selection of a MCU device, speeds up the creation of application code and initialization code and supports generation of an application specific schematic Symbol. This version supports more than 410 different CORTEX-M based micro controllers from NXP.
LPCXpert supports all phases of a development. During the MCU selection phase LPCxperts supports selection of a target MCU by providing selection features in the "MCU Select" tab. During the software implementation phase LPCXpert provides a graphical user-interface to configure the pinout (Pin-MUX) and the peripheral interfaces of the target device. LPCXpert then also generates projects providing a framework of reference applications. These applications configure the Clock Generation Unit (CGU) and the on-chip peripheral interfaces of the device to test and demonstrate the setup.
New and enhanced features include support for LPCopen software package from NXP. Features also include generation of a Schematic Symbol for the ALTIUM Designer and the CADSOFT EAGLE V6.2 and generation of projects for the NXP LPCXpresso and MCUxpresso IDE, IAR Embedded Workbench (EWARM), Keil µVision and GNU C-Compilers, as well as links to Internet Sites for additional information.
Using LPCXpert it is possible to set the pins of each peripheral (i.e. for SPI, CAN., I2C, EMC, ETH, ...) and to configure the features of each pin (Pull-Up, Pull-Down, ...). In addition LPCxpert V3.4 also supports configuration of pre-built demo code for the LPC8xx and LPC54xxx Families of MCUs.
Based on the configuration LPCXpert may generate a C-Code Project or a Schematic Symbol. In addition LPCxpert saves up to 8 different pin-mux configurations and restore from up to 10 different configurations. Additional Information and the download is available from the following Web-Site:
NXP is working with leading partners in embedded graphics to offer you a series of free webinars about how to design and implement a high performance, cost effective GUI on the LPC546xx family. The seminars start on Feb16th, and run through April. Registration is open now:
LPCXpert V3.3 is the latest release of a freeware expert tool for the NXP CORTEX-M based LPC families of microcontrollers. This tool simplifies the selection of a MCU device, speeds up the creation of application code and initialization code and it supports generation of an application specific schematic symbol.
This version supports about 400 different CORTEX-M based micro controllers from NXP.
LPCxpert supports all phases of a development. During the MCU selection phase LPCxperts supports selection of a target MCU by providing selection features in the "MCU Select" tab. During the software implementation phase LPCxpert provides a graphical user-interface to configure the pinout (Pin-MUX) and the peripheral interfaces of the target device. LPCxpert also generates a framework of executable code that configures the Clock Generation Unit (CGU) and the peripheral interfaces of the device.
New and enhanced features include support for LPCopen software package from NXP. Features also include generation of a Schematic Symbol for the ALTIUM Designer and the CADSOFT EAGLE V6.2 and generation of projects for IAR Embedded Workbench (EWARM), Keil µVision and GNU C-Compilers, as well as links to Internet Sites for additional information.
Using LPCXpert it is possible to set the pins of each peripheral (i.e. for SPI, CAN., I2C, EMC, ETH, ...) and to configure the features of each pin (Pull-Up, Pull-Down, ...). In addition LPCxpert V3.2 also supports configuration of pre-built demo code for the LPC8xx and LPC54xxx Families of MCUs.
Based on the configuration LPCXpert may generate a C-Code Project or a Schematic Symbol. In addition LPCxpert saves up to 8 different pin-mux configurations and restore from up to 10 different configurations.
Additional Information and the download is available from the following Web-Site: