Tuesday, January 14, 2020

Helper Boards--JLCPCB/LCSC Assembly Service--Useful?

How many times do you use the same fragment in circuits over and over? Buffers, power conditioners, 5V to 3.3V converters, on and on?  I do!

To this end I have bought a lot of "micro-PCBs" from the likes of Adafruit, Sparkfun and their many Chinese clone counterparts. These manufacturers capture an oft-repeated circuit fragment on a small PCB and most often expose the I/O with 100mil pins and/or wirepads for easy hookup.

Drop the fragment onto your breadboard, perf it, patch it, jam it onto an Arduino somehow--get your pet hamster write the code using the I2C library--viola! You have a working DIY circuit.

Two personal favs of mine are Adafruit's 3502 digital pot:

and Sparkfun's MCP4725 board (you can get clones)

But I can't find every "PCBhelper board" out there I wanted. This is DiWHY: I made some I couldn't find elsewhere myself....

Always up for a challenge, I used something new: JLCPBC/LCSC's SMT board assembly service: info on their site is here.  Sadly the description of their own service was a bit confusing to me at first;
Alas, that's why there are vids!!

Take a look here and here. Clear descriptions of what the service is, when to use it, and how to make it go.

LETITB, JLC? At the face of it, this sounds like a great thing: send JLCPCB a gerber, a BOM and a pick list, and they charge you very (very, very) low bucks to make small quantities of your PCB. And best of all, they use their robots for SMD placement so you don't have to solder in incredibly small components and go blind + get lead poisoning in the process.

Hard to believe they can do this in the really small quantities we DIYers need, but it seems like they can.

Further into it: All the vids I can find use JLCPCB's sister schematic capture program, EASYEDA, to design the PCB and schemo. Good tutorial vid is here--electronoobs always sounds to me like a 33 record at 45, but I really like his vids.

OK, path of least resistance: learn EasyEDA. OK, I have been messing around with it the past few weeks; it's a bit different than Eagle, which i feel I know pretty well, but in the end basic EasyEDA wasn't that hard to learn.

A few of the big differences:

  • For EasyEDA, you put through-hole wire pads on at the PCB level.  Not with Eagle--you have to put wire pads (including through hole) on when designing the schematic. This threw me for a bit.
  • (Do you feel OK with someone else having all your designs on their server? If you use the EasyEDA app for chrome, you will. For what I do--whatever. But for you?)
  • I found myself renaming nets in EASYEDA a lot. In Eagle, a lot of that work is done for you and Eagle almost always gest it right. In EasyEDA if you don't name your nets carefully and consistently things may not hook up in the PCB design, or worse yet, may not work when you get your PCB back.
  • EasyEDA has a feature where you can click on a net in PCB view and see all the traces and components on the net. Very nice. If Eagle can do that, I don't know how!
OK with your finished EASYEDA design in hand you create the Gerber, BOM, and pick and place file; then upload it all to JLCPCB for fab. JLCPCB's on vid on the whole process is here. Still a bit hard to understand, but you get the idea; again, vids I liked for this are here and here

So for me, first off, I wanted to fab the gate buffer I use all over the place--I used this extensively my gate delay project for instance. This is the same circuit fragment that buffers gate-ins for most of the classic ADSR designs' gate-ins I've seen. It allows you to trigger an event from anything above a diode drop without risking blowing things up since the NPN transistors do the work. Simple stuff.  You can have VCC match the desired voltage at output, or add a resistor from the output to ground to adjust the output voltage to your liking--so, 10K would drop the voltage to (1/2 * VCC).

OK, I designed this (easy enough) and sent it out.  What I got back looked like this:

Then stuffed finished boards from JLCPCB assembly service cost me about $9 (stuffed, done; this was a sale price, but they often have  deals) for quantity 10, before shipping. Unbelievable!

Wait it didn't work!

That's OK, kludging messed up PCBs is how I roll. I hunted the issue down to a misnamed NET in EasyEDA.  Too easy to do. Lesson: When you design in EasyEDA, go through all your nets before going to fab and make sure things look the way you want.

