Joe's Hobby Electronics
  • Joe's Hobby Electronics
    • Electronics Blog

Same old excuses

30/3/2022

0 Comments

 
What can I say... I'm a busy chap.

I've been so busy with work and a large personal project that I've not really had much time for "fun" things, that said, it's funny how one thing leads to another.

I've been working on an all consuming huge project and I needed to take a break. I'm at a bit where I'm stuck and so decided to distract myself for a while and do something fun.
Many many years ago I had a project; the Digital IC Tester, published by Everyday Practical Electronics a UK electronics magazine. It consisted of a PCB with a PIC micro, some jellybean components and a serial connection to a PC that ran some; though I say so myself, brilliantly designed and written software. The setup was capable of testing TTL and CMOS digital ICs and the user could add their own IC definitions to the database. It wasn't meant to test all the operational parameters of an IC, just give a go/no go indication of it's operation. The project was a huge success apparently and even now I get e-mails about it. The software has been ported from Windows to other platforms and people have reinvented the design to suit their own requirements... it's been rather good :)
The reason I'm bleating on about this piece of history is that over the years I've had to fend off one question repeatedly "will it test ICs in-circuit". 
The simple answer is "no".. it won't. The more complex answer is still "no". 

If you imagine an IC as part of a larger circuit, the IC inputs are connected to other components in the circuit that are attempting to drive those inputs. You cannot just attach a test clip and start trying to force pins to logic levels when those pins are attached to other components in the circuit that are themselves trying to drive the same pins.
Attempting this would probably either damage these components in the circuit, or the tester device.

However, some while ago I had a thought.

Imagine a circuit; as complex as you like, that contains a suspect IC; and for sake of explanation and simplicity we will pick the humble 74LS00 - Quad 2-input NAND. 
Picture
The IC contains four NAND gates, where each gate contains two input pins and one output pin. With two inputs there are four possible logic output combinations. Details of the logic combinations and related output logic levels are listed in the truth table or function table for the gate. 

The common way to test the IC is to manipulate the logic levels on the input pins, monitor the output logic level and compare the results with the published truth table. If the output logic levels deviate from the truth table, it's fair to assume the IC is faulty. 

It occurred to me that I don't have to drive the inputs, the circuit will do that. All I need to do is capture the logic levels on the inputs and outputs and compare them with the truth table.

There is a flaw in this plan... actually it turns out there are two flaws but I didn't see the second until after I tried... But more on that exciting revelation in a minute. 

As already stated, out NAND gate has two inputs which gives a total of four possible input logic level combinations. But what if the circuit never uses all four combinations ? 
If I capture the input and output logic levels and compare them with the truth table, I can state that I know how many input combinations are possible (four for our NAND gate), that I've only detected some of them, (for example lets assume only three of the combinations have been used), and of those three combinations detected they all gave the correct logical output. So I'm 75% confidant the NAND gate is working correctly. If however I detect an invalid logic output for an input combination, I can be 100% confidant that the NAND gate is faulty. 
It's brilliant. 

Actually... it's almost brilliant. 

I rushed to my breadboard and constructed a simple test circuit. 
I would use a parallel load shift register to take a snapshot of the logic levels on all the IC pins, and then compare that data to the truth table from the data sheet. 
Picture
The above picture shows my prototype.

A 16-bit shift register with parallel load inputs is connected via a ribbon cable to an IC under test; the IC was in fact a 74LS00 running on my perfectly working 6502 CPU card. 
The data is read from the shift register by a PIC micro and the data squirted down a serial connection to my PC that was running a bit of VB code to display the results. This was going to be great. 

It worked, data was being captured in real-time and I could see the logic combinations being displayed on screen. 

Then I noticed something strange..
I was getting more combinations detected than were possible for a NAND gate.
I would see both inputs at logic 0 but the output also logic 0, or both inputs at logic 1, and the output also at logic 1. This wasn't possible unless there was a fault somewhere, and I knew that the IC was fine as was the CPU card being tested.

Time to break out the logic analyser. 
Ok, on reflection I should have done this first, it would have saved a lot of trouble later on. But it was on the top shelf under a pile of junk and a P.I.T.A to get too. 

After a couple of minutes the problem became obvious.
Picture
The three traces represent pins 1, 2 & 3 (1,2 are inputs and 3 is the output) of a 2-input NAND gate.
The trace shows that pin 2 (middle trace) is at logic 1 constantly, and then shows pin 1 moving from logic 0 to logic 1. However, you can see there is a delay before the gate output (lower trace) moves from logic 1 to logic 0.
This delay is the gate propagation delay, and if, unlike me, you take the time to actually read the datasheet for the humble 74LS00 in detail, you will see it states the propagation delay as a maximum of 15ns (it's around 10ns on the logic trace so that's within specification). 
Picture
So, what next.. is the great invention dead. 

Well I think that using my hardware project to capture the data is not going to work. Whilst I originally didn't need to capture every logic change it's really not going to be fast enough. 
I did try a different hardware setup that used 74LS573 8-bit latches to capture the data but it still takes too long to read the data, store it in the PIC and then transmit back to the PC. Even buffering a batch of results in the PIC first wasn't fast enough. 

Then I thought, but my logic analyser "is" fast enough... and it has a very nice data export function. I could capture the data and export it for processing by my own software.
If I watch for logic changes on the pins designated as outputs, and then backtrack in time I should be able to find the value of the input pins.  It might work.

Next problem which I never thought was going to be a problem... I need a 20 and/or 16 pin IC test clip.
Have you seen the price of IC test clips in the UK... they are absolutely ridiculous. 
I've a 14 and a 40 pin one that I've had for years, so I went shopping for a 16 and 20 pin versions.
After seeing the price I started wondering if I could make my own.
Question, can my 3D printer, print the case for a test-clip that is fine enough, but strong enough to make a decent test clip?

​So I designed on in TinkerCad...
Picture
And yes... it can give the resolution required and is perfectly strong enough.

The above model has ten hollow channels that run from the pin contacts all the way to the top and will allow for a fine connecting wire. I just need to figure out what I can use to make the contact.
After this, print two identical copies, fit a torsion spring and a bolt and it should be done. 

If anybody out there reading this is into hobby electronics I cannot recommend strongly enough that you have a look at 3D printing if you've not already. They are quite affordable these days and as long as you aren't overly bothered about keeping lots of different colours of filament in stock (I only print on whatever colour I last purchased as cheaply as I could find it), it's not very expensive to use.
Considering that one supplier wanted over £100 for a 20 pin test clip... printing your own small parts and tools can be a real cost saving.
​
0 Comments

A 4-bit CPU

20/9/2021

0 Comments

 
I've been insanely busy over the last few months. The human malware crisis has kept me busy at work, and I've got so many projects on the go that I don't know whether I'm coming or going half the time... so I thought I'd add another couple of projects to the pile to keep things interesting.

Now I've been working for a while with a friend of mine Max, from the USA. We've been designing a 4-bit CPU and it's been an interesting journey so far. Why 4-bits I ask you say? Well, it's for educational and experimental work, and in theory, 4-bits makes the CPU hardware half as complex as an 8-bit variant and it continues to be a very thought provoking exercise. Unfortunately, we put very few design constraints in place and this is coming back to bite us now. However, what we did specify was:
  • It will be a 4-bit CPU (which means that the ALU will only be 4-bits)
  • The maximum address space is 4K (12-bits) - of 4-bit wide memory.
  • It will have 16 instructions.
That was it. Since this is designed for education and experimentation, performance wasn't an issue.

The first challenge was, and to some degree still is, designing an instruction set. It was actually quite hard to specify the 16 instructions. We got to 15 and then ran out of ideas... NOP of all things ended up occupying the 16th slot.

