UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Reply
 
Thread Tools
Old 21st Oct 2018, 5:32 pm   #101
Slothie
Tetrode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 67
Default Re: MK14 schematic revisions

Great news! I finally tracked down all the wiring errors on the pcb. I've typed in the program SiriusH gave me and got "Slothie" on the display as a reward, so all would appear to be working as expected. The only odd thing is that on reset 8 out of ten times you get random digits on the display in the gaps between '0000' and '00' - but pressing Abort clears this and all seems to operate as normal. If I ever find my scope and probes maybe I should look into the reset timings.
I tried to get a photo of the output of SiriusH's program but its a bit hard to see - maybe I need better lighting. However if you squint a bit you can see it. The random looking wire at the back is grounding the "SENSE-A" pin so that programs will run...
The other photo shows the modification wires on the bottom.... lets just say I think I will get a new PCB made, if only because the wires are going to be a pain snagging and breaking etc. I also need to put some diodes or a resistor in the power lead because the regulator runs HOT (hot enough to make you not want to touch it - I measured it as 60 deg C and stil slowly climbing.) When I redo the pcb I might make room for a bigger heatsink or fab one from aluminium,
Well, thanks to everyone who offered help & encouragement, as I am now in posession of a working MK14! All I need to do now is to write a few programs for it...!

Slothie
Attached Thumbnails
Click image for larger version

Name:	IMG_1116.jpg
Views:	42
Size:	64.3 KB
ID:	171291   Click image for larger version

Name:	IMG_1118.jpg
Views:	33
Size:	61.8 KB
ID:	171292  
Slothie is offline   Reply With Quote
Old 21st Oct 2018, 8:50 pm   #102
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

Good work Slothie, I knew it wouldn't take you long to snag it. I originally made that program (a modified version of one I already had) when it seemed you were days away from getting it up and running, but then things started to get complicated. By that time my own MK14 was back in storage so I tested the code on Doug Rice's online emulator.

The reset behaviour you describe is not normal, normally they reset cleanly every time but that is a minor niggle in the grand scheme of things.

SOC were either optimistic or knew full well that the user would have to fit a heatsink and omitted it to reduce their costs, either way you are correct, the regulator runs unacceptably hot without a heatsink. If you are running on a variable regulated supply you can help it out a bit by lowering the input voltage to the lowest at which the regulator continues to produce a reliable 5V output, which in practice will be between 7.5V - 8.0V.

If you are running on an unregulated supply marked '9V', try measuring the input voltage to the regulator, it might be a lot higher than 9V in reality.
SiriusHardware is online now   Reply With Quote
Old 21st Oct 2018, 9:22 pm   #103
Slothie
Tetrode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 67
Default Re: MK14 schematic revisions

Quote:
The reset behaviour you describe is not normal, normally they reset cleanly every time but that is a minor niggle in the grand scheme of things.

SOC were either optimistic or knew full well that the user would have to fit a heatsink and omitted it to reduce their costs, either way you are correct, the regulator runs unacceptably hot without a heatsink. If you are running on a variable regulated supply you can help it out a bit by lowering the input voltage to the lowest at which the regulator continues to produce a reliable 5V output, which in practice will be between 7.5V - 8.0V.

If you are running on an unregulated supply marked '9V', try measuring the input voltage to the regulator, it might be a lot higher than 9V in reality.
The power supply I'm using is a modern switching "wall wart" which is rated at 2A outputs 9.1v off load and a tiny bit less (~9.08v) when plugged into the MK14. Thats why I thought using a couple of diodes would drop the input to ~7.8v and dissipate some of the power before it gets to the regulator. The original manual suggested a resistor but I think diodes are a better option - in 1978 that would have been expensive but not so much today!
The regulator has a heatsink but its tiny, so I'll see if I can find one with longer fins. Unfortunately I made the regulator a bit snug against the socket for the INS8154 RAM/IO which I will address when I do rev 2 of the board!

