--
You received this message because you are subscribed to a topic in the Google Groups "MakerGear - Make Today, Change Tomorrow" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/makergear/G23y21KWTmI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to makergear+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
My observations of the usage of the LCD SD slot:
1. SD card must be in slot before powering on. It only reads the card at startup it seems, and doesn't access/pull the directoy info if inserted after the LCD is already running.
2. Fat32 works fine
3. SD slot doesn't notice when card is removed after initial reading, and even seems to have loaded (at least one) file into memory. I was able to start a print with a card removed.
4. File names longer than 8 chars will not be selectable
5. File names with NUMBERS WILL NOT be selectable. this is where I was stumbling I think!
6. Use the .g extension for file names
7. If you start a print from SD, stop it using menu item, then try to start another..you get "Test" at the bottom of the screen and it doesn't seem to do anything.
8. Directories are not seen on the LCD
9. Using Creator to connect to M2 can access the files and start prints as usual, which shows the sd slot is fine these are nuances of the firmware/software for accessing the sd from the LCD only.
Hopefully this helps others out and are consistent observations with what others can/cannot do!
/* Helper macros for menus */
#define START_MENU() do { \
if (encoderPosition > 0x8000) encoderPosition = 0; \
if (encoderPosition / ENCODER_STEPS_PER_MENU_ITEM < currentMenuViewOffset) currentMenuViewOffset = encoderPosition / ENCODER_STEPS_PER_MENU_ITEM;\
uint8_t _lineNr = currentMenuViewOffset, _menuItemNr; \
bool wasClicked = LCD_CLICKED;\
for(uint8_t _drawLineNr = 0; _drawLineNr < LCD_HEIGHT; _drawLineNr++, _lineNr++) { \
_menuItemNr = 0;
#define MENU_ITEM(type, label, args...) do { \
if (_menuItemNr == _lineNr) { \
if (lcdDrawUpdate) { \
const char* _label_pstr = PSTR(label); \
if ((encoderPosition / ENCODER_STEPS_PER_MENU_ITEM) == _menuItemNr) { \
lcd_implementation_drawmenu_ ## type ## _selected (_drawLineNr, _label_pstr , ## args ); \
}else{\
lcd_implementation_drawmenu_ ## type (_drawLineNr, _label_pstr , ## args ); \
}\
}\
if (wasClicked && (encoderPosition / ENCODER_STEPS_PER_MENU_ITEM) == _menuItemNr) {\
lcd_quick_feedback(); \
menu_action_ ## type ( args ); \
return;\
}\
}\
_menuItemNr++;\
} while(0)
void lcd_sdcard_menu()
{
if (lcdDrawUpdate == 0 && LCD_CLICKED == 0)
return; // nothing to do (so don't thrash the SD card)
uint16_t fileCnt = card.getnrfilenames();
...
@TJ: The SD card detect works fine on my Viki LCD. Perhaps the issue does not apply to all of them.
--