Register definition was a nightmare and has changed numerous times. Just how many registers do you need?
Status registers (S), Program Counter (PC), Stack Pointer (SP), Interrupt Vector (IV) maybe, an Accumulator, an Index register (IX) and some general purpose registers.
We've settled on several configurations, only to then go back and change them.

There is an emulator that can run our virtual CPU and I've been working on an assembler. 
Things got interesting when a 3rd member joined the gang who is looking at designing a physical implementation of the CPU on an FPGA. Quickly it was realised that some of our initial design decisions wouldn't translate into a physical implementation particularly well. We made some instruction set changes. This upset the emulator and the assembler so they needed to be changed. Then we found some scenarios where the instruction set would no longer work correctly (it would be impossible to decode the instruction), so more changes to the instruction set were required. We've been around, and continue to circle this loop right now. 

However, and for me this is the really interesting aspect of all this, when I was trying to accommodate some of the new design changes I hit on an idea. Registers have been the bane of my life on this projects.
We started off with 7 or 8 general purpose registers and have now (currently that is) ended up with 4. It will change again I'm pretty sure.

Thinking out the box it occurred to me, "what would happen if we didn't have any registers at all"?
We had already abandoned the idea of an accumulator register, and our CPU supports memory to memory transfers. 
If we removed user accessible registers, we could then remove support for memory to register, and register to memory transfers making the instruction set and CPU simpler. 
Now before you all start shouting and screaming, yes, it's going to be slower doing everything within memory, and in fact, our design will make it slower than you image as we have a "unique" way of talking to memory.
But. if you imagine that all the system registers (PC, Status, SP etc) and user registers are stored in memory, the CPU could become completely stateless.
And the advantages of this are ?
If you were to pause the CPU just before it reads the first Nybble of memory for the start of the instruction, you could just switch memory page. The CPU would then read the PC from the new memory page and could execute the next instruction. Do this in a round-robin, and you can create a simple multi-process CPU that doesn't have to go through the hurdles of context-switching. 
It also means that as long as memory stays powered up, a power failure / reset of the CPU won't really cause any problems... in theory...

Another benefit is that since all the registers are now stored in memory, you can pause the CPU, and easily look at the contents of the registers by just reading memory (you can do this on more traditional CPUs but you need to write software to dump the registers which in turn changes the values of the registers - it gets a bit fiddly).

Myself and the rest of the team disagree with this approach and I understand their objections. It will do absolutely nothing for performance. However, if performance is a goal, then one needs to consider the initial design criteria. 
Building a 4-bit CPU that needs to operate in a predominantly 8-bit world is starting off with a pretty large handicap.
The restriction on memory address size doesn't help, and then consider that some of our CPU instructions require 9 program nybbles... performance was never at the heart of the design.
The bigger and more interesting question in my mind is... would it be interesting and more fun :)

I will possible fork the project at this point. I'm not going to get my own way (certainly if the performance card keeps getting played), but I'm now fascinated to see how easy it would be to create a multi-process implementation  using paged memory and just how stateless the CPU can be made. I'm also wondering if it's possible to make this a multi-processor design.
If it works the way I hope, I may then change the underlying design to be 8-bit with a larger memory map.
That's the advantage of designing your own CPU... as long as you don't want to win any performance awards, you can do whatever you please. 
0 Comments

Evil genius control desk.

29/4/2021

0 Comments

 
So I've been asked to build, what's being called, "the evil genius control desk". In reality it's a studio lighting and audio control solution that has some unique features. 

The studio space in question is divided into several areas and split over two levels. It needs multi-channel lighting and audio control for each area, and some additional features that I'll explain at another time. It also needs a security monitoring function and environmental control function.

After speaking with the customer, we drew up a list of requirements. 
Direct control of lighting and audio in three areas.
Lighting should consist of six lighting channels with each channel having colour and intensity user controllable.
Each area needs to be able to have audio; from multiple sources, piped on; including a "talk over" voice option.
The audio sources need to be MP3 and Bluetooth.
Because the main part of the studio is underground, it needs to have temperature and humidity monitoring and control. 
It's needs to be fairly compact, but with room for expansion. 
It needs to be cheap to do since I'm paying for it.

This is one of those projects that I found it difficult to know where to start.

First thing was to design a panel layout and it quickly became apparent that this wasn't going to be done as one large panel and so it would need to be modular.

The final design is below is is just under 1 meter wide.
Picture
Visio design of panel
The base panel is a 4mm aluminium sheet that's had cut out's made for the modules. Each module is then an acrylic face plate with the controls mounted to it, and behind that one of more PCB's in a stacked configuration.
This should make it easy to exchange a faulty module or do upgrades as required. 

