Skip to content

Assembly Notes

Jay Kominek edited this page Dec 22, 2022 · 21 revisions

Current state of these notes

These cover something between whatever the latest release is, and the current HEAD of development.

They're intended for people interested in hand assembling boards for purposes of working on the hardware or software, not for "end users".

Tools/skills necessary

If you find some Chinese board house to do the necessary SMT assembly, that just gets you out of having to solder fine-pitch parts. All boards still have some through-hole components. The main board has the SD card socket on the underside, which discount assembly houses usually won't handle. (They only do single-sided assembly.) There will probably be a few other small issues like that.

All products listed are examples, I haven't necessarily tried them.

  • Ability to solder 0.5mm pitch leaded parts.
    • This is easier than you think, especially if you've got the suggested tools.
    • https://www.youtube.com/watch?v=f9fbqks3BS8
      • Demonstrates 0604 parts on 0805 pads. (My designs use 0805 parts.)
      • You could use more flux than this guy does. You can always use more flux.
    • https://www.youtube.com/watch?v=b9FC9fAlfQE
      • Specifically demonstrates doing a 0.5mm TQFP, which is the hardest kind of part on my boards. He's using a relatively large soldering iron tip and still getting the job done just fine.
  • Soldering iron and solder appropriate for the task.
    • Fine point iron, and thin solder. Using the lowest temperature solder you can afford might make things easier if you've got to perform rework.
  • Solder flux. Please. Please use solder flux.
  • Some fine point tweezers.
  • ST/Link for programming the boards via the JTAG header. The ST/Link-V2 is 497-10484-ND on DigiKey.

Suggested tools

System level assembly notes / parts

Power

You need sources of +5V, +15V and +48V, all DC. Some slight adjustability in each of those will help with electrical efficiency. You probably can't find a module that does all of them. I suggest buying 3 DIN rail modules and putting them on a cheap segment of DIN rail.

  • +5V
    • Meanwell HDR-60-5
    • If you use switching regulators on ALL of your boards (VR05S3V3 suggested), then turning this supply UP to its maximum voltage will increase efficiency.
    • If you use any linear regulators, you should try and run as low as possible. That will depend on the firmware.
  • +15V
    • Meanwell HDR-30-15
    • Turning it down to its minimum is probably best.
  • +48V
    • Meanwell HDR-30-48
    • Turning it down at least slightly will reduce heat on the LED power board significantly. Aim for 44V to 45V. You might be able to turn it all the way down.

Cabling

  • The main power supplies connect to the relevant boards via screw terminals on either end. I'd suggest ~20awg stranded wire for those connections.
  • The main board connects to the ADC boards with off-the-shelf ethernet cable. I'd suggest premade patch cables no longer than necessary, and chosen to ease cable management.
  • The LED portion of the sensor boards will be chained together in groups of 22. The cathode of one board should go to the anode of the next. Female-ended Dupont connector jumper wires are suggested. At the start and end of each string of 22, you'll need to connect the first anode to the POSITIVE pin of an LED string connector on the LED power board. The NEGATIVE pin of that string will be connected to the final cathode of the string. Cut a female dupont jumper in half, and solder on a bunch of extra wire to reach from where the string is mounted to the LED power board. Cover the joint in heat shrink tubing.
  • Each sensor board will have 1 two-wire connection to its corresponding ADC board. You'll probably need to make all 88 to 176 of those yourself. I suggest using twisted pair wire, which you can get in large quantities by buying bulk Cat5e cable (generally used for ethernet) and stripping the insulation off. That will yield 4 twisted pairs.
  • The USB header on the main board (and the ADC boards if you want it for some reason) is intended for use with something like this:

Mechanical

  • All of my mounting holes are designed for M3 screws.

    • The holes all have exposed metal pads tied to ground. I suggest using metallic screws and standoffs, so that the ground planes are connected. I think that will help reduce EMI.
  • The ADC, main and LED boards have their 4 mounting holes in a 76.2mm (3 in) square.

    • They're intended to be stackable, but you'd probably better off distributing the ADC boards along the length of the piano, so that the ADC to sensor cables are as short as possible.
  • The pedal and MIDI boards have their mounting holes spaced by 40mm. They're intended to be mounted up against some external panel. Somehow. I haven't thought very hard about that.

    • I'm going to move to M3 mounting holes with their centers 10mm from the board edge. There will be an exclusion area suitable for an angle bracket 15mm wide, extending 15mm into the board.
      • An example bracket is the HPTBS3 from Misumi.
    • That 40mm mounting hole spacing may change.
  • An example bit of DIN rail. You don't need much, aluminum is fine.

Notes by board