For me, friendly 24 gauge kludge wires saved the day, but hey, it's Not Pretty:

JLCPCB allows small quantities, but you still need to buy 5 minimum, I got ten, nine here? and I fixed every damn one of them. The through hole R on the right sets the output V to 5V above ground.

Second: designed a quad unity gain buffer with optional zeners. I use this for most analog ins to MPUs, so 4x CVs to Arduino analog inputs. Arduinos don't like to see analog inputs far above V+ (here) so this fragment protects the MPU's analog ins from getting blown up.  And for modular synth designs you probably want to buffer all circuit inputs anyway, so there you go.

Got that back--it works! Here's what I ended up with. The "placeholders" on the left are for the zeners (you'd use 5.1V or 3.3V zeners probably,depending on your MPU's requirements); you could also drop 100K resistors here to make sure the JFET IC input really sees voltage. And the unpopulated spots on the right are for resistors if you need to divide the output V's.

The board could be made much smaller, but for an early effort, i am pretty happy with this one.

A pointer I don't think is in the vids: You need to use "basic" vs. "extend" components when choosing parts for your assembly. JLCPCB requires no more than 10 extended parts per design I am told--and "extend parts" are much more expensive to place vs. basic. OK, but if you look over LCSC's assembly library, that limits you to only a handful of parts (for instance, I couldn't find a .1uF 0402ish coupling cap that was "basic"--only "extend"--and that's a part we always use, over and over, in everything, right?) So you will probably choose values for your SMD components based on LCSC/JLCPCB's availability, not on the size and value in a perfect world you'd like to use. First world problem! and it's OK--most circuit values can be futzed and changed and your design will be fine. But it's an interesting limitation--a challenge!

Now let's get more ambitious: a unity gain buffer board to accommodate a THONK 3.5jack. Includes 2 through hole resistors to boost the output gain (or solder in jumpers for unity gain).

To make things harder, I designed and panelized this in Eagle, panelized so it was big enough for the assembly robots, and then followed JLCPCBs instructions here to generate the BOM and pick list.

Bad news: So far this one doesn't work at all--except for the IC's, JLCPCB keeps saying they can't find the parts needed for assembly.

OK, probably on my end?  Dunno.

I have gone over the BOM and Pick list several times, and have been back and forth with JLCPCB. So far they have been good about emailing me for support, but still, no love.

Problem? Comparing the examples between how JLCPCB says an assembly pick list should look and how it looks when EasyEDA generates it is so dissimilar that really I don't know what the hell is going on.  Check this out:

The top example mimics what JLCs docs say the pick needs to look like in their docs, here.

The bottom is what EasyEDA generates.

The top example doesn't work; the bottom does, and obviously they are nothing alike.

Hello? CNSA we have a problem!  Whatever. Done with trial and error on this one; I have emailed JLCPCB again and will update this post if and when this gets sorted.  UPDATE: 1-23-20 assembly service using EAGLE and the guide here doesn't work, but JLCPCB is really doing the damn best to help me. They have emailed me several times and are reviewing the PICK files etc. to see why this is foobaring. Hopefully will get this wrapped up.

I guess in the meantime I'll use EasyEDA for schematic capture, but getting Eagle to work would be a real score....and, well, whatever.

Until then, don't breathe the fumes--good advice? you might get 0402 parts up your nose and no one, I mean NO ONE, wants cap coupled snot chunks. Gesundheit!

1 comment:

  1. Hi, Gabi here, i can see you are doing a lot of stuff, man! I like helper boards too, last parcel that came thru from china had my universal waveshaper on board, you can feed in any ramp/saw and get our waveforms out. Cos i foun myself often in the situation where i have soldered up quickly a saw-vco, was happy for a moment, then the little voice in my head reminded me - and now u genius: only the waveshapers left. puff. now i can answer wait ten minutes til i have stuffed the board :-). Cheers, cu


ProMicro HID Keyboard Emulator

Quick one this time. The Arduino ProMicro (examples here and here ) is based on an Atmel 16u4 MCU and has HID keyboard emulation ready to go...