blog.jmp.no

Electronics, coding and hacking. And ADD.

Breadboard 6502, with SID (WIP)

2012
6
January

As a part of creating the SwinSID chip, I need a working test environment up and running. Time to breadboard a 6502... again.

I've used the typical 32K RAM/32K ROM setup, and the ROM is personalized with start address $C000, which calls the player at $E000 (init) and $E003 (play). Since there's no VSYNC, I've added a 50ms delay with looped NOPs in the code. The address decoder shows most activity around $C008 (where the delay is).

Breadboard 6502

So the code runs and works, but there's no sound from the SID yet. I've skipped the caps on pins 1-4, I might have to go through the datasheet to see if they are required. I'll give it another go tonight.


New 2.4GHz wireless modules received

2012
3
January

Yesterday, two of these modules arrived in my mailbox:

NRF24L01

These are are low-power 2.4GHz wireless transceiver modules featuring the nRF24L01 chip from Nordic Semiconductor. They might be used for an exciting high-speed project, but it all depends on how reliable they are. I will post an update as soon as they have been tested and verified working...


Keypad interfaced, working

2012
1
January

The diet reverse engineering worked fine, and the device worked exactly as expected. I hooked it up to an ATmega128 board I happened to have on the breadboard after the bluetooth controlled relay project, and after a 15 minute coding job it was interfaced to the address decoder board (only one digit in use, the others are left floating). Excellent. Now, to figure out something useful it can do.

Keypad interfaced


Reverse engineering unbranded keypad

2011
29
December

I bought a couple of these 16-button alphanumeric keypads a while ago, to use for various projects. They were dirt cheap with free shipping so the lack of a fancy label on them didn't worry me too much. If they worked they worked, and if they didn't - well, hey, not a big loss.

What I didn't take into consideration, was the fact that they didn't come with any documentation. At all. I had no clue what the pinouts were. Searching was useless, and the few similarly looking datasheets I found didn't match at all.

Since I got a new pair of probes for my multimeter today, I had a excuse to investigate this case further.

New multimeter probes
Finally a proper pair of probes, rated up to 600V/10A.

"Reverse engineering" isn't the proper word for this job, I think. There's no engineering involved, it's more... figuring out how it works. Anyway, time to figure out how this thing works, which should be a very simple job. As expected, opening the keypad revealed a single-sided PCB - although with a strange design. I guess the jumpers are inevitable on one side, but traces leading nowhere (broken by drilled holes) made no sense to me. You should be able to see a few of them vaguely on the image below:



Strange design, but still simple to follow.

I'm guessing multiple boards are produced simultaneously, and e-testing is done on the entire panel before separating and traces are cut by drilling holes.



Two boards, similar - but different.

...but wait. The other PCB is mounted upside down. I don't know wether my recently acquired mapping is correct, or as incorrect as it gets. I opened the other one and confirmed that both PCB's are identical. Must've been one assembly worker in China having a bad day, I guess.

Either way, if you have one of these, you should be able to figure it out from this map:

      COL1  COL2  COL3  COL4
    ROW1  (1)   (2)   (3)   (A)
    ROW2  (4)   (5)   (6)   (B)
    ROW3  (7)   (8)   (9)   (C)
    ROW4  (*)   (0)   (#)   (D)
    
    Column 1 = pin 8
    Column 2 = pin 1
    Column 3 = pin 2
    Column 4 = pin 3
    Row 1 = pin 4
    Row 2 = pin 5
    Row 3 = pin 6
    Row 4 = pin 7
    

When you notice the numbering, it makes you go all "ahh, but why didn't.. since.. jumpers.. oh, fuck it."

Scanning each row and column sequentially reveals if one or more buttons are pushed. It's worth mentioning that I experienced the internal resistance of these devices to be up to 70-80 ohms, due to the rubber contact pad.


Bluetooth controlled relays

2011
28
December

As if moving to a new house in christmas wasn't enough, I've been ill for a couple of days. You know, just to top it off with something. Dunno what hit me, but it was hard. Now that I'm finally back on my feet, it's time to play with me ole' toys again.

Today's project was a bluetooth-controlled relay module.

Now, just to be clear, I've felt the unforgiving whack from 230VACs many times before, so I'm leaving the relays unconnected for now. I'm trusting the "tock" from the 10 amp relays to be reliable enough.

The bluetooth module is a UART bluetooth slave module purchased on eBay ages ago. Never really had the time to play with it, so now was the perfect chance to get my money's worth out of it. The relay board operates on 5V, and can be driven directly by the micro controller, which in this case is an ATmega128. The LCD display is not yet in use, but might be interfaced later.


Bluetooth controlled relays
Driven by a 9V battery at the moment

This was very straight-forward. After writing a simple UART program to interface the bluetooth module, it was only a matter of parsing the input and setting the PORTA pins accordingly. Honestly, this was about an hour of work, but the end result makes it seem like so much more.

Now, all I need to do is to grow a pair, and be a man enough to hook up some household items to this thing...


Add to Google