Until then I'm celebrating with a can of and a takeaway and spending a little time (re)learning how to program the SC/MP. I've learnt so much from making this despite the frustrations and once I've corrected the PCB I'll make the design files available for other people to play with .... and possibly have a go at the problem of programming Tesla 74S571 PROMs!
Slothie is offline   Reply With Quote
Old 25th Oct 2018, 10:06 pm   #104
Slothie
Tetrode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 67
Default Re: MK14 schematic revisions

Well I've fitted a bigger heatsink (here) and the temperature of the regulator case stabilises at about 65 deg C compared to 70 deg C for the previous heatsink. When the display is off the temperature drops - running the clock program from the manual the temperature stabilises at about 62 deg C. I'm a lot happier with this as the previous heatsink never seemed to stabilise, and I was worried it would creep too high. 65 degrees is pretty hot, but not unusual for this type of regulator. This larger heatsink means the INS8154 RAM/IO chip probably won't squeeze into its socket, but I'll shift things around when I update the PCB to make room for an even larger heatsink that will cope with the added current load of the RAM/IO and the optional memory.

I think the reset problem I'm seeing is something to do with the switching power supply I'm using, because if you leave the capacitor to discharge or short it before plugging in the MK14 resets properly every time.

I've been having fun playing around with the MK14, trying to get my head around to the relative addressing scheme it uses and the minimalist instruction set, and I'm so happy to have a working system at last!!
Attached Thumbnails
Click image for larger version

Name:	IMG_1119.JPG
Views:	17
Size:	100.3 KB
ID:	171557  
Slothie is offline   Reply With Quote
Old 25th Oct 2018, 11:21 pm   #105
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

Best of luck finding the 8154 RAM/IO (maybe you already have one)- it definitely makes a big difference to the 'play value' of the MK14. I think Forum member GrahamN (who has one of the JM replicas) managed to find some somewhere, though at a price.

One of the things which always gets me about the SC/MP is ... no SUB (subtract) instruction, or at least not one which is immediately recognisable as such. ("CAD", Complement and Add, is the equivalent). Also, no conventional CALL / RETURN instructions and no dedicated Stack Pointer of the type found on virtually all other microprocessors from that time - you can call subroutines, but it involves swapping the contents of one of the pointers with the PC - a bit messy.
SiriusHardware is online now   Reply With Quote
Old 26th Oct 2018, 12:13 am   #106
Slothie
Tetrode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 67
Default Re: MK14 schematic revisions

I have 2 which I got from a seller in China for 15, although I've not tested them they look pretty genuine (vertical stripe, NS logo and same font as my SC/MP) and the seller has lots of positive feedback and virtually no negativ They are the only ones I've seen for less than ~35 a piece for more "reputable" suppliers so if they prove to be fake then I guess thats a lesson learned!

As for programming, yes its definitely arcane but to be fair to NS it was designed before a lot of the "conventions" we take for granted. It's not surprising that a lot of systems using it were done by cross-assembling the code on a minicomputer which could make use of exotic macro features and high level constructs! I've got a TASM table for the 8060 so I can assemble through a DOS box on my laptop, but I've yet to find anything that runs nativly on Linux (not that I've looked very hard).
Slothie is offline   Reply With Quote
Old 26th Oct 2018, 12:31 am   #107
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

I use a free, open-source cross assembler - "SB-Assembler 3" written in Python by San Bergmans whose electronics hobby website is

https://www.sbprojects.net

It can be downloaded from there. A beta version of it was shown being used in this rather shonky Youtube video of mine posted several yours ago now. It didn't include a 'Cross' for the 8060/SC/MP at that time so I had to write that bit myself, and I only did the absolute minimum required to make it work.

https://www.youtube.com/watch?v=j1WSy_ueX34

SB-Assembler 3 has since made it to the final release version which includes an 8060 / SC/MP 'cross' file properly written to the same standard as the rest by San himself. As it's written in Python it will run on any platform for which Python is available, including, as seen above, on a Raspberry Pi.
SiriusHardware is online now   Reply With Quote
Old 26th Oct 2018, 10:28 am   #108
GrahamN
Hexode
 
