[solved] Problem integrating LCD and 360 Chatpad into TinyBasicPlus

Greetings fellow hackers,

I have been spending the past few days attempting to construct a "BASIC pocket computer", like the one Ben Heck made in this video:

I'm making the computer out of an Arduino Uno, a 360 chatpad and an lcd display. I am currently working on editing the original TinyBasicPlus program to accommodate this hardware. I've re-flashed the chip on the 360 chatpad to output standard ascii and have written some code to get it working perfectly with the lcd, alas, when I try to implement this code into the TinyBasicPlus program, I run into problems. As in the video I have redirected the "outchar" function to the "lcdchar" and "doFrame" functions that I have written. I have also imported the LiquidCyrstal library, declared my variables and setup the serial baud rate and lcd settings.

The problem is when I upload the code and plug everything in, instead of getting "TinyBasic V.x xxxx bytes free" I get lines 0 and 2 of the lcd flickering with no text and I get no input from the chatpad.

The manufacturing number of the lcd is FDCC2004B-RNNYBW-66SE. Here is a link to the datasheet.

I've connected up the lcd like in this picture
I've connected the chatpad to 3.3v and ground and I've connected the write line to the arduino's read io

This is a link to the TinyBasicPlus github page

Here is the full TinyBasicPlus code along with my alterations and

This is just the code that I wrote to get the keyboard working with the lcd

When I use the original code and don't hook up anything to the Arduino It works fine on the serial terminal, but the funny thing is that when I use my code for TinyBasicPlus with the alterations, even when I set the code back to Serial.write(c); but leave the alterations in, I don't get anything up at all on the serial monitor.

Any input would be appreciated.

Thanks in advance,
FactualOrc

I saw that Ben Heck episode when it came out, fun project! It sounds like you may have hit a memory limit. Try moving your static data to type PROGMEM and see if that solves it. You might also want to comb through your code and reduce all strings and data types to their most compact form. In the case that still doesn't do it, you can pick up an Arduino Mega which should have the space you need.

Hope that helps!

cool, I'll try that thanks! :slight_smile:

doesn't do it, you can pick up an Arduino Mega which should have the space you need.

1st, try and get a baseline on SRAM using the Arduino Playground - HomePage
Several variations are available on the site, the one I use for UNO boils down to:

int freeRam () {
  extern int __heap_start, *__brkval; 
  int v; 
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 
}

IF you really must use extra memory, consider the Atmega1284 in 40-pin DIP. CrossRoads has a bare board for $5. You seem to be competent with your hardware skills, so you could even use breadboard with the 1284.

Ray

Sorry, didn't see your post, but I got an Atmega644v. Plenty of RAM. :slight_smile: The code runs smoothly now

Topic solved.