Category Archives: PCBA & ENG

OctoPROBER REV 0 board works!*

20140205_201657

*With hardware fixes

I was having an issue with the FT230X being active while the 3.3V rails being turned off. The FT230X would backfeed voltage down the TXRX lines into the propeller which would power the 3.3V rail to ~2.7V causing the soft power switch circuit to turn on. I fixed this by running the RESET pin of the FT230X to the propeller and pulling it up to the switched 3.3V rail. The propeller can control whether the FT230X is in suspend mode or is active. Pulling RESET low will HI-Z the TXRX pins and allowing the propeller to turn off the soft power circuit completely without voltage backfeed.

Changed the 16×2 char display from running in 4-bit parallel mode to serial com. This saves 2 I/O lines and is much faster then the 4-bit mode.

Since the main way of charging the OctoPROBER is over USB I needed a way to disable the auto reset. Don’t want the device to reset when its taking samples and low battery warning pops up! This is cause when a computer connects to the FT230X it sends a reset signal to the FT230X which is connected to the reset line on the propeller. Disconnected that and routed the FT230X signal to a free I/O line. This way the prop can control whether or not to reset upon connecting to a computer.

Couple more hardware systems to test then REV 1 boards will be ordered!

Layout

OctoPROBER REV0 boards arrive from OSH Park

20140130_194850

Three boards arrived from OSH Park today. First 4-Layer board I have ordered from them. Quality is pretty good. Silkscreen is a bit weak but that is probably due to me running the weight of the text to thin.

20140130_194931

Internal two layers are GND and 3.3V. Outside two layers are signals.

20140130_194908

Close up of the kickass OctoPROBER logo.

20140130_195029

Character display mounts on the back of the PCB. This way the PCB can be mounted to the front of the case without silly long button caps on the tact switches.

TQ-100 test placement on a Madell DP2600-2 Pick and Place

The Pinheck Pinball System uses a PIC32MX795F512L-80I/PT mcu. It is a 32bit mcu running at 80MHz with 512KB of program space. Plenty fast enough for pinball. The only reasonable package it comes in however is TQ-100 package which has a pitch width of 0.5mm. This pushes the limit of the vision system of the DP2600-2 but I managed to get the system dialed in to make the placement.

20140121_180248

The PIC32MX795F512L-80I/PT is a tray part so the machine does not pick the part up from a feeder. Instead you line up all the chips in a row and the machine knows where to look for it. Uses the vision system to find and locate the part.

20140121_180314

After picking up the chip the machine takes it over to the “Uplook” camera. Here is can make sure the part is oriented correctly and lined up.

20140121_180936

The machine then moves on over to the part location on the PCB and places the part. In the image you can see the dark areas between the shiny leads of the PIC32. The dark areas are the solder mask showing through which means the part was placed correctly and straight.

http://youtu.be/12BXRbzxHcQ

Update on OctoPROBER

Layout_4

