Category: Uncategorized


Counter

Using the AVR STK600 development tool, a BCD to 7 segments decoder and an 7 segments LED display

This is the first time I use the photosensitive positive method to make a PCB board and the results are very satisfactory for me, you just need to follow the instructions which I did post before.
Check this photos out.

Board after exposure and developing using the positive method:

EXPOSURE and DEVELOPING

Getting the etchant ready:

Ferric Chloride etchant

Ferric Chloride etchant

Etchant in container

Board after the etching process :

PCB board ready for drilling

The POSITIVE-Acting Board from Datak, Instructions.

(Copyright LKG Industries 2003)

The positive method is the easiest to use of the various methods for making a PCB. Although the negative method may cost less, the positive method has fewer steps and time savings more or less offset any savings in material costs.

Positive PC Boards… what are they? Premier Positive boards have a dielectric constant of 3.6 (at) 1 MHz. The boards are standard, 1 oz. copper PC boards with a Fiberglas substrate. The copper is coated with a light-sensitive chemical that is often called a photo-resist or a sensitizer. When this coating is exposed to enough light, the coating will rinse away in a developer solution, exposing the copper beneath. The copper is then etched, leaving untouched the copper pads and traces that are your circuit.

Positive boards are available in a number of sizes ranging from 2″ x 4″ up to 12″ X 12″ and with the photo resist, or sensitizer and copper on one or two sides.
Before use, you may want to cut the PC board to size. The ideal cutting tool is a sheet metal shear. Please be careful if using a paper cutter as there is a different pull and ‘feel’ when cutting a board and fingers could be “dragged” into the blade and severely injured if you do not hold the board very, very securely. Be sure to Score the protective film with a sharp knife on the line where you will be shearing the PC board. Or, score it with a cut on either side of the line where it will be sheared. Scoring the protective plastic film will prevent the plastic from pulling resist from adjacent areas during the shearing. (Use an Xacto, or other very sharp knife for scoring.)

NEW and big savings… this is a fairly new and excellent enhancement for positive boards. An Ultraviolet, or U/V, light source is not needed for exposing the Premier Series PC boards. And note that if you were accustomed to using our older systems, you will now mix the developer concentrate ten to one with tap water instead of the older recipe of three to one.

EXPOSURE and DEVELOPING:

Step 1. Work in very subdued light with no sunlight or fluorescent light entering the room. A yellow 25 watt ‘bug light” bulb provides a good safelight; or use a low wattage (15W) incandescent bulb at a distance from the PC Board. Cut the PC board to size and then remove the plastic protective cover from the PC board with a peeling motion, rolling it back off of the resist. Roll the cover slowly, with a steady pressure. Pulling ‘up’ on the film may remove some resist from the PC board. Place the board, resist side up in a Datak exposure frame or under a heavy piece of glass. Place your positive on top of the sensitized coating on the PC board and sandwich the two in the exposure frame. The Exposure Frame: This device will be familiar to you if you have ever made photographic prints. The frame is simply a holder for a board and piece of glass. With your positive in place on top of a precoated board, put the two in the frame under the glass and slide into the frame. The frame will hold the PC board and your positive tightly together during exposure.

Expose the PC board

Expose the board, held in the frame, to the light of a 100 watt white light bulb. Best results will result if the bulb is in a hooded, reflector type lamp shade. By this, we mean the kind that is white inside and reflects light.

EXPOSURE TIMES: A single 100 watt bulb at a distance of 12″ for a ten minute exposure time is recommended for boards up to about 6″ X 6″ (or smaller) in size. We suggest using a fairly “new” bulb, one with less than ten hours of use.

Exposure for PC boards larger than 6″ X 6″ may require either using two bulbs, side by side (about 2″ between them). Very large boards, about 12″ X 12″ can be done either by exposing the two halves of the board separately or placing three bulbs in a triangular pattern (which can be a bit tricky). You may cover half a board with cardboard, expose for ten minutes and then expose the other half while covering the exposed half. Another technique for exposing larger boards is to suspend the bulb from its power cord and let it swing in a circle for roughly fourteen or fifteen minutes (at the 12″ distance).