LED Power

  • Power connections: I use screw terminals. Whatever sort of terminal block, or pin headers you like can be used.
  • The 8 TO-220 MOSFETs do not all have to be installed if you don't need to support 176 sensors.
  • The MOSFETs are the major heat source on the board. You should put some sort of heatsinks on them. The heat they generate is going to be very constant, so extra thermal mass in the heatsink is of no value. (No spikes to absorb.) Aluminum foil would be the ideal heatsink if it was strong enough not to fall apart. I suggest very thin aluminum or copper sheet. It would be nice to just use one big heatsink connecting all four MOSFETs on one side together, but the tab on most TO-220 packages will be connected to one of the pins, so using a conductive heatsink (most of them) will short all of those pins together, rendering the circuit inoperative. Use separate heatsinks for every FET, or put electrically insulating, but thermally conductive sheets between the tabs and the heatsink. (These are available precut for TO-220 packages.)
  • The 8 through hole current setting resistors in the middle should be mounted vertically, with the body of the resistor towards the middle of the board, and the loop of wire nearer to the FETs. That should minimize heat transfer along the PCB trace into the resistor. (Yes, that will be minimal, but the resistor orientation is free.)
  • Remember to set an I2C address either by soldering on some 0805 resistors for a semi-permanent selection, or putting on headers and using shunts. (If you use, say, ~10k ohm resistors, then you can still change it later with the headers and shunts.)
  • You can omit one of the Qwiic/easyC JST connectors if you don't want to do pass through. But the I2C comms to this board are very limited, so it's a good thing to involve in a chain.
  • There's a spot for a Really Big through hole cap. You probably don't need it!
    • If your +48V power cable is very very long, maybe it would be useful?
    • It's on the +48V rail, so you should choose something with a higher voltage rating than whatever the max of your +48V supply is. That probably means a >=60V cap, not a 50V cap!
  • Mount the board either horizontally, or with the UP direction aimed UP.

Link adapter

  • The board is intended to be very adjustable. Make sure you understand the operation and install the parts necessary.
  • If you've already got a lot of FTDI cables, you could leave the FTDI chip and USB connector off, and just use the board for the RS485 transceiver and RJ45 jack(s).
  • You don't have to put both jacks on a board. If you're making two boards (reasonable), you could just put a "To Master" jack on one, and a "To ADC" jack on the other.
    • You can't use the board to talk to both a master and an ADC board simultaneously. Nor can you use it to "sniff" the communications between the two boards.
  • There's a two-pin header on the latest rev so you can measure the current going to the ADC board. If you don't want to do that, put on a shunt.
  • You can install some resistors and LEDs in the configurable area of the bottom left to get TX/RX activity lights, or whatever else you can configure the board for.
  • If you're going to power an ADC board with it, depending on what your ADC firmware does, you might need to program the FTDI chip to request more than the minimum 100mA from the USB host (depends on the USB host, probably).

MIDI Board

  • You don't need to put on both Qwiic/easyC/I2C JST connectors if you don't want to.
  • Remember to set an I2C address.
  • You can omit the IN or OUT halves of the board if you don't want them, for whatever reason. If you omit the IN half you should still install R2 so the RX pin of the UART doesn't float.

Pedal board

  • It requires a lot of pedal-specific customization.
    • Pedals (generally? always?) act as pots, or switches, but which pins they connect to which part of their connectors is manufacturer-specific. Depending on what pedal you're using, the appropriate configuration to get it to behave like a voltage divider feeding the ADC will vary.
    • I haven't thought too hard about how to make it better.
  • Remember to set an I2C address
  • Another board where you can leave off one of the Qwiic/easyC/I2C headers if you want. Probably a good candidate for it, as the ADC will require "constant" polling (somewhere in the range of 10Hz to 100Hz I expect).

ADC Board

  • Start with the surface mount parts first so you're not melting the large parts with your soldering iron while working on the small ones. Also you can build confidence with the resistors and capacitors, and if you actually wreck the board while putting those on, you can just throw them away, and don't have to try and recover the parts.
    • Once you've got all the caps, resistors and LEDs on that you want to add, install the power-related components. The external power header, and all of the regulators. Then you can apply +5VDC to that header, and check that all of the regulators are supplying the appropriate voltage. If they are, you've eliminated some possible problems when debugging later, and you know you won't immediately fry the more expensive parts that have to go on later.
  • None of the UART, USB power, or external power pin headers are necessary.
  • None of the LEDs or their resistors are necessary, but the power one is nice.
  • See the Parts list for discussion of the 3.3V regulator for the digital supply.
    • Solder the surface mount electrolytic caps onto the board BEFORE the regulator. Any regulator in place first will make it trickier to solder those caps into place.
  • All of the USB circuitry is optional. You can install a type A connector, or a header for use with a jack-to-header cable.
  • If you don't want to do any debugging, you can leave the JTAG header off. You'll need to interact with the builtin bootloader either via the USB header (fastest) or the RS485 link and a link adapter. Definitely see the bootloader-related STM32H7 notes in the Wiki.
    • JTAG will be easiest; if you don't go with that make sure your other plan is fully formed.
  • I suggest a shrouded connector for the cables running to the sensor boards.
  • You'll need a lot of heat to solder the big tab on the analog rail voltage regulator. Don't be surprised.
    • I'm going to try and remove those big tabbed regulators from the design, so maybe it won't be a problem by the time you read this.

Main board

  • Again, start with low, surface mount parts and work your way up in height.
  • Put the SMT electrolytics on before the 3.3V regulator. Like the ADC board, you can maybe use a linear regulator instead of the suggested VR05S3V3 switcher, depending on what your firmware does with the processor.
  • Put all of the power output filtering caps / ferrite beads (left side of the board) on BEFORE the double-stacked RJ45 jacks, or they'll be a pain in the ass.
  • The double RJ45 jacks are E5908-0T0343-L. 1840-1215-ND on DigiKey.
  • Like the ADC board, the JTAG header isn't required unless you want to debug the firmware.
    • The main board should be able to flash the ADC boards, but if you don't include the JTAG header, you'll be programming the main board over USB using the DFU features.