An update on the OctoPROBER layout. I added a Real Time Clock (RTC part # DS1340Z-33+) to the I2C buss. Temperature recordings can be logged with an accurate time stamp.

To keep the time when the unit is off it pulls power directly from the lithium battery. When the OctoPROBER is powered on it pulls power from the 3.3V power rail.

Speaking of the battery the OctoPROBER’s main power source is a 18650 lithium cell. Power draw is around 200mA so a 2600mA battery will last around 13 hours. The RTC in standby mode pulls 125uA max which gives it a max standby time of 866 days. That should be plenty for most use cases.

Late Edit.//

Layout_5

Fixed some more traces. Just need to work on cleaning up the silkscreen then it is off to the fab house!

OctoPROBER. The 8-Channel Temperature Logger!

Schematic

This has been an idea I have been kicking around for awhile. The OctoPROBER is a 8 channel, K-type thermocouple temperature logger. It has a micro SD card slot for logging data remotely. The USB connection can send log data directly to the PC.

Power is supplied via internal lithium 18650 3.7V cell and is charged over USB. The BQ24075RGTT is used to manage the charging of the lithium battery by using the outputs of the FT230X USB chip. I will cover this in more detail when I can verify my idea will work.

To prevent corruption of the SD card a soft power circuit is employed. A single optocoupled output is given to allow control of an external circuit.

Start

Layout_1

Layout_2

Layout_3

Appnote: Parallax Propeller layout. Dual SMD footprint.

The Parallax Propeller MCU runs in 3 different flavors. A DIP-40 package (P8X32A-D40), a LQFP-44 package (P8X32A-Q44), and a QFN-44 package (P8X32A-M44). This appnote covers the two SMD packages; LQFP-44 and QFN-44.

The schematic is fairly simple as its just to show a typical layout of for the Propeller. The part number for the crystal is a 6MHz which will run the Propeller at 96MHz. It is a common HC-49/US package so the standard 5MHz type crystal can be used with this layout.

I made a special footprint that can use both the P8X32A-Q44 and P8X32A-M44. This way a part shortage on either package won’t hurt production. I made sure to leave plenty of room around the chip and supporting circuitry for easy fanout of the I/O. Just make sure to route away from the X0 and X1 crystal I/O to reduce EMF.

Files can be found on the GitHub repository and the footprint itself can be found in the my Eagle Library.

Appnote: Using mosfets to expand the WS2801 LED Driver

The WS2801 is an interesting chip. It is a constant current LED driver with 3 drivers that the current can be set individually. This lends the WS2801 to be useful when driving RGB LEDs. Each channel runs off an internal 8-bit PWM (total 24-bits) that is serially clocked in over a 2-wire (data and clock) scheme. This gives each channel 256 levels of brightness. The WS2801 can also be chained together with other WS2801 chips to reduce I/O usage. It can drive up to 30mA of current per channel from 3.3V to 5V which is a fair bit of power.

What if more power and current are needed though? Page 9 and 10 of the datasheet shows that a NPN transistor like a 2n2904 can be used to increase the current sinking capacity. This is all good unless you need even more power. N-type mosfets can be gated to the outputs of the WS2801 in a similar fashion.

Above is an example schematic on how to connect the mosfets to a pair of WS2801 chips. The polarity pin (POL pin3) is pulled down to put the WS2801 into driving mode. The feedback pins (XFB pin4,5,6) are pulled to ground putting the driver in constant voltage driving mode. Pull up resistors are needed on the mosfet gates as the outputs of the WS2801 are open-drain gates.

Demo layout of the dual WS2801 schematic. The WS2801 chip is a really nice chip to layout as the pinout is well thought out. Because two power sources are used (3.3V and voltage for the LEDs) the grounds must be connected to give the same reference voltage. A zero ohm resistor at R7 is used to connect these two grounds. A ferrite bead could be used here as well to reduce noise crossover if the high voltage LED power source is noisy.

The high power LEDs should be connected to the mosfet drain through a current limiting resistor. Multiple LEDs can be connected together serially if the supply voltage is high enough. The voltage drop across the mosfets can be generally ignored as the resistance is usually around .2ohms for low resistance series (RSon) mosfets.

R1 = (V_LED - (V_F x N))/ I


Where
R1 = Resistor value
V_LED = High voltage LED source
V_F = Forward voltage of the LEDs
N = Number of LEDs
I = Forward current of LEDs

Also you have to make sure your resistors are large enough to handle the current load.

RW = (V_LED - (V_F x N)) x I


Where
RW = Resistor watt rating
V_LED = High voltage LED source
V_F = Forward voltage of the LEDs
N = Number of LEDs
I = Forward current of LEDs

For example the OVSPRGBCR4 RGB LED will be used. The source voltage will be 24V and 7 LEDs will be chained together. The forward current (If) of all 3 channels is 250mA. The forward voltage (Vf) of the red channel is 2.3V and the Vf of the green and blue channel is 3.4V.

RED:
(24V - (2.3V x 7))/ .25A = 31.6ohms
(24V - (2.3V x 7)) x .25A = 1.975W


GREEN & BLUE:
(24V - (3.4V x 7))/ .25 = .8ohms
(24V - (3.4V x 7)) x .25A = .05W

Finding a resister to work with the Green and Blue channels of the LED is fairly easy but the Red channel is a bit difficult due to the high power rating needed. A quick look on mouser yields limited selection of 32ohm resistors in a big enough size to handle 2W but two 16ohm 1W resistors in series would work just as well and are much easier to find.

I am using this method to drive banks of RGB LEDs on the PinHeck Pinball System for general cabinet illumination. The Eagle files of the schematics and board layout are on GitHub. I also have some demo SPIN code for the Parallax Propeller chip to drive the WS2801 that I wrote awhile back.