Robopanda Hacks and mods

281 posts / 0 new
Last post
MrScott
MrScott's picture

A discussion of that V2 wire rot scenario is exactly where the liquid tape was brought up. Milw has tried some, but decided it was cheaper to just replace the wires for widespread insulation failure.

milw
milw's picture

Even a dab of silicon aquarium sealant would do to insulate your cartride, but my V2 had 10+ wires each with several sections of several inches bare wire; too much to be practical with the liquid tape.

Nice idea to mount the chip right in the cartridge, will the jumpers act to swap SPI RAM vs stock chip to the card edge? I was just thinking that I'm going to need to rig something similar to plug mine into Panda.

Unfortunately, so far I'm just reading all 0s from the Spansion SPI flash chip. Data sheet suggest pullup resistor on CS\ and I don't like leaving the W\ (write-protect) floating so I'm going to add the two pullups and a decoupling cap to mine.

Nocturnal
Nocturnal's picture

The jumpers switch the !CS line. The outer two pins are connected to VCC, the inner two will be connected to the !CS line on the ROM and the new chip, and the middle will connect to the !CS line on the edge connector.

I did tell you that given a choice, the spansion chip is not what I would have chosen. However, since I live in one of the worlds deserts when it comes to general electronic component availability, I didn't have a choice.

milw
milw's picture

oh it's ok; they were only $5 each. Adding the pullup on !CS and tying !H and !W high has solved it.

Nocturnal
Nocturnal's picture

Well, I finished assembling my modified cartridge. Haven't had a chance to test it yet.

milw
milw's picture

So your programmer will have a Robopanda-compatible slot to plug this into?

Nocturnal
Nocturnal's picture

Nope, I've already got wiring connected to the RoboPanda's socket, left over from when I dumped the cartridges. So I'll be using the existing socket.

I think sevik said he made his emulator cartridge from an old PCI card, so if you've got an old motherboard around, you might be able to jerry rig a socket from one of the slots.

milw
milw's picture

I actually have a plug dangling out of my white cartridge that connects it to my Prop board, so I've added the SPI flash into the cartridge as well. I'm planning to start by transferring the entire white cartridge contents into the SPI flash, then modifiy existing audio chunks. Photos tonight!

Nocturnal
Nocturnal's picture

Fingers crossed that it works. I have a nasty suspicion that there may be a slight hitch.

milw
milw's picture

Which would be...? and how slight? Have you actually tried yours in RP yet? Your comment makes me suspect that the RP 'read' protocol might not be totally compatible with the Spansion chips?

Nocturnal
Nocturnal's picture

No, I haven't finished my programmer yet. I'm not worried about the read format. The part that concerns me, is the 10ms wait time on power up, before the chip can be read.

milw
milw's picture

hm, yes that could be a bit sticky, but there's probably a couple of ways around it.

milw
milw's picture

Here's my cartridge, the wires coming out go to a 6 pin socket for connecting to my Prop board. The jumper switches CS between the Panda ROM and the SPI flash. All the other lines are always connected. I've transferred the white cartridge contents already and am running a verify on the SPI flash; then into the Panda it goes!

Whit cartridge mod

milw
milw's picture

Ok, you may be right Nocturnal. 9 times out of 10, he thinks no cartridge is inserted. Very occasionally he'll start normally, tho he still seems to flake out after a bit. Part of it might be that I had one leg (SO) snap off the chip, so theres a not very satisfactory connection to the SO line. I may have to redo it with a different chip.

sevik
sevik's picture

I had problems wih emu too, but it was solved by 680p capacitor on SI line.

SPI seems to be very noise sensitive, and long lines cause crosstalk between SI and CLK.

PS Was on holidays in forest away from internet and computers :))

sevik
sevik's picture

For building of test cartridge image for codec testing you can use bulid.py/build.sh script from tools.

Use test.cfg as template/example.

sevik
sevik's picture

