mbed controlled PCB drilling machine
i hate drilling prototype PCB's by hand. Maybe a NXP powered mbed can do this job for me :-)
- mbed LPC1768 microcontroller module
- CNC machine
- 3 axis driver card
- Embedded Artist LPCXpresso BaseBoard Rev B
- 36 VDC / 3 A Power Supply
- optional a RFID ID-12 reader
- my software (not published, yet)
- easy to build interface cable
What this machine already can do?
- drilling PCB's (use excellon files, generated by a PCB CAD System like Eagle or other's)
- make use of the mbed file system to hold the excellon file
- make use of the mbed file system for a machine config file
- receive a excellon drill file via the mbed's USB interface
- switch spindle motor on/off via excellon commands
- make use of the Bresenham algorithm (for linear interpolation)
- x-y-z limit switches for homing the machine
- tool length measurement and compensation
- manual movement control
- use EABaseBoards Joystick and SW4 for manual x-y-z movement
- use EABaseBoards Rotary switch for manual fine movement (xyz axis)
- manual movement control via USB Terminal commands
- use EABaseBoards OLED (via SPI)
- use EABaseBoards I2C LED Port Expander for indicating status messages and system errors
- support of a RFID reader added to select a job and to start the machine
- G-code interpreting
- rapid board prototyping (milling PCB's)
- dispensing machine for SMD
- pick and place machine for SMD
- make use of EABaseBoards XBee (remote control via a wireless XBee pendant)
About this project page
This is just a notebook page and the following information is written down very "fast and dirty"!!! All ideas and all functions are tested on a running CNC machine and not on just a "naked" mbed. But, there can be still software bugs, hardware errors, produced and created with my bad old mind or whatever problems i did not recognize yet. Please keep in mind that playing around with a CNC machine is dangerous. It is not a toy and you always need to know what you are doing!
Why this project?
- entering the NXP mbed design contest 2010
- learning about Cortex M3
- having fun
Hardware cost's of this project?
- about USD 1000,- net
Project promotion video
here are the basic stepper functions
Ramp up measurement
Procedure searching for a reference switch
- axis starts moving to the reference switch direction with start/stop speed
- switch is changing the level and motor stops
- axis moves with low speed in opposite direction till switch changes level again
- motor stops and reference point is set to zero
- handle the file with a drill change function
- drilling all holes with a fixed drill tool in one go
Oh, i think, this is looking not bad :-)
Modified Bresenham line algorithm. Works with my CNC but
So, the machine can already drill a PCB, generated by a CAM processor (excellon file).
ok, let me have a look if all implemented functions are working at the machine. Get the drill job started.
Having more and more fun with my project. Got a nice Embedded Artists Baseboard Rev.B at Elektor Live 2010 in Eindhoven. This Baseboard can be used for the LPCXpresso or for my mbed. It,s all just plug and play being ready to go for some electronic playings within minutes. I could use this board for my PCB drilling project because all i need is available at this nice Baseboard. A rotary-switch, a joystick, a OLED, more flash and also a connector for a XBee module. So, i will make my software ready to go for this board, too, using a Compiler-switch (#ifdef BASEBOARD).
Rotory switch function implemented. Now its possible applying "fine-moves" to the selected axis using the baseboard's rotory switch. With the joystick i can move X and Y axis by 1000 steps per klick. If i hold down the baseboards switch (SW_4) Z-movement is enabled and the Z-axis can be moved with the joysticks y+/y- switches. With the rotary switch the stepper makes 10 steps per change and its function always stays enabled to the last selected axis. (19.12.2010: Connections for RFID reader and I2C added).
running out of pins ???. Oh, i have 3 mbed-pins left :-)
Maybe i have 4 pins left, do i need that OLED_POWER signal at all? Difficult question at this time because i had to many beers :-)
Function overview so far:
first real pcb drilling job done :-) What a mess, i need a vacuum cleaner!!!
just for testing (placed a mbed and two DIL's):
mbed and some DIL socket's. A perfect fit. Drill diameter is 1 mm, z-move is 4 mm.
- how many files are found in the mbed file system (number of LED's = number of files)
- LED4 blinks with 2 Hz if no config file is found
- LED4 blinks with 1 Hz if there is a syntax error found in this file
- LED5 blinks with 2 Hz if no excellon job file is found
- LED5 blinks with 1 Hz if there is a syntax error found in this file
- LED6 blinks with 2 Hz if there is a unknown command received via the serial interface
- LED7 blinks with 1 Hz if the mbed filesystem is open
- reference a PCB using a laser?
- remote control using the XBee module of the embedded artist board?
- Bresenham algorithm with acceleration/deceleration function
- improving the stepper speed
Links and datasheets:
Please log in to post a comment.