Join Date: Jun 2008
Location: Burnham on Crouch, Essex, UK.
Posts: 344
Default Re: MK14 schematic revisions

That's an impressive video!

I still haven't had time to do more than a couple of quick tests on my replica so far, but I do like the idea of downloading directly from the Raspberry pi rather than the tedious typing in!

Is the interface an open-source project? Or did you design it yourself?
GrahamN is offline   Reply With Quote
Old 26th Oct 2018, 2:40 pm   #109
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

I did that one myself, around 2012. It's not very repeatable / replicable as there is a complex maze of 20 * optocouplers built on the lower of the two veroboards. The idea of using optocouplers was so that the interface was completely isolated and could be disconnected from the MK14 while it was running, so I could load it up with something and then leave it running a demo in its clean stand-alone configuration.

There are theoretically alternative / easier ways of doing the hex downloader / keypad interface which I'll be happy to discuss in due course.
SiriusHardware is online now   Reply With Quote
Old 26th Oct 2018, 9:43 pm   #110
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 286
Default Re: MK14 schematic revisions

Use the tape in input (or actually the serial input). Then all that is required is one pin of digital output and a program to download.

Key in to load tape and then off you go. I wrote one in Z80 assembler once.
JohnBHanson is offline   Reply With Quote
Old 26th Oct 2018, 11:18 pm   #111
Slothie
Tetrode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 67
Default Re: MK14 schematic revisions

