Microbot TeachMover 6502 based Robot Arm, Memory Map

Let's talk about anything related to the 6502 microprocessor.
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

I was going to ask Tony to post the photo the same place he has the Prom bin file till I can get my free verizon crap website up.. Verizon disabled FTP website uploads, So now you have to use their lousy web designer program.. And after fighting with it for a hour I figured out their APP does not work with firefox..

Are you saying they used global declared base address locations with offsets or are you saying you just use a search and replace to change each address..

The other main thing I would like to do is add four 8bit addressable latches, And and modify the code to output step and direction on them to use the new hi-voltage PWM modulated constant current driver IC's ... Maybe use the unused dip switch or some other input, To change between the original code and outputs, And the Step and Direction mode...

Of course where now moving to a 8k code block.. The first two latches would each output Step and Direction for 3 motors..
The 3rd Latch would output the 3 bits to globally select from one of eight stepping modes.. Plus a driver enable signal, And reduce current and or sleep signal,, The 4th latch is for afterthoughts.. Then add some more @ qualified commands to change stepper mode, adj current, sleep mode, and enable/disable the motors.. Pretty ambitious HuH...
Last edited by falcon5252 on Sun Sep 18, 2011 6:36 am, edited 1 time in total.
When falling from a high place, You might as well try to fly
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
Are you saying they used global base address locations with offsets or are you saying you just use a search and replace to change each address
Neither. All the addresses should now have been replaced by symbols.

Some of these symbols are set by equates at the start of the assembly file and should only ever need changing there, others are computed during assembly and will change as needed as the source changes.

Lee.
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

Ok.. That's what I meant by global declarations... Kind of like a Dim or Symbol statement in basic.. I emailed Tony and asked if he would post the Photo...

Can you notate in the disassembly where the main address declarations are, And could Be changed... Then I could just plug in whatever the new address decoding is and assemble it...
And I guess if we start expanding its abilities we have to create a new file name for a 8k extended code version.. As any code additions will definitely break the 4k boundary..

Withe the new High Voltage Current Controlled chips you can double or triple the max stepping speed with minimal torque loss... the only limitation is weather the CPU can handle higher step rates .. But it would no longer have to process the step pattern so it frees up a few clock cycles..
Actually you wouldn't have to add higher stepping modes because you can now only use the fastest modes if their is no load on the robot.. With current controlled drivers you would have full torque at those speeds, Making them more usefull...

New Star Arcade Board...

http://www.nightmarepark.com/6502/Star% ... 0Board.jpg
When falling from a high place, You might as well try to fly
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
Can you notate in the disassembly where the main address declarations are
I've updated the disassembly in the archive so that each physical device is only assigned an address once. By the .ORG for the ROM start and by equates for the others.
Quote:
the only limitation is weather the CPU can handle higher step rates
The code as is should be able to step in less than 0.6ms, probably faster than the motors ever will.
Quote:
New Star Arcade Board.
I don't recognise it either, the EPROM will probably tell more about it.

Lee.
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

Lee ... Thanks much for doing the code mods.. Now its pretty much plug and play as long as you have the right I/O Chips on your system..

I got logged in ok, Will upload my robot pic's shortly.. They were the photos I got off ebay when I bought them.. Plus a few generic Armdroid pics till I find the ones of mine, And some not so great photo of the chip glued to the bottom of the microbot board.. A couple of Microbot's newest robot arm, They moved the CPU from the robot to a separate controller box.. Plus my 2 Pitsco servo driven arms, I started labeling the connector but still waiting for my 8pin din connectors from china to hook it to my Pololu 23ch servo controller so I can sort out the rest of the leads.. Added the Pololu Maestro 23ch info, Its the highest resolution servo controller I found.. It has standard interface and a SDK for writing your own software,, Kit is $47.. Also added A4988 Pololu micro-stepping drive.. I bought 12 of these before I found this site I was going to put them on my Sparkfun PIC32 board to control the Microbot..

Found a New driver chip for unipolar motors 8 bit latch with output enable rated 500ma with protection diode,, I bought 10 for $10
http://www.alldatasheet.com/datasheet-p ... 801BN.html