Develop the board:

While the board is being exposed, prepare a tray of developer solution. Use either Datak no. 12-402 or 12-406 liquid concentrate only. Mix the Datak developer 1 part of concentrate to 10* parts water. NOTE: mix with warm water. A cold developer is not going to work. The temperature should be above room temperature (about 100 to 110 degrees F) .Use glass or a plastic photographic tray (never metal). Use just enough developer to cover the board (1/4″ to 3/8″ deep is usually good). After exposing, place the PC board in the tray and rock the tray gently until the copper is fully exposed in areas to be etched. It will be obvious to you when the copper is bare; be sure that there is no haze or film remaining. Rinse a developed board in cold water for a minute. Tap water is fine. Cold water stops the process and ‘sets’ the resist; after immersion in clean cold water, normal room lighting will not affect the resist further.

Etching the PC Board:

Your are now ready to etch the board. We suggest using Datak Ferric Chloride etchant. It is messy and we warn against using this etchant in a home environment (except out of doors) as it can stain almost anything, including counter tops, floors etc.. Ferric Chloride is not an acid, not especially dangerous in small amounts and is actually used in some garden fertilizers. (We do recommend using goggles to protect your eyes from splashes, and use with good ventilation). Some people find the fumes very irritating to the throat and lungs. This author steps into the garden to etch boards; the plants do not seem affected at all.

Disposal of expired etchant can be done simply by flushing down a drain with a couple of minutes of cold running water. Local Laws may require other disposal methods so please check for your location.

Use Datak bottled Ferric Chloride etchant or Datak powdered concentrate, which is then mixed with water following the instructions on the package. Warm the etchant before use. (You can warm the etchant by placing its storage bottle in a bucket of hot tap water for about fifteen minutes). Hot etchant works best, but warm will work. Cold etchant may not get the job done.

You can use the etchant in a couple of ways. One, place the etchant in your photographic tray and not too deep (never a metal tray; use glass or plastic). Place the board, face up, in the etchant and then agitate the tray almost constantly, including some rocking. It is important to keep the etchant moving on the surface of the copper. Check periodically to see if the etching is complete; be sure to etch all exposed copper. Time varies, but you should be close to finished in not more than fifteen minutes.

This author prefers using a large mouth plastic jar for etching. Placing about 3/8″ to 5/8″ deep etchant in the jar with your PC board and placing the lid on the jar. This permits swirling and some gentle shaking back and forth which will etch a board very quickly. A left over jar from many foods from Cashews to Biscotti have a large enough mouth and a plastic lid (never use a metal lid). Monitor the etching progress by tipping the jar to see if copper has been completely removed from areas not protected by the resist. DO NOT over-etch; undercutting will occur and narrow traces and pad diameters. We expect small 2″ x 4″ boards and smaller to be finished in around seven minutes. The time required to etch is affected by the warmth of the etchant (warmer the better), the amount of swirling action, oxygen that gets into the solution while swirling and, of course, if the etchant is new or has been used before. When ETCHING IS COMPLETE, you may rinse the board in a flush of tap water, dry with paper towels and proceed to drilling the pads. When you wish to remove the remaining resist, use a fingernail polish remover. Inspect the copper during drilling. (If there any breaks in lands (traces) or pads, you can bridge them with a small copper wire and solder).

Final notes: Here are some helpful tips for users of the positive PC boards:

1. Store used developer in a plastic or glass bottle. Plastic is best as you may squeeze most of the air out of the bottle and cap tightly. Do this because the developer will react, over time, with the carbon dioxide in the air and decompose.

2. You can use the developer until it simply does not perform; then flush it down the sink with a fast cold water chaser. Storing developer in a refrigerator can help to keep it fresh for very long periods.

3. If the board proves to be tough to etch, you probably did not develop it long enough and some resist residue remained behind. Or, said residue can also be caused by too short an exposure time, too weak a light source and so on.