Step 1, get a piece of aluminium, mark out the panel locations and start cutting and filing. 
Picture
Aluminium panel with all cut outs done
This part drove me nuts. Marking out the rather expensive aluminium sheet, cutting the holes with an electric jigsaw (which I'm incapable of cutting a straight line with), filing everything square, realising that I've not made the cut outs large enough so having to spend the next two days with a power file making the cut outs larger. 
Then drilling the holes and installing 80 odd M4 threaded rivets so I have mounting holes to attach each module too. 
I really didn't enjoy this part of the build, but, it turned out ok and I'm pretty pleased with the result. It needs a good sand down and painting but it should look ok when it's done.

Whilst planning this part of the project and working up the courage to start cutting into the blank panel, I started design work and fabrication of one of the audio modules. 

I'll cover each module in detail later on and how I created the panels but for now, the video clip below shows one of the audio mixer prototype modules on the bench being tested.
The panel is back-lit with RGB LED lights that are currently running a test pattern. There is also some light bleed through from the back lights to the VU meter LEDs that I'll need to cure. 

All in all I'm pretty happy with the results of this so far. 
Picture
Audio mixer module fitted in place
The above image shows the wooden frame that will be fixed to the wall. The panel is mounted on hinges so can drop down for access. The frame will be covered with aluminium panels and painted. 

I'm a bit worried I don't have enough space inside the frame however. I've got to get a PC style PSU in there, three 120amp 5v PSUs, and a ton of screw barrier strips plus some other stuff. I've measured everything and on paper it all fits, but these types of projects never to to plan for me. 

​More soon. 
0 Comments

Back to my hobby

26/4/2021

0 Comments

 
For the last 18 months, work has been crazy. Things calmed down around Christmas 2020 and I was hoping to get back into hobby mode but the universe had other ideas. Christmas eve the river burst it's banks and flooded the house and workshop. I've been dealing with the fallout from that ever since. 

Thank heavens for insurance is all I can say. The house is well on the way to being completed and the workshop is now looking somewhat normal but I lost a fair amount of stuff (some would say junk). It did need a clean out that's for sure, but I would have preferred if I'd been able to pick and choose exactly what would end up getting thrown out. Still, it's done now.

Luckily for me, around October 2020, I decided that I would convert the small upstairs box bedroom to a proper home office. I work from home most of the time now, and I've never been very comfortable doing working in my hobby workshop. That did mean that when I was flooded I could continue working. However, moving my day job out of my play room has given me a lot more space which is a real bonus.

The human malware epidemic didn't really give me much time to do anything, but I did sit and pass the UK radio amateurs exam. They were offering tests via video conference and removed the need to attend all the usually obligatory training sessions that teach procedure and protocol. A quick thumb through the book and straight to the exam. Callsign is M7MOJ
I'm all set up now on 2M and 70cm; not that I get much time to play at the moment.

I got suckered into building a combined lighting and audio console for a friend that has turned into a mammoth of a job. I'll be documenting more on this soon, but whilst electronically I'm on top of things, building the enclosure for the control panel has been a real challenge. I needed to be able to make small control panels, and after realising that there was no way I could do this with bits of aluminium and a file, I invested in a laser cutter. 
I've wanted one for years and it's great fun. It will cut up to 5mm Perspex (Acrylic) and it's made designing and cutting control panels so easy to do. Again, I've got some article ideas in the pipe line covering this including how I elected to make my panels, and all the mistakes and dead-ends I went down.
0 Comments

Acorn System 1 Speed Test

18/6/2020

0 Comments

 
Lots going on with this project right now, but I thought I'd do just a very quick update.
Another batch of PCBs arrived a couple of days ago and I'm slowly working my way through assembling them.

The one thing I've very happy with is that by replacing the relatively slow (in terms of access speed) EPROM that contains the Monitor firmware with an ATMEL EEPROM, I've managed to run the system including backplane and a couple of expansion cards up to 8MHz. The EEPROM is rated at 120ns which is around 8.3MHz.
The CPU is spec'd to around 14MHz so that would require memory and EEPROM with an access speed of around 70ns. This maybe pushing it for an EEPROM so some research on what's available is required.

However, running at 8MHz my SAD (Segment Address Decoder) board, and new 8-LED display board all worked fine. 
Picture
0 Comments

Acorn System 1 Memory Board and Dataman programmer update

10/6/2020

0 Comments

 
Last week I'd had enough of that Dataman programmer. It would sometimes work but more often that not Windows would fail to recognise the programmer. I'd tried it on Windows XP and three different Windows 10 machines (one was a brand new out the box machine) and it was always the same. So I sent their tech support people an Email saying fix it, or they were getting it back. I got a lovely immediate reply suggesting I download the latest software from their site, which I did (even though the version I had was only two weeks old), and hey-presto, problem sorted. Have used the programmer several times and it's worked perfectly each time. 

I've also been working on my Acorn System 1 storage expansion card; and I needed a working EPROM/EEPROM programmer so I could flash an EEPROM that contains the boards memory map.
Picture
Whilst it looks like just a jumble of wires, it does work, so far, and I'm rather proud of it.
The CPU simulator on the right is designed to allow me to wiggle all the Address, Data and Control signals. It makes it really easy to set up known signal patterns to a project under test, and then poke around with a scope lead and see what's going on. It connects to the breadboard via a ribbon cable which can be removed, allowing the project to be hooked to a special expansion card that plugs into the computers backplane. 
There will be a full breakdown of how this board works (assuming it does work) soon, but in brief the board contains RAM and EEPROM which are both broken into pages. When completed the card will occupy around 56K of space in the memory map, but will contain around 8Mb of EEPROM/RAM that can be brought in and out of the map as pages.
The two, two digit LED displays on the left show the page numbers for the RAM and EEPROM. The Two digit display at the tope of the board shows the offset that is applied to the memory to allow access to the right page.
All the buffering and decoding logic, as well as some debugging displays/leds etc are on that breadboard including a flash memory that is used to calculate the offsets into the EEPROM/RAMs. The only two components that are missing are the actual EEPROM and RAM chips. They get added next and then I'll find out if this actually works. 
0 Comments

Acorn System 1 Progress and Dataman Programmer

29/5/2020

1 Comment

 
I'm sort or regretting buying this Dataman programmer. I need to spend a lot more time trying to figure out exactly what's going on with it, but assuming my unit doesn't have some weird intermittent fault, then the quality of the software; specifically the USB driver sucks. 
I've tried this programmer now in three different machines; 2 x Windows 10 and 1 x XP SP3 and in all machines it's very hit if the USB driver will work. There seems to be a correct start-up sequence that's required but I can't quite seem to pin it down. I'm hoping to spend some dedicated time with it over the weekend and if I can't get to the bottom of what's going on, I'll have to return it (and I knew I should have kept the flippin box). Bugger. 

Progress on my Acorn System 1 is a bit more positive.
I received a batch of PCB's from JLC the other day and I've started assembling and testing them.
Unfortunately I've already spotted some silly mistakes and areas for improvement.
Of the three I've tested two are fine; with only some slight modifications, and the 3rd which is the backplane board, well, that's for the bin unfortunately.
Somehow, I'd managed to misalign the Euro sockets. The first socket is fine, but as you move along the row of sockets, a very slight position error can be seen and by the 3rd socket, it's impossible to get it to align correctly with the mounting holes on the rack.
The board is still useable standalone, or even in a homemade enclosure, but it's useless if you want to mount in within a proper 19" rack with pre-drilled backplane mounting strips.
So I'm more annoyed about the time wasted than the actual money; a set of five of these boards (minimum quantity) only cost me around £10. 
However, it does give me the opportunity to make some other adjustments. One thing I may do is look at moving it to a single sided board. This will make removing of these large 96 way Euro connectors a LOT easier. It's basically impossible with through-plated holes.

Today, I'm also taking my RSGB foundation exam which will allow me to have a radio amateur call sign and operate a modestly powered transceiver. This should be interesting. I have looked at the syllabus; maybe twice so we shall see how it goes. Twenty six questions, and a minimum pass mark of nineteen required.

1 Comment

Dataman EPROM programmer and fake Chinese EEPROMS

26/4/2020

0 Comments

 
One of my ongoing projects is building a replica Acorn System 1 computer and this has required programming EPROMS. Programming EPROMS in itself is fast, but erasing them ready for re-use is time consuming.

So for this project I decided to use EEPROMS. Ebay had numerous Chinese sellers listing all types of devices from 2K to 64K and I bought a selection of AT28C16 (2K x 8) and AT28C64 (8K x 8)

I opted to use an 8K version initially as that fitted my IC socket on my development machine. 
I've documented the problems I've been having with getting that machine to run, and as one options to try and sort out my problems, I decided to abandon the EEPEOMs in case they were causing some weird incompatibility issues. To be fair I've not really got much experience with EEPROMs so it was possible there was some "got-ya" I wasn't aware of, so back to trusty (but slow development cycle) EPROMs seemed sensible for now.

This however meant using my crappy slow EPROM programmer. It's a serial programmer, running at 1200 baud and the software is so old that it would only run (just) on an old Windows XP laptop. It was a real pain.
And this problem has gotten in my way several times.

When my brother passed I kept his Stag EPROM programmer. This is a nice machine but again the software is really only and won't run on a modern PC. I did think about writing new software but who has the time.

I decided to bite the bullet and buy a new programmer that could program anything from a 2716 up.
It really isn't as easy finding a device as it sounds.

Forget all the Chinese ones. All their claims about being able to program anything are a little over hyped when you actually check the supported device list. None will program the 2716 or any device that needs over 18v for the Vpp.

I couldn't find any second had programmers and every google search kept sending me to Dataman who seem to be the only game in town these days. As a kid I'd always wanted a Dataman programmer; specifically an S4 machine, but they were wayyyy to expensive for me.

A few days ago a brand new Dataman Pro-40 landed on my door step. We won't discuss how much it cost, but I'm on bread and water for the next month.
That said, you get what you pay for.
I did have some weird problems installing the USB drivers on both of my Windows 10 machines but a couple of days later the problem just cleared itself and everything has been fine since. I'm wondering if there were background Windows updates being downloaded.

The Windows software is nice and easy to use and it's tee little things that make it a pleasure to use.
The software's all in English for one thing. Quite often if you do something; program or verify device it was ask if you want to do it again making it a lot faster to process many devices quickly one after the other. In fact, they have added a "YES" button to the actual programmer. Old chip out, new chip in, set the locking leaver and press the button on the device and the software just runs again. It makes it really quick especially when checking ICs.

This leads me onto the fake Chinese EEPROMS I'd bought.
The Pro-40 will also test jelly bean type logic ICs and memories. 
I'd used it to test my stack of 6116 memories and was pleasantly surprised to find only one out of around 20 was faulty. I've had them in my junk box for years so I was actually amazed at this result. 

I tested the ten AT28C64's I'd bought and one of them was found to be faulty. Interestingly it was the one device that I'd been using in my development system. The other nine IC's were fine.

I then tested the ten AT28C16's I'd bought. Nine of them were faulty. By the time I'd finished I could spot which were the fakes and I left the one I thought might be real to the end and that's the only one that passed.
Again, you get what you pay for I suppose... though I didn't pay good money for a box of fake/faulty chips. I wouldn't have mined so much if a couple had been faulty, but only one out of ten... I think that's taking the micky.
0 Comments

My Acorn System 1 lives

23/4/2020

2 Comments

 
I've been working on building a replica of an Acorn System 1 machine for quite some time and it's basically been working, but had a really annoying niggle that I've been struggling to fix. Anyway, yesterday I was browsing an online forum and decided to post details about the problem I was having. Talk about a long shot.
It took an hour or so for somebody to reply with a suggestion, and they were spot on.
Took me ten minutes with a scalpel and soldering iron to cut and bridge a couple of tracks and hey-presto, it sprang into life and works perfectly.

So, I now have a fully functional System 1 CPU board and keypad/display.
There are some updates I need to do to the PCB foils and the schematics to reflect the fix and add some additional ideas I've thought of, and then I'll put all the design files up on this site for those that want to build their own.

For those that know the Acorn System 1, there are a few changes in my version that should make building this one a little easier, but will also make it not completely compatible with existing Acorn hardware setups.

Whilst it does make use of the old bubble style LED display, there is provision to add a larger LED display as I've routed power to the display connector. I will have a design for a powered LED display soon.

It makes use of the W65C02 CPU instead of the older 6502. This gives some additional features including the ability to single step the CPU for debugging, and it will run at speeds much faster than the 6502 which was limited to 1 or 2MHz depending. Actually it will run at any speed from DC to around 14MHz in fact and it's useful to be able to run it at a very slow speed for debugging. 

The edgeway connector is different to the original. Mine uses a 96 position Euro connector with columns A+C loaded giving 64 pins, and whilst I did generally follow the original Acorn layout there are a couple of differences and some additional pins used. This means that the board probably won't be plug-and-play into an original Acorn existing rack system or be pin compatible with Acorn expansion boards. 

There is a more flexible clock oscillator circuit which can make use of any crystal up to 16MHz and divide down to the 1MHz required if you want full compatibility. This will save the having to source an expensive 1MHz crystal; assuming you can find one.

Instead of the two small PROMS on the original, only the EPROM socket is provided and this has been modified to accept the more common and simpler to program 2764 instead of the 2716. Many of the cheap EPROM programmers won't program 2716's. It will also work with an 2764 EEPROM.

The 2 x 2114 RAM chips have been replaced with a single 6116 RAM chip.
This also gives you 2K instead of 1K of RAM (this is configurable with a jumper).
(I will be changing this to use a more common RAM chip.)

The next step is to find a suitable workaround for the last component that is really difficult to find; the INS8514. I'm lucky in that I have one but they are really hard to find and very expensive. They are also quite easy to damage and without one, you can't get the display or keypad working. I've got some ideas for this.

The cassette interface has been removed. There is provision for a plug in card to be added to the keypad as all the control signals are still present if you really do want a cassette interface, but I think in these modern times, we can do better than magnetic tape. That's a future project.

The main PCB has been modified to take a standard euro PCB connector for mounting in a rack. Also, the keypad/display is now connected via a 20 way ribbon connector with ICD connectors at each end. This means you can remove the keypad if desired without having to desolder/resolder the ribbon cable. 

There's also a power on LED on the main PCB and provision for a reset switch. The keypad also has a reset switch and also has the IRQ and NMI buttons.

As long as it's set to a 1MHz clock rate, none of the above changes should break compatibility with an original System 1; with the exception of the cassette interface and that can be added if required, so it should be able to run all the original software.

As with the original there are no surface mount components and provision is made to socket all the ICs. Whilst there is a fair amount of soldering required to assemble one of these, it should be relatively easy for some somebody with only limited soldering experience. The hardest part is probably making the 20-way keypad ribbon cable. 

Once the plans are fully updated and I've checked to make sure the new PCB designs work as expected, I'll post something here in my blog.

I'd started to think I would never get this working so I've really very very pleased it's now running as expected.
2 Comments

A quick update

26/3/2020

0 Comments

 
My day job has been insanely busy the last few weeks, and to be honest the last thing I've felt like doing was spending time hunched over a soldering iron or more time behind a computer screen. 

I work for the NHS and all this virus business is to say the least depressing, so I decided to shutdown my twitter account (so much disinformation and fake news), disabled news flash notifications on my phone and I've been spending as much time as possible either sitting outside in the very unseasonably warm weather just enjoying the sun, or curled up on the sofa with the cat and catching up and the gazillion movies I've been amassing to watch. I've also got terrible toothache but the dentists are all closed down in the UK and won't even see people for urgent appointments. My next project is going to be an automatic tooth remover if I can't get this tooth pain under control soon.

Anyway, I've taken a couple of days off work as I had some leave days to burn before the end of the month; though even on leave you are only a phone call away from the next panic. Anyway, I'm in a better place now and from tomorrow for the next 3 days I'm going to try and finish my tic-tac-toe machine. 

I divided the machine into several sections and I've been prototyping each section. I'm hopeful I can get the prototyping completed by the end of the weekend and then I can start on the PCB designs. Not sure how long it will take to get the PCB's made as the manufacturer is in China and they have their own problems right now. Anyway, I really want to get this project completed as it feels like ages since I actually completed a reasonably sized project.
Doing these largish projects brings me a lot of pleasure and it's a great distraction from what's going on. 

So, stay safe and please follow your governments advice about staying at home, social distancing or wherever they are recommending in your area to try and combat this virus. 
0 Comments

DipTrace PCB software

6/3/2020

1 Comment

 
I would just like to thank the people at DipTrace for allowing me to update to a version of their PCB / Schematic software that supports creations with more pins. 

I've been using DipTrace for years and after outgrowing the basic free version, upgraded to a non-profit version that allows my creations up to 1000 pins per design. Over the years this has only once been a bit of a limitation when I designed a large backplane with 10, 96 way connectors plus other components. Fortunately in this instance I could opt for 5 slot boards instead and just connect them together. 

Yesterday however, whilst working on my new tic-tac-toe project, I blew the 1000 pin limit, and not by a small amount either; I'm going to need around 1500 pins (I'm soooo pleased I don't make and drill my own boards any more). Anyway, if you check out the DipTrace website they do offer special pricing discounts for non-profit users. So I sent them a grovelling email, included a link to this website, to the project I'm working on and asked them to show pity on a poor, and basically broke hobbyist... and they came back with a very reasonable upgrade price. I couldn't key my PayPal details in fast enough. 

Couple of things worth mentioning about DipTrace.
I used Eagle many years ago, before they were acquired by Autodesk, and it was an OK product but I personally never took to it. I stumbled across DipTrace when it was mentioned in the electronics mag I used to read at the time and I've never really looked back.
You can do everything you would expect including creating your own parts (which is really easy), and the files it outputs are completely compatible with JLCPCB who I now use to make my PCBs. 

There are some other benefits that I feel are worth a mention.
If I now create a huge board using my new licensing allowances, I can still put a copy of the design file up on my website, and readers can download and open that file using the free version of DipTrace. You can't make any changes to the file if it's metrics exceed your license capabilities, but you can still export the files to send to a PCB manufacturer or print the artwork if you want to etch your own boards. 

The other thing that is very appealing is it's a one off fee. DipTrace offer free updates for minor releases but there's no monthly subscription fees. I'm really not a fan of the subscription model. It may work great for business but I may not get any electronics play time for several months at a time, so and I don't want to be wasting money on a subscription I don't need. I just feel happier knowing I have the original software, and even if the supplier disappears I've got the original installation files and so can still access my own creations whenever I want. 

Would I design a 10 layer PC motherboard in DipTrace; probably not, but that's not what we do; I've only just moved to double sided since I no longer make my own boards. 
So, if you're looking for a friendly but powerful PCB / Schematic design package I'd suggest you to give DipTrace a go. The free version is perfect for even modest creations.

www.DipTrace.Com



1 Comment

Tic-Tac-Toe

2/3/2020

0 Comments

 
I've not been around much and my hobby has taken a bit of a back seat as I've just been so busy with other things. However things seem to have calmed down for now and I've got some time to switch on the soldering iron.

Whilst sorting out my late brothers affects I stumbled across the plans for a tac-tac-toe (noughts and crosses) game that he designed and built in 1978. It was constructed entirely using CMOS logic chips (no CPU or MPU). I remember him working on this project all over Christmas and it being a bit of an anti-climax when it was completed; it's not like you can ever win the game. According to his documentation, it required 188 logic gates spread over 66 separate ICs. It also needed 22 transistors and used LEDs for the square in use indicators and some push buttons allowing the human to enter their move.  Unlike the version of the game referenced in the movie Wargames, the hardware emulation couldn't play itself. The physical version of his game no longer exists.
As a programming exercise I've often written software to play this game when learning a new programming language new CPU/MPU platform, but I've never built one with just logic gates. 
After studying his original plans, it all just seemed overly complex to me. The rules of the game are of course pretty simple with no complex algorithms required and my brother chose to implement the game logic using lots of NOR and NAND gates. He could have done this with a Z80 or 6502 CPU (they were available) but it would have been expensive. It occurred to me that it would be really easy to build a physical version of this game using not much more than a clock, binary counter and some EEPROMS, which lead me to thinking that it could be possible to do this without ANY IC's at all, using just DDL (Diode Diode Logic). There are some problems though using just DDL.
All the logic elements (gates) are constructed using small circuits based on diodes, but each diode causes a small voltage drop that needs to be overcome else after a voltage has passed though a thought DDL gates, the voltage will be too low. Transistors would be the obvious solution but that goes against my pure DDL idea. There would be some research and experimentation required to see if I could get this approach to work, but since I've set my heart on building this game now, I've opted to build an intermediate version using just TTL and diodes.

My idea is to build something that would be familier to anybody who has worked designing Microcode for CPUs. 
There will be a master clock that will supply regular pulses to a counter. The output from the counter is decoded and selects a single row in a matrix. Each row in the matrix represents a rule and if the rule is true, a suitable course of action. 

To keep things simple, my Microcode engine will not support branching. This means that the rule checking starts at the first entry, runs all the way to the last entry, and then just starts again from the start.

The game should allow for either the player or the machine to move first. It needs to check after each move to see if there is a winner or a draw, it needs to make sure the player cannot make an invalid move (cheat) and, if possible, I want the machine to be able to play itself. I will use coloured LEDs to indicate the owner of each of the nine game squares, LEDs will indicate whos turn it is, and the game outcome. Nine push buttons will allow the human to enter their move and there will be a couple of outer buttons allowing the human to setup the game.

First thing I need to do is experiment with constructing AND gates using only diodes. These diode gates needs to be able to interface with the TTL elements. I will also construct some of the major process blocks including the clock, sequence counter, reset and game end logic.

0 Comments

So much to do... so little time

15/9/2019

1 Comment

 
So, as always I need to apologise for neglecting things on the site but I've just been so busy. Besides being busy at work I've also been busy in the workshop. One project that I'd like to share with you is my attempt to re-create an iconic British 8-bit computer; the Acorn System 1. 
The Wiki for this computer is here: https://en.wikipedia.org/wiki/Acorn_System_1

By todays standards, the Acorn System 1 was probably less powerful than a modern calculator with only a very limited amount of RAM (just over 1K on board) and a clock speed of around 1MHz, but for many people in the 1970's this would be an introduction to computers that would send them off on a journey that, hopefully, is still ongoing for them today. 

I wasn't rich enough to possess one of these beasts, but my brother was, and it has always held a certain fascination for me. I would see him slaving over the keypad for hours at end, with the result being a few flashing LEDs or some terrible sounding music coming from a tiny loudspeaker he'd connected to the thing. Even so, it was the most fascinating thing I'd ever seen and that wonder has stuck with me all these years. We will return to this in a minute.

A few months ago, I discovered JLCPCB. I used to create my own PCB's but they were limited. Typically single sided and whilst you can do some really clever things making your own boards, there are just some things that are too difficult. To be able to have double sided, high quality boards with a silk screen always seemed like a very expensive luxury. I'm going to create an article on getting PCB's made with JLCPCB. Long story short for now, I needed to order some PCB's and though since I'm paying for postage, is there anything else I want. It was at that point that the Acorn System 1 popped into my head and I decided to slip some PCB's that could, in theory, allow me to re-create the computer onto the order. This was a rush decision. I needed to order the original PCBs ASAP as I had a time critical job that was waiting for them, so I gave myself 24hrs to design a set of PCBs for the Acorn.

I had some hi-res pictures of the System 1 boards, and circuit diagrams, but the pictures were only of populated boards so you can't see all the tracks and their end points and I did find some discrepancies between the board pictures and the circuit diagrams. Also, the Acorn System 1 as was, uses some chips that are not exactly modern these days, and one (or two depending on the final configuration) are all but impossible to get hold of. I will cover exactly how, what and why I did to get the PCBs created in a separate article, but suffice to say for this blog entry, the PCB's arrived yesterday. 
Picture
Re-created Acorn System 1 CPU and Display/Keypad boards
JLCPCB have a minimum qty of 5 boards for each design, which on the one had seems a bit wasteful; especially since I don't even know if my design will work, BUT the boards are so darn cheap you don't really need to worry.

So, the above picture shows the boards and the partially assembled Keypad / display board. 

I wonder if this will work. 
1 Comment

One thing leads to another

8/1/2019

2 Comments

 
The last 12 months have been hectic and my hobby has suffered as a result. However, things are "hopefully" starting to calm down now and I can return to my beloved pastime. 

I always book vacation time over Christmas and as it's a nice block of time, that's when I undertake my Christmas project. I did have something in mind for this year, but as usual, events overtook me.

Long story short, I made a new friend Dennis, and Dennis has a hearing problem. Whilst we were chatting he mentioned that for various reasons he didn't want to use a commercial hearing aid, so he'd tried to assemble one for himself using an off-the-shelf headphone amplifier but it wasn't really working. After inspection and a little test, the reason became obvious. It was designed for line-level audio input and not direct connection to a microphone. 

Now I could just have added a pre-amplifier, but even then the performance wasn't going to be great. Since size isn't too much of a problem, it occurred to me that some of the available space could be used for adding some audio filters. This opened a complete can of worms.

Depending on the listeners situation, the filter requirements are going to be different. Maybe you're just wanting to enhance the speech audio from someone you are talking too face to face. Or maybe you want to filter out some background noise. Maybe you are at the opera and want to enhance the vocal range but subdue the music from the orchestra and it soon became apparent that this is the sort of project you can make as simple or complex as you want. 

So, some type of adjustable filter would be required. A band-pass filter would probably be ideal. This would allow frequencies within a certain range to pass through, but attenuate frequencies that are either too high, or too low. To make it truly configurable, you need to be able to adjust the lower minimum frequency, and the upper maximum frequency thus leaving the pass frequency range or pass band in the middle.

Something with a preamplifier, band-pass filter, and headphone audio amplifier in a box with a rechargeable power source seems like it would do the job nicely. But how to design and test a suitable filter design.

I don't have any equipment that I can easily utilise to measure the performance or profile audio filters. My spectrum analyser has a sweep generator built it, so this is ideal... but it only works down to around 30 KHz which is wayyy too high for audio work. I need something that will go from near DC (0 Hz) to around 20 KHz.
I need an audio spectrum analyser; or Audio Analyser as they are called. They exist, and you can buy them, but when I saw the price I thought bugger that, I'll make my own. 

The process to profile or measure the response characteristics of a filter is pretty simple. Inject a signal of a known frequency and amplitude into the filter input, and measure the amplitude at the output. Repeat that for a selection of frequencies from the filters minimum to maximum frequency range, record the results, plot them on a piece of graph paper and hey-presto, you get the filter profile, and yes, I "could" do it that way. But it's very labour intensive and if you are want to tweak your filter design and re-profile it, it starts getting very time consuming. What's needed is a gizmo to do the hard work for you. 

More soon...


2 Comments

19" Card racks and a 3D Printer

20/4/2018

2 Comments

 
I like 19" card racks. I've made use of 19" racks in several projects including a custom computer and an extendable bench power supply unit. The only real problem with them is cost.
The basic 19" frame is reasonable enough, but the card front panels and some of the other bits are really expensive.

So, several months ago I purchased a 3D printer kit. Historically I've been really unlucky with CNC machines and they have always been more trouble than they are worth. However, I've been wanting a 3D printer for ages and I've been really looking forward to being able to print some custom parts including these PCB mounts for my 19" racks.
Picture
These plastic parts are used to mount the PCB to the card front panel, and I'm amazed at how much they cost; talk about daylight robbery. So, after a lot of fiddling and experimentation, I managed to print a reasonably accurate version of the above. It even worked and this then got me thinking if it would be possible to print the front card panels as well.
Picture
A couple of cards in my extendable bench Power Supply
So, after some hacking around in Microsoft 3D builder (which is a really primitive 3D building tool but does the job) I created a model that prints a front plate with integrated PCB card mount bracket.
Picture
The next step is to print the front with all the holes pre-made for the switches and LEDs etc. It will save a small fortune in buying metal front plates, and a lot of time in prototyping and building as there should be no more drilling and endless hours at the bench with a file trying to make pretty square cut-outs for displays. 
2 Comments

Revisiting the digital thermometer clock

29/5/2016

5 Comments

 
The digital thermometer clock has been a real success. Many people have contacted me to say they've built it successfully; most of those people had no issues in construction. However, the performance of the clock; mainly it's long term accuracy has been an issue. The DS1307 RTC chip was good (and cheap at the time), but it's not great in a clock like this and constantly seems to need adjusting.

A little while ago I stumbled on EBay suppliers selling DS3231 modules for around £1.50 each for a complete module so I purchased a couple to experiment with and see how easy they are to use.

Today I upgraded my clock to use that module. A little bit of fiddling with the original PCB is required but it can adapted relatively easily. A few changes were also required to the clocks original firmware.

Anyway it's been running on the bench for a couple of hours without any problem, so I'll publish upgrade details soon. I'm also going to re-publish an updated version of the original design.

Details on how to update the original design can be found here.
5 Comments

Buck voltage regulators

1/5/2016

5 Comments

 
I've written a review about these buck voltage regulator modules that Ebay is awash with.
You can read it here.
I won't spoil the surprise by giving you the ending.
Picture
5 Comments

Temperature monitor and alarm

11/4/2016

4 Comments

 
This was one of those projects that should have taken an afternoon and didn't, however it's now complete and working rather nicely.
Picture
I already had a box from a defunct project that had the 4x20 LCD display installed and power switch, mains transformer and a mains IEC socket on the rear so I decided to re-task it for this.

Inside is a PIC18F25K22 running this show, and the device can monitor up to three channels. Each channel has a 5-pin din connector and cable that connects to a Maxim DS18B20 temperature sensor.
You can set the alarm temperature independently on each channel, and the project starts beeping and flashing the LCD backlight if a maximum is exceeded. I also included a relay that can be used as a power interrupter for the project under test. This way I can leave a project on soak but if it starts to over heat, the power can be cut automatically.

The reason it took longer than anticipated was for some reason the PCB never etched correctly and I had some messing around to do. The software only took around an hour to write and debug. I love Proton BASIC.

...and the reason it's three channels and not more, well I happened to have three 5-pin din sockets in my junk box. If I'd had more... who knows.

If anybody is interested I'll make available the circuit diagram, PCB foil and PIC firmware but this really is an easy project to design and build.

So, now that's up and running, I can get back to the original task of designing a decent voltage boost converter.

4 Comments

And the distractions continue. 

6/4/2016

0 Comments

 
So, over the last few evenings I've managed to finish the first useful board for my new extendable PSU; a 5v board that can supply around 3 amps. It has a trim control that allows the output to be adjusted from 5v to 6v, and two op-amps wired as voltage comparators that illuminate a couple of LEDs to indicate over or under voltage conditions (less than 5v or more than 6v).
Now all happy that I'd got my first board up and working I set about designing the next one that can provide a variable 0 to 30v at around 1 amp.
Happily playing with some ideas on my breadboard I suddenly noticed smoke coming from the circuit, a bang, and then a piece of the voltage regulator went flying past my head.

The problem was, besides a fault in my design, I hadn't noticed that the regulator was starting to fry.
I did have an amp meter in series with the board but I didn't see what it was reading.

What's needed I thought, is something that can alert me to when things are getting hot.

So, I've started on a new project. It will have the ability to monitor multiple temperature sensors and report audibly if one or more of them exceeds a pre-defined temperature. All this so I can eventually measure and record the discharge curve of a battery pack. See previous blog entries to find out more about that.

That's another breadboard with a half finished prototype put to one side, and the start of another project; multi-temperature sensor alarm project. I need to think of a more snazzy name than that. Whilst it would have just been simpler to pick up some cheap data logger off Ebay.... it wouldn't have been so much fun.

Oh.. and a word of warning. Electronics on the whole is a safe hobby. Baring the old soldering iron burn or stabbed finger when a screw driver slips, you should be pretty safe if you are sensible and carful. However, things do go wrong and most components will complain venomously if they are stressed beyond their design parameters; or just connected the wrong way around. I'm fortunate in that I wear spectacles and they offer a limited amount of eye protection, but you do need to be carful. When things start to go thermonuclear, it usually happens fast. 
If you're ever present when a tantalum capacitor explodes, you will wish you had a gas mask and fire extinguisher handy never mind a pair of spectacles.
0 Comments

Inductors

3/4/2016

1 Comment

 
I'm currently working on a +5v plug-in module for my new PSU (see previous blog post).
I had several requirements for this module including the ability to withstand a dead-short circuit and the final output voltage to be trimable to +/- 0.5v. Because of this I decided not to use the existing +5v rail that's already present, instead opting to down convert the existing +12v.

Good old linear regulators are almost indestructible if a few sensible precautions are taken, but they give off a fair amount of heat when dropping a large voltage, especially if you are wanting to pull a couple of amps.

After some research I opted for the LM2576-ADJ (also because for some reason I have a stack of them to hand).
Picture
The above circuit is straight from the datasheet and I'm using this almost as is. The only component required that I didn't have was the 150uH inductor.

Like most seasoned hobbyists I've learned to keep things that are useful and I've a drawer full of old inductors, ferrite rods and toroids that I've salvaged over the years but I decided to wind my own inductor on a ferrite toroid.

Now I've never really given this much thought before, but when buying inductors they list the inductance value, the amperage and sometimes the resistance. A wire inductor is after all just a long piece of wire, usually wound around a former of some kind so it's bound to have resistance and the more wire you have, the higher resistance. Because it's wire it has a maximum current carrying capacity and hence a maximum working current.

However, whilst experimenting with winding an inductor for this project I noticed something that in hindsight is obvious, but that I'd never really thought about before.

I wound two different inductors and after some experimentation managed to get them both pretty close to the inductance required; and I've opted to use a slightly higher value of around 220uH for this project.

Picture
The left one was wound on a much smaller toroid; you can't tell from the picture but the larger core is also around double the thickness of the smaller one.

Both inductors work in my test circuit but the larger one is more efficient.

With the input voltages the same for both tests, the regulator circuit draws 472 ma under test with the larger inductor, and 493 ma with the smaller one.

I'm not sure how many turns there are on the small inductor, probably around 70, but you can see there are only 14 on the large one and even taking into account the physical size of the core, much less wire was required and hence it has a lower resistance.

Oh, and if you're wondering how I wind my cores and check their inductance, I'll create a blog entry about that when I get a chance.

1 Comment

Power supply control and monitoring

29/3/2016

0 Comments

 
Yesterday evening I completed the first of the plug in modules that simply allows me switch the thing on and off, monitor the output voltages and fault conditions.

This is as basic a module as you can have, consisting of only LEDs and resistors. Later, I will create a better monitoring card that can actually monitor the output voltages. For now, I will rely on the PSUs own low-voltage signal.

These PC PSU's need a decent load on their outputs for them to function correctly. After some research and experimentation I found that 50 ohms across the +12v did the trick and the output voltages remain steady and seem well regulated. One article I found suggested loading the +5v line as well, but this PSU really didn't like that and refused to start.
Next step is to start designing some output cards. A simple card to start containing a switching regulator for +5v with several switched outputs and a couple of amps to begin with.

After this I really need a stable 0 to 10v fine adjustable output at around an amp. This will allow me to calibrate my data logger project.
0 Comments

New universal modular power supply

28/3/2016

0 Comments

 
The long bank holiday weekend arrived and I decided I would complete a battery powered project that's been sitting around for a while; I have a lot of half completed projects sitting around the workshop.
I needed to calibrate the software that monitors the internal rechargeable batteries and realised I didn't have any type of suitable data logger. So a nice quick little project idea was born, and anything to distract me from what I should be doing.

Whilst trying to calibrate my new little data logger I realised that my trusty bench PSU drifts around, a lot.
I built it around 10 years ago and it does the job, but it's a bit limited. I also think that the reservoir capacitors could do with being replaced. Also the always on fans are a bit noisy sometimes.
So, the data logger project got dumped on the growing pile of half completed projects and I set about designing a new power supply.

I've been thinking about doing this for a couple of years, and I've even been slowly acquiring the parts required.

The problem I've found with bench PSU's is that they never do everything I want. Some fixed 3.3v, 5v and 12v outputs that can supply a couple of amps each would be nice. Then I started experimenting with Nixie tubes and realised I needed something that can produce a couple of hundred volts at a few mA. Then I needed a 12v PSU that could supply around 10A to allow me to repair and test a CB radio for a friend. Then I wanted something that was suitable for battery charging. Now 1.8v electronics are starting to become popular and my bench PSU won't go down that low. And the list goes on.

I decided I needed a modular PSU, one that I could plug in personality modules designed for specific purposes and hey presto, the universal modular power supply was born.

It can supply around 24 amps at 3.3v, 30 amps at 5v and a whopping 50 amps at 12v and has a single quiet, variable speed fan. It can also supply -12v at 1 amp. Pretty impressive I hear you say.

Ok, so I cheated a bit and based the design on a 650w PC power supply.

However, I'm NOT going to do what many of these cowboys do and just mod a PC PSU.
It's dangerous and to be honest, a complete waste of time. I've seen many projects that start off by drilling holes in a standard PC PSU, fitting binding posts and then saying its a complete project, only for the PSU to fail (of old age or by your own actions) and you have to start again.

A bench PSU needs to be robust and capable of handling short circuits and other silly mistakes.
Current limiting is also an essential component when your PSU can deliver 50 odd amps in a heart beat.

The PSU I'm using is an unmodified (almost) stock PC PSU. The only modification is to cut off the low voltage connectors as I didn't have suitable male connectors to fit. As it happens, it's a neater job if you cut the cables to the desired length and use your own connectors and that's it. You don't even have to open it up or remove the lid.

My design is based on a 19" Vero rack, and with the PSU fitted there are 10 card slots available for custom modules. The great thing is that if I run out of slots, I can remove modules that aren't currently required or I could extend the unit to a second rack.

The above images show the completed frame.

You will notice from the first image there appears to be three metal spacers from the top of the frame to the PSU. These are just holding the PSU in place and stop it moving around. They are not fixed to the PSU housing.
You may also notice a couple "stop" in the bottom left of the picture that stops the PSU sliding forward and another one on the bottom right that stops the PSU sliding sideward. These stops hold the PSU really snugly and there's no movement at all. Also, if I need to replace the PSU for a different size one, I can move the stops around as required.

I did add an earth wire from the PSU (using one of the PSU's mounting holes) to bond it to the chassis and so scrapped the paint off the PSU to get a good connection.

The backplane consists or two identical (well almost as I changed the design slightly for the second card to correct a minor mistake I noticed during drilling), five slot panels. Each panel is fed with +12v, +5v and 0v connections.
You can just see the control signal connector on the right panel in the bottom right corner that connects to the PSUs control signals.

There is a nice metal cover that screws on the back of this rack to protect everything, and whilst you can't really see it from the pictures, the top and bottom panels are perforated so there is plenty of ventilation for the PSU and the plug in modules. The fact that the frame is metal will also mean it acts as a giant heat-sink.  

As it happens, I probably won't make use much of the PSU's native 3.3v and 5v rails as there is no short-circuit or current limiting protection on these lines, so most of what I need will be driven from the 12v rail. However, some of the plug in modules may require a low voltage for some logic so using the existing 3.3v and 5v rails will save me some effort.

After checking for short circuits between the rails, I connected the PSU plugs and plugged in. As expected nothing much happened. The +5VSB line is active but that's it.

The first module will actually be a monitoring and controller card. The PSU requires a dummy load on the 12v line before it will power up correctly.

I will create a proper project for this once I've got a little time.
0 Comments

Changing standards

20/2/2016

0 Comments

 
When I started PIC programming 15+ years ago hobbyists used to build their own PIC programmers and as such, came out with their own ICSP (In-Circuit-Software-Programming) interface connection pin-outs which they would adopt for their own designs. I don't remember giving my own pin-out much thought and it was probably based on the easiest way to route tracks on the PCB with influences from Everyday Practical Electronics' and the late John Becker with his TK2/TK3 PIC programmer projects. In those early days, you only needed 4 wires to establish an ICSP connection.

When the 18F devices started to become available a requirement for a 5th wire was added and so the 4-pin connector needed to be expanded on. For me, I opted for a 6-pin connector and my current personal standard came into existence, and that's what I'd stayed with ever since.
I always use 6-pin Molex connectors for my ICSP connections and as I bought a life-time supply of them cheap several years ago, I've no intention using anything different; at least for the majority of my projects. The Molex connectors are keyed so it's impossible to make a reverse connection.
However, over the years a standard has started to be adopted based on the Microchip PICKIT2 and PICKIT3 programmers. These programmers also use a 6-pin connector but have no reverse polarity protection like that offered by the Molex connectors, though using the Microchip standard you are less likely to damage things if the connection is reversed.

So the question is, do I keep my standard or change ?

I could adopt the Microchip standard really simply. My home-built custom programmer has standard 9-way D-type connectors as it's interface and it would be a simple matter of creating a new programming cable that matches the Microchip standard. A couple of years ago somebody asked me to look at a PIC project they created that used the Microchip standard and I did quickly make a different cable for my programmer... and I've never used that cable since.

Changing things at this stage feels like change for change sake. My current configuration works really well for me and I have no real incentive to change. But changing standards are an unfortunate way of life. In the software programming world it became common practice to adopt variable naming standards, only for this now to be frowned upon when using some programming languages.

Maybe if I wait long enough, Microchip will change their standard and fall into line with mine.
One lives in hope :)



0 Comments

PICKIT2 and the 18F25K22... again

14/2/2016

5 Comments

 
In June 2012, I wrote a blog article on how to update the PICKIT2 to support the 18F25K22 PIC device. This is easy to do and just requires updating the local software device file, and I provided a link to the page on the Microchip site where you could download the required updates. Unfortunately, and I suppose not surprisingly really, Microchip seem to have pulled the page and the programmer is discontinued. It was replaced several years ago with the PICKIT3.
However, I for one still use my PICKIT2 all the time, and the internet is awash with them for sale, so I've included the required device file here.

When initially installed, the PICKIT2 PC software will probably only support the 18F25K20 device.
To check, select "Device Family" from the top menu of the PICKIT2 programmer software and then select PIC18F_K
Now select the "Programmer" top menu, and then "Manual Device Select" near the bottom of the list.
On the main screen, a drop-down list will be available next to "Device". You will see that whilst the 18F28K20 device is shown, the 25K22 device is missing.

Exit the Programmer software.

Locate the folder containing your PICKIT2 software (mine is here: C:\Program Files (x86)\Microchip\PICkit 2 v2)
In the folder you will see a file PK2DeviceFile.dat
This is the device parameter master list. Rename this file to .OLD
pk2dfupdate-1-63-146.zip
File Size: 22 kb
File Type: zip
Download File

The above .ZIP file contains a replacement .DAT file.

Rename the file in the .ZIP file to PK2DeviceFile.dat and place it in the PICKIT2 folder above.

Restart the PICKIT2 software and hey-presto, you now have support for the 25K22 device as well as many other devices.
5 Comments

New digital thermometer clock firmware v8

31/1/2016

0 Comments

 
I was contacted a couple of days ago about the possibility of changing my digital themo clock to also show the date.
It sounded like a quick change and as the RTC chip does have the date available, it seem like a quick project for a rainy afternoon.

It actually took a lot longer than I thought as I had to also make provision for setting the date, including the year. Then I found I needed to restructure everything and as I made changes, more and more of the code needed to be updated. It's almost been rewritten now.
The new firmware is available on the project page for those that want to try it.

I took the opportunity to make a couple of other changes.
I've removed the need for the crystal on the PIC; the one for the RTC is still needed of course. It wasn't required as the PIC's internal timing is good enough and I needed an additional output pin to connect to my debugger. You can leave the crystal in place if you want and it shouldn't cause any issues. However, you now have two free I/O pins to play with if you need them.

The interrupt called display routine has been completely re-written and is now tiny compared to the original. It causes a lot less flicker and the display runs brighter as a result.
0 Comments
<<Previous

    Author

    A software and hardware engineer who loves retro computers.

    Archives

    March 2022
    September 2021
    April 2021
    June 2020
    May 2020
    April 2020
    March 2020
    September 2019
    January 2019
    April 2018
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    May 2015
    April 2015
    March 2015
    January 2015
    December 2014
    September 2014
    August 2014
    April 2014
    March 2014
    January 2014
    October 2013
    September 2013
    August 2013
    July 2013
    June 2013
    April 2013
    March 2013
    January 2013
    September 2012
    June 2012
    May 2012
    April 2012
    February 2012
    January 2012
    December 2011
    November 2011
    October 2011
    September 2011
    August 2011
    July 2011
    June 2011

    Categories

    All
    18f25k20
    18F25K22
    1-wire
    2114
    2764
    3D Printer
    3D Printing
    74hc595
    74ls595
    86-0325
    8MHz
    Access Speed
    Acorn
    Acorn System 1
    Alarm
    Aluminium Panel
    Amicus
    Amicus18
    Amicus Basic
    Amplifier
    Antex 1107
    Anti-static Mat
    Arduino
    Assembler
    Backlight
    Bargains
    Basic
    Bat
    Batdetector
    Bat Detector
    Bats
    Bench Audio Amplifier
    Bench Light
    Breadboard
    Bubbler
    Buck
    Bug
    "C"
    Cable
    Cable Gauge
    Cable Wire Size
    Capacitors
    Catalogue
    Clive Maxfield
    Clock
    Clocks
    CMOS
    Common Emitter
    Compiled
    Compiler
    Connector
    CPU
    CPU Simulator
    Crownhill
    Custom Computer
    Custom CPU
    Damage
    Develop
    Diode
    Diptrace
    Double-sided
    Double-Sided PCB
    Dry-joint
    Ds1302
    DS1820
    Ds18b20
    Ebay
    EEPROM
    Electronics And Circuits
    Eprom
    Erase
    Etch
    Evaporator
    Failed Capacitor
    Fake
    Fax Paper
    Ferric Chloride
    Fire Hazzard
    Firmware
    Florescent Tube
    Health And Safety
    Hidden Part Numbers
    High-Voltage
    Hv
    IC Test Clip
    IC Testing
    In Circuit IC Testing
    Incubator
    INS8154
    Instruction Set
    Inverter
    Kickstarter
    Laser Cutter
    Lcd
    LM2596
    LM386
    Logic Analyser
    M7MOJ
    Maxim
    Maximum Current Rating
    Mega
    Mit
    MITx 6.002
    MK4
    Molex
    Mosfet
    NE555
    Nixie
    Nixie Clock
    Npn
    OXO
    Oxo Machine
    Pcb
    Pic
    Pic Basic
    Pickit2
    Pickit3
    Pic Programmer
    Pixy
    Poster
    Pre-amp
    Prices
    Programming
    Project Box
    Project Case
    Project Enclosure
    Propagation Delay
    Psu
    Psu Failure
    Qfn
    RAM
    Rapid Electronics
    Raspberry Pi
    Regulated 5v Psu
    Regulator
    Repair
    Review
    SAD (Segment Address Decoder)
    SCC
    SCC MK4
    Seven Segment Display
    Shift Register
    Silient 700
    Slow Progress
    Smoke
    Smps
    Soldering
    Speed
    Speed Test
    Stepper Motor
    Supression
    Swg
    Switch Box
    Tank
    Tantalum Capacitor
    Temperature
    Temperature Sensor
    Texas Instruments
    Thermometer
    Tic Tac Toe
    Tic-tac-toe
    Timer
    Tools
    Traffic Lights
    Transistor
    TTL
    Usb
    Uv
    Vbe
    Vcb
    Vce
    W65C02
    Wash
    Weller
    Wirecutters
    Wire Cutters
    Wire Strippers
    Wiring
    Wp3eu
    X2 Capacitor
    X Capacitor
    Y Capacitor

    RSS Feed

© Joe Farr, 2011 - 2022 - Email: HobbyElectronics@kcsl.uk.com