was thinking of doing something like this using an arduino (since I seem to have a box full of them I've managed to collect). Send the intel hex file down the serial connection and convert to the serial waveform the mk14 expects... not as dramatic as Sirius's solution on the display, but probably quicker to implement!
Slothie is offline   Reply With Quote
Old 27th Oct 2018, 12:04 am   #112
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

There are reasons not to use the tape interface or the SIO pin.

The tape interface needs the system to have the 'new' version of the OS, as only that version has the tape routines embedded in it. But even then, the problems with that approach include:-

-Speed. Only four characters a second.

-Code size limitation of 256 bytes in any one load (a limitation imposed by the tape interface firmware).

-The tape interface routines require you to know (and manually input) the load address for the program prior to loading it because the data file does not contain this information.

Serial input through SIO pin - only practical if you are prepared to modify the Monitor PROMs and replace the tape service routines with serial download routines. Physically ties up the SIO pin and may need to ring fence some RAM as a receive buffer.

Advantages of using an interface which injects the code into the machine by literally typing it in through the keypad edge connector:-

-Much faster than the cassette interface.

-Requires absolutely no modification to the MK14 hardware or firmware, which is especially important if the machine is an original MK14.

-Uses no system resources or hardware assets which are not already used by the Monitor. (Doesn't tie up any Sense, SIO, Flag or RAM I/O pins).

-If the interface is designed to receive Intel Hex then downloaded code can be directed to multiple locations within the memory as defined by .ORG statements in the source code - the code is automatically 'typed' into the correct addresses.

-No size limit on the amount of code which can be injected into the machine in one go in this way, apart from the size of the available memory of course.

Slothie, yes, I would use an Arduino for the receiving / control now if only to make it much easier to implement a USB, rather than RS232 serial link to the sending source. I hadn't actually heard of / come across the Arduino concept at the time.

Sticking with the Raspberry Pi, a simplified version could use a bit of bespoke software running on the Pi which would notice whenever the working hex file had been modified by the assembler, and if so, send the relevant control signals for the opto matrix directly to the GPIO pins of the Raspberry Pi. I made the original interface to be as generic / versatile as possible so that anything which could send an Intel Hex file out over a serial port - PC, Raspberry Pi, Psion Organiser - could be used to load up the MK14.
SiriusHardware is online now   Reply With Quote
Old 27th Oct 2018, 9:56 am   #113
GrahamN
Hexode
 
Join Date: Jun 2008
Location: Burnham on Crouch, Essex, UK.
Posts: 344
Default Re: MK14 schematic revisions

I like the idea of 'typing' in the code automatically - apart from the reasons stated above it just seems so flexible, and can easily be modified to suit other computers of that era relatively simply (I'm thinking KIM1, Acorn System 1, etc.).

Anyway, I'm not too hot on circuit design, but I think I'm going to have a go. I did think about Arduino relay boards for real simplicity, but looking up the price of optocouplers on eBay, I find I can get 50 for less than 2 delivered! So - I've placed an order and I'll spend the few weeks until they arrive sketching out some designs.

I quite like the idea of serial rather than USB as again it seems appropriate when using vintage technology - but in any case it's very easy to convert between the two and I'm pretty sure I have some circuits around for driving multiple relays from serial inputs which should be straightforward to modify.
GrahamN is offline   Reply With Quote
Old 27th Oct 2018, 10:49 am   #114
Slothie
Tetrode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 67
Default Re: MK14 schematic revisions

I've got a tube full of opto isolators (somewhere!) so I'll probably have a go someday if they turn up in the never-ending story of tidying my flat up and organising my electronics "collection" (read: Hoard). I mentioned the serial idea mainly because it seemed like something that could be achieved in an hour or two without too much soldering, and 4 bytes a second is still 10 times faster than I can accurately type!!

As for the Arduino, I suppose if I wanted to keep it retro I do have a literally dozens of 6502/6809/z80 microprocesors and support chips, a load of EPROMS and static RAM chips so I could make something retro custom for the job! That said, given the time its taken to make the MK14 I'd be looking at a long project

No, I like Sirius' idea better from both a technical and aesthetic point of view, and using a RPi seems like a good plan because then I can have the whole development environment and the uploader hardware in one place and just SSH into it from whatever computer I'm working at! Three 74LS138 3-to-8 decoders, a scattering of resistors and the Pi and the jobs done!
Slothie is offline   Reply With Quote
Old 27th Oct 2018, 10:10 pm   #115
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

Quote:
Originally Posted by GrahamN View Post
...can easily be modified to suit other computers of that era relatively simply (I'm thinking KIM1, Acorn System 1, etc.).
Yes, I've already done this. Not with the computers you mention but with numerous other items of equipment which have relatively complex programming but are only programmable through their keypads, things like low end burglar alarm panels and so on. It's an especially useful thing to be able to do when you have a large quantity of items all of which are only keypad programmable and all of which need the same set of initial parameters programmed into them, normally a tedious, slow and error prone manual job. When doing this with other equipment I use an Arduino driving a general purpose 4 * 4 opto matrix and the information to be programmed is just held in look up tables in the Arduino source code.

The very first incarnation of a scheme I used like this did actually use relays because I had lots of those and no optocouplers. Apart from the noise and the slower speed (relays need time to physically get from off to on, and from on back to off again) there is also the problem that their contacts bounce just like the contacts in switches do.

Using optos (which turn on and and off a lot faster and don't bounce) you can ramp the speed up until character entry speed is as fast as the target system can manage to accept it - usually the speed limiting factor is the target system's built in key debounce delay. The entry speed in that MK14 video is about 5 percent less than the absolute maximum character input rate the MK14 can reliably accept without starting to miss incoming characters.

For other systems you also have to factor in how long it will be after any given input before the system has performed the requested action and is ready to accept another input character.

Last time I was discussing this (in a now closed MK14 thread) TonyDuell pointed out that I could have used only twelve optocouplers, with four connected to the rows and eight connected to the column/cathode drive lines. To 'press' any given key you'd turn on one of the row optos and one of the column optos, and those two optos in series, one above the other, would connect the desired row and column together. I think on any standard Arduino or Pi you could probably find 12 digital outputs to drive those 12 optocouplers, so there wouldn't be any need for any additional encoding hardware between the micro and the opto LEDs.

On my original interface I don't use 20 digital outputs each driving one opto LED, instead the opto LEDS are connected in a matrix in a similar fashion to 'Charlieplexing', such that specific parallel binary values output to the rows and columns of the opto LED matrix turn on only one chosen LED and turn all the others off. It works well but it is another reason why my original design would be very complicated for anyone else to build.

However, consider also a further, simpler development of Tony's idea, which is to use 2 * 4051 ICs wired back to back. These ICs are essentially digitally controllable 8-way rotary switches with a digitally controlled SPST 'enable' switch in series, so,

-Connect the switch 'common' terminals of the two ICs together

-Connect the 'enable' pins of the two ICs together.

-Connect the eight switched terminals of the first IC to the eight keypad column lines.

-Connect the first four switched terminals of the second IC to the four keypad row lines

-Connect three column select control lines from the uP to the 'select' pins of the first IC

-Connect three row select control lines from the uP to the 'select' pins of the second IC

-Connect one more line from the uP to the commoned 'enable' lines of the two ICs.

Now, to press a key-

-The uP outputs row and column select addresses to the two ICs.

-The uP momentarily enables both ICs. This has the effect of joining one row to one column momentarily.

This should work because the 4051s have the property of allowing signals to flow through their 'switch contacts' in either direction.

There's one drawback with this idea of using 2 * 4051 ICs - the resulting interface is not as well isolated as one using an opto matrix and would be potentially unsafe to disconnect from a running MK14. But if you don't mind leaving the interface connected then this is probably a much easier way to do it than by using optos.

Incidentally this (the idea of using two back to back 4051s as a micro-controllable matrix keypad 'presser') is not my original idea, it came out of a discussion over on the Arduino forums quite some time ago.
SiriusHardware is online now   Reply With Quote
Old 29th Oct 2018, 10:11 pm   #116
SiriusHardware
Nonode
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 2,163
Default Re: MK14 schematic revisions

To further illustrate the above:

Image #1: Circuit diagram of external keypad and its connections to the MK14 edge connector. This also shows which 'fingers' of the edge connector need to be joined together for any desired keypress. I should say that this diagram relates to the keypad edge connector of an original MK14, modern replicas may or may not have the keypad edge connections in the same order.

Image #2: Optocoupler output circuit which replicates the above, to enable an external device to 'type' programs into the MK14. This is the scheme used by my interface, but it requires one optocoupler per keypad switch position. Tested, works, but complicated to build.

Image #3: Simplified scheme proposed by TonyDuell using 12 optocouplers. In this method the controlling micro turns on one column opto and one row opto simultaneously to 'press' a given key. Not tested, but I can't see why it would not work. You could drive the 12 opto LEDs either with 12 individual outputs from a Pi or Arduino - this is simple to visualise and to wire up and programme for, or, to save some micro I/O lines for other purposes the 12 opto LEDS could be arranged in a matrix and driven by 3 + 4 output lines.

Image #4: Same idea implemented using a pair of back to back 4051 ICs. Also untested. Each IC has an 'on' contact resistance of 120R so with 2 ICs in series the 'on' contact resistance therefore rises to 240R. However, the original MK14 key contacts were made from conductive rubber sheet which also had a fairly high 'on' resistance, so the combined series resistance of two 4051s should still be low enough to work. The controlling micro outputs a 3-bit column select value to the first 4051 and a 3-bit row select value to the second 4051, then takes the enable pins low momentarily to 'press' the selected key. This method only uses 7 bits of the controlling micro's I/O port so it is doable even with the most basic model of Pi or Arduino. Although the Pi outputs 3V logic levels, experience with Pis driving other 5V logic has shown that the 3V logic-1 output level from a Pi pin is high enough to be seen as a logic 1 input by a 5V logic device.
Attached Thumbnails
Click image for larger version

Name:	mk14_keypad_v2.png
Views:	24
Size:	11.7 KB
ID:	171808   Click image for larger version

Name:	mk14_keypad_optos.jpg
Views:	21
Size:	52.5 KB
ID:	171809   Click image for larger version

Name:	mk14_keypad_12optos.png
Views:	39
Size:	8.2 KB
ID:	171810   Click image for larger version

Name:	twin4051s.jpg
Views:	27
Size:	33.5 KB
ID:	171811  
SiriusHardware is online now   Reply With Quote
Reply

Thread Tools



All times are GMT +1. The time now is 4:32 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Copyright ©2002 - 2018, Paul Stenning.