Controller Daughterboard Assembly

From molecubes
Jump to navigation Jump to search

Controller daughterboard assembly requires soldering several surface mount components. The person doing the assembly is assumed to be skilled with a soldering iron and familiar with soldering TSSOP and VSSOP sized components. If you aren't, find somebody who is or keep the temperature on low, don't get frustrated, and lets get started.

Daughterboard assembly process

Acquire parts

The Bill of Materials (BOM) available on GitHub provides a component listing necessary for complete assembly. Please refer to the latest version here. It is advised to order at least enough parts for 1 more daughterboard than you need. This will provide the necessary margin in case a part is damaged during assembly. Components such as the RN-41 Bluetooth radio are expensive, so be careful with them!

Soldering order

Step 1
Step 1: Install IC1 and IC4. These are the hardest components to install. Do them first and make sure they are perfect. Be sure and go over each pin and validate proper connection. A microscope is helpful if one is available
Step 2
Step 2: Install C5 - C10.
Step 3
Step 3: Install IC3, L1.
Step 4
Step 4: Install D1.
Step 5
Step 5: At this point the regulator is complete. Connect Vin and Ground to power supply and provide between 8 and 24 Volts. A solid 5V should be measurable on Vout.
Step 6 (top view)
Step 6: Install R1 - R9, C11, C12, D2, SJ2 (shunt with piece of wire).
Step 6 (bottom view)
Step 7
Step 7: Install S1 and S2. These components require modification on the side with two pins. The pin towards the button, if facing the sealed bottom, should be clipped. The rear pin should be bent forward to match the pad. This is an error to be corrected on the board design.
Step 8
Step 8: Install EXT1, EXT2.
Step 9
Step 9 Install SKT1.
Step 10 (bottom view)
Step 10: Install IC5. This requires a small solder ball to be placed on the two antenna pads on the daughterboard PCB. Tack the radio in place then heat the two ground pads which neighbor the unconnected antenna pad. This is tough. Solder down the remaining pins.
Step 10 (top view)
Top view zoomed in, barely showing ground pads on bottom side of RN-41

Visual tests

Review all of the solder joints visually. Make sure joints look clean and shiny. This is a good point to clean off flux etc. Rather than electrically testing the board thoroughly, a good visual check will suffice to save time. Best catch poor connections now!

Multimeter tests

Verify resistance on the order of a megaohm between Vin and ground. Verify resistance on the order of a megaohm between Vout (5V) and ground. It is recommended to use the eagle file to step through each pin on the VSSOP (IC4), TSSOP (IC1) and RN-41 (IC5) and verify proper connection with the pad and no shorting with neighboring pins.

Load Software for Functional Tests

File System Test

Step 1: Load Filesystem test binary with JTAG found here software\controller\filesystemTest or here. Power LPC-H2148 with USB connection to computer. USB drivers for LPC-H2148 are assumed to have been installed. If not, when prompted point windows to the "usbser.inf" file in filesystemTest directory.

Step 2: Insert FAT32 formatted microSD memory card

Step 3: Connect to emulated comm port

Step 4: Send 'e' over comm port, the message "hello world" should be returned, this indicates usb connection is working properly

Step 5: Send '1' over comm port, this initializes the microsd card, if no failures occur assembly of this component of the board has been successful.

Step 6: Send '4' over comm port, this writes a sample file with a text string

Step 7: Disconnect terminal and remove power from LPC-H2148, remove microSD card and plug into computer

Step 8: Verify test.txt has some sample text written to it.

Button Interrupt Test

Step 1: Load interface test binary with JTAG found here software\controller\interfaceTest or here. Power LPC-H2148 with USB connection to computer. USB drivers for LPC-H2148 are assumed to have been installed. If not, when prompted point Windows to the usbser.inf file in interfaceTest directory.

Step 2: Open runtime.h and verify line 16, #define BLUETOOTH_ENABLE is commented, if not, comment the line, recompile, and reload the binary.

Step 3: Connect to emulated comm port over USB.

Step 4: Press either of the buttons on the controller daughterboard, press one of the buttons and Button1 Pressed should appear on the terminal. Pressing the other should print Button2 Pressed on the terminal. This indicates the circuitry and software used for handling button presses is working properly.

RS232 Communication Test

Step 1: Load serialInterfaceTest binary with JTAG found here software\controller\serialInterfaceTest or here. Power LPC-H2148 with USB connection to computer. USB drivers for LPC-H2148 are assumed to have been installed. If not, when prompted point windows to the usbser.inf file in serialInterfaceTest directory.

Step 2: Setup an oscilloscope and measure the waveform on the external serial pin. A packet transmitted at 333333baud is sent every 50ms. This should be visible on the scope. If the waveform is well formed, the communication output stage is operational.

Bluetooth Test

Step 1: Load interface test binary with JTAG found here software\controller\interfaceTest or here. Power LPC-H2148 with USB connection to computer. USB drivers for LPC-H2148 are assumed to have been installed. If not, when prompted point Windows to the usbser.inf file in interfaceTest directory.

Step 2: Open runtime.h and verify line 16, #define BLUETOOTH_ENABLE is uncommented, if not, uncomment the line, recompile, and reload the binary.

Step 3: Apply power to the device. It has been assumed these directions have been followed for: bluetooth configuration on host machine.

Step 4: Connect to Bluetooth comm port at 115200 baud.

Step 5: Similar to the button interrupt test above, press the buttons on the daughterboard. If things are connected properly, Button1 Pressed and Button2 Pressed should appear on the console. This indicates the bluetooth link is operational.

Conclusions

If all tests passed, this controller has been successfully assembled. It is now ready to be integrated into a Molecubes shell.