I have a Maestro 6 with a DSM44 servo. The project I’m working on needs to be created in VB6. I have no problems controlling the servo from the Pololu Maestro Control Center or the Serial transmitter (on comm port #8 9600,n,8,1). When I try to send commands out of the comm port through VB6, I get no motion at all. I’ve tried different data formats, but nothing works. I cannot find any programming examples for VB6 either. This is a sample of the code I’ve tried.
mscomm1.output = "FF 00 F2"
mscomm1.output = "FF,00,F2"
mscomm1.output = "FF00F2"
mscomm1.output = "0xFF 0x00 0xF2"
mscomm1.output = "0xFF,0x00,0xF2"
mscomm1.output = "255 00 242"
mscomm1.output = “255,00,242”
Can anyone tell me the correct output format to create motion from VB6? Also, is a carriage return / line feed required at the end of an output string? (vbCrLf)
never mind… I finally figured it out
mscomm1.output = Chr(255) & Chr(0) & Chr(242)
Thanks anyways
In VB6 your code doesn’t work for me…
I’m running XP service pack 3 and VB6 (not .net)
I have set the serial settings to dual port mode as advised
This is what I’ve tried (copied from a DaveH on here) and it doesn’t work either:
I want to set servo to 1500 (roughly centre point)
assuming port=5
'open Port 5:
MSComm1.CommPort = 5
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
'set Servo 5 speed to 20
MSComm1.Output = Chr(135) + Chr(5) + Chr(20 Mod 128) + Chr(20 \ 128)
'set Servo 5 acceleration to 8
MSComm1.Output = Chr(137) + Chr(5) + Chr(8 Mod 128) + Chr(8 \ 128)
'set Servo 5 target to 1500µs
a = 4 * 1500 'convert to quarter micro-secs
MSComm1.Output = Chr(132) + Chr(5) + Chr(a Mod 128) + Chr(a \ 128)
'close the port
MSComm1.PortOpen = False
any ideas?
Hello. From your other post it looks like you have already solved your problem.
–David