Memory expansion/upgrade

The VEX could seriously use some more memory. It would be great to give it the ability to, say, map a room using a rangefinder or radar. Even just have the ability to hold more large variable arrays (I had the beginnings of a good autonomous bot but it couldn’t handle the variable arrays:mad: ). Even just a memory expansion would be good.

There is a way to upgrade PIC18F8520 micro-controllers using the I2C or SPI port. For instance the Microchip 24LC512 provides 512 KB of Serial I2C EEPROM. These devices can be networked together for even larger memory capacity.

There are two obstacles to using this type of memory on the Vex controller. First is the fact that no provisions are made to provide access to the I2C peripheral pins. The second obstacle is the fact that Serial EEPROM is much slower to read and write than on-chip SRAM.

Another solution is for Vex Labs to provide a mid-range or high-end controller based on a 32-Bit MCU such as a TI or Philips ARM or PowerPC with 256 or 512 MB SRAM.

it would probably be nice to use 64 meg sd cards because then if you wanted to store 1 program on each (a real big program) then u could just slide into robot and it reads program off card

SD cards rock, also because…

If you make a program that you really like, and want to save, you can have multiple cards!..

i haven’t ever had trouble with the current memory of the VEX microprocessor.

Ive never had the need for more memory and if I have a program I like I just save it on the computer and download it on the m/c later.

At the competition in Farmville we were walking to the playing field with the program uploading to the robot. It would have been nice to just send the program to an SD card and insert it into the M/C.

I just wish it didn’t take so long to download. An SD card would probably solve that problem.

The SPI interface is very fast requiring just four of the VEX Controller’s I/O pins. It allows you to interface all kinds of SPI based sensors, motor controllers, and LCD Displays;

I have been able to use Microchip’s software SPI library routines to read and write to a Microchip 25LC1024 Serial EEPROM. I posted the working PIC18 C and MPLAB project in the VEX Forum User Software Download section.

It is now possible to store large lookup tables and calibration data or to collect sensor data using the VEX Controller.

While i have never had issues with the available memory it would be nice to be able to save programs to SD cards and keep them for later use instead of having to save the more expensive microcontroller or re download the program when you need it.

if you are still having slow downloads, upgrading to the latest Easy C really speeds them up a lot

You could save programs on the 128KB 25LC1024 Serial EEPROM, although you would need to modify the IFI Bootloader to read from the EEPROM instead of the serial port.

As for interfacing an SPI based SD/MMC card, it may be possible to do so using one of the Sparkfun SD/MMC breakout boards, but to access the file system requires computing CRC checksums and plenty of bookkeeping that would use a lot of the VEX Controller’s resources.

I have thought about Desoldering the “User” 18F8520, and replacing it with the 18F8720. It seems to be Identical, other than it has 128K of Flash, rather than 32K.

I have build a few prototype boards based on the PIC18F8720, but I found that soldering an SMT TQFP80 is a bit of a challenge. I used a 40X Microscope and a pencil thin soldering Iron and was successful. Removing the PIC18F8520 will require careful de-soldering or using a small steel tube connected to a heat gun.

IFI used a PIC18F8722 for the FRC Controllers, probably because they ran at 40 MHz and had more Flash memory.

Regards,

Daniel

De-soldering would be easy with this:
ChipQuick

Soldering shouldn’t be that hard with some de-soldering braid to clean up solder bridges.

I’m stepping away from the vex type micro controllers now and I am moving to a new method which I think is WAY better & it solves the memory problems.

Now have you guys ever heard of the beagle board? Check it out.

This thing wouldn’t have memory problems, and at only 2 watts at FULL power its not going to nag on power to much (unless its a super small robot with very tiny batteries). Keep in mind at FULL power its powerful enough to play quake 2! Now I can’t seem to find the quake 2 video (its like it disappeared) but you can watch this one which demonstrates its power.

[Beagle Board 3D, Angstrom, and Ubuntu June 2008 - YouTube

Its specs are nice because it gives you 128mb of ram and the linux distributions that it runs are lightweight so I can see at least 64mb of ram accessible to the user. On top of this look at it’s dimensions! Its smaller than the vex micro controller with loads of processing power.

So my plan is to replace the vex mcu and arduino mcu that I use with this bad boy and interface it to external circuitry and slave boards for sensor input and motor control.

Just thought I would post this, it is after all about memory.](Beagle Board 3D, Angstrom, and Ubuntu June 2008 - YouTube)

I’ve thought about that too, but my vision and eye hand coordination isn’t good enough to do that. I should check around to see if there is a fab shop that wouldn’t mind doing a few units.

The only reason I’d like to get more memory is to move a Java JVM on to the user side. Up until now I’ve been able to get all of my programs into the 32K.

I know that IFI has two new controllers coming out based on ARM chips, maybe they can do the PIC upgrade as a third product line.

This thing wouldn’t have memory problems, and at only 2 watts at FULL power its not going to nag on power to much (unless its a super small robot with very tiny batteries). Keep in mind at FULL power its powerful enough to play quake 2! Now I can’t seem to find the quake 2 video (its like it disappeared) but you can watch this one which demonstrates its power.

[http://www.youtube.com/watch?v=FuVwh_VrIxk&feature=related

Its specs are nice because it gives you 128mb of ram and the linux distributions that it runs are lightweight so I can see at least 64mb of ram accessible to the user. On top of this look at it’s dimensions! Its smaller than the vex micro controller with loads of processing power.

So my plan is to replace the vex mcu and arduino mcu that I use with this bad boy and interface it to external circuitry and slave boards for sensor input and motor control.

Just thought I would post this, it is after all about memory.](http://www.youtube.com/watch?v=FuVwh_VrIxk&feature=related)

I would love to use a powerful SBC like the one you found, so that I could develop larger multi-threaded robot applications without running out of memory using either GPS C++ or Ada.

One problem with this type of controller board is that you need Linux drivers for all the hardware peripherals including the servos and motors, which are currently supplied by the VEX Controller, although you may find this type of software on the WEB.

Well the hardware serial port and the usb unit on the board can be interfaced without much effort. Its just a matter of opening the serial port or installing usb/serial converter drivers for linux. Once you have this its just a matter of creating external circuitry that takes instructions over serial and or reports data back over serial.

There are I/O pins on the unit but I have yet to find a really good tutorial on how to control these.

Vex could make something like this but again its a much more complex and powerful way of doing it so it might not be real money making product if few people buy it.

If you already have surplus Vex uControllers, you may be able to use them as the Io board and just wire the beaglboard serial port to the Vex serial port.

A beagleboard with USB webcams would make a good college level controller, again, running through Vex to drive the motors.

Please keep us up to date on your work with beagleboard and vex.