unfortunately format fails with the same error. i'll try tearing the thing open later and see if i can find anything obviously wrong with it.
here's what i got: % VERBOSE=9 ./pdd.sh format get_tpdd_port() Using port "/dev/ttyUSB0" open_com() set_stty() speed 19200 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 1; -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc do_cmd(format) _init() fonzie_smack() tpdd_drain() tpdd_check() tpdd_write(4D 31 0D) tpdd_drain() tpdd_check() pdd2_unk23() ocmd_send_req(23) calc_cksum(23 00):DC ocmd_send_req: fmt="23" len="00" dat="" chk="DC" tpdd_write(5A 5A 23 00 DC) ocmd_read_ret(100) ocmd_read_ret: reading 2 bytes (fmt & len) tpdd_read(2 100) tpdd_wait(100) tpdd_check() tpdd_check() Detected TPDD1 ocmd_format() Formatting Disk, TPDD1 filesystem : Are you sure? (y/N) y ocmd_send_req(06) calc_cksum(06 00):F9 ocmd_send_req: fmt="06" len="00" dat="" chk="F9" tpdd_write(5A 5A 06 00 F9) ocmd_read_ret(105000 2) ocmd_read_ret: reading 2 bytes (fmt & len) tpdd_read(2 105000 2) tpdd_wait(105000 2) tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_check() tpdd_wait: 105000 2:2500 tpdd_read: l=2 12 01 ocmd_read_ret: reading 2 bytes (data & checksum) tpdd_read(2) tpdd_wait() tpdd_check() tpdd_wait: :0 tpdd_read: l=2 80 6C ocmd_read_ret: fmt=12 len=01 dat=(80) chk=6C verify_checksum(12 01 80 6C) calc_cksum(12 01 80):6C verify_checksum: given:6C calc:6C ocmd_check_err() ocmd_check_err: ret_fmt=12 ret_len=01 ret_dat=(80) read_err="0" ocmd_check_err: 80:Hardware Fault 0 format: Hardware Fault 0 On Wed, Dec 13, 2023 at 04:23:11PM -0500, Brian K. White wrote: > Communication all looks good actually. Cabling and serial port are solid. > The problem is only when it issues the initial dirent() as part of the > directory listing process, and gets a hardware fault error code from the > drive. > > The drive firmware tried to run the disk and read the media, and failed, and > said so. > > It may possibly just be that the disk is not formatted. The disk needs to be > formatted by the drive, it can not use the normal PC formatting the disk > already has. > > So verify: > * The drive has a good belt. > * The disk is DD not HD, aka 720K not 1.4M, aka has only one hole in one > corner. > * The write-protect door in that one hole is closed (open=write-protect). > * The disk contains no data you care about. > > Then in pdd.sh issue the "format" command. > Wait approximately one solar flare cycle. > > Ok 100 seconds but feels like 11 years because there is no data on the wire > all during that time and no way to monitor progress. Even in verbose mode > the percent-done animation is just counting down the expected time which is > known. And you can't do any better. You can not send any data to the drive > during this time or it will just crash it. The client must just sit and wait > for data from the drive, or abort if no data comes after some max possible > time. > > Maybe your drive has the same problem my Purple Computing drive has. > Everything works except actually accessing the media. > So like, something wrong with the drive head or it's signal amplifier maybe? > I have not figured out what's actually wrong with mine yet. That level of > problem may be just a bit beyond me, figuring out how the head read circuit > actaully works and where to probe with a scope and what to expect there etc. > Though, I have a scope and haven't actually tried yet so who knows. > > -- > bkw > > > On 12/13/23 15:22, runrin wrote: > > OK! I think there might be a problem with my PC cable. > > > > With a standard 25 pin to 9 pin adapter and a gender changer on my M100 > > cable, I'm getting some output, but there may be some other issues with > > the drive or cable. > > > > I will paste my results below. > > > > -------------------------------------------------------------------------------- > > `ready' without a disk: > > -------------------------------------------------------------------------------- > > > > % VERBOSE=9 ./pdd.sh ready > > get_tpdd_port() > > Using port "/dev/ttyUSB0" > > open_com() > > set_stty() > > speed 19200 baud; rows 0; columns 0; line = 0; > > intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; > > eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; > > susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; > > time = 1; > > -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts > > -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl > > -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 > > -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 > > vt0 ff0 > > -isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop > > -echoprt echoctl echoke -flusho -extproc > > do_cmd(ready) > > _init() > > fonzie_smack() > > tpdd_drain() > > tpdd_check() > > tpdd_write(4D 31 0D) > > tpdd_drain() > > tpdd_check() > > pdd2_unk23() > > ocmd_send_req(23) > > calc_cksum(23 00):DC > > ocmd_send_req: fmt="23" len="00" dat="" chk="DC" > > tpdd_write(5A 5A 23 00 DC) > > ocmd_read_ret(100) > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2 100) > > tpdd_wait(100) > > tpdd_check() > > tpdd_check() > > Detected TPDD1 > > ocmd_ready() > > ocmd_send_req(07) > > calc_cksum(07 00):F8 > > ocmd_send_req: fmt="07" len="00" dat="" chk="F8" > > tpdd_write(5A 5A 07 00 F8) > > ocmd_read_ret() > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2) > > tpdd_wait() > > tpdd_check() > > tpdd_wait: :0 > > tpdd_read: l=2 12 01 > > ocmd_read_ret: reading 2 bytes (data & checksum) > > tpdd_read(2) > > tpdd_wait() > > tpdd_check() > > tpdd_wait: :0 > > tpdd_read: l=2 71 7B > > ocmd_read_ret: fmt=12 len=01 dat=(71) chk=7B > > verify_checksum(12 01 71 7B) > > calc_cksum(12 01 71):7B > > verify_checksum: given:7B calc:7B > > ocmd_check_err() > > ocmd_check_err: ret_fmt=12 ret_len=01 ret_dat=(71) read_err="0" > > ocmd_check_err: 71:Disk Not Inserted or Disk Change Error > > Not Ready > > > > ready: Disk Not Inserted or Disk Change Error > > > > -------------------------------------------------------------------------------- > > ready with a disk in: > > -------------------------------------------------------------------------------- > > > > % VERBOSE=9 ./pdd.sh ready > > get_tpdd_port() > > Using port "/dev/ttyUSB0" > > open_com() > > set_stty() > > speed 19200 baud; rows 0; columns 0; line = 0; > > intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; > > eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; > > susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; > > time = 1; > > -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts > > -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl > > -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 > > -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 > > vt0 ff0 > > -isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop > > -echoprt echoctl echoke -flusho -extproc > > do_cmd(ready) > > _init() > > fonzie_smack() > > tpdd_drain() > > tpdd_check() > > tpdd_write(4D 31 0D) > > tpdd_drain() > > tpdd_check() > > pdd2_unk23() > > ocmd_send_req(23) > > calc_cksum(23 00):DC > > ocmd_send_req: fmt="23" len="00" dat="" chk="DC" > > tpdd_write(5A 5A 23 00 DC) > > ocmd_read_ret(100) > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2 100) > > tpdd_wait(100) > > tpdd_check() > > tpdd_check() > > Detected TPDD1 > > ocmd_ready() > > ocmd_send_req(07) > > calc_cksum(07 00):F8 > > ocmd_send_req: fmt="07" len="00" dat="" chk="F8" > > tpdd_write(5A 5A 07 00 F8) > > ocmd_read_ret() > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2) > > tpdd_wait() > > tpdd_check() > > tpdd_wait: :0 > > tpdd_read: l=2 12 01 > > ocmd_read_ret: reading 2 bytes (data & checksum) > > tpdd_read(2) > > tpdd_wait() > > tpdd_check() > > tpdd_wait: :0 > > tpdd_read: l=2 00 EC > > ocmd_read_ret: fmt=12 len=01 dat=(00) chk=EC > > verify_checksum(12 01 00 EC) > > calc_cksum(12 01 00):EC > > verify_checksum: given:EC calc:EC > > ocmd_check_err() > > ocmd_check_err: ret_fmt=12 ret_len=01 ret_dat=(00) read_err="0" > > ocmd_check_err: 00:OK > > Ready > > > > -------------------------------------------------------------------------------- > > `ls' without a disk: > > -------------------------------------------------------------------------------- > > > > VERBOSE=9 ./pdd.sh ls > > get_tpdd_port() > > Using port "/dev/ttyUSB0" > > open_com() > > set_stty() > > speed 19200 baud; rows 0; columns 0; line = 0; > > intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; > > eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; > > susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; > > time = 1; > > -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts > > -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl > > -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 > > -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 > > vt0 ff0 > > -isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop > > -echoprt echoctl echoke -flusho -extproc > > do_cmd(ls) > > _init() > > fonzie_smack() > > tpdd_drain() > > tpdd_check() > > tpdd_write(4D 31 0D) > > tpdd_drain() > > tpdd_check() > > pdd2_unk23() > > ocmd_send_req(23) > > calc_cksum(23 00):DC > > ocmd_send_req: fmt="23" len="00" dat="" chk="DC" > > tpdd_write(5A 5A 23 00 DC) > > ocmd_read_ret(100) > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2 100) > > tpdd_wait(100) > > tpdd_check() > > tpdd_check() > > Detected TPDD1 > > lcmd_ls() > > -------- Directory Listing -------- > > ocmd_dirent( 1) > > ocmd_dirent: req: filename="" attr=0x00 action=1 > > ocmd_send_req(00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 01) > > calc_cksum(00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 01):E4 > > ocmd_send_req: fmt="00" len="1A" dat="00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01" chk="E4" > > tpdd_write(5A 5A 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 00 00 01 E4) > > ocmd_read_ret(10000) > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2 10000) > > tpdd_wait(10000) > > tpdd_check() > > tpdd_check() > > tpdd_wait: 10000:100 > > tpdd_read: l=2 12 01 > > ocmd_read_ret: reading 2 bytes (data & checksum) > > tpdd_read(2) > > tpdd_wait() > > tpdd_check() > > tpdd_wait: :0 > > tpdd_read: l=2 71 7B > > ocmd_read_ret: fmt=12 len=01 dat=(71) chk=7B > > verify_checksum(12 01 71 7B) > > calc_cksum(12 01 71):7B > > verify_checksum: given:7B calc:7B > > ocmd_check_err() > > ocmd_check_err: ret_fmt=12 ret_len=01 ret_dat=(71) read_err="0" > > ocmd_check_err: 71:Disk Not Inserted or Disk Change Error > > ------------------------------------- > > > > ls: Disk Not Inserted or Disk Change Error > > > > -------------------------------------------------------------------------------- > > `ls' with a disk: > > -------------------------------------------------------------------------------- > > > > % VERBOSE=9 ./pdd.sh ls > > get_tpdd_port() > > Using port "/dev/ttyUSB0" > > open_com() > > set_stty() > > speed 19200 baud; rows 0; columns 0; line = 0; > > intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; > > eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; > > susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; > > time = 1; > > -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts > > -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl > > -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 > > -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 > > vt0 ff0 > > -isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop > > -echoprt echoctl echoke -flusho -extproc > > do_cmd(ls) > > _init() > > fonzie_smack() > > tpdd_drain() > > tpdd_check() > > tpdd_write(4D 31 0D) > > tpdd_drain() > > tpdd_check() > > pdd2_unk23() > > ocmd_send_req(23) > > calc_cksum(23 00):DC > > ocmd_send_req: fmt="23" len="00" dat="" chk="DC" > > tpdd_write(5A 5A 23 00 DC) > > ocmd_read_ret(100) > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2 100) > > tpdd_wait(100) > > tpdd_check() > > tpdd_check() > > Detected TPDD1 > > lcmd_ls() > > -------- Directory Listing -------- > > ocmd_dirent( 1) > > ocmd_dirent: req: filename="" attr=0x00 action=1 > > ocmd_send_req(00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 01) > > calc_cksum(00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 01):E4 > > ocmd_send_req: fmt="00" len="1A" dat="00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01" chk="E4" > > tpdd_write(5A 5A 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > 00 00 00 00 00 00 00 00 00 01 E4) > > ocmd_read_ret(10000) > > ocmd_read_ret: reading 2 bytes (fmt & len) > > tpdd_read(2 10000) > > tpdd_wait(10000) > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_check() > > tpdd_wait: 10000:2300 > > tpdd_read: l=2 12 01 > > ocmd_read_ret: reading 2 bytes (data & checksum) > > tpdd_read(2) > > tpdd_wait() > > tpdd_check() > > tpdd_wait: :0 > > tpdd_read: l=2 80 6C > > ocmd_read_ret: fmt=12 len=01 dat=(80) chk=6C > > verify_checksum(12 01 80 6C) > > calc_cksum(12 01 80):6C > > verify_checksum: given:6C calc:6C > > ocmd_check_err() > > ocmd_check_err: ret_fmt=12 ret_len=01 ret_dat=(80) read_err="0" > > ocmd_check_err: 80:Hardware Fault 0 > > ------------------------------------- > > > > ls: Hardware Fault 0 > > > > On Wed, Dec 13, 2023 at 02:54:59PM -0500, Brian K. White wrote: > > > I should write up some steps to verify things, both for the cable and for > > > pdd.sh. It's one thing to say "do this to make this" but then when it > > > doesn't work, then what? Is something broken or did you get a step wrong > > > or > > > are the directions wrong? > > > > > > One thing is with the solder blob in place, you should tell pdd.sh to run > > > at > > > 9600, which is not the default. ```$ BAUD=9600 pdd``` > > > or issue "baud 9600" command after starting pdd. Since it's not the > > > default, > > > if you hadn't used the baud command or variable then it wouldn't have > > > worked > > > before you removed the solder blob. > > > > > > With all jumpers open, the drive is at 19200 and the default in pdd.sh is > > > 19200 so you're good to go now. > > > > > > I have a FB100 with the blob still in place. So I can at least confirm > > > that > > > with a good cable and drive and usb serial adapter, no disk inserted, door > > > opened or closed, "ready" and "ls" do work and the access light only > > > blinks > > > for a split second and the motor never starts at all. > > > > > > Getting no reaction at all sounds like no communication. I have a Purple > > > Computing drive that doesn't work, and just looks dead in a normal tpdd > > > client, but with pdd.sh I can tell that the controller is up and running > > > fine, accepting commands and returning results and communicating just > > > fine, > > > and even reading the door-open, disk-inserted, & write-protect sensors, > > > merely it can't actually read or write media. On that drive, "ready" and > > > "ls" still work, at least in so far as they accept the command and return > > > a > > > result, all sensibly. The "ls" just says there was a disk error, but the > > > point is the drive responds and SAYS disk error, because communication is > > > working. > > > > > > You could try the verbose setting to see if you can tell if the drive is > > > responding at all, not at all, or with unexpected data that pdd.sh doesn't > > > understand. > > > > > > Here is a capture of a short verbose session with a working FB100 with the > > > door open and no disk inserted. You will omit the BAUD=9600. I wanted to > > > do > > > this on an actual FB100 just to be sure we're both testing the same > > > things, > > > and mine still has the solder blob. > > > > > > What we're looking for is, did the stty command at the beginning seem to > > > work? Some other problem like a permissions problem with my gimmicky > > > sleep() > > > function that uses a trick with a fifo file to get a sleep function > > > without > > > having to execute the external /bin/sleep? Did the drive ever return even > > > a > > > single byte of anything? The verbosity shows every byte of traffic in > > > either > > > direction, so, even if the data is unrecognized and not handled, you can > > > still see that there was data, or not. > > > > > > bkw@fw:~$ > > > bkw@fw:~$ BAUD=9600 VERBOSE=9 pdd ready > > > get_tpdd_port() > > > Using port "/dev/ttyUSB0" > > > open_com() > > > set_stty() > > > speed 9600 baud; rows 0; columns 0; line = 0; > > > intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; > > > eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = > > > ^R; > > > werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 1; > > > -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts > > > -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon > > > -ixoff > > > -iuclc -ixany -imaxbel -iutf8 > > > -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 > > > vt0 > > > ff0 > > > -isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop > > > -echoprt > > > echoctl echoke -flusho -extproc > > > do_cmd(ready) > > > _init() > > > fonzie_smack() > > > tpdd_drain() > > > tpdd_check() > > > tpdd_write(4D 31 0D) > > > tpdd_drain() > > > tpdd_check() > > > pdd2_unk23() > > > ocmd_send_req(23) > > > calc_cksum(23 00):DC > > > ocmd_send_req: fmt="23" len="00" dat="" chk="DC" > > > tpdd_write(5A 5A 23 00 DC) > > > ocmd_read_ret(100) > > > ocmd_read_ret: reading 2 bytes (fmt & len) > > > tpdd_read(2 100) > > > tpdd_wait(100) > > > tpdd_check() > > > tpdd_check() > > > Detected TPDD1 > > > ocmd_ready() > > > ocmd_send_req(07) > > > calc_cksum(07 00):F8 > > > ocmd_send_req: fmt="07" len="00" dat="" chk="F8" > > > tpdd_write(5A 5A 07 00 F8) > > > ocmd_read_ret() > > > ocmd_read_ret: reading 2 bytes (fmt & len) > > > tpdd_read(2) > > > tpdd_wait() > > > tpdd_check() > > > tpdd_wait: :0 > > > tpdd_read: l=2 12 01 > > > ocmd_read_ret: reading 2 bytes (data & checksum) > > > tpdd_read(2) > > > tpdd_wait() > > > tpdd_check() > > > tpdd_wait: :0 > > > tpdd_read: l=2 71 7B > > > ocmd_read_ret: fmt=12 len=01 dat=(71) chk=7B > > > verify_checksum(12 01 71 7B) > > > calc_cksum(12 01 71):7B > > > verify_checksum: given:7B calc:7B > > > ocmd_check_err() > > > ocmd_check_err: ret_fmt=12 ret_len=01 ret_dat=(71) read_err="0" > > > ocmd_check_err: 71:Disk Not Inserted or Disk Change Error > > > Not Ready > > > > > > ready: Disk Not Inserted or Disk Change Error > > > bkw@fw:~$ > > > > > > ---------------------- > > > > > > I'll break down some of that to explain what you're looking at: > > > > > > > > > tpdd_write(5A 5A 23 00 DC) > > > ocmd_read_ret(100) > > > ocmd_read_ret: reading 2 bytes (fmt & len) > > > tpdd_read(2 100) > > > tpdd_wait(100) > > > tpdd_check() > > > tpdd_check() > > > Detected TPDD1 > > > > > > > > > This looks like we aren't displaying something because we sent 5A 5A 23 00 > > > DC to the drive, and then just declared "detected tpdd1" without seeing > > > the > > > response from the drive. In this case, that is actually how we detect > > > tpdd1 > > > is by the lack of response to that command. > > > > > > > > > ocmd_ready() > > > ocmd_send_req(07) > > > calc_cksum(07 00):F8 > > > ocmd_send_req: fmt="07" len="00" dat="" chk="F8" > > > tpdd_write(5A 5A 07 00 F8) > > > > > > Send the "ready" command, > > > which ultimately means send 5A 5A 07 00 F8 to the drive > > > > > > ocmd_read_ret() > > > ocmd_read_ret: reading 2 bytes (fmt & len) > > > tpdd_read(2) > > > tpdd_wait() > > > tpdd_check() > > > tpdd_wait: :0 > > > tpdd_read: l=2 12 01 > > > > > > Read a standard response packet from the drive, > > > which ultimately means to start by reading 2 bytes and interpret them to > > > tell how many more bytes to read for the rest of the response packet. > > > > > > And we did get 2 bytes back from the drive, and they were 12 01 > > > > > > And then it goes on to interpret that as packet type 12 payload length 1, > > > which means read one more byte for the payload and one more after that for > > > the checksum, which gave us the payload error code 71 which was looked up > > > from a table of error codes to give us the human readable message for code > > > 71. > > > > > > > > > ---------------------------- > > > > > > Some basic physical stuff to check just so you have some baseline to know > > > what is normal. A lot of the drives normal correct behavior seems kind of > > > dead if you didn't know what to expect. Like how when you turn it on, > > > nothing happens. Two lights on the front and neither one lights, the motor > > > doesn't spin, etc. > > > > > > Holding the drive in your hand, you should feel the motor nudge just a bit > > > every time you flip the power switch on. It doesn't spin even one > > > rotation, > > > just a short vibration for 1/2 second or less. It doesn't matter if the > > > door > > > is open or closed. It doesn't matter if there is a disk inserted or not. > > > The > > > access light never comes on. > > > > > > The battery light stays off at all times except it blinks on for a split > > > second every time you turn the power off. > > > > > > ---------------------------------------- > > > > > > Checking some electrical basics right at the drive itself without the > > > cable > > > in the equation: > > > > > > Looking at the rear of the drive, pin 1 is top-right, and pin 2 is bottom > > > right. > > > > > > You should get continuity from pin 1 to the center pin of the power jack. > > > > > > With the power ON, and a dmm in dc volts mode, black on pin 1, you should > > > get 5v on pin 3 and 0v on all other pins. > > > > > > > > > -------------------------------------- > > > > > > verifying the cable (probably should have started with this) > > > > > > Looking into the drive-end of the cable, with the polarity key up, and > > > ignoring the two positions that form the polarity key, > > > pin 1 is top-left, pin 2 is bottom-left. > > > > > > > > > Looking into the pc end of the cable, with the long side up, the plug > > > should > > > be 9-pin female, pin 1 is top-right, pin 6 is bottom-right. > > > > > > (Regardless how the cable is constructed between those two ends, whether a > > > custom one-piece cable like you made using the WP-2/PC cable directions, > > > or > > > using the cable meant for the 100 and adding the special 25f-9f adapter > > > linked in the hardware document in the pdd.sh readme. Point being I'm > > > testing the end-to-end connection with nothing that might change the > > > pinout > > > left out. The only other "adapter" is just the usb-serial adapter which > > > you > > > can consider as not an adapter but just a 9-pin male com port.) > > > > > > https://raw.githubusercontent.com/bkw777/TPDD_Cable/master/DE9F_to_PC.jpg > > > > > > > > > With a dmm in continuity mode, you should get beeps with these, direction > > > of > > > black vs red doesn't matter: > > > > > > drive pin 1 to pc pin 5 > > > drive pin 2 to pc pin 7 > > > drive pin 5 to pc pin 4 > > > drive pin 7 to pc pin 3 > > > > > > With a dmm in diode mode: > > > > > > black on drive pin 3 to red on pc pin 6: 1.7v (reversed: ol) > > > black on drive pin 4 to red on pc pin 8: 1.7v (reversed: ol) > > > black on drive pin 6 to red on pc pin 2: 1.7v (reversed: ol) > > > > > > > > > There are no pin-to-pin shorts within the cable at either end. In a normal > > > serial cable it's not wrong to have DCD connected to DSR right at the end > > > in > > > the plug, which would be pin 1 to pin 6 both on the pc end here, but in > > > this > > > case pin 1 on the pc end is not connected to anything and there are no > > > other > > > things like that either. Just 7 individual 1:1 connections. > > > > > > -------------------------------------------------------- > > > > > > > > > I just performed all of these with my own working FB100 and cable. > > > > > > I have used a variety of usb-serial adapters and I think every one I've > > > used > > > has worked, but bad usb-serial adapters are definitely a thing, and I > > > used a > > > good FTDI cable just now. Gearmo GM-FTDI2-LED-C for the record. > > > > > > -- > > > bkw > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On 12/13/23 01:17, runrin wrote: > > > > Hey all > > > > > > > > I acquired an FB100 recently, popped it open and checked the belt, and > > > > it looks brand new. > > > > > > > > I spent a few hours building some of bwk's TPDD cables tonight and > > > > testing it out, but I'm struggling to get the drive working. > > > > > > > > When I connect the drive to my M100 and use the TS-DOS rom, the drive > > > > access light pops up, and then it tells me my disk isn't formatted (it's > > > > not). Then when I press "Y" to format, there is no activity on the > > > > access light. > > > > > > > > I tried hooking it up to my Linux box with the WP-2/PC cable and pdd.sh, > > > > and I get no response at all from the drive. No access light at all even > > > > with an `ls' or `ready' command. > > > > > > > > I checked the jumpers on the bottom and one was bridged, so I tried > > > > desoldering that (since the TPDD manual suggests setting the DIP > > > > switches to all off), and it didn't make any difference. > > > > > > > > Any thoughts what might be going on? > > > > > > > > Thanks!! > > > > > > -- > > > bkw > > > > > -- > bkw >