4. Etchant may be reused and stored in a plastic or glass bottle; use only a plastic (not metal) cap. When etchant is obviously taking much too long to etch, it has expired and a fresh batch is needed.

5. We strongly recommend that all PC board drilling be done with a drill press. Accurate drilling with a handheld drill is nearly impossible.

Taken from: http://www.philmore-datak.com/datakpos.html

Right Arm for humanoid robot controlled by a Maxstream Zigbee radio and a Microchip microcontroller (18F2221) using timer interrupt and generating PWM signals to control servos.
Video shows transmitter and receiver.

Robot fully assembled: http://embeddedelectronica.wordpress.com/2010/03/18/peterbot-was-born/

Click here for the Xbee radio datasheet

//     usando compilador C18 11/19/2008

//——————————————–
// subrutina de inicializacion

#include <p18f2221.h>
//#include <p18cxxx.h>
#include <usart.h>
#include <timers.h>

#pragma config WDT = OFF
#pragma config LVP = OFF // Este bit debe estar desactivado para poder usar PORTA5
#pragma config OSC = HSPLL
#pragma config PWRT = ON //Power On timer enable

unsigned short const_timer = 178; // 238 parametro para ajustar tiempo de base a 10us
unsigned long pwm_fcy = 0;   // contador para frecuancia PWM
unsigned short cte_servo[14] = {200,200,200,90,150,210,90,150,210,90,150,210,90,150};
unsigned short servo[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
unsigned short i = 0;
unsigned short u = 0;

void InterruptHandlerHigh (void);

void initialization (void)
{
// porta
LATA=0;
ADCON1=0x0f;
CMCON=0×07;
TRISA=0;
PORTA=0;

//portb
PORTB=0;
LATB=0;
TRISB=0;
PORTB=0;

//portc
LATC=0;
TRISC=0xc0;
PORTC=0;

//timer0
T0CON = 0xC1;        // Assign prescaler to TMR0
TMR0L = const_timer;
INTCON = 0xA0;       // Enable TMRO interrupt

}

void main (void)
{
INTCON   = 0;

initialization();

OpenTimer0 (TIMER_INT_ON &
T0_8BIT &
T0_SOURCE_INT);

OpenUSART (USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_LOW, 64);  // 64: calcular el valor de este para 2400bps

while(1){

if (pwm_fcy >= 2000) {       //t= 20ms (200) 2000
pwm_fcy = 0;
}else{
for (u=0;u<=13;u++){
if (pwm_fcy < cte_servo[u]){
servo[u] = 1;
}else{
servo[u] = 0;
}
}
}

if (DataRdyUSART()) {
i = ReadUSART();
if (i==0×30) {
cte_servo[0]= 90;         //valores entre 90 y 200
cte_servo[1]= 90;
cte_servo[2]= 90;
cte_servo[3]= 90;         //valores entre 90 y 200
cte_servo[4]= 90;
cte_servo[5]= 90;
}
if (i==0×31) {
cte_servo[0]= 90;         //valores entre 90 y 200
cte_servo[1]= 90;
cte_servo[2]= 150;
cte_servo[3]= 150;         //valores entre 90 y 200
cte_servo[4]= 90;
cte_servo[5]= 90;
}
if (i==0×32) {
cte_servo[0]= 90;         //valores entre 90 y 200
cte_servo[1]= 150;
cte_servo[2]= 150;
cte_servo[3]= 200;         //valores entre 90 y 200
cte_servo[4]= 150;
cte_servo[5]= 90;
}
if (i==0×33) {
cte_servo[0]= 150;         //valores entre 90 y 200
cte_servo[1]= 150;
cte_servo[2]= 150;
cte_servo[3]= 90;         //valores entre 90 y 200
cte_servo[4]= 200;
cte_servo[5]= 150;
}
if (i==0×34) {
cte_servo[0]= 150;         //valores entre 90 y 200
cte_servo[1]= 150;
cte_servo[2]= 200;
cte_servo[3]= 90;         //valores entre 90 y 200
cte_servo[4]= 90;
cte_servo[5]= 200;
}
if (i==0×35) {
cte_servo[0]= 150;         //valores entre 90 y 200
cte_servo[1]= 200;
cte_servo[2]= 200;
cte_servo[3]= 150;         //valores entre 90 y 200
cte_servo[4]= 150;
cte_servo[5]= 150;
}
if (i==0×36) {
cte_servo[0]= 200;         //valores entre 90 y 200
cte_servo[1]= 200;
cte_servo[2]= 200;
cte_servo[3]= 200;         //valores entre 90 y 200
cte_servo[4]= 200;
cte_servo[5]= 200;
}
if (i==0×37) {
cte_servo[0]= 200;         //valores entre 90 y 200
cte_servo[1]= 90;
cte_servo[2]= 200;
cte_servo[3]= 90;         //valores entre 90 y 200
cte_servo[4]= 90;
cte_servo[5]= 90;
}
if (i==0×38) {
cte_servo[0]= 200;         //valores entre 90 y 200
cte_servo[1]= 150;
cte_servo[2]= 150;
cte_servo[3]= 150;         //valores entre 90 y 200
cte_servo[4]= 90;
cte_servo[5]= 150;
}
if (i==0×39) {
cte_servo[0]= 150;         //valores entre 90 y 200
cte_servo[1]= 200;
cte_servo[2]= 200;
cte_servo[3]= 200;         //valores entre 90 y 200
cte_servo[4]= 150;
cte_servo[5]= 200;
}
if (i==0×40) {
cte_servo[0]= 200;         //valores entre 90 y 200
cte_servo[1]= 150;
cte_servo[2]= 200;
cte_servo[3]= 200;         //valores entre 90 y 200
cte_servo[4]= 200;
cte_servo[5]= 200;
}

}

PORTAbits.RA0 = servo[0] ;
PORTAbits.RA1 = servo[1] ;
PORTAbits.RA2 = servo[2] ;
PORTAbits.RA3 = servo[3] ;
PORTAbits.RA4 = servo[4] ;
PORTAbits.RA5 = servo[5] ;
PORTBbits.RB0 = servo[6] ;
PORTBbits.RB1 = servo[7] ;
PORTBbits.RB2 = servo[8] ;
PORTBbits.RB3 = servo[9] ;
PORTBbits.RB4 = servo[10] ;
PORTBbits.RB5 = servo[11] ;
PORTBbits.RB6 = servo[12] ;
PORTBbits.RB7 = servo[13] ;

}
}

//—————————————————————————-
// High priority interrupt vector

#pragma code InterruptVectorHigh = 0×08
void InterruptVectorHigh (void)
{
_asm
goto InterruptHandlerHigh //jump to interrupt routine
_endasm
}
//===============================================================
// High priority interrupt routine

#pragma code
#pragma interrupt InterruptHandlerHigh

void InterruptHandlerHigh ()
{
if (INTCONbits.TMR0IF)                //check for TMR0 overflow
{
pwm_fcy++;
TMR0L  = const_timer;

INTCONbits.TMR0IF = 0;            //clear interrupt flag

}
}

//—————————————————————————-

My first job was very interesting (Intelsa, Giron Bucaramanga), I had the opportunity to  design a communications systems for buildings and it was called “Consola Digital Fonex 100″,  I used a Zilog Z80 microprocessor, the program was done on assembly language and the PCB was done with SmartWork.

Mi primer trabajo fue bastante interesante (Intelsa, Giron Bucaramanga), tuve la oportunidad de disenar un sistema de citofonia que se llamo “Consola Digital Fonex 100″, Utilize un microprocesador Z80 de Zilog, el programa fue hecho en lenguaje ensamblador y el PCB con el programa SmartWork.

Mi email: romancanas@gmail.com

tarjeta cpu fonex100

tarjeta cpu fonex100

gabinete fonex100

terminal consola fonex100

terminal consola fonex100

Follow

Get every new post delivered to your Inbox.