Very VERY close to finished fine-tuning a modified REX pcb and matching
3d-printed carrier.
This version I just populated and tested is essentially the same as the
latest version I'm still waiting for. I'm only making fine tuning
adjustments to fitment at this point.
Up to now I wasn't sure I hadn't borked up the electronics because I
moved a lot of traces around. But it seems to be ok. Everything worked
first time no hitches or surprises.
One of the main things here aside from the obvious with the carrier, is
the 5v and port_en pins. To program the cpld, you only need 10 plain
male single-row pin header pins (6 & 4). Not even the special double
ended male-male ones where both sides are long. Just ordinary much more
common ones normally meant to be soldered in a pcb. There is a 4-pin
staggered row on the end of the pcb where you can supply 5v to the board
with pins rather than trying to use the edge contacts without an actual
socket. I used a usb-ttl cable because it already has female dupont
pins, done. And for PORT_EN, you just put a common jumper on the other
two pins. That connects PORT_EN to 3.3v, hands-free and safe.
You can do this with the pcb already snapped into the carrier too.
Don't actually order these yet, since I don't know if the latest version
is quite done yet. I expect to either confirm the c8 version explicitly
when I receive it, or it might take one more revision.
http://tandy.wiki/REX#REX_Hacking
https://photos.app.goo.gl/aNfjvB1XucSehPGB9
I tried to get pics enough along the way to use some to put together
better documentation at some point to show various steps clearly. Right
now it's just a bunch of pics.
They are arranged in the album in basically chronological order from
bare pcb to programming to the cpld to bootstrapping teeny onto a
freshly wiped m100, to getting laddie and using it to finish the rex
loading process.
I have a plain eeprom board that fits the same carrier too.
https://oshpark.com/shared_projects/XkHpiF2z
Kind of like figtronix but I did this over from scratch, and no
write-enable jumper pins or special programming adapter pcb that needs a
molex socket. Just use a soic-28 test clip. They are over $30 which is
annoying, but every other possible way to re-program the eeprom is even
worse in either money or time or grief. At least it's simple to use once
you swallow buying the test clip.
I need this even though I have several REX's by now, because rex
conflicts with my PG Designs ram expansion, plus it's just useful to
have an option that is so much simpler at the hardware level, and
doesn't need any special software either in the m100 or in the module. A
TL866 programmer and test clip is actually easy enough to use, and cheap
enough to buy, and the chip is re-writable.
And I have a kicad file of a blank pcb that could be used for anything
that uses the molex socket (not just M100's). Other machines don't use a
strange pinout though, so they can use a regular carrier with a regular
dip28 27C256 and not need any funky adapter pcb. Then again, with the
pcb you could put all kinds of odd things on there besides a rom.
Not sure yet where/how to share all the files that aren't already shared
from oshpark and thingiverse. Maybe github or gitlab, maybe just google
drive. That's coming but not organized yet. But, the pcb files on
oshpark are already mostly self-contained, and the source cad file is on
thingiverse not just the output stl file.
I hope you don't mind, Steve.
I very much doubt you are interested in my kicad files as a new official
version for the pcb, although you are welcome to them. Or a blanked
version that just has the outline and polarity hole to fit the carrier,
and edge contacts, and you fill it with whatever. I made that all in the
form of a footprint complete with a 3d step file model for the carrier,
so the edge contacts, polarity hole, and special edge cut shape, are all
registered together relative to each other as a single unit.
For one thing, although I got everything I wanted it to do, I have a
feeling that, being inexperienced, I have probably created routing that
people who do this for a living would cringe at. I don't know what might
be wrong, I just know that when I look at an inexperienced programmers
code, even if it works, I see all kinds of bad things they are oblivious
to. I definitely painted myself into a corner in a few places. I have
definitely not tried to keep all the bus/signal lines the same length
for timing, but I'm hoping on a board this small and a bus this slow it
doesn't matter. I also didn't even remotely try for a ground pour. I
think my use of vias in pads is controversial, but I also think it's
fine in this case because no one is trying to mass produce this with
stencils and too-little paste. Hand soldering or even manual hot-air
it's not a problem.
But it's working and all the traces have good clearance from neighbors
and I think I have avoided excess via-hopping and excessively indirect
meandering traces.
To be clear, I'm not producing or selling these. I just modified the pcb
layout to suit myself, and am sharing that just as a matter of course,
as it was shared with me in the first place.
I think the carrier and mating blank pcb are generally useful for
putting anything into that socket, and these are just two examples.
--
bkw