3D-printed housing for an electronics project

Anyone who has made electronics projects knows that the housing part is painful. I have a quite ordinary setup for an electronics project: small squarish housing needed for a PCB with few external connectors, couple buttons, and one optional insert for PIR sensor. My primary problem is how to make this look good and get it quickly.

Small button caps, SLA print.

Small button caps, SLA print.

Continue reading

Moving from through hole to surface mount components – how difficult can it be?

I have seen quite a number of people ponder on moving from through hole mounted components to surface mount – so how difficult is it?

Pro through-hole:

SPI on PCB

Through hole mounted microcontroller with some discrete surface mount parts.

  • Through-hole components are bigger, one can actually touch them with bare hands
  • Through-hole fits bread board ideally – no way to put chip components there

Pro surface mount:

  • SMD are cleaner. Being so small one is less likely to handle them with bare hands (no grease, less oxidisation)
  • SMD are easier to re-solder as the pads play it nice, when removing through-hole is pain
  • Surface mount components leave backside of PCB clean, nothing to cut there

Continue reading

Programmable led pixels – which model should I choose?

It is tempting to think dream led pixels strips as one-dimensional displays, but when the pixel count of the display is limited, and individual dots are far apart, and surrounding brightness can be anything between zero lux and full on daylight, number of factors come to play in design – even if the design is just a bit-more-advanced x-mas tree decoration. Here are some of my experiences when playing around with these.

I have been using TM1809 and APA 102c programmable “dream” LED strips and while they are easy to use in principle, there has been number of issues to troubleshoot. Below some findings:

APA 102C led strip

Led strip with questionable solder joint quality

  • 12Volt is bad. Programmable 12V led strips seem to drive individual pixels with current-limiting resistors, thus never getting good efficiency: 12 volt source voltage dropped to 3..4 volt for LED results roughly 60%..75% power dissipation into resistor. See, there goes that five start energy star rating.
  • 5 Volt led strips have issues too. On greater lengths (I have a four meter with 240 LED pixels) these seem to suffer from voltage drop when pushed to highest brightness levels. The drop is easy to detect with multimeter, my APA strip voltage got down to three volts on the far end, resulting nasty flickering for last meter or so. One can overcome this by installing extra cables to support 5V and ground from both ends of the strip.
  • Since I am cheap and I like to source the cheapest option from China, the quality is what it is; the picture above tells story shows mass-produced connector with, eh, less than stellar success in soldering work. (Yes, it still works, but how long? Reliably? Also, we run about 10 Amps over those connectors for brighter moments – any additional resistance adds to rather uncontrolled heat dissipation there)
  • APA102c != APA102c. Identical LED pixel type does not guarantee color channel order: I have a four meter and a one meter string, both with APA 102c pixels. Magically the red and the blue channels have been swapped between those strips. This presents some challenges if one were to design a controller that can drive number of different led strips. (No, this is not a wiring issue, it is in the chip itself.)
  • Five volt led strips hog quite nice amount of current – I drive 240 pixel strip with 50W/10A power supply – and it is barely enough for it. Now, take another look at those connectors in the pic above.
  • When thinking about brightness levels, eight bits per colour is ok, but since we are talking about led strips and not displays, their intended use environment may present additional challenges:
    • at the darkest levels human eye can easily detect the difference between lowest levels 0,1,2,3 – brightness change is visible as a jump
    • at these darkest levels, LED strip color reproduction becomes, quantized – again, human eye can see this as a color change. Note that in dark human eye will detect colors from these strips as they still are bright enough if they are the only light source.
    • currently common libraries (aka FastLED) that support these strips on Arduino or Raspberry PI do not support global brightness setting (on APA 102c it would add 5 bits to brightness control)
  • For smooth animation, the same applies as for screens: 24 Hz will do, 30 Hz is better, 70Hz is even better. Above that I cannot see any difference.
  • RGB led strips do not provide high CRI light. Yes, one can set the color freely, but it will not result in great quality light for color rendering. Not today at least. Maybe when RGBW strips become more common.

Continue reading