for 10ms wait time - there is long (~50ms) startup interval with !CS=1 so it must be not a problem...

See http://sevik.org/robopanda/wave_full.txt.bzip2

Nocturnal
Nocturnal's picture

Ummmm... I see a potential issue with your setup milw. You appear to be pulling the new chips !CS line high, but not the original ROMs. You should be pulling the !CS line of the chip not in use high (Thats why I have 5 pins and two jumpers). I don't know if either of the chips pulls !CS high internally, but if it doesn't, and its floating, the potential for a bus clash (or other undefined behaviour) exists.

milw
milw's picture

ok, thanks Sevik and Nocturnal. Hm, that missing pullup just might do it; it has behaved fine on my Prop board, where I added an external pullup on the board itself. I'll give that a shot this afternoon and report back!

Yup, the pullup fixed it, he's now booting reliably with the SPI flash! I haven't added any capacitors, but if he starts acting flaky again that'll be the first thing to try. Now on with Sevik's tools!

Nocturnal
Nocturnal's picture

Glad to hear its working, I suppose that means I should get my arse into gear and finish my programmer.

RobosapienV2-4mem8
RobosapienV2-4mem8's picture

Man you guys are way above my head here, I think I will stick to what I know. But keep up the good work guys.

Nocturnal
Nocturnal's picture

*Laughs* I learn by doing. If I stuck to what I know, I'd never learn anything new, or pick up any new skills.

milw
milw's picture

You could do it 4mem8, if you had a panda! I'm using BS2 (stamp) routines with the Prop to read/write the SPI flash; it works though a bit slowly.

RobosapienV2-4mem8
RobosapienV2-4mem8's picture

Thanks, But I will stick to building bots, Thanks for your confidence though.I admire you guys doing this sort of stuff, besides what I have lined up is going to keep me out of trouble for months. he he.

milw
milw's picture

hm, guess I have to figure out Python first... got 2.5.2 installed on Wintel, but have to figure out which is the right FFT module to import. I got the numpy1.1.0 from sourceforge, but I'm not sure if the FFT is in that; any pointers for the noob, Sevik?

sevik
sevik's picture

I use py-Numeric from freebsd ports http://numeric.scipy.org/.

Heh, py-numeric finally deprecated (only some years passed after warning) :)) Download is still available: http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=1351

but numpy must be almost compatible, checking now...

sevik
sevik's picture

In tools I have not used binary mode for reading/writng files, so on windows it can corrupt binaries.

Never done development on win... :)) Will check for this too...

Do you have a spare pentium 200/32M for some kind of unix to install ? :))

sevik
sevik's picture

tools updated to numpy and binary input/output for binaries

http://sevik.org/robopanda/robopanda_tools-200806100810.tar.gz

milw
milw's picture

Hi Sevik, I was able to get make_aud.py to run, and I'm looking at your encode.py, but is that called from main module? It seems to have the input and output filenames at the beginning so I was under the impression it could run by itself, but I get this error when trying to run:

Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Desktop\RoboPanda\robopanda_tools\scripts\encode.py", line 387, in
encode(sys.argv[1],sys.argv[2])
IndexError: list index out of range

Ok, now i understand (having looked up sox) this is just a comment indicating a preprocessing of your mp3 test file into a wav file

"""
 sox -V 02\ -\ Winnie-the-Pooh\ -\ Introduction.mp3 -c 1 -s -w test_encode_input.wav trim 0 60 stat
 
"""

sevik
sevik's picture

make_aud.py has a lot of independent sections selected by if 0:/if 1: for generating each of test cases. It has no arguments and writes result to out.aud file in current directory.

encode.py has 2 args - input and output file. input file must be wav with 16 bit signed samples in 1 channel(mono). Really tested only with 44100 and 48000 sample rate. So you must call it as "python encode.py input.wav output.aud".

sox is audio conversion utility used for preprocessing/trimming/etc of audiofiles.

there are *.sh files in data directory for running scripts and README file with descriptions.

Pages