SparkFun Forums 

Where electronics enthusiasts find answers.

General project discussion / help
Did you make a robotic coffee pot which implements HTCPCP and decafs unauthorized users? Show it off here!
By Einfari
#186168
I know this might be a long shot, but does anyone here have experience with I-cybie hacks? I saw some posts about them here but they were ancient, as are i cybies. I bought an i cybie over the summer because I always liked the way they looked and I wanted to hack one. I ended up buying a second i cybie about a month ago because it came with a walk up charger. Here is a picture of them. The blue one is Vegas and the gold one is Jersi.

[img width="500"]http://i66.tinypic.com/9gbm1d.jpg[/img]


I am trying to hack Vegas because he is a 2001 model, and Jersi can't be hacked as she is a 2005 model and multiple sites said 2005 models will break if I try to hack them. The specific hack I want to carry out is the super i cybie hack which can be found on http://www.aibohack.com/icybie/super.htm. This will allow me to reprogram the dog's actions. The original hack used a Max232 chip and a serial port. Since my laptop doesn't have a serial port because it is too new, the site said to use an ft232rl chip serial to USB converter. I bought that chip and soldered it to the Rx, Tx, and power supplies on the dog's main board as instructed by aibohack.

When this hack was completed, I plugged the chip into the USB port, and then opened realterm while the battery was disconnected. When I connected the battery to the dog, realterm shows this FC symbol, and I have no idea what it means even after extensively searching Google. Does anyone know what in the world this FC symbol means?

[img width="500"]http://i63.tinypic.com/2bbsdw.jpg[/img]



I know I need a cartridge with a CROMINST bootloader on it to run i cybie programs to the serial port, but I don't think the walk up charger cartridge has it. I was able to get a hold of the CROMINST BIN files, but I am not entirely sure how to get them on the cartridge because I am a complete newbie when it comes to robotics. Also, finding a cartridge with CROMINST preinstalled is almost impossible as finding the walk up charger was hard enough. Is there any way to do this through the serial port or other methods. There are a ton a arduino bootloader burning tutorials out there, but they are very specific for arduino and I doubt they will work for I cybie. If anyone knows how to help me with this, it will be greatly appreciated
By MonsterBot
#186208
"Fc" might be the default "handshake" from the I-cybie. You can try to local echo with only the FT232 unconnected to confirm function of the FT232.

You have the binaries but still need a way to program it onto the cartridge. The programmer from SilverLit look's something like this:
http://www.paradoxtechnologies.org/cybi ... r_blue.jpg

This is a parallel port version but I don't know if there is a USB or even serial port version.

You can try to find someone who can burn the cartridge for you.
http://www.cartheur.com/Home/DownloaderService (although they are based in Czech).

Looks like the cartridge contains an SST39VF-series parallel FlashROM on the board and there are parallel programmers so theoretically, the cartridge can be programmed with a third party programmer.
By Einfari
#186209
I looked on RealTerm and found that FC is some sort of 8 bit value. I think that means the connection is working at least.
Image

I've looked at those programmers, but they are extremely rare. I don't know of anywhere that sells them because Silverlit discontinued them in mid 2014, and the closest thing I could find on Ebay was the walk up charger cartridge. I would have to get a Parallel to USB converter in that case, but at least they are cheap. There is no serial port converter made for i cybie, but the hack itself that I did is called the Super I-cybie hack, and it has more programming options than using the downloader. I've looked at bitbanging before, and I've wondered if it would be possible to bitbang with the flashROM using a serial port.

That site link looks like a great possibility if I can't do it myself. Thanks for linking it. 20 euro isn't a big deal either because I probably spend more than that on caribou each month like any other basic girl. Jokes aside, but thanks for the help, even though I probably sound clueless. This is what happens when premeds try messing with robotics.
By MonsterBot
#186212
It's possible to emulate a programmer by bit-banging but the FlashROM on the cartridge doesn't support serial programming so you'd still have to convert that data into parallel data to program it. Unfortunately, it requires more pins than available on the Arduino Uno so you'll have to find something with more pins or a creative hack.

Page 20 on the datasheet provides an overview of the programming protocol the SST39 requires to program the memory so I'd start there.
http://ww1.microchip.com/downloads/en/D ... 25023A.pdf

