2010-08-21

New Toy, new project.

The head from a Curtis DVD8723.

I bought this on Craig's List and met the seller at Union Station. The ad originally indicated that there were no batteries, however it would seem that the seller installed a fresh pack of NI-MH cells, and was selling this because he is cleaning out his apartment, and would rather someone use it instead of throwing it out. This also explains the hand-made cable and other extras thrown in. (The DVD laser is not working, however the CD laser is, and it is a standard part if I decide to fix it later.)

Overall this is is excellent condition for my purposes, only one wire needed to be fixed (it was pierced by a screw), and only the pin configuration of the ports need to be determined. all are TRS 3.5mm or barrel connector, but 'S-video' and 'composite video' are the most curious. Composite seems to be carried by ring and tip (right channel), but using a TR connector produces the same results.

I plan on using this to build a portable IntelliVision since I have been wanting an IntelliVision again for years, and I figure it would look good in my portfolio.



This is the 25-in-1 IntelliVison Lives .comthat my dad (with some encouragement) has modified to accept an AC adaptor instead of gobbling up so many AA's every day. Sadly this is not an IntelliVision but is a Nintendo-on-a-Chip system made by TechnoSourcehk.com. Internally the glob of epoxy that is supposed to be covering the chip (Dunno which is the NOAC or the cartridge) isn't, exposing the extremely fragile wires. There is also no output filtering or amplification (except for what's on the chip). Between these two efectors of the many screens I've tried none are able to display the image correctly, there always instability and/or a lack of colour.

Fortunately running the signal through a video amplifier seems to cure the instability, and I have many video amplifiers. Unfortunately these are in VCR's, DVD players and tuners that are not very portable. I'm going to wait and see how 'good' the video out from a real IntelliVision is before I start making modifications.

I believe that I will need to scrounge for the parts I need for the cube and SSD locally. I doubt that my stuff will arrive.

2010-08-19

Calculator Battery

My calculator takes Alkaline batteries.
The MFG says LR44's but I know that LR6's will fit.

See.
I just had to drill a couple of holes, solder a cradle to the exposed lugs, add a couple of zipties and duct tape to hold things together.


The back cover especially.
No, the parts still haven't arrived, I fear that customs may have siezed them.

2010-08-11

Drop-in replacement PCB

for Nintendo Controller (model 004)

A dear friend of mine has passed away.
We'd often made potentially career ending bets that I'd do some incredible thing (instead of the conservative assigned duty) and my friend would keep admin off of me long enough for me to pull it off.
I've felt fustrated not being able to celebrate completion of the last bet, esp. with ideas for the next.

But this has given me food for thought whilst I wait for parts to arrive for my other projects. I've made many similar (though less damning) bets with other friends, and I'd hate to see them gone before I've finished.


This PCB is for one of my friends who is a NES freak.

This (surviving) friend has [reportedly 1 dozen of the] 'original' controllers that are so badly worn that even the repeated application of a chemtronics.comrubber key repair kit does no good since it the PCB and/or the plastic caps that have completely worn away.

For a laptop I bet that I would produce a replacement controller from a broken NES controller. This controller would either precisely match the original and use the same case, or it would be clever and be far more ergonomically correct.

I got the laptop within a week but my friend has never sent me a broken controller. I have never had a NES myself. And years later, I've now decided to search the internet and see if I can find the information I need to make a replacement PCB for the NES controler.


Search results:
NES ControllerI first tried working from the photo on slagcoin.com but was disappointed by the insufficient 0.05" resolution I'd achieved in the result. I believe that I miscalculated the trapezoidal transformation.

Rather than repeat the process I searched again using a number of premutations and eventually found an x-ray on flickr.com that was perfect; No distortion, square and true. All I had to do was measure and scale.

The result:
  • A drop in replacement PCB that is within 0.025" of the original model-004 (rev.11) NES controller PCB using the original components.
  • Tact (10xx) switches have been drawn to allow replacement in controllers where the button/key caps have worn out.
  • Combs instead of panels to improve the useful life of the membrane switch, and minimize alignment issues.
  • The header has been changed from rev.11's {GND,CLK} to rev.5's {GND,VCC}.
  • 'Umbrellas' have been drawn under the resistors to prevent the ground mask from raining on the use of printed resistors.

Since I have no 4021 I am unable to build this circuit today (without ordering parts). The CMOS 40xx series of IC has been displaced by the TTL 74xx series. If I needed to I would need to make an extra a 74xx design based on what parts I have on hand. This extra design would also make sense if my friend has lost the original PCB or wants to make a spare.

A 74xx redesign:
  • The original printed M5923 resistors have been replaced with common throughhole 207's. These are grouped where the original 4021 was for stylistic reasons.
  • The original 4021 has been replaced with a surface-mount 74HC165 (since that is what I have on hand).
  • A transistor replaces the header and inverts P/S to output SH/LD because the 74165 loads on high unlike the 4012 that loads on low. (see nxp.com datasheets HEF4021B.pdf, 74HCt165)
  • All resistors can be 10k (though not optimum for the transistor inverter/NOT gate).

Modifications not implemented:
  • 40xx instead of 10xx switch because the larger 40xx would break compatibility with the original layout unless I were to intersect the pads, which would then make assembly very difficult.
  • Use of a resistor array instead of discrete components because I'd be inclined to use a single surface mount IC, and evidently a pitch of 0.012" is too small for most people to assemble by hand.
  • LEDs that are activated by button presses because I do not have a NES to test if this works.
  • Turbo/pulser because adding a single IC programmible division counter or frequency generator w/ selector switches would require my (not an electronics hobyist) friend to handle too many pieces, and would require modification of the original case.


2010-08-08

Fixya. Fixed/Neutered.

I am a user on Fixya.com.

While they have 'fixed' the problem of hidden formatting consuming space in posts, as encountered here. They have done so by brutally sanitizing the HTML to the point where it will delete any specaly formatted content, often losing the critical distinction between A and A or B and B.

Sorry about asking to be contacted here, but I don't want to expose my current e-mail on a help forum and it is no longer possible for me to embed it to be visible to only the intended recipient on Fixya now.

2010-07-20

`ell, only one letter off.

A few years ago I canceled my spare Bell internet account because they would nolonger allow me to suspend it and resumed billing me unannounced, would not allow me to move the email to another acitve account, and would not allow me to only pay for hosting.

$25/mo for an email service that deletes my email without warning was a bit steep and I told them then to close the account.

I figured that after a couple of years the name would be released and I would be able to reopen it with my current one. This is what happened:

System
Welcome Darren {### ####}.
System
Connecting to server. Please wait...
System
Connection with server established. Please wait...
System
Balaji has joined this session!
System
Connected with Balaji
Balaji
Hi Darren {### ####}, welcome to Bell Internet Services, my name is Balaji. By looking at the option you have selected, I see that you have questions regarding your account, how may I assist you with this?
You
I am tryign to move my old emailaddress again.
You
IN 2007 I canceled a redundant account when maintaining it became too expensive.
You
I was unable to associate my original username/email with my current account.
Balaji
Sure, I'll be glad to assist you in moving your E-mail address Darren.
You
I need to do so now to consolidate my identity.
You
thankyou.
Balaji
Welcome.
Balaji
Could you give me a couple of minutes so that I'll get the information for you.
You
yes.
Balaji
Thank you for being on line.
Balaji
Once the account is terminated, the E-mail account associated with the account is also terminated.
You
However the user handle was not. I am unable to use "{####_###}"
Balaji
I apologize for the inconvenience caused to you.
You
The account { b1{######} / {#######} } still appear valid to one bill too, though I have forgotten the password.
Balaji
The E-mail also comes with the account. Once the account is terminated you can't access your E-mail Darren.
You
I never expected to; however the fact that the handle was not released is actually a good thing. It means that someone else cannot assume my identiy as easily.
Balaji
I am sorry for that.
You
Don't be, it was some major oversight that there is not an extablished proceedure for moving e-mail addresses between accounts.
Balaji
The E-mail also comes with the account when you have subscribed with Bell. Once the account is terminated you can't access your E-mail Darren.
You
... By which I mean that I have multiple bell accounts, but when I moved back to my mother's there was no mechanism by which we could keep both email's without paying full price for both accounts.
Balaji
May I have the b1 number of the active Internet service?
You
b1{######}
Balaji
Thank you.
Balaji
There is no possibility to have the {####_###}@sympatico.ca , because you account (b1{######} ) has been terminated.
You
...
You
There is no means by which the email from the terminated account can be associated with the active one?
Balaji
I have checked the information Darren you can't associate the active account. As your account is Terminated.
You
So since December of 2007 all bell customers who moved in together, got married, merged businesses, combined offices, ect. They all have had to either pay an obscene amount of money for 'just the email' or give up that identity, and the professional/personal connections therein?
Balaji
here is no possibility to have the {####_###}@sympatico.ca , because you account (b1{######} ) has been terminated.
You
Yes?
Balaji
The E-mail also comes with the account. Once the account is terminated you can't access your E-mail Darren.
You
If i were to pay to reactivate the account, would the email address then be portable?
Balaji
I do understand Darren. Unfortunately it is not possible to reactivate the account once it is terminated.
Balaji
Darren, I do understand your concern, Email is a service provided by Bell together with Internet service, and all email accounts are connected with their internet accounts.
Balaji
We cannot provide email service alone to any customer, The internet account once terminated cannot be reactivated.
Balaji
Darren, you can try to create the {####_###} email address with gmail, yahoo or hotmail.
Balaji
I appreciate your understanding in this regard.
You
THe problem is that I associated my {bank}, {portfolio} and other professional accounts with this address becasue at teh time I belived that this was safe. When emails started disappearing (becasue my ### stole the acount information and some idiot kept resettting the password for ###) I moved most things to another service, however these two accounts are permanently associated with this address unless I can countersign an email from them.
You
I understand that there is no established method for remeding this currently and I will pursue another avenue for resolution.
Balaji
I'm really sorry and I apologize for the current situation.
You
Out of morbid curiousity; Does Bell currently have a mechanism by which email-addresses be moved from active accounts can ?
Balaji
Darren, I can understand your need for the email address, however email addresses cannot be transferred to different address.
You
thank you for your efforts.
Balaji
You are welcome.
Balaji
Is there anything else that I can do for you?
You
I will be reposting this chatlog, would you like to have your screen name redacted?
Balaji
Darren, I have provided the information to you based on the actual policies of Bell.
You
Then that is all. Thankyou again.


So eventhough they know it's me, they still have the account on record, and will never use that username/email for any other purpose they will not even sell me my email and are telling me to go away.

The address cannot be moved from any account to another. The original address cannot be removed from the first account. And the account cannot be reopened for a couple of weeks for any amount of money.

It would seem that Bell is only interested in customers who are in a rut and are unprepared for / have no idea why anybody else would be on the internet.

In a nutshell;
if your situation changes for better or worse and you find yourself sharing your line with another Bell subscriber, Bell is telling you that you both would have been better off using Hotmail from the start unless you have the money to pay for two broadband connections, since Bell nolonger sells 'only email' or 'dial-up' anymore.

I am defintely going to see if I can't get bell to fix this.

2010-07-19

'... ,' it may not be golden,

but it definitely stands out.


Another one of my duct-tape repairs.

The clic mouse nub has been loose for a while; about a week ago it got caught under the /'b/' key while I was typing and I managed to break the tabs that hold it on its cradle, rendering it useless.

Rather than waste an entire keyboard for one key or break the membrane by pressing on it directly; I decided to wrap the key to its cradle with duct tape.

It has held up fairly well, though I have to occasionally retype things where /'b/' has not turned out as expected.

2010-07-17

Card shuffle.


This is an alternative Clone t`engineering design using the NV SRAM. It is approximately half the size of the original though most of the space is wasted. It uses less than half the components though only the SRAM array and power circuitry has been concatenated. And it is a quarter of the cost though it still is using DIP packaging. And all of this without a radical departure from B. Yahya's original design! (Yay progress!)

A casual glance at the schematic shows I have opted not to wire the address lines in normal order; this shuffling of the address lines creates new problems when programming this board. Including having to make an adapter for your logic analyser/bus sniffer if it has a hardwired hat. Needing to store the ROM image in that peculiar byte order. Debugging if it was a programming or image processing error causing a software malfunction. Having your most fastidious colleagues complain* that you badly screwed up the design of the project citing the prefered logical order for the ICs in question, shouting that it can't possibly work.

However, this approach has strong advantages over fixed logical ordering. First: it eliminates the need for vias to satisfy an artifical ordering requirement. Second: if a competitor dumps the ROM without reverse engineering the board the image will appear corrupted. Third: Gives you something to write about. Fourth: the satisfaction of saying "I told you it would work" to you colleagues after a job well done.

Shuffling, not to be confused with stacking:
VPP27256VDD
A12A14
A7A13
A6A8
A5A9
A4A11
A3OE
A2A10
A1CE
A0D7
D0D6
D1D5
D2D4
VSSD3
VPPmutantVDD
A0A1
A2A13
A3A4
A14A5
A6A7
A8OE
A9A10
A11CE
A12D7
D0D6
D1D5
D2D4
VSSD3
Difficult hardware, hard software.


From the above we see that the address line order {A0-20} is now
{12,11,9,8,6,14,3,2,4,5,10,7,0,13,1}. We can reason that the value stored in 0x0000 is now read from 0x0000, but the value in 0x0001 is now read from 0x0004, 0x0002 is now read from 0x0001, 0x0004 from 0x01000, etc.

The ROM chip is read externally out of order while internally the image is stored sequentially {00, 01, 02...}. The image must be distorted/mutated to match the read order else it won't be read back correctly. One method is to build an adapter for our programmer that would shuffle the address lines for us; however some ROMs do not behave well if written to non-sequentially and every design would require a different adapter. Making this a physical hardware adapter would either exaust our resources, or require constant reconfiguration, leading to inevitable calamity from loose/misplaced connections.

//Advanced Hex Editor script, does not work!

//address[write]=2^[read]
a[0]=2^12;
a[1]=2^11;
a[2]=2^9;
a[3]=2^8;
a[4]=2^6;
a[5]=2^14;
a[6]=2^3;
a[7]=2^2;
a[8]=2^4;
a[9]=2^5;
a[10]=2^10;
a[11]=2^7;
a[12]=2^0;
a[13]=2^13;
a[14]=2^1;
// base betweeen iterations, avoids an inner loop/summation.
B[0]=0;
B[14]=0;
ii=0; //because I don't feel like calculating an index for a sequential read.
D[0]=0; //Image holder.
D[32767]=0;

for(i[0]=0;i[0]<a[0];i[0]+=a[0])
 {B[0]=i[0];
 for(i[1]=0;i[1]<a[1];i[1]+=a[1])
  {B[1]=B[0]+i[1];
  for(i[2]=0;i[2]<a[2];i[2]+=a[2])
   {B[2]=B[1]+i[2];
   for(i[3]=0;i[3]<a[3];i[3]+=a[3])
    {B[3]=B[2]+i[3];
    for(i[4]=0;i[4]<a[4];i[4]+=a[4])
     {B[4]=B[3]+i[4];
     for(i[5]=0;i[5]<a[5];i[5]+=a[5])
      {B[5]=B[4]+i[5];
      for(i[6]=0;i[6]<a[6];i[6]+=a[6])
       {B[6]=B[5]+i[6];
       for(i[7]=0;i[7]<a[7];i[7]+=a[7])
        {B[7]=B[6]+i[7];
        for(i[8]=0;i[8]<a[8];i[8]+=a[8])
         {B[8]=B[7]+i[8];
         for(i[9]=0;i[9]<a[9];i[9]+=a[9])
          {B[9]=B[8]+i[9];
          for(i[10]=0;i[10]<a[10];i[10]+=a[10])
           {B[10]=B[9]+i[10];
           for(i[11]=0;i[11]<a[11];i[11]+=a[11])
            {B[11]=B[10]+i[11];
            for(i[12]=0;i[12]<a[12];i[12]+=a[12])
             {B[12]=B[11]+i[12];
             for(i[13]=0;i[13]<a[13];i[13]+=a[13])
              {B[13]=B[12]+i[13];
              for(i[14]=0;i[14]<a[14];i[14]+=a[14])
               {B[14]=B[13]+i[14];
                D[ii]=get1u(B[14]); //Gets 1-byte unsigned value at offset
                ii+=1;
               }
              }
             }
            }
           }
          }
         }
        }
       }
      }
     }
    }
   }
  }
 }
for(ii=0;ii<32767;ii+=1)
 {set1u(ii,D[ii]);}//overwrite original.


The above script uses nested loops to represent each bit of the address line. It sequentially reads the bit and stores it in the correct 'shuffled' location.

I acknowledge that there are some operands not represented in Kahei or C that would allow for a more efficient program. And that using a matrix would be far faster and more efficient. However such an approach would be far less flexible and difficult to understand. And the effort required to build one I cannot justify especially for a program that would normally only be used once. But I am a hardware guy, an expert programmer may not have the same difficulty.


Before I get complaints that I am being unfair to the original designer let me point out that there has been 18 years of technological development since it was created; B. Yahya had the courage (and ethic) to publish this design at a time when many companies were terrified to; The original design itself was so well done that unaltered it is possible, though not commercially viable to produce it today; And the autorouter jab is fair game as vias should not be inside an array, except where lines cannot run parallel or for thermal reasons; Also, the original was a success; wasn't it?