During this winter break I decided to revisit an old project that I attempted to build when I first started working with microcontrollers. This particular project was a TI graphing calculator memory expander called PIXPander that was created by a man named Sami Khawam. PIXPander was a device that consisted of a PIC16F84 microcontroller, a Playstation memory card, and various discrete components to provide 128KB of external memory to TI graphing calculators. Unfortunately, I was never able to get this device to work, even now. What follows is my research into this device and my attempts to get it to work, as well as suggestions for anyone who may decide to pick up this project themselves.
Was this design tested before being published?
Has anyone ever gotten this to work?
Doniguan on ticalc.org apparently got it to work, but his comments seem suspect to me
entire TI-83+ games library, plus calc vids all on a 128KB memory card?
zecoj got it to work?
ftp83plus tried building PIXPander and was unsuccessful
I myself have tried and have not gotten it to work (even after modifying the schematic to include level shifters and a proper 3.4V supply)
I believe there to be a communications problem between the PIC and the calculator
I only get the LEDs to sweep after sending a variable to PIXPander fails
Hardware issues
Mem. card runs @ 3.4V, however there are no level shifters being used between the PIC and the memory card
No pull-up resistor for ACK? (need to check firmware about this one)
Why use 18KΩ pull-up resistors?
Firmware issues
Supplied hex file is faulty (there's an instruction "bsf 0x75, 04", which is invalid)
new files at next frame after an end frame, but still within same 32K segment?
how would you read a file in the middle of a 32K segment that's not in a group?
speed of calc vs. speed of memory card?
This project is over 10 years old.
Firmware was written using SPASM -> have to convert to MPASM format to work with current-gen tools (my converted MPASM source is available in the files portion of this post)
Can compile with SPASM and program hex to a 16F84 with ICProg
Firmware source code is incredibly buggy and unfriendly to modify, even for beta (alpha?) code (why on Earth would you release source code as a pdf?!)
May be better off to start from scratch?
PIC16F84 is now waaaaaaay obsolete (thankfully Microchip still produces their old parts, unlike *cough*Atmel*cough*)
Could re-compile MPASM source to use PIC16F84A very easily
Port to 16F628?
Assuming PIXPander did work,
From what I can tell you can only store to 4 locations (need to check firmware)
Does this mean you can have at most 4 files on the memory card? (which would make this device rather restrictive)
Corroborated by AuroraBoriales? http://webcache.googleusercontent.com/search?q=cache:ANp7KEuU_HUJ:www.ticalc.org/community/surveys/57.html%3Fp%3D3+pixpander+site:ticalc.org&cd=25&hl=en&ct=clnk&gl=us
Or does it mean you can only store at most 4 transfers worth of data (<=32KB) at a time? (would complicate transferring individual files back to a calc)
Automatic overwrite is dangerous
Very bare-bones feature set
W32Tran8x and PIXPander?
Had to install Windows 95 to get it to run :P
All "XPander" references are greyed-out
Not practical (even back then, you could get EEPROMs far cheaper than PSX memory cards, though PSX memory cards were fairly common)
only extends memory by 128KB (unless you have one of those "expanded" memory cards like this)
Much cheaper to just buy a used TI-83+ SE or TI-84+ SE, not to mention 1.5MB ROM > 288KB (160KB FLASH of TI-83+ + 128KB Playstation memory card) 8x increase in ROM vs. .8x increase (SE will increase mem. 10x more than playstation memory card)
Would be better to adapt another expander (Expander II, TICFRW, etc.) for the TI-83+ if one is serious about having external memory for the TI-83+
Is a TI-83+ memory expander in demand anymore, considering the TI-84+ with msd8x?
Some history of PIXPander and related projects:
PIXPander was originally based on (Smart Media then) Samsung FLASH chips? http://web.archive.org/web/19991022231959/sami.ticalc.org/e_pxpand.htm
He never tested his first design using FLASH chips (doesn't really seem like he devoted enough time PIXPander)
Why go from 4Mb FLASH to a 1Mb Playstation memory card?
Cemetech
http://www.cemetech.net/forum/viewtopic.php?t=1779&start=0&postdays=0&postorder=asc&highlight=
ftp83plus
http://bx.yaronet.com/posts.php?s=2005
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=pixpander+site:yaronet.com
Expander II
http://web.archive.org/web/20010801225401/horizon.pair.com/e2/
http://web.archive.org/web/20041206004450/http://staidm.org/old/horizon/e2/
http://www.ticalc.org/archives/news/articles/11/112/112314.html
Mel Tsai?
http://web.archive.org/web/19970612220726/http://www.egr.msu.edu/~tsaimelv/expander.htm
http://www.mtsai.net/documents/appnote/appnote.html
Files
Here are the files that I have been using while working on PIXPander (includes a new schematic, source code, and hex files): http://www.ultdev.com/files/pixpand.zip
TL;DR
If you want more memory on your calc, buy a TI-84+ and a USB mini-A plug to USB A receptacle adapter cable so you can use a USB mass storage device as an external memory expander.
If you *really* want to make PIXPander work, build the circuit from the schematic posted here and write your own firmware for the 16F84 (better yet, move to a newer microcontroller platform.)
Was this design tested before being published?
Has anyone ever gotten this to work?
Doniguan on ticalc.org apparently got it to work, but his comments seem suspect to me
entire TI-83+ games library, plus calc vids all on a 128KB memory card?
zecoj got it to work?
ftp83plus tried building PIXPander and was unsuccessful
I myself have tried and have not gotten it to work (even after modifying the schematic to include level shifters and a proper 3.4V supply)
I believe there to be a communications problem between the PIC and the calculator
I only get the LEDs to sweep after sending a variable to PIXPander fails
Hardware issues
Mem. card runs @ 3.4V, however there are no level shifters being used between the PIC and the memory card
No pull-up resistor for ACK? (need to check firmware about this one)
Why use 18KΩ pull-up resistors?
Firmware issues
Supplied hex file is faulty (there's an instruction "bsf 0x75, 04", which is invalid)
new files at next frame after an end frame, but still within same 32K segment?
how would you read a file in the middle of a 32K segment that's not in a group?
speed of calc vs. speed of memory card?
This project is over 10 years old.
Firmware was written using SPASM -> have to convert to MPASM format to work with current-gen tools (my converted MPASM source is available in the files portion of this post)
Can compile with SPASM and program hex to a 16F84 with ICProg
Firmware source code is incredibly buggy and unfriendly to modify, even for beta (alpha?) code (why on Earth would you release source code as a pdf?!)
May be better off to start from scratch?
PIC16F84 is now waaaaaaay obsolete (thankfully Microchip still produces their old parts, unlike *cough*Atmel*cough*)
Could re-compile MPASM source to use PIC16F84A very easily
Port to 16F628?
Assuming PIXPander did work,
From what I can tell you can only store to 4 locations (need to check firmware)
Does this mean you can have at most 4 files on the memory card? (which would make this device rather restrictive)
Corroborated by AuroraBoriales? http://webcache.googleusercontent.com/search?q=cache:ANp7KEuU_HUJ:www.ticalc.org/community/surveys/57.html%3Fp%3D3+pixpander+site:ticalc.org&cd=25&hl=en&ct=clnk&gl=us
Or does it mean you can only store at most 4 transfers worth of data (<=32KB) at a time? (would complicate transferring individual files back to a calc)
Automatic overwrite is dangerous
Very bare-bones feature set
W32Tran8x and PIXPander?
Had to install Windows 95 to get it to run :P
All "XPander" references are greyed-out
Not practical (even back then, you could get EEPROMs far cheaper than PSX memory cards, though PSX memory cards were fairly common)
only extends memory by 128KB (unless you have one of those "expanded" memory cards like this)
Much cheaper to just buy a used TI-83+ SE or TI-84+ SE, not to mention 1.5MB ROM > 288KB (160KB FLASH of TI-83+ + 128KB Playstation memory card) 8x increase in ROM vs. .8x increase (SE will increase mem. 10x more than playstation memory card)
Would be better to adapt another expander (Expander II, TICFRW, etc.) for the TI-83+ if one is serious about having external memory for the TI-83+
Is a TI-83+ memory expander in demand anymore, considering the TI-84+ with msd8x?
Some history of PIXPander and related projects:
PIXPander was originally based on (Smart Media then) Samsung FLASH chips? http://web.archive.org/web/19991022231959/sami.ticalc.org/e_pxpand.htm
He never tested his first design using FLASH chips (doesn't really seem like he devoted enough time PIXPander)
Why go from 4Mb FLASH to a 1Mb Playstation memory card?
Cemetech
http://www.cemetech.net/forum/viewtopic.php?t=1779&start=0&postdays=0&postorder=asc&highlight=
ftp83plus
http://bx.yaronet.com/posts.php?s=2005
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=pixpander+site:yaronet.com
Expander II
http://web.archive.org/web/20010801225401/horizon.pair.com/e2/
http://web.archive.org/web/20041206004450/http://staidm.org/old/horizon/e2/
http://www.ticalc.org/archives/news/articles/11/112/112314.html
Mel Tsai?
http://web.archive.org/web/19970612220726/http://www.egr.msu.edu/~tsaimelv/expander.htm
http://www.mtsai.net/documents/appnote/appnote.html
Files
Here are the files that I have been using while working on PIXPander (includes a new schematic, source code, and hex files): http://www.ultdev.com/files/pixpand.zip
TL;DR
If you want more memory on your calc, buy a TI-84+ and a USB mini-A plug to USB A receptacle adapter cable so you can use a USB mass storage device as an external memory expander.
If you *really* want to make PIXPander work, build the circuit from the schematic posted here and write your own firmware for the 16F84 (better yet, move to a newer microcontroller platform.)