Hello guys,
I am working on a big project, that I always wanted to do and what actually got me into electronics. Now, almost two years after I wanted to build it, I finally have built up a collection of tools, software, parts and most important: knowledge. Back then, I failed getting the project done. But now I know C and C++, have quite some experience with 8 bit computers and microcontrollers and got older. Now lets get to the internals.
The pocket computer will be running a custom version of BASIC, have a 20x4 lcd display and a small keyboard. It will be powered by a LiPo battery and will have some expansion port and a slot for further memory addition.
The chip itself is running at 16 Mhz and is retrieving data from the keyboard over serial and decodes the data while the basic interpreter is waiting. The keyboard needs keep-alive packets every 1-3 seconds to stay awake or it will go into a deep sleep mode, which cannot be exited without cutting power. The driver is written by me, but Cliff Biffle has done most of the reverse-engineering work. I only programmed a ring buffer for the keypresses, made the keymaps and the asynchronous communication synchronous (using that buffer). The keyboard is an Xbox 360 Chatpad, running the stock firmware, the LCD is a standard Hitachi HD44780 compatible, parallel, 20x4 one and the uC is an Atmel branded, 8-bit microprocessor. The basic will have 1000 bytes of RAM by default, but can be extended to 256kb maximum. It will also have an EEPROM to store the programs to, if I have time for it.
Pictures will follow.
I am working on a big project, that I always wanted to do and what actually got me into electronics. Now, almost two years after I wanted to build it, I finally have built up a collection of tools, software, parts and most important: knowledge. Back then, I failed getting the project done. But now I know C and C++, have quite some experience with 8 bit computers and microcontrollers and got older. Now lets get to the internals.
The pocket computer will be running a custom version of BASIC, have a 20x4 lcd display and a small keyboard. It will be powered by a LiPo battery and will have some expansion port and a slot for further memory addition.
The chip itself is running at 16 Mhz and is retrieving data from the keyboard over serial and decodes the data while the basic interpreter is waiting. The keyboard needs keep-alive packets every 1-3 seconds to stay awake or it will go into a deep sleep mode, which cannot be exited without cutting power. The driver is written by me, but Cliff Biffle has done most of the reverse-engineering work. I only programmed a ring buffer for the keypresses, made the keymaps and the asynchronous communication synchronous (using that buffer). The keyboard is an Xbox 360 Chatpad, running the stock firmware, the LCD is a standard Hitachi HD44780 compatible, parallel, 20x4 one and the uC is an Atmel branded, 8-bit microprocessor. The basic will have 1000 bytes of RAM by default, but can be extended to 256kb maximum. It will also have an EEPROM to store the programs to, if I have time for it.
Pictures will follow.