ADDENDUM: Major screw up, total package dissipation stinks,, Only 250ma per channel with 4 of the 8 turned on at 100% duty cycle.. Each motor coil draws 377ma, Ouch

Lee ... Did you find the cable length compensation routines, That's one of the reasons I didn't go with the PIC32, Trying to work out the cable length adjustment algo's in basic would have been daunting..
If you can figure out the adjustment ratios and post them it would be interesting to know how it was done without messing up the robot position tables...
Last edited by falcon5252 on Wed Sep 21, 2011 12:50 am, edited 1 time in total.
When falling from a high place, You might as well try to fly
Nightmaretony
In Memoriam
Posts: 618
Joined: 27 Jun 2003
Location: Meadowbrook
Contact:

Post by Nightmaretony »

Better bet: TIP120 discrete transistors.
"My biggest dream in life? Building black plywood Habitrails"
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

For the MIC5801 would need a tip125 PNP ... Emitter to motor coil and resistor to base , Collector to gnd, And base to open collector output... Darlington turns on when open collector output turns on and pulls to GND.. Resistor sized to pass 125 to 200 ma from load to OC v drop on resistor turns on Darlington.. Acts as current booster.. Need to spice model it to see how back emf will affect it being both devices have protection diodes.. This way when OC driver is Disabled, Cleared or Off, The coil is off... If I used a npn it would act as a inverter.. Unless anyone knows of a pnp/npn Sziklai Darlington with protection diodes... This is not what I envisioned when I bought them .. My fault for not reading the whole datasheet, But not a total loss I can find other uses for them..

OK just got really frustrated and bought a used Ultratech Stepper Driver Board PCB 03-20-00978 for $31, It has 24 TIP127 PNP Darlington's with heatsinks and cap for each transistor, And 4 unknown 16 pin driver chips on a 10" x 9" board, Plus one 3 pin Voltage reg.. Looks very easy to hack.. Will easily drive six stepper motors up to 5 amps per coil... Worst case have to put ground on the stepper commons and drive the coils positive...

Found a good baud rate clock generator circuit and I didn't see it discussed anywhere so I thought I would mention it... A 9.8304MHz Crystal Oscillator driving CP on a 74HCT4040 or 4020 will give you the following baud rates Q4 = 38400, Q5 = 19200, Q6 = 9600, Q7 = 4800, Q8 = 2400..
When falling from a high place, You might as well try to fly
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
Will upload my robot pic's shortly.
I've put the highest resolution image of the 'extra' chip on your board here. If you want me to post any other pictures you've taken that I have just let me know.
Quote:
Did you find the cable length compensation routines,
The only time compensation calculations are made is when the arm is moved by the buttons. This is commented in the code just after LAB_F5E4. It's a simple 1:1 ratio for the elbow/gripper compensation.

The start address of the code is set by the .ORG directive, the addresses of the devices are set by equates before the code.

Lee.
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

I loaded the code into Kowalski's Sim, Much more understandable reading it in the Sim than Notepad.. I did see the 1-1 comp routine, But I thought there had to be more to it, But it does make sense, If all the cable capstans are the same size and the roller pulley in the elbow, Then it would be 1-1 ... If thats all there is in the Prom, Then they must be compensating in the TeachVAL software before the commands are sent..
You don't have to flex the robot very far before the gripper clamps shut and jams the robot.. So its impossible to run the unit without cable compensation being done... It was probably done this way to make it compatible with LabView and other robotics apps.. On the plus side if you use the code for CNC, There are no compensation routines to skew the movements as long as you use a program other than Teachval to send the commands..

On the serial port are they using a software flow control, Such as Xon - Xoff... If I'm reading the code right it Looks like they just send a CR to acknowledge a ready state.. And teachval waits for a CR before sending the next code block... Or am I missing something..

