wwatson
Well-known member
@Paul @KurtE - Using Arduino 1.8.19, TD1.58 Beta3 I am seeing a intermittent situation with MSC where during uploading and sometimes powering up using the "DriveInfo.ino" sketch for testing results in the msDriveInfo struct is blank:
It shows the device is connected but everything else is 0 including 'initialized'. This is from 'printDriveInfo(myDrive)'. The drive info is filled in by the 'mscInit()' function.
Other times the output is correct:
I added a 'Serial.printf()' in:
And the result when failing is:
When not failing results are:
This may or may not be a problem but can be misleading and/or misinterpreted as a failure. 'mscInit()' is eventually called after 'printDriveInfo'.
If I add a manual call to 'myDrive.begin()'in the sketch the results are:
Successful initialization consistently. Will have to experiment more to try and fix it. Any help is welcome
Edit: Tested with 4 different USB thumb drives and a SSD drive. Same results.
Code:
Waiting for Drive to initialize...
Device Info:
connected: 1
initialized: 0
USB Vendor ID: 0000
USB Product ID: 0000
HUB Number: 0
HUB Port: 0
Device Address: 0
Removable Device: NO
VendorID:
ProductID:
RevisionID:
Version: 0
Sector Count: 0
Sector size: 0
Disk Capacity: 0 Bytes
Volume name: 32GFAT32
Volume type: FAT32
Cluster Size: 16384 bytes
Volume size: 30927306752 bytes
Space used: 375930880 bytes (922 ms to compute)
Files:
2021-10-03 16:29 56863276 armaged.wav
2019-01-01 08:14 40900890 Daddy's_Little_Man.wav
2021-09-12 23:48 43025728 DeffLepardAnimal.wav
2021-09-12 23:46 60148898 StatusQuoWhateverYouWant.wav
2021-09-12 23:44 35639166 ThePaperboysMolinos.wav
2019-01-01 08:01 36381082 ThePaperboysMolinosI'veJustSeenaFace.wav
2021-09-12 23:47 102878882 YoureLazyJimmyBarnesJoeBonamassa.wav
It shows the device is connected but everything else is 0 including 'initialized'. This is from 'printDriveInfo(myDrive)'. The drive info is filled in by the 'mscInit()' function.
Other times the output is correct:
Code:
Waiting for Drive to initialize...
Device Info:
connected: 1
initialized: 1
USB Vendor ID: 0951
USB Product ID: 1666
HUB Number: 0
HUB Port: 0
Device Address: 1
Removable Device: YES
VendorID: Kingston
ProductID: DataTraveler 3.0
RevisionID:
Version: 6
Sector Count: 60437491
Sector size: 512
Disk Capacity: 30943995392 Bytes
Partition Table
part,boot,bgnCHS[3],type,endCHS[3],start,length
FAT32: 1,0,0x4,0x1,0x4,0xB,0xFE,0xC2,0xFF,2048,60434432
pt_#0: 2,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
pt_#0: 3,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
pt_#0: 4,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
< unused area starting at: 60436480 length 1011 >
Volume name: 32GFAT32
Volume type: FAT32
Cluster Size: 16384 bytes
Volume size: 30927306752 bytes
Space used: 375930880 bytes (922 ms to compute)
Files:
2021-10-03 16:29 56863276 armaged.wav
2019-01-01 08:14 40900890 Daddy's_Little_Man.wav
2021-09-12 23:48 43025728 DeffLepardAnimal.wav
2021-09-12 23:46 60148898 StatusQuoWhateverYouWant.wav
2021-09-12 23:44 35639166 ThePaperboysMolinos.wav
2019-01-01 08:01 36381082 ThePaperboysMolinosI'veJustSeenaFace.wav
2021-09-12 23:47 102878882 YoureLazyJimmyBarnesJoeBonamassa.wav
I added a 'Serial.printf()' in:
Code:
bool USBDrive::begin() {
m_errorCode = MS_CBW_PASS;
[COLOR="#FF0000"]Serial.printf("mscInit()\n");[/COLOR]
mscInit(); // Do initial init of each instance of a MSC object.
m_errorCode = checkConnectedInitialized();
if (m_errorCode) { // Check for Connected USB drive.
m_initDone = false;
} else {
m_initDone = true;
}
return m_initDone;
}
And the result when failing is:
Code:
Waiting for Drive to initialize...
Device Info:
connected: 1
initialized: 0
USB Vendor ID: 0000
USB Product ID: 0000
HUB Number: 0
HUB Port: 0
Device Address: 0
Removable Device: NO
VendorID:
ProductID:
RevisionID:
Version: 0
Sector Count: 0
Sector size: 0
Disk Capacity: 0 Bytes
[COLOR="#FF0000"]mscInit()[/COLOR] <------ mscInit() called after printDriveInfo().
Volume name: 128GEXFAT
Volume type: FAT64
Cluster Size: 131072 bytes
Volume size: 123723579392 bytes
Space used: 159121408 bytes (91 ms to compute)
Files:
2011-09-07 16:39 74002706 rom-hackerboard-3320.zip
2022-04-04 15:07 74901978 rom-falconwing.img.zip
2011-10-30 12:07 978134 IOMux.v2.0.27.zip
2011-10-30 12:07 754815 IMX23REFSCH.zip
2022-04-04 17:51 4273249 falconwing_chb3_all.zip
2011-09-07 16:39 7368 chumby-user-group-pages.zip
2011-09-07 16:39 115691 chumby-user-group-files.zip
2011-09-07 16:39 470245 chumbyone_gerbers.zip
2011-09-07 16:39 664812 chumby_hackerboard_gerbers.zip
2011-09-07 16:39 1748436 chumby_hackerboard.zip
2011-10-30 12:06 18247 Debian_on_a_Chumby.html
When not failing results are:
Code:
Waiting for Drive to initialize...
[COLOR="#FF0000"]mscInit()[/COLOR] <------ mscInit() called before printDriveInfo().
Device Info:
connected: 1
initialized: 1
USB Vendor ID: 0951
USB Product ID: 1666
HUB Number: 0
HUB Port: 0
Device Address: 1
Removable Device: YES
VendorID: Kingston
ProductID: DataTraveler 3.0
RevisionID:
Version: 6
Sector Count: 241660915
Sector size: 512
Disk Capacity: 123730388480 Bytes
Partition Table
part,boot,bgnCHS[3],type,endCHS[3],start,length
exFAT: 1,0,0x4,0x1,0x4,0x7,0xFE,0xC2,0xFF,2048,241657856
pt_#0: 2,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
pt_#0: 3,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
pt_#0: 4,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
< unused area starting at: 241659904 length 1011 >
Volume name: 128GEXFAT
Volume type: FAT64
Cluster Size: 131072 bytes
Volume size: 123723579392 bytes
Space used: 159121408 bytes (90 ms to compute)
Files:
2011-09-07 16:39 74002706 rom-hackerboard-3320.zip
2022-04-04 15:07 74901978 rom-falconwing.img.zip
2011-10-30 12:07 978134 IOMux.v2.0.27.zip
2011-10-30 12:07 754815 IMX23REFSCH.zip
2022-04-04 17:51 4273249 falconwing_chb3_all.zip
2011-09-07 16:39 7368 chumby-user-group-pages.zip
2011-09-07 16:39 115691 chumby-user-group-files.zip
2011-09-07 16:39 470245 chumbyone_gerbers.zip
2011-09-07 16:39 664812 chumby_hackerboard_gerbers.zip
2011-09-07 16:39 1748436 chumby_hackerboard.zip
2011-10-30 12:06 18247 Debian_on_a_Chumby.html
This may or may not be a problem but can be misleading and/or misinterpreted as a failure. 'mscInit()' is eventually called after 'printDriveInfo'.
If I add a manual call to 'myDrive.begin()'in the sketch the results are:
Code:
Waiting for Drive to initialize...
[COLOR="#FF0000"]mscInit()[/COLOR] <----- Manual call to myDrive.begin().
Device Info:
connected: 1
initialized: 1
USB Vendor ID: 0951
USB Product ID: 1666
HUB Number: 0
HUB Port: 0
Device Address: 1
Removable Device: YES
VendorID: Kingston
ProductID: DataTraveler 3.0
RevisionID:
Version: 6
Sector Count: 241660915
Sector size: 512
Disk Capacity: 123730388480 Bytes
Partition Table
part,boot,bgnCHS[3],type,endCHS[3],start,length
exFAT: 1,0,0x4,0x1,0x4,0x7,0xFE,0xC2,0xFF,2048,241657856
pt_#0: 2,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
pt_#0: 3,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
pt_#0: 4,0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0,0
< unused area starting at: 241659904 length 1011 >
[COLOR="#FF0000"]mscInit()[/COLOR] <----- startFileSystems() call to USBDrive::begin().
Volume name: 128GEXFAT
Volume type: FAT64
Cluster Size: 131072 bytes
Volume size: 123723579392 bytes
Space used: 159121408 bytes (90 ms to compute)
Files:
2011-09-07 16:39 74002706 rom-hackerboard-3320.zip
2022-04-04 15:07 74901978 rom-falconwing.img.zip
2011-10-30 12:07 978134 IOMux.v2.0.27.zip
2011-10-30 12:07 754815 IMX23REFSCH.zip
2022-04-04 17:51 4273249 falconwing_chb3_all.zip
2011-09-07 16:39 7368 chumby-user-group-pages.zip
2011-09-07 16:39 115691 chumby-user-group-files.zip
2011-09-07 16:39 470245 chumbyone_gerbers.zip
2011-09-07 16:39 664812 chumby_hackerboard_gerbers.zip
2011-09-07 16:39 1748436 chumby_hackerboard.zip
2011-10-30 12:06 18247 Debian_on_a_Chumby.html
Successful initialization consistently. Will have to experiment more to try and fix it. Any help is welcome
Edit: Tested with 4 different USB thumb drives and a SSD drive. Same results.
Last edited: