UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV 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.

Closed Thread
 
Thread Tools
Old 22nd Jan 2021, 10:09 pm   #1
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Lightbulb PCB design -- on a BBC Micro!

I have very nearly completed a project to write a program for the BBC Micro, for simple printed circuit board design. This is BCP, which is short for Back of Cigarette Packet -- another versatile design tool.

There is no schematic capture, yet. It takes its circuit input in the form of a slightly-modified SPICE deck (basically, you need to add a comment to the end of each line with a * and the name of the PCB footprint to use) and outputs Gerber and drill files for manufacturing. I was originally planning to incorporate an aperture substitution facility to make it work with mechanical photoplotters with just a 24-position aperture wheel; as it is, it relies on a modern extension to the original format, but the various online viewers I have tried seem to be able to read the files it produces with no problems.

The screen gives a zoomable viewport which can be moved around the design, allowing you to place components and route wiring anywhere.

And I have managed to squeeze all this into a BBC Model B. In theory, nothing is stopping you running the whole thing from cassette, but a floppy drive is recommended. If you can muster a Master, or some shadow RAM, you won't have to choose between four colours just so you can see what's on which layer and 320x256 pixels. It should even run on a 6502 co-processor, again allowing the use of MODE 1.

It's still not finished finished yet, but it's definitely at the "usable with care" stage if anyone would like to try it out.

Would anyone be interested in knowing more?
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 23rd Jan 2021, 11:04 am   #2
dglcomp
Heptode
 
Join Date: Jul 2016
Location: Portland, Dorset, UK.
Posts: 870
Default Re: PCB design -- on a BBC Micro!

Interesting, Mike Harrison/mikeselectricstuff created PCB design for his custom BBC Micro, there's a video of it on his channel.
The Watford Electronics print buffer for the BBC was designed on it, though the final release version might have been slightly redone by Watford Electronics.

https://www.youtube.com/watch?v=la-sGpTpkxE
dglcomp is offline  
Old 23rd Jan 2021, 12:28 pm   #3
Timbucus
Octode
 
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,362
Default Re: PCB design -- on a BBC Micro!

I really need to fix my BBC - its on the ever increasing project pile... I even have a 6502 co-pro and shadow ram on it. BITD we published some programs for Electronic Design on it and the base machine featured in some publicity photos - so would be great to revisit them and try out a PCB design with your software!

Click image for larger version

Name:	DSCF3203.jpg
Views:	177
Size:	96.0 KB
ID:	225189Click image for larger version

Name:	IMG_4691.jpg
Views:	205
Size:	53.1 KB
ID:	225190
Timbucus is offline  
Old 24th Jan 2021, 2:58 pm   #4
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by julie_m View Post

Would anyone be interested in knowing more?
I would certainly love to see some pictures or better still a video of it in action...
How hard was it to write the code to output the Gerbers? I was thinking of a project to create Gerbers from photos or scans of PCBs but was scared a bit by the Gerbers bit.
Slothie is offline  
Old 24th Jan 2021, 7:37 pm   #5
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by Slothie View Post
How hard was it to write the code to output the Gerbers? I was thinking of a project to create Gerbers from photos or scans of PCBs but was scared a bit by the Gerbers bit.
Very easy for this but probably not for what you want to do, because it's a vector format. The photoplotter projects an image of a selected aperture onto light-sensitive film. You can either flash the light on and off again to create a pad, or draw lines by moving with the light on. But it does not lend itself at all well to rasterised images!

There will be a disc image to play with once I have put together a few more component footprints (and maybe an improved tool for creating them).
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 24th Jan 2021, 7:50 pm   #6
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by julie_m View Post
Quote:
Originally Posted by Slothie View Post
How hard was it to write the code to output the Gerbers? I was thinking of a project to create Gerbers from photos or scans of PCBs but was scared a bit by the Gerbers bit.
Very easy for this but probably not for what you want to do, because it's a vector format. The photoplotter projects an image of a selected aperture onto light-sensitive film. You can either flash the light on and off again to create a pad, or draw lines by moving with the light on. But it does not lend itself at all well to rasterised images!

There will be a disc image to play with once I have put together a few more component footprints (and maybe an improved tool for creating them).
[a bit offtopic but...]
Hmm well my (very underdeveloped) plan was to have a screen in which you could size/reshape the image to correct keystoning and make it rectangular and to scale, then have tools to "draw" the lines/pads etc using the image as a background guide, possibly even using some "AI" to automate this process to some degree, so although the "input" is a raster image the output would be vectors. The "use case" was to make Gerbers/drilling files for the sort of PCB layouts in the back of ETI or Elektor or from photos of actual PCBs (in this case there would be an amount of guesswork where tracks go behind components!). I looked around and really couldn't find anything like this.
Slothie is offline  
Old 24th Jan 2021, 10:13 pm   #7
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

Here's an actual Gerber file from BCP so you can get a look at the language -- the only editing I have done on it was to remove unnecessary aperture definitions (BCP just spits them all out every time). It is (one layer of) a very trivial example board with just two resistors, an IC, a capacitor and a few connections, just for testing:
Code:
G04 JOYSTICK INTERFACE (PART) *
G04 UNDERSIDE COPPER *
G04 CREATED ON A BBC MICRO WITH BCP *
G04 ALL PLOTS RIGHT WAY AROUND WHEN *
G04 VIEWED FROM ABOVE LOOKING DOWN. *
G04 UNITS ARE MILLIMETRES *
%MOMM*%
G04 LEADING 0 SUPP, ABS, XXXX.XX *
%FSLAX42Y42*%
%ADD10O,3.3020X2.0320X0.5000*%
%ADD14O,2.0320X2.0320X0.5000*%
%ADD20O,2.0320X3.3020X0.5000*%
%ADD70C,0.2540*%
%ADD71C,0.5080*%
%ADD72C,0.9906*%
%ADD73C,2.0066*%
%ADD80C,0.5080*%
%ADD81C,1.0160*%
%ADD82C,1.9812*%
%ADD83C,4.0132*%
G04 APERTURE TABLE *
G04 D10 OBLONG  LEN 3.3020 WID 2.0320 HOLE 0.5000 *
G04 D14 OBLONG  LEN 2.0320 WID 2.0320 HOLE 0.5000 *
G04 D20 OBLONG  LEN 2.0320 WID 3.3020 HOLE 0.5000 *
G04 D70 DISC    DIA 0.2540 *
G04 D71 DISC    DIA 0.5080 *
G04 D72 DISC    DIA 0.9906 *
G04 D73 DISC    DIA 2.0066 *
G04 D80 DISC    DIA 0.5080 *
G04 D81 DISC    DIA 1.0160 *
G04 D82 DISC    DIA 1.9812 *
G04 D83 DISC    DIA 4.0132 *
G04 END OF HEADER SECTION *
G04 PER-PART DATA *
G54D70*
G04 SILKSCREEN FOR IC1 *
G04 PADS FOR IC1 *
G54D10*
X1651Y1905D03*
Y1651D03*
Y1397D03*
Y1143D03*
Y889D03*
Y635D03*
Y381D03*
X2413D03*
Y635D03*
Y889D03*
Y1143D03*
Y1397D03*
Y1651D03*
Y1905D03*
G04 SILKSCREEN FOR C1 *
G04 PADS FOR C1 *
G54D14*
X1778Y2413D03*
X2286D03*
G04 SILKSCREEN FOR R1 *
G04 PADS FOR R1 *
G54D20*
X508Y2032D03*
Y1016D03*
G04 SILKSCREEN FOR R2 *
G04 PADS FOR R2 *
X889Y2032D03*
Y1016D03*
G04 PER-ROUTE DATA *
G04 ROUTE 0 *
G54D71*
G54D81*
X508Y1397D03*
G54D71*
D02*
X1651D01*
G04 ROUTE 1 *
G54D81*
X889Y1651D03*
G54D71*
D02*
X1651D01*
G04 ROUTE 2 *
G04 ROUTE 3 *
X1778Y2413D02*
X2032Y2159D01*
Y1397D01*
X1651D01*
G04 END OF DESIGN *
M02*
If you can make any sense at all of the above, congratulations: you already know about as much as you need to! D01 draws a line by moving with the light on and D02 moves with the line off and D03 "flashes" a shape. G54 is an aperture change. G04 is a comment, % indicates advanced stuff about the data format and machine-readable aperture definitions for modern photoplotters. BCP even includes some human-readable comments for the benefit of the person running the machine.

BCP stores a route as an initial layer, width and circuit node, and a series of "waypoints"; each of which may be an X-Y co-ordinate pair of a vertex, a component and pin whose co-ordinates will then be used, or a stay-in-place change of layer and/or width, which translates very nicely to the photoplotter.

Your idea certainly sounds interesting, might be worth a new thread or PM if you want to take it somewhere else .....
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 24th Jan 2021, 10:55 pm   #8
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Well that certainly worked! After my last post I looked about and found the "official" spec, which normally are inpenetrable but in this case was surprisingly readable. If I decide to go further a new thread is definitely a possibility!
Attached Thumbnails
Click image for larger version

Name:	bcp.jpg
Views:	151
Size:	83.1 KB
ID:	225315  
Slothie is offline  
Old 24th Jan 2021, 11:53 pm   #9
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

Aye, that's certainly what it's meant to look like!

The basic file format has been around since the days of punched paper tape, so it's necessarily a bit terse to keep everything literally short; but it doesn't really have to do much except give a few simple instructions, so it's understandable.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 9th Feb 2021, 1:22 pm   #10
See_Mos
Hexode
 
See_Mos's Avatar
 
Join Date: Nov 2003
Location: Ossett, West Yorkshire, UK.
Posts: 482
Default Re: PCB design -- on a BBC Micro!

Interesting.

Peter Johnson, Technical Support at Number One Systems told me that he was involved in the early development of Easy-PC which started out as a program for the BBC computer
See_Mos is offline  
Old 11th Feb 2021, 9:34 am   #11
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,394
Default Re: PCB design -- on a BBC Micro!

I always remember Pineapple Systems as being about the only commercial PCB design software on the BBC - But it was rather expensive, as most fairly-primitive PC software was back then.
So I tried doing something in AMX-art, but struggled to get a nice 0.1" step, with printers having n/72 / n/216 increments. And in the end, resorted back to graph paper and acetate, to hand draw my EPROM-Programmer design.
I do also recall working with someone on a BBC BASIC program to create schematic parts symbols and to be able to place and connect these together, to make schematic.

When Acorn moved onto the Archimedes, things were rather easier to do and there was probably several ones for that.
ortek_service is offline  
Old 11th Feb 2021, 9:57 am   #12
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: PCB design -- on a BBC Micro!

Yes, the first PCB design software I ever used was running on a (college) Archimedes. Output was via a plotter holding etch-resist pens which 'drew' the design directly on the PCB.
SiriusHardware is offline  
Old 11th Feb 2021, 10:36 am   #13
cmjones01
Nonode
 
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,669
Default Re: PCB design -- on a BBC Micro!

My first proper experience with PCB design software was with Easy-PC under DOS. I didn't realise that it had a BBC Micro heritage. Like SiriusHardware I used it to output directly to a plotter holding an etch-resist pen or, later, on to clear film which I then used to expose a board with photoresist. I remember the plotter was a Tektronix 4662 which I found in a skip outside the back of the university engineering department. In those pre-world-wide-web days, figuring out how to control the plotter was an interesting exercise in reverse engineering. I eventually wrote a program which would take HPGL from Easy-PC and translate it in to the right sequence of Tek control codes. It all worked surprisingly well for what it was!

I'd be curious to try out modern BBC PCB design software...

Chris
__________________
What's going on in the workshop? http://martin-jones.com/
cmjones01 is offline  
Old 11th Feb 2021, 10:39 am   #14
dglcomp
Heptode
 
Join Date: Jul 2016
Location: Portland, Dorset, UK.
Posts: 870
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by ortek_service View Post
I always remember Pineapple Systems as being about the only commercial PCB design software on the BBC - But it was rather expensive, as most fairly-primitive PC software was back then.
So I tried doing something in AMX-art, but struggled to get a nice 0.1" step, with printers having n/72 / n/216 increments. And in the end, resorted back to graph paper and acetate, to hand draw my EPROM-Programmer design.
I do also recall working with someone on a BBC BASIC program to create schematic parts symbols and to be able to place and connect these together, to make schematic.

When Acorn moved onto the Archimedes, things were rather easier to do and there was probably several ones for that.
In the early 2000's I acquired from school an A7000 setup complete with monitor and BJC600e printer, also with it I got a copy of Fastrax PCB design software though the computer failed and as such I didn't get used for long.
dglcomp is offline  
Old 17th Apr 2021, 1:50 pm   #15
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

OK -- I'm calling this a release. Here's a link to my GitHub page where you can download disc images for a real or emulated Beeb, and the 6502 source code so you can see what makes it tick:

https://github.com/JulieMontoya/BCP_design

There is still plenty that is missing, but I think enough of the bits are there for it to do something. You can turn a wiring list into Gerber files. True, it all needs to be done strictly in order and right first time at the moment; but that will be coming up next, as they say .....
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 18th Apr 2021, 11:56 am   #16
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Well I thought I'd encourage you by at least trying to get your demo up and going, so I have installed b-em and managed to get the ssd file mounted. From some arcane corner of my brain I remembered that *CAT was the command to list the disk contents and indeed I see a list of files which I have completely failed at getting to cut & paste into here!.
If I load "DT42H" and run it I get a list of what looks like variable declarations, the screen clears and then a question mark and flashing cursor.....
*ALLCODE seems to do nothing, loading it just says "bad program". as do all the other files in the lower section of the CAT listing that have a single character prefix (which I seem to recall is some kind of type prefix?).

I tried looking at the instructions on github but that seems to refer to a lot of things that aren't on the disk....
I realise that the basic problem is that my BBC-fu is extremely lacking - I last used a BBC Micro in 1984 for programming, and that was a long time ago! Any clues (or step by step guide!) to how I could see what you have done so far would be appreciated
Slothie is offline  
Old 18th Apr 2021, 1:55 pm   #17
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

You might need to run *OPT 4,3 on the disc images to make them bootable. (I'll check the images and re-upload if necessary after this, but you won't need to re-download them; just *OPT 4,3 your own copies.)

The ? and flashing cursor is the command prompt. Try D to draw the design in memory on screen. (It preloads a minimal test design, which was the beginning of a switch joystick interface for the BBC's analogue joystick port.)

I have probably assumed everybody already has the same intimate understanding as I have cultivated while developing it, so any "What do I do?" type questions are gratefully received!
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.

Last edited by julie_m; 18th Apr 2021 at 2:14 pm.
julie_m is offline  
Old 18th Apr 2021, 4:08 pm   #18
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Hmm well I did a *OPT 4,3 and the virtual drive whirred... It still didn't boot on reset.
Running DT42H and entering D just caused some large numbers to be put on the screen... I am assuming something is not being loaded?
Attached Thumbnails
Click image for larger version

Name:	pressd.png
Views:	50
Size:	3.2 KB
ID:	232061  
Slothie is offline  
Old 18th Apr 2021, 5:30 pm   #19
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

Right, I see what's happening there. The file M.PAGEA has not been loaded. (Normally, this happens from the !BOOT script.) This is actually the program's main workspace variables, and saving it like that is a quick-and-dirty way to initialise many things at once ..... But to a freshly-reset machine, it will look as though the viewport extends from (0,0) to (0,0), the scale is 0 logical pixels to 0 thou and all pads are size 0 by 0. (I will need to address "proper initialisation to a usable state" in a later version.)

If the disc was write-protected when you ran *OPT 4,3 then this step would not have had any effect. (Try *CAT and see what it says for "option"; it should be "Option 3 (EXEC)"). If so, then the usual shift+BREAK combination should start it up.

If shift+BREAK still does nothing even with option 3, you might have to start it with *EXEC !BOOT -- this is exactly what shift+BREAK does anyway.

Thanks for being such a patient guinea pig, by the way!
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 18th Apr 2021, 5:47 pm   #20
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Ah! Success. I can't get it to auto-boot, possibly this is some configuration problem with the emulator, but *EXEC !BOOT causes it to run, and entering the command D draws a picture of a board (attached).

I don't mind testing I've got a BBC in storage waiting to be revived, so any learning I can get the better. I just wish I could get the stack of BBC manuals I have out of storage so I could understand things more! Perhaps I will need to look to see if some scoundrel has uploaded a PDF

I do appreciate how much effort it takes to write software for the old 8-bits, there's always the 3-way stretch on functionality, speed and memory usage!
Attached Thumbnails
Click image for larger version

Name:	run.png
Views:	69
Size:	4.7 KB
ID:	232068  
Slothie is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 6:03 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 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.