Skip to main content

Tips for JLCPCB for PCB manufacturing and SMT assembly

JLCPCB is an offshore (Chinese) low cost quick turn PCB manufacturer that can also perform PCB assembly (SMT components only).

I've had a half dozen or so boards built by them so far and their SMT assembly service has saved me countless hours of populating SMT passives (resistors, capacitors, inductors) under the microscope.

Here are some things I've learned while using jlcpcb that will likely save you a TON of time and effort.

#1. JLCPCB's parts library is NOT the same as LCSC's

JLCPCB (PCB fab + assembly) is related or owned by the same company that owns LCSC (parts supplier, think DigiKey, Mouser, Arrow) BUT JLCPCB's parts library is only a relatively small subset of LCSC parts.

You'll want to search JLCPCB's parts catalog for parts, these are the only ones that JLCPCB can populate on your PCBs.

Don't do what I've done and put together a BOM for a PCB using LCSC parts and then find out that 90% of these parts aren't available for JLCPCB assembly.

#2. Select primary component attributes first to work around JLCPCB's meh parts search

Values are ordered by their alphabetic order, for example, you might get a list of currents like "100mA", then "1A", then "150mA", then "1.5A". This stinks when you'd like to find all parts that can do >=1A.

JLCPCB could use to copy DigiKey's approach as imo they have the best parts search of any online parts supplier, hands down.

With such limited search you'll end up having to look through parts manually. To help keep the number of parts down to a reasonable count you'll want to do things like select the most critical features first, such as the component size. By cutting down the parts to manually review you'll be able to quickly see if you can find a matching component or if you'll have to change a component size or type in order to find a part in the JLCPCB parts catalog.

#3. Parts selection process

The process I'd recommend for parts selection is:

  1. Iterate on design and use DigiKey for initial parts selection
  2. Confirm the part/size can work for you in your layout
  3. Find the JLCPCB component
  4. If no component can be found adjust its size/type and repeat, or fall back to knowing you'll have to hand populate this part.

On a recent board design I had to make a number of parts size/type changes to improve JLCPCB assembly coverage. In other cases I fell back to hand populating the components that couldn't be adjusted.

#4. JLCPCB can NOT DO 0201 do 0201 but has a limited set of passive sizes

edit: JLCPCB let me order a board with 0201 parts on it but kicked it back a few days later after doing their internal design review. Ended up having to adjust 0201 parts up to 0402. It surprised me that they can't do 0201 in 2021 but I wouldn't be surprised if this was something they started doing in 2022, 0201 components are very common on high density boards.

For a recent design I'm trying to fit a ton of stuff into a small board area. Selecting 0201 footprints made the rough layout look pretty good but then came finding parts in the JLCPCB parts catalog...

JLCPCB's catalog has a number of 0201 components but not nearly as many as you'd expect. I ended up having to adjust a number of parts from 0201 up to 0402, and some 0402 components up to 0603. This turned out to be ok as there was extra space on this prototype board, but it did mean a handful of hours both in finding alternative passives with the appropriate specs and in shifting components around to make room.

Keep in mind that it was easy to find almost all capacitors, resistors, and inductors in 0201 size on DigiKey and even LCSC, so this wasn't a case of looking for a magical 100uF 0201 capacitor, JLCPCB has few enough 0201 components that you'll struggle to go 0201 across a board with even a modest part count.

#5. JLCPCB only supports single sided SMT assembly

As JLCPCB only does single side assembly, you'll have to hand assemble through hole components or components you place on the back side of your PCB.

One technique I used for a recent prototype board was to 'unfold' the layout to turn a front/back two sided design into a single sided design.

This approach has some obvious downsides. Your layout and signal routing won't match your production system, and of course via locations are almost certain to change as you won't have to worry about components, signals or vias from the back layer.

Comments

Popular posts from this blog

Debugging an imprecise bus access fault on a Cortex-M3

This information may apply to other cortex series processors but is written from practical experience with the Cortex-M3. Imprecise bus access faults are ambiguous, as noted by the term "imprecise". Compared to precise bus errors, imprecise errors are much trickier to debug and especially so without a deep understanding of arm processors and assembly language. Imprecise and precise flags are found in the BusFault status register, a byte in the CFSR (Configurable Fault Status Register). BusFault status register bits The definition for imprecise and precise bits is: [2] IMPRECISERR Imprecise data bus error: 0 = no imprecise data bus error 1 = a data bus error has occurred, but the return address in the stack frame is not related to the instruction that caused the error. When the processor sets this bit to 1, it does not write a fault address to the BFAR. This is an asynchronous fault. Therefore, if it is detected when the priority of the current pr

Graco Swing By Me - Battery to AC wall adapter modification

If you have one of these Graco battery powered swings you are probably familiar with the cost of C batteries! The swing takes four of them and they only last a handful of days. I'm not sure if the newer models support being plugged into the wall but ours didn't. If you are a little familiar with electronics and soldering, here is a rough guide on how you can modify yours to plug in! I wasn't sure how exactly to disassemble the swing side where the batteries were. I was able to open up the clamshell a bit but throughout this mod I was unable to determine how to fully separate the pieces. I suspect that there is some kind of a slip plate on the moving arm portion. The two parts of the plastic are assembled and the moving arm portion with the slip plate is slid onto the shaft. Because of the tension in that slip plate it doesn't want to back away, and because of the mechanicals that portion of the assembly doesn't appear accessible in order to free it. I was

Memory efficient queuing of variable length elements

In embedded environments memory can be a critical driver of the design of data structures and containers. Computing resources have been expanding steadily each year but there are still a wide range of systems with far less than a megabyte of memory. On systems with tens of kilobytes of memory, structures are often designed to be compact to maximize data density. Rather than splurging on memory aligned elements that would be faster for the processor to access, a developer will typically use types with minimal sizes based on the known range of values that the element is intending to hold. Fixed sized buffers At my day job a fixed size pool of messages was implemented to hold message data. While this achieved one design goal of using statically allocated buffers, avoiding dynamic allocations that might fail at runtime, it isn't efficient if there is a wide range of message sizes. It isn't efficient because each message uses a message buffer. With small message sizes the buff