| View previous topic :: View next topic |
| Author |
Message |
guru
Joined: 03 Jan 2006 Posts: 128 Location: St Pete Beach, FL
|
Posted: Tue Jan 03, 2006 6:24 pm Post subject: Introduction: Colin MacKenzie |
|
|
Hi All,
I am so excited about how much buzz has been going on lately with digital servos. I have been waiting for years for this to catch on.
It was back in 2000 that I first got the idea to change out the innards of an RC servo and replace them with an mcu. At the time I had a lot of experience programming PICs in assembly. It wasnt long before I had my first prototype digital servo implemented on a breadboard.
Unfortunately, the PICs at the time were short on features. I used PIC16F84 because the flash ability would quicken development. Any PIC with more features was unable to fit on the pcb and/or was too expensive. I had to program my own I2C comm module and PWM using bit banging in PIC assembly. There was also no ADC so an external one was used. By the time I added a few servos on the bus and had a lot of I2C chatter my PID loop was choking from lack of cpu cycles and constant interrupts for I2C, PWM and external ADC!
Late in 2002 (??), microchip released the PIC16F873 and after much delay due to thier popularity I managed to get some in. These had all the modules I needed in hardware and then some! I began recoding my servo from scratch. I managed to get two servo working quite well and communicating through my host computer, a pc104+ linux. I had servo control via a /proc interface! There was only one bug that remained elusive, occasionally the servo would become unresponsive. Priorities change, and the servo project was shelved for more than a year.
Along comes Mike Thompson a few months ago. I had given out my code and schematics to a number of people but until now no one actually seemed to produce anything. Mike had replicated the digital servo using an Atmel.
Just this December I figured out my elusive bug was an i2c bus clock sync problem. Using the DIMAX usb controller that Mike Thompson introduced me to quickly solved this issue! Thanks Mike!
All the buzz has gotten me back into my servo design and in the last few weeks I have restructured a lot of my code. I am still working on fine tuning my servo firmware code. I am also tackling the windows host interface side of things for tuning and controlling the servos. Mike and I are cooperating together on our seperate projects to improve each of our designs.
The email address doesnt work on my web site...too much spam. But you can personal message me on this site and I will respond.
Colin |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Tue Jan 03, 2006 6:41 pm Post subject: |
|
|
Colin, thanks for dropping by. Your SuperServo project was what inspired me to try to create my own digital servo because it indicated to me that it was at least possible. I'm really looking forward to working with your project as well -- sharing ideas and code.
Between our two servos, at least we can keep both the AVR and PIC fanatics happy :-).
-Mike |
|
| Back to top |
|
 |
guru
Joined: 03 Jan 2006 Posts: 128 Location: St Pete Beach, FL
|
Posted: Tue Apr 08, 2008 3:12 am Post subject: |
|
|
FYI: I have finally gotten around to updating my web site. It has a lot more information now. It including a CNC machine I am building, and a lengthy tutorial on creating your own cpu design using verilog and FPGAs.
I also have posted the preliminary schematics and pcb artwork for an FPGA development board I made. |
|
| Back to top |
|
 |
|