I know hardware flow control can be used by bridging the W jumpers, But I have never found that part of the user manual with the configuration... Or do I just need to jumper the correct flow control lines and the 6850 ACIA will handle the rest automatically... Just wondering if it was going to be necessary at the new higher baud rates to keep from overrunning the buffer??.. Guess all I can do is try it and see if I get data corruption..
When falling from a high place, You might as well try to fly
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
Then they must be compensating in the TeachVAL software before the commands are sent.
From the TeachMover partial maual..
Quote:
Note: When the TeachMover is in serial interface mode, this automatic decoupling is inoperative, and, once again, rotating the elbow will effect hand closure.
Quote:
On the serial port are they using a software flow control,
No flow control is used. Even with all the motors running the 6502 should easily keep up at 19200 baud. Faster that that it may miss the odd character but that should return an error so you will probably know about it.
Quote:
Looks like they just send a CR to acknowledge a ready state.
1[CR] is sent to acknowledge a command has been completed, 0[CR] is sent if there is an error. 2[CR] is sent if a command is interrupted. There is no indication of a ready state as such.
Quote:
do I just need to jumper the correct flow control lines and the 6850 ACIA will handle the rest automatically.
It should do, it's been a while since I've used a 6850 with hardware flow cotrol but I don't recall any major problems.

Lee.
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

Thanks Lee...I did search on the code and the only time the term decouple is used is for the elbow.. This has revealed a error I made in assuming the shoulder needed decoupling also, After close examination of the robot cabling I found in fact it is accomplished mechanically, By a series of small pulleys at each joint.. So the Gripper / Elbow interaction was the only one that in fact needs decoupling... So basically when writing a routine in TeachVAL or any other control program, You have to add or subtract the same number of steps you move the elbow to or from the gripper depending on direction... WoW wasn't expecting that... Will have to check my Armdroid to see if the same applies to it...

As for the serial Port, It's always been the complaint that the 6850 has such a shallow FIFO, And always needed consideration with the 6800 at high baud rates, But I guess the 6502 fast IRQ response somewhat compensates for it..

Let Me be be sure I understand this correctly.. Ascii 0, 1,or 2, + a CR Are the only control codes returned to the host.. And all data throttling would have to be accomplished by the host pausing and waiting for one of the three possible codes to be returned before sending the next command string, Or performing a error recovery routine..

More dumb questions: I know in training mode it stores a multiple command strings, But in direct control serial mode, How many command strings can be buffered at one time from the host, Or is it strictly send one string and wait for a "1[CR]" to be returned and then send the next string... Which I figure is the case being there are no buffer status codes...
When falling from a high place, You might as well try to fly
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
Ascii 0, 1,or 2, + a CR Are the only control codes returned to the host
Correct.
Quote:
in direct control serial mode, How many command strings can be buffered at one time from the host
One string can be buffered while one string is executing but the [CR] at the end will interrupt the current command if it hasn't completed. In this case 1[CR] will be returned for the interrupted command and the new command will be executed.
Quote:
Or is it strictly send one string and wait for a "1[CR]" to be returned and then send the next string.
Given the way the buffer isn't managed that's probably best.

Lee.
falcon5252
Posts: 74
Joined: 16 Aug 2011
Location: USA Pa

Post by falcon5252 »

Hey I got it wright for a change ... My guess is the reason a CR stops prior execution would be so a stop command is processed immediately..

Did you see the drive board I bought, 24 tip127 darlingtons.. I uploaded a few low res pics of it..

I bought some more parts for my PCB CNC today, It will be really nice to plug in a eagle file and have a circuit board 15 min later, The only drawback is no plated through holes unless you want to stuff each hole with little inserts.. The other major use is making custom plastic parts out of clear lexan..
When falling from a high place, You might as well try to fly
Nightmaretony
In Memoriam
Posts: 618
Joined: 27 Jun 2003
Location: Meadowbrook
Contact:

Post by Nightmaretony »

Picture link? also if you ever need for 24 TIP120 type outputs or 24 opto isolated inputs, I had been designing a board to give me both, it runs off serial chains. Picture of the board is on my web page (ok, just the silkscreen)
http://www.nightmarepark.com/Electronic%20Projects.html
will sell for $15 each plus shipping, you stuff it yourself though...
"My biggest dream in life? Building black plywood Habitrails"
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
Picture link?
I won't post the pictures because they belong to someone else but you can see them all in this eBay auction for an identical board.

Lee.
Post Reply