JJB Posted April 15 Author Share Posted April 15 WiFi would be great as it saves a cable snaking over your desk. I did look at WiFi at some stage but the (standard) library was rather large and the resulting sketch didn't fit into memory. Like for FTP and NTP, there may be a smaller WiFi library available somewhere. Speaking of cables, if I really had thought a little bit longer about the design I made sure the Ethernet, power and USB connectors would be at the back of the unit 🙂 I did integrate an APEDSK99 unit into a speech synthesizer case and made some converter cables to do exactly that. 2 Quote Link to comment Share on other sites More sharing options...
JJB Posted April 16 Author Share Posted April 16 Here are some pictures on how I modify the Ethernet shield; I have found this the easiest and quickest way. The final piece of heat shrink tubing on the ICSP connector is important to keep the wires from sliding out the connector over time (as they will be upside down). 3 Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 19 Share Posted April 19 @JJB Here is my first build. Just have to figure how to program it. 1 Quote Link to comment Share on other sites More sharing options...
JJB Posted April 19 Author Share Posted April 19 Looks great! The only slightly tricky thing with programming is using the right version of certain libraries; my Github page has some of the required ones but with every new Arduino IDE version some standard libs seem to bloat and could cause the sketch not to fit. Happy to provide a more detailed list of lib versions if you run into that trouble. Awesome you built one. 1 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted April 19 Share Posted April 19 Many thanks to @RickyDean the extra board I bought from him arrived today and now I will soon be able to build my own unit and check out the hard work and amazing things that @JJB has done to get all working on a TI99. 2 Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 21 Share Posted April 21 @JJB I am getting this error when trying to compile and program the sketch in the Arduino IDE 1.8.19, what do I need to do to resolve this? What am I missing? "Arduino: 1.8.19 (Windows 10), TD: 1.58, Board: "Arduino Uno" C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void disable_controlbus()': APEDSK99_012s-B-HAL:52:3: error: 'pinAsInput' was not declared in this scope pinAsInput(CE); ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void enable_controlbus()': APEDSK99_012s-B-HAL:58:3: error: 'pinAsOutput' was not declared in this scope pinAsOutput(CE); ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void set_addressbus(unsigned int)': APEDSK99_012s-B-HAL:79:3: error: 'digitalLow' was not declared in this scope digitalLow(LATCH); //disable latch line ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:79:3: note: suggested alternative: 'digitalRead' digitalLow(LATCH); //disable latch line ^~~~~~~~~~ digitalRead APEDSK99_012s-B-HAL:87:44: error: 'digitalHigh' was not declared in this scope PORTC |= ( (address >> 10) & B00100000); digitalHigh(CLOCK); digitalLow(DS); //A15 ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:87:44: note: suggested alternative: 'digitalRead' PORTC |= ( (address >> 10) & B00100000); digitalHigh(CLOCK); digitalLow(DS); //A15 ^~~~~~~~~~~ digitalRead C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'byte read_DSRAM(unsigned int)': APEDSK99_012s-B-HAL:128:3: error: 'digitalLow' was not declared in this scope digitalLow(CE); //enable RAM chip select ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:128:3: note: suggested alternative: 'digitalRead' digitalLow(CE); //enable RAM chip select ^~~~~~~~~~ digitalRead APEDSK99_012s-B-HAL:130:3: error: 'digitalHigh' was not declared in this scope digitalHigh(CE); //disable RAM chip select ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:130:3: note: suggested alternative: 'digitalRead' digitalHigh(CE); //disable RAM chip select ^~~~~~~~~~~ digitalRead C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void write_DSRAM(unsigned int, byte)': APEDSK99_012s-B-HAL:139:3: error: 'digitalLow' was not declared in this scope digitalLow(CE); //enable RAM chip select ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:139:3: note: suggested alternative: 'digitalRead' digitalLow(CE); //enable RAM chip select ^~~~~~~~~~ digitalRead APEDSK99_012s-B-HAL:142:3: error: 'digitalHigh' was not declared in this scope digitalHigh(WE); //disable write ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:142:3: note: suggested alternative: 'digitalRead' digitalHigh(WE); //disable write ^~~~~~~~~~~ digitalRead C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void TIstop()': APEDSK99_012s-B-HAL:152:3: error: 'digitalLow' was not declared in this scope digitalLow(TI_READY); //halts TI and enables 74HC595 shift registers ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:152:3: note: suggested alternative: 'digitalRead' digitalLow(TI_READY); //halts TI and enables 74HC595 shift registers ^~~~~~~~~~ digitalRead APEDSK99_012s-B-HAL:153:3: error: 'digitalHigh' was not declared in this scope digitalHigh(TI_BUFFERS); //disables 74HCT541 address buffers and GAL outputs ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:153:3: note: suggested alternative: 'digitalRead' digitalHigh(TI_BUFFERS); //disables 74HCT541 address buffers and GAL outputs ^~~~~~~~~~~ digitalRead C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void TIgo()': APEDSK99_012s-B-HAL:164:3: error: 'digitalLow' was not declared in this scope digitalLow(TI_BUFFERS); //enables 74HCT541 address buffers and GAL outputs ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:164:3: note: suggested alternative: 'digitalRead' digitalLow(TI_BUFFERS); //enables 74HCT541 address buffers and GAL outputs ^~~~~~~~~~ digitalRead APEDSK99_012s-B-HAL:165:3: error: 'digitalHigh' was not declared in this scope digitalHigh(TI_READY); //disables 74HC595 shift registers and wakes up TI ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:165:3: note: suggested alternative: 'digitalRead' digitalHigh(TI_READY); //disables 74HC595 shift registers and wakes up TI ^~~~~~~~~~~ digitalRead C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void APEDSK99reset()': APEDSK99_012s-B-HAL:170:3: error: 'wdt_disable' was not declared in this scope wdt_disable(); //disable Watchdog (just to be sure) ^~~~~~~~~~~ APEDSK99_012s-B-HAL:171:14: error: 'WDTO_15MS' was not declared in this scope wdt_enable(WDTO_15MS); //enable it and set delay to 15ms ^~~~~~~~~ APEDSK99_012s-B-HAL:171:3: error: 'wdt_enable' was not declared in this scope wdt_enable(WDTO_15MS); //enable it and set delay to 15ms ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:171:3: note: suggested alternative: 'mutable' wdt_enable(WDTO_15MS); //enable it and set delay to 15ms ^~~~~~~~~~ mutable C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino: In function 'void Flasher(byte)': APEDSK99_012s-B-HAL:182:3: error: 'digitalHigh' was not declared in this scope digitalHigh(TI_READY); //... but let user enjoy vanilla console ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:182:3: note: suggested alternative: 'digitalRead' digitalHigh(TI_READY); //... but let user enjoy vanilla console ^~~~~~~~~~~ digitalRead APEDSK99_012s-B-HAL:186:7: error: 'digitalLow' was not declared in this scope digitalLow(CE); //set RAM CE* LOW, turns on LED ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-B-HAL.ino:186:7: note: suggested alternative: 'digitalRead' digitalLow(CE); //set RAM CE* LOW, turns on LED ^~~~~~~~~~ digitalRead C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino: In function 'void EtherStart()': APEDSK99_012s-C-global_suppfnc:54:16: error: 'ETH_CS' was not declared in this scope pinAsOutput( ETH_CS ); //enable EthernetShield CS (shared with TI_INT) ^~~~~~ APEDSK99_012s-C-global_suppfnc:54:3: error: 'pinAsOutput' was not declared in this scope pinAsOutput( ETH_CS ); //enable EthernetShield CS (shared with TI_INT) ^~~~~~~~~~~ APEDSK99_012s-C-global_suppfnc:56:19: error: 'MAC' was not declared in this scope Ethernet.begin( MAC, ACFG.ipaddress ); //... with set MAC address and IP address ^~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino: In function 'void EtherStop()': APEDSK99_012s-C-global_suppfnc:60:3: error: 'client' was not declared in this scope client.stop(); //stop Ethernet client ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino:60:3: note: suggested alternative: 'Client' client.stop(); //stop Ethernet client ^~~~~~ Client APEDSK99_012s-C-global_suppfnc:61:3: error: 'pinAsInput' was not declared in this scope pinAsInput(TI_INT); //disable EthernetShield SS / enable TI_INT ^~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino: In function 'boolean prepDSK()': APEDSK99_012s-C-global_suppfnc:106:23: error: 'SD' was not declared in this scope boolean existDOAD = SD.exists( DOADfullpath ); ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino:106:23: note: suggested alternative: 'SDA' boolean existDOAD = SD.exists( DOADfullpath ); ^~ SDA C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino: In function 'void CALLstatus(byte)': APEDSK99_012s-C-global_suppfnc:129:12: error: 'SD' was not declared in this scope DSKx = SD.open( "/CALLerr.txt", FILE_READ ); //open error text file ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino:129:12: note: suggested alternative: 'SDA' DSKx = SD.open( "/CALLerr.txt", FILE_READ ); //open error text file ^~ SDA C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-C-global_suppfnc.ino: In function 'byte getNTPdt()': APEDSK99_012s-C-global_suppfnc:157:3: error: 'ntp' was not declared in this scope ntp.begin(); //start NTP client ^~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino: In function 'void setup()': APEDSK99_012s-E-init:1:6: error: redefinition of 'void setup()' void setup() { ^~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\sketch_apr21a.ino:19:6: note: 'void setup()' previously defined here void setup() { ^~~~~ APEDSK99_012s-E-init:3:3: error: 'pinAsOutput' was not declared in this scope pinAsOutput(TI_BUFFERS); //enable* or disable 74HCT541 address buffers and GAL outputs ^~~~~~~~~~~ APEDSK99_012s-E-init:8:15: error: 'ETHSD_SS' was not declared in this scope pinAsOutput(ETHSD_SS); //initialise shield SS pin ^~~~~~~~ APEDSK99_012s-E-init:9:3: error: 'digitalHigh' was not declared in this scope digitalHigh(ETHSD_SS); //without this SPI subsystem won't work ^~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:9:3: note: suggested alternative: 'digitalRead' digitalHigh(ETHSD_SS); //without this SPI subsystem won't work ^~~~~~~~~~~ digitalRead APEDSK99_012s-E-init:11:9: error: 'SD' was not declared in this scope if ( !SD.begin(SPI_CS) ) { //SD card present and can be initialized? ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:11:9: note: suggested alternative: 'SDA' if ( !SD.begin(SPI_CS) ) { //SD card present and can be initialized? ^~ SDA APEDSK99_012s-E-init:11:18: error: 'SPI_CS' was not declared in this scope if ( !SD.begin(SPI_CS) ) { //SD card present and can be initialized? ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:11:18: note: suggested alternative: 'SPI' if ( !SD.begin(SPI_CS) ) { //SD card present and can be initialized? ^~~~~~ SPI APEDSK99_012s-E-init:21:8: error: 'EEPROM' was not declared in this scope if ( EEPROM.read(EEPROM_DSR) == 0xFF ) { //invalid DSR (i.e. virgin Uno EEPROM or invalid DSR filename)? ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:21:8: note: suggested alternative: 'EEPROM_h' if ( EEPROM.read(EEPROM_DSR) == 0xFF ) { //invalid DSR (i.e. virgin Uno EEPROM or invalid DSR filename)? ^~~~~~ EEPROM_h APEDSK99_012s-E-init:25:3: error: 'EEPROM' was not declared in this scope EEPROM.get( EEPROM_DSR, DSRtoload ); //get DSR filename from EEPROM ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:25:3: note: suggested alternative: 'EEPROM_h' EEPROM.get( EEPROM_DSR, DSRtoload ); //get DSR filename from EEPROM ^~~~~~ EEPROM_h APEDSK99_012s-E-init:26:8: error: 'SD' was not declared in this scope if ( SD.exists(DSRtoload) ) { //does it exist? ... ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:26:8: note: suggested alternative: 'SDA' if ( SD.exists(DSRtoload) ) { //does it exist? ... ^~ SDA APEDSK99_012s-E-init:44:10: error: 'SD' was not declared in this scope if ( SD.exists( nameDSK[ii] ) ) { //does DOAD exist? ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-E-init.ino:44:10: note: suggested alternative: 'SDA' if ( SD.exists( nameDSK[ii] ) ) { //does DOAD exist? ^~ SDA APEDSK99_012s-E-init:64:3: error: 'pinAsInputPullUp' was not declared in this scope pinAsInputPullUp(TI_INT); //from Ethernet SS to detecting TI Interrupts ^~~~~~~~~~~~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-F-FD1771cmd.ino: In function 'void loop()': APEDSK99_012s-F-FD1771cmd:1:6: error: redefinition of 'void loop()' void loop() { ^~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\sketch_apr21a.ino:24:6: note: 'void loop()' previously defined here void loop() { ^~~~ APEDSK99_012s-F-FD1771cmd:8:11: error: 'isHigh' was not declared in this scope while ( isHigh(TI_INT) ) { //... concentrate on GAL "write to DSR RAM" signal ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-F-FD1771cmd.ino:8:11: note: suggested alternative: 'isDigit' while ( isHigh(TI_INT) ) { //... concentrate on GAL "write to DSR RAM" signal ^~~~~~ isDigit APEDSK99_012s-F-FD1771cmd:27:16: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE ); //open SD DOAD file ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-F-FD1771cmd.ino:27:16: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE ); //open SD DOAD file ^~ SDA APEDSK99_012s-G-AD99cmd:22:20: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE); //open DOAD file to change write protect status ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:22:20: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE); //open DOAD file to change write protect status ^~ SDA APEDSK99_012s-G-AD99cmd:37:22: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[currentDSK], FILE_READ ); //yes; prep DOAD ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:37:22: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[currentDSK], FILE_READ ); //yes; prep DOAD ^~ SDA APEDSK99_012s-G-AD99cmd:113:24: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE ); //yes; safe to rename ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:113:24: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE ); //yes; safe to rename ^~ SDA APEDSK99_012s-G-AD99cmd:149:15: error: 'SD' was not declared in this scope SD.remove( DOADfullpath ); //yes; delete DOAD from SD card ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:149:15: note: suggested alternative: 'SDA' SD.remove( DOADfullpath ); //yes; delete DOAD from SD card ^~ SDA APEDSK99_012s-G-AD99cmd:165:17: error: 'ftp' was not declared in this scope if ( !ftp.connect(ACFG.ftpserver, ACFG.ftpuser, ACFG.ftpass) ) { //if we can't connect to FTP server ... ^~~ APEDSK99_012s-G-AD99cmd:175:15: error: 'ftp' was not declared in this scope ftp.store( DOADfilename, DSKx ); //send DOAD to ftp server ^~~ APEDSK99_012s-G-AD99cmd:184:22: error: 'SD' was not declared in this scope DSKx = SD.open( "/_FT", FILE_WRITE ); //... as we are opening a temporary FTP file ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:184:22: note: suggested alternative: 'SDA' DSKx = SD.open( "/_FT", FILE_WRITE ); //... as we are opening a temporary FTP file ^~ SDA APEDSK99_012s-G-AD99cmd:185:15: error: 'ftp' was not declared in this scope ftp.retrieve( DOADfilename, DSKx ); //get DOAD from FTP server ^~~ APEDSK99_012s-G-AD99cmd:206:16: error: 'SD' was not declared in this scope if ( SD.exists(DOADfilename) ) { //does new DSR exist? ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:206:16: note: suggested alternative: 'SDA' if ( SD.exists(DOADfilename) ) { //does new DSR exist? ^~ SDA APEDSK99_012s-G-AD99cmd:207:13: error: 'EEPROM' was not declared in this scope EEPROM.put( EEPROM_DSR, DOADfilename ); //yes; update DSR info in EEPROM ... ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:207:13: note: suggested alternative: 'EEPROM_h' EEPROM.put( EEPROM_DSR, DOADfilename ); //yes; update DSR info in EEPROM ... ^~~~~~ EEPROM_h APEDSK99_012s-G-AD99cmd:240:16: error: 'SD' was not declared in this scope if ( SD.exists( DOADfilename ) ) { //does folder exist? ... ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:240:16: note: suggested alternative: 'SDA' if ( SD.exists( DOADfilename ) ) { //does folder exist? ... ^~ SDA APEDSK99_012s-G-AD99cmd:268:24: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[currentDSK], FILE_READ ); //open DOAD ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:268:24: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[currentDSK], FILE_READ ); //open DOAD ^~ SDA APEDSK99_012s-G-AD99cmd:322:23: error: 'SD' was not declared in this scope SDdir = SD.open( "/" ); //... openening root folder ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:322:23: note: suggested alternative: 'SDA' SDdir = SD.open( "/" ); //... openening root folder ^~ SDA APEDSK99_012s-G-AD99cmd:362:21: error: 'SD' was not declared in this scope SDdir = SD.open( DSKfolder ); //yes; open directory ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:362:21: note: suggested alternative: 'SDA' SDdir = SD.open( DSKfolder ); //yes; open directory ^~ SDA APEDSK99_012s-G-AD99cmd:399:20: error: 'SD' was not declared in this scope DSKx = SD.open( "/CALLhlp.txt", FILE_READ ); //first run, open help file ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:399:20: note: suggested alternative: 'SDA' DSKx = SD.open( "/CALLhlp.txt", FILE_READ ); //first run, open help file ^~ SDA APEDSK99_012s-G-AD99cmd:416:20: error: 'SD' was not declared in this scope DSKx = SD.open( "/tilcchar.bin", FILE_READ ); //first run, open definition file ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:416:20: note: suggested alternative: 'SDA' DSKx = SD.open( "/tilcchar.bin", FILE_READ ); //first run, open definition file ^~ SDA APEDSK99_012s-G-AD99cmd:445:22: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE ); ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:445:22: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[currentDSK], FILE_WRITE ); ^~ SDA APEDSK99_012s-G-AD99cmd:457:18: error: 'SD' was not declared in this scope DSKx = SD.open( nameDSK[0], FILE_READ ); //expect ACFG.DSK mapped to DSK1 ^~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:457:18: note: suggested alternative: 'SDA' DSKx = SD.open( nameDSK[0], FILE_READ ); //expect ACFG.DSK mapped to DSK1 ^~ SDA APEDSK99_012s-G-AD99cmd:506:11: error: 'EEPROM' was not declared in this scope EEPROM.put( EEPROM_CFG, ACFG ); //save configuration struct to EEPROM ^~~~~~ C:\Users\Ricky\Documents\Arduino\sketch_apr21a\APEDSK99_012s-G-AD99cmd.ino:506:11: note: suggested alternative: 'EEPROM_h' EEPROM.put( EEPROM_CFG, ACFG ); //save configuration struct to EEPROM ^~~~~~ EEPROM_h exit status 1 'pinAsInput' was not declared in this scope This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. " Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 22 Share Posted April 22 (edited) This turned out to be duplicated due to the 503 error I received Edited April 22 by RickyDean Changed content Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 22 Share Posted April 22 (edited) That was weird I was working on adding this and the whole atariage went down giving me a 503 service error. @JJBOkay I had to move around your library files and delete some already installed libraries and got it to show different errors now and found that you had already created the sketch, I was creating a new sketch as I'm not all that familiar with programming controllers. Maybe I on the wrong Arduino IDE for this build? I did try uploading what I had but all that worked was the 32k. " Arduino: 1.8.19 (Windows 10), TD: 1.58, Board: "Arduino Uno WiFi" C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-C-global_suppfnc.ino: In function 'boolean prepDSK()': C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-C-global_suppfnc.ino:103:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] Acatpy( DOADfilename, sizeof(DOADfilename), ".DSK", 4); //stick default file extension at the back ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-C-global_suppfnc.ino: In function 'void CALLstatus(byte)': C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-C-global_suppfnc.ino:132:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 2, 18, "\0", 0, true, false, '\0' ); ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-C-global_suppfnc.ino: In function 'byte readFATts()': C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-C-global_suppfnc.ino:233:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-F-FD1771cmd.ino: In function 'void loop()': C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-F-FD1771cmd.ino:19:23: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if ( newFD1771cmd = ( currentFD1771cmd != lastFD1771cmd ) ) { //new or continue previous FD1771 command? ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:6:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if ( newA99cmd = (currentA99cmd != lastA99cmd) ) { //new or continue previous APEDSK99 command? ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:48:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 1, 11, "\0", 0, true, false, '\0' ); //read/save filename characters in CALL buffer ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:64:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 12, 15, "PRG", -12, false, false, '\0' ); //must be "PRG"; write to CALL buffer ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:204:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] Acatpy( DOADfilename, sizeof(DOADfilename), ".DSR", 4); //stick extension at the back ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:270:66: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 18, 28, "\0", 0, true, false, '\0' ); //read/save DSK name characters in CALL buffer ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:279:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 3, 12, "<no map>", -3, false, false, '\0' ); //DSK not mapped ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:304:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 18, 27, "t= f=", -18, false, false, '\0' ); ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:338:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] if ( !Acomp(DOADfilename, 9, "SYSTEM~1") ) { //skip SD system folder ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:374:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 11, 21, "\0", 0, true, false, '\0' ); //write TI DSK name to CALL buffer ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:382:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 23, 28, "S/ D/", -23, false, false, '\0' ); ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:404:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 1, 30, "\0", 0, true, false, '\0' ); ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:421:61: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] writeCBuffer( 0, 32, "\0", 0, true, false, '\0' ); //... yes, write next chunk of 32 definition bytes to CALL buffer ^ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:206:11: warning: this statement may fall through [-Wimplicit-fallthrough=] if ( SD.exists(DOADfilename) ) { //does new DSR exist? ^~ C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s-G-AD99cmd.ino:216:9: note: here case 104: //reset current DSR ( ADSR(), ARST() ) ^~~~ In file included from C:\Users\Ricky\Downloads\APEDSK99-APEDSK99_current\Arduino\APEDSK99_012s\APEDSK99_012s.ino:3:0: C:\Users\Ricky\Documents\Arduino\libraries\SdFat\src/FreeStack.h: At global scope: C:\Users\Ricky\Documents\Arduino\libraries\SdFat\src/FreeStack.h:39:12: warning: 'int FreeStack()' defined but not used [-Wunused-function] static int FreeStack() { ^~~~~~~~~ C:\Users\Ricky\Documents\Arduino\libraries\arduino-NTP\src\NTP.cpp: In member function 'bool NTP::begin()': C:\Users\Ricky\Documents\Arduino\libraries\arduino-NTP\src\NTP.cpp:32:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ C:\Users\Ricky\Documents\Arduino\libraries\arduino-FTP\FTP.cpp: In member function 'uint16_t FTP::waitServerCode(char*)': C:\Users\Ricky\Documents\Arduino\libraries\arduino-FTP\FTP.cpp:274:33: warning: invalid conversion from 'char*' to 'uint8_t* {aka unsigned char*}' [-fpermissive] buffLen += cClient.read(buff + buffLen, len); ~~~~~^~~~~~~~~ In file included from C:\Users\Ricky\Documents\Arduino\libraries\arduino-FTP\FTP.h:5:0, from C:\Users\Ricky\Documents\Arduino\libraries\arduino-FTP\FTP.cpp:18: C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Client.h:35:15: note: initializing argument 1 of 'virtual int Client::read(uint8_t*, size_t)' virtual int read(uint8_t *buf, size_t size) = 0; ^~~~ C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp: In function 'void* operator new(std::size_t, std::nothrow_t)': C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp:59:60: warning: unused parameter 'tag' [-Wunused-parameter] void * operator new(std::size_t size, const std::nothrow_t tag) noexcept { ^~~ C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp: In function 'void* operator new [](std::size_t, const std::nothrow_t&)': C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp:68:63: warning: unused parameter 'tag' [-Wunused-parameter] void * operator new[](std::size_t size, const std::nothrow_t& tag) noexcept { ^~~ C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp: In function 'void operator delete(void*, const std::nothrow_t&)': C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp:103:55: warning: unused parameter 'tag' [-Wunused-parameter] void operator delete(void* ptr, const std::nothrow_t& tag) noexcept { ^~~ C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp: In function 'void operator delete [](void*, const std::nothrow_t&)': C:\Users\Ricky\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino\new.cpp:106:57: warning: unused parameter 'tag' [-Wunused-parameter] void operator delete[](void* ptr, const std::nothrow_t& tag) noexcept { ^~~ Sketch uses 29850 bytes (92%) of program storage space. Maximum is 32256 bytes. Global variables use 1449 bytes (70%) of dynamic memory, leaving 599 bytes for local variables. Maximum is 2048 bytes. An error occurred while uploading the sketch This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. " Edited April 22 by RickyDean added content Quote Link to comment Share on other sites More sharing options...
JJB Posted April 22 Author Share Posted April 22 Those warnings shouldn't prevent uploading the sketch and the amount of program and dynamic memory left is similar with what I get: Sketch uses 29248 bytes (90%) of program storage space. Maximum is 32256 bytes. Global variables use 1435 bytes (70%) of dynamic memory, leaving 613 bytes for local variables. Maximum is 2048 bytes. That seems to indicate you are using the right version of libraries. But I do see "An error occurred while uploading the sketch" which could be a comms problem. Have you tried a to upload an example sketch (Files / Examples) to see if the upload mechanism works? Also, would you be able to send me a link with info on the type of Arduino you are using? Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 23 Share Posted April 23 (edited) 21 hours ago, JJB said: But I do see "An error occurred while uploading the sketch" which could be a comms problem. Have you tried a to upload an example sketch (Files / Examples) to see if the upload mechanism works? Also, would you be able to send me a link with info on the type of Arduino you are using? Here are some scans of the UNO and package it came in from China. No I have only tried to load this sketch as I'm not that familiar with programming these devices. Usually if I don't have explicit instructions, I find it difficult to program them correctly, UNO, teensy, STM32, Beagle Bone, Pico, etc. Here's where I got it from. https://www.aliexpress.us/item/3256802811531752.html?spm=a2g0o.order_list.order_list_main.5.21ef1802jSY3o1&gatewayAdapt=glo2usa Edited April 23 by RickyDean Quote Link to comment Share on other sites More sharing options...
JJB Posted April 23 Author Share Posted April 23 I noticed your board is set to "Arduino UNO WiFi" in the IDE but I'm pretty sure the board you purchased is a vanilla R3 without WiFi. I reckon that if you change the board to "Arduino Uno" (see below) you should be good to go: Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 23 Share Posted April 23 I thought of that last night after posting these pictures, but even after changing it, it is still not working. Will try restartingthe IDE later today and see if that makes a differeence. Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 24 Share Posted April 24 @JJB I took and restarted the IDE and tried to load and program, still got the error. I then closed the sketch, quit the IDE, and unzipped the Apedsk99 stuff over the other files. I then tried to upload and program and still got the error. I then tried just to upload the sketch and it did so. Then leaving it connected to my laptop I walked into the computer room and hooked the APEDSK up to the TI, went into TI Basic and typed in the CALL AHLP and I got the correct response with your info. So it is working, it just won't let me upload and program it to the ATMega328P AVR. How do I set up the IDE to correctly load and program the booloader and files to the AVR. I did, after compiling, save the compiled binary, and both hex files, bootloader and the other are in the folder with your sketch files? Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 24 Share Posted April 24 What would I use here? Quote Link to comment Share on other sites More sharing options...
JJB Posted April 24 Author Share Posted April 24 Just was going to ask if you have anything selected there; mine has no selection: But I don't think it will make a difference as long as you use the "Upload" option. From the Arduino Wiki: The programmer selection is not used when: Compiling your sketch (for example, when clicking Verify). Uploading without a programmer, by clicking the Upload button. But you said "So it is working, it just won't let me upload and program it to the ATMega328P AVR." In other words when you use "Upload" it works but when you use "Upload using programmer" it doesn't? The whole idea behind "Upload" is to use the resident bootloader to act as a programmer and make it simple for anyone to program a device. The bootloader does use space so with an external programmer you can remove the bootloader and have more space for your code but the whole process is a bit more complex for novices. Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 24 Share Posted April 24 (edited) 5 hours ago, JJB said: Just was going to ask if you have anything selected there; mine has no selection: But I don't think it will make a difference as long as you use the "Upload" option. From the Arduino Wiki: The programmer selection is not used when: Compiling your sketch (for example, when clicking Verify). Uploading without a programmer, by clicking the Upload button. But you said "So it is working, it just won't let me upload and program it to the ATMega328P AVR." In other words when you use "Upload" it works but when you use "Upload using programmer" it doesn't? The whole idea behind "Upload" is to use the resident bootloader to act as a programmer and make it simple for anyone to program a device. The bootloader does use space so with an external programmer you can remove the bootloader and have more space for your code but the whole process is a bit more complex for novices. That may be where I have an issue then. I'm was assuming that I needed to program this sketch into the machine, so I've played around with the programmer, because upload for me wasn't persistent, at least I thought it wasn't, for after the pulling it from the laptop, it wouldn't run from just the Apedsk. I may have overwritten the boatloader. From the sketch menu after I verified and compiled the sketch I saved the compiled part to the sketch, one is called a bootloader and smaller and one called larger which must be the rest of the code. Can I take my TL866 Minipro and burn that bootloader, if so at which address should I start it. Then what address should be the start address to burn the other larger .hex file. Edited April 24 by RickyDean Quote Link to comment Share on other sites More sharing options...
JJB Posted April 24 Author Share Posted April 24 I only programmed an Arduino bootloader using another Arduino (some excellent online tutorials for this). You should be able to use your TL866 as well but I haven't tried that. Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted April 25 Share Posted April 25 Well getting there slowly, the first part came in to build this unit: The Uno board Sadly, the 64K ram chip, most likely will not arrive until the first week of June from China. The rest of the parts should come in by tomorrow (the shield board) and monday/tuesday (the sockets, 74 logic chips, caps, resistors) 4 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted April 26 Share Posted April 26 (edited) Well, I got everything in to build my APEDSK99 unit up, except for the 64k ram chip, but at least I going to solder everything together and I should be able to program the UNO and setup the sdcard at least and do the modding needed on the Shield part, as I wait for someday the ram chip to come from china which might be in a month or so from now. But the soldering on Shield is crap, some leftover flux, and one of header pins got bent as it was NOT packaged well at all, just in a thin bubble wrap no foam or box. @RickyDean and @JJB let me know any tips or suggestions before I start assembling this beast. Edited April 26 by Gary from OPA photos and more text 2 Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 26 Share Posted April 26 (edited) The biggest things I would suggest, place and solder the edge card connector first, then when you are reaqplace the wires from the edge connector to the pin holes, that you do the odd side pins 1-43 first and then be sure on the even side, that the odd side wires are down low to the board. Then place a length of shrink wrap, cut lengthwise and about 4mm wide, along the top of those wire solder points, then strap it down with 3 or 4 of the even side wires before you set down in earnest on soldering the even side. This will retain the cover over the odd wire solder points, preventing short possibilities and you can get a clean look.. Do this before placing the sockets and risers or anything else. If you look at mine you see the bottom looks pretty good but on the top it was harder to maneuver my soldering iron, making for a un even soldering experience. Other than that enjoy!! Edited April 26 by RickyDean added content 4 1 Quote Link to comment Share on other sites More sharing options...
JJB Posted April 28 Author Share Posted April 28 In addition to my assembling instructions on GitHub: I initially used a fixture to get those riser connectors straight but I found that by eyeballing it, tagging 1 pin in place and if necessary correct slightly by wiggling and heating the solder on that pin the (straight) results are similar. Once you get it straight tack a couple of others and then solder the rest properly. The reason to tack (quickly solder) is to prevent the riser to float and lift from the board when the solder makes its way through the via. The final step would be to properly re-solder the tacked pins. Yes those Ethernet shields are not the greatest quality unfortunately but I guess the price makes up for it. Once cleaned up a bit and assembled they work fine. Quote Link to comment Share on other sites More sharing options...
RickyDean Posted April 30 Share Posted April 30 @JJB I finally got this UNO to program and function with a usb power supply. Just have to print out the docs and start fiddling. 6 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted May 28 Share Posted May 28 I finally had a chance today, to get some TI99 retro work done and was able to complete the soldering and assembly for the APEDSK99 project. Next step is to test it out and see what can be improved in the software to make it more useful for other 99ers. 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.