What platform are you using to bit bang with?
By Einfari
#186235
I'm not sure what I would bitbang with as it is just a possible option that I've looked into. I've seen instructions with AVR chips using a programming such as FTProg. There is also a serial programmer called PonyProg that is a serial port programmer. The bootloader is just a binary file, and is read by the serial port because it says a bunch of Us and an install CROM(bootloader) option. The Max232 chip is connected to the i cybie's motherboard, so there isn't an actual arduino chip being used to program it. Part of my problem is that I really don't know well how programmers and burning a binary image work. Also, how does serial binary data look vs. parellel and it is possible to convert it to parallel data using the serial to USB port? Any explanations would be awesome, as my cluelessness is half the problem. The bootloader is two file with a -l and -h in from of them. I don't know really the difference between the -l and -h is either. I have a lot to learn.
By MonsterBot
#186238
Let me start from square one to make sure we're on the right page, so correct me if I'm wrong.

You're doing the SIC upgrade. You've already got the FT232 soldered on the main board in the iCybie. In order to complete the upgrade you need to run the CROMINST program that resides on the cartridge which installs the bootloader into the ROM of the iCybie. ***The terminal and FT232 hack doesn't upload the program. It only lets you access the menu options of the CROMINST to write the bootloader. The actual program resides in the cartridge.
Here you have two options:

Option 1: Buy the downloader which comes with a cartridge. The downloader allows you to switch the cartridge between the CROMINST or personality depending on which program is on the cartridge. Unfortunately, the downloader is no longer in production and rare.

Option 2: Buy the walk-up charger which comes with the personality cartridge. To perform the upgrade, you'll need to find someone with the CROMINST cartridge and upgrade your IC to SIC. You can then upload your own programs to it through your computer once it has been upgraded to SIC.

Option 2.5: Nobody has a CROMINST cartridge, we don't have the chicken nor the egg, but you do have its deoxyribonucleic acid pattern in a neat file labeled "CROMINST."

In order to upgrade iCybie to Super iCybie the cartridge that you already have needs to be upgraded to a CROMINST cartridge by uploading said CROMINST file onto the cartridge, run the cartridge/program once on iCybie and out pops Mr./Mrs. chicken.

So the issue right now is how to get a CROMINST cartridge...?

Part 2:

The CPU on iCybie is the Toshiba TMP91C815F which does not have any built in ROM, meaning storage is kept in add-on ROM chips; one is on a daughtercard on the iCybie's main board while the other is an upgrade-able board--that is your cartridge. Think of the ROM as the "hard drive" where all programs are stored for iCybie. Although this ROM is "external" to the CPU, it still see's it as "internal" storage meaning it accesses it as parallel memory.

What is parallel memory vs serial?

Well, in storage they're both stored the same, but accessing that memory is completely different. Take these two 4-bit pieces of data for example:

1101
0011

In a parallel access, the CPU will read/write:

1101

on the first clock cycle. Then read/write:

0011

with its next clock cyle.
In serial access (series), the data transfer will look something like this.

1
1
0
1

4 clock cycles for the first piece of data.

0
0
1
1

4 cycles for the next. In other words, data is transferred in series. Obviously it's slower but only requires a single read/write pin whereas the parallel requires 4 pins in our case...which is also the reason why your cartridge has so many pins. Parallel 8-bit access.

Yes, it is possible to convert and even "bit bang" serial into parallel although the part above is only 1/2 of the story.

You can try a hack using something like an IO expander or a 74HC595 shift register, also known as a Serial-to-parallel converter or Serial-In-Parallel-Out chip.

Here's a hack someone made with the 595:
http://forum.arduino.cc/index.php?topic=163682.0

I don't know if FT232 that you have has enough GPIO pins to address multiple 595's, so you'll likely need an actual MCU to build your own programmer. And USB definitely does not have the provisions to address a SIPO out chip.

Someone also built a parallel programmer specifically for the iCybie cartridge.
http://luizcressoni.blogspot.com/2011/0 ... oject.html
Use Google Page Translate.
By MonsterBot
#186239
Hmmm, looking at the CROMINST binaries, they're both different but both 128K in size. Since the FlashROM on the cartridge consist of two 128K banks to make up the 256K cartridge, -l and -h represent the "lower" and the "higher" bank...almost certain. ;-)
By Einfari
#186273
Thanks for all the help! We are indeed on the same page as needing Crominst and burning it is my main issue. I think crominst is what allows you to program I cybie with a serial port along with programs called sic burn and icsdk. I don't think I can add more chips to the dog as there isn't much room to work with. Someone on robocommunity said they can make crominst cartridges if I send it to them because they made the I cybie programmer that you linked to. Even if this person is overseas from me, it will probably be faster for them to do it than for me to order all the materials to make my own programmer. I will make my own programmer if the person doesn't respond as a last resort effort.
By MonsterBot
#186298
Yeah, that will likely be the easiest way. It'll be fun. Good luck on the project and keep updated. :)