Over the last couple of years I kind of got a little busy with life, but still had time to prototype and test a few interfaces for my 6502 designs. Got them all working as I wanted and finalized the schematics. Then recently I decided to have them made up into PCBs, so did the layouts and sent them off for manufacture. I was fairly confident they would be just as I wanted them.
Here is what I got back:
From left to right: The first card is a PWM generator with parallel input and output plus a decoded bus access point. The next is video card based on the TMS9918, and the last one is an analog card with two ADC, two DAC and another decoded bus access point. I built them up, but even as I was building them and thinking about the CUPL code for the glue I either realized I missed some important signals, or left out a feature/alternate layout I seemingly can't live without.
For the PWM card I forgot to bring Phi2 into the GAL. I had also moved one of the output patterns without updating the Vcc and GND layers, effectively shorting them out. After fixing those (see bodges) and testing things out I realized something. The card provides two outputs. TTL level and a open drain via a 2N7000 MOSFET. Both worked as expected except I found did not like the inverted pulse width of the open drain output. In my mind a higher number should mean a wider pulse width. So now I have a new card coming that incorporates the corrections and changes.
For the video card I forgot to bring the Slot Select signal from the bus to the GAL. If it was the only card in the backplane that would not be an issue. To me though that defeats the whole idea of a backplane. That's the long bodge wire. The shorter one was as a result of me trying an experiment I eventually rejected. Also, while in use I really did not like the two pin video out and wished for an RCA jack. There is a corrected and updated board on the way.
For the Analog board I did not think things through 100% here either. My prototype had only 1 ADC and 1 DAC. The ADC was device 0 and I initiated the conversion by writing to it, then going back to read the result. The DAC was device 2 and was write only. For this board I wanted 2 of each and a buss access point. I also wanted ADC1 and DAC1 to be the same device # and ditto for ADC2 and DAC2. However, that left me with no way to initiate conversion on the ADCs. The bodge wire you see brings A0 to the GAL. This acts like a virtual 'register'. So if the ADC is at $8100, then conversion is initiated by a read to address $8101 with a subsequent read to $8100 to get the value. I also do not like the arrangement of the pins for the ADC inputs and wanted to update the silk screen and move the bus access connector back a bit. The DACs worked as expected. As before, a new board is on the way. Oh, the purple color was also an experiment. It looks okay.
So, this sort of thing is pretty much par for my course. I do occasionally get it right first go, but that is less than 25% of the time. Is it just me or do others have these experiences?
Slightly OT: Is it just me?
Re: Slightly OT: Is it just me?
It seems common in retrocomputing to need at least a second spin of a board, even if there are no mistakes to be corrected, because when the first half dozen get into people's hands all sorts of variations between machines show up, as well as variations in usage pattern.
I suppose everyone tries to check before they ship, and it's a good idea, but I would think very few check carefully and thoroughly enough never to need any kind of bodge or respin. Fortunately, prices for PCBs are much lower and turnaround times much shorter than they used to be, so it's not so costly in time and money. And sometimes, shipping is the only way to stop adding features and to see how the thing works in practice.
I suppose everyone tries to check before they ship, and it's a good idea, but I would think very few check carefully and thoroughly enough never to need any kind of bodge or respin. Fortunately, prices for PCBs are much lower and turnaround times much shorter than they used to be, so it's not so costly in time and money. And sometimes, shipping is the only way to stop adding features and to see how the thing works in practice.
-
daniMolina
- Posts: 214
- Joined: 25 Jan 2019
- Location: Madrid, Spain
Re: Slightly OT: Is it just me?
So far, I've made PCBs for :
* EPROM programmed based on arduino
* Expansion card for a C64 to add two MOS6526 to the computer
* Breakout board for the C64 expansion port
* Pi1541+Fast Loader cart for the C64
* My very own SBC
* 3 board of the 74HCT6526
All of them (Except the breakout board) have required a second revision, or at least some bodge wires to account for some missing trace.
I've been getting better. For my first PCBs, I was so excited about it that I submitted it for manufacturing without too much review. Now, when I commit to a design, I wait for at least 2 weeks before ordering. It's incredibly easy to overlook something.
* EPROM programmed based on arduino
* Expansion card for a C64 to add two MOS6526 to the computer
* Breakout board for the C64 expansion port
* Pi1541+Fast Loader cart for the C64
* My very own SBC
* 3 board of the 74HCT6526
All of them (Except the breakout board) have required a second revision, or at least some bodge wires to account for some missing trace.
I've been getting better. For my first PCBs, I was so excited about it that I submitted it for manufacturing without too much review. Now, when I commit to a design, I wait for at least 2 weeks before ordering. It's incredibly easy to overlook something.
- CountChocula
- Posts: 101
- Joined: 07 Nov 2021
- Location: Toronto, Canada
Re: Slightly OT: Is it just me?
BillO wrote:
So, this sort of thing is pretty much par for my course. I do occasionally get it right first go, but that is less than 25% of the time. Is it just me or do others have these experiences?
I'm used to very rapid iteration in the software world—we literally have whole teams of people who think about nothing else—and figuring out what the equivalent is for hardware has been one of the most frustrating challenges. In fact, I'm kinda curious to learn what folks do in a professional setting; when you're under the pressure of budgets and deadlines, do you still draw up a PCB and send it out for manufacturing every time you want to test things out? It must take forever to get anything done!
I started out with breadboards, but they just don't work well for me… I see that some folks build some amazing things with them, but I don't really have the space for them, and, if you move them around the shop, they become very unreliable very fast.
So I ended up moving on to PCBs; while I love how cheap it is to get a really good quality product that will last these days, I had exactly the same experience as you: Very few boards work right out of the gate, and some have far too many mistakes to even bodge out. Plus, you still have to wait a week or two for them to arrive in the mail, which really kills any momentum you build in your projects. You can kinda make up for it by having multiple projects on the go at the same time, but then the context switching becomes very expensive.
Recently, I've been experimenting more with wire wrapping and, much to my surprise, I am really enjoying it. I had originally discarded it because of how expensive the hardware is, and because it seemed hard to get right, but I landed on a method that allows me to use inexpensive pin headers and SMD adapters, and now I love the flexibility and immediacy that it brings. Unlike with breadboards, you end up with something that is both easily modifiable and very sturdy and reliable; mistakes are easy to fix (and the fixes look indistinguishable from the originals!), and iterations take minutes or hours instead of days. I still start by drawing up a schematic, and so it's a short hop to drawing up a PCB once my prototype works.
Anyway, sorry for a bit of a rant. This topic has been on my mind a lot lately
Re: Slightly OT: Is it just me?
My board designs start with rev0, because they are never right the first time.
Programmable logic is the answer to rapid prototyping. FPGA is pretty much all you needed to investigated a new/specialized device. In 5V retrocomputing world, CPLD + RAM is sufficient to investigate a retro CPU. CPU+RAM+CPLD is sufficient to investigate most specialized IO. With CPLD you can wire up the relevant connections, ship board out for fabrication and figure out the logic while board is being made. I have several prototype boards with CPLD already pre-wired so it is easy to add relatively few wires to check out a design.
Bill
Programmable logic is the answer to rapid prototyping. FPGA is pretty much all you needed to investigated a new/specialized device. In 5V retrocomputing world, CPLD + RAM is sufficient to investigate a retro CPU. CPU+RAM+CPLD is sufficient to investigate most specialized IO. With CPLD you can wire up the relevant connections, ship board out for fabrication and figure out the logic while board is being made. I have several prototype boards with CPLD already pre-wired so it is easy to add relatively few wires to check out a design.
Bill
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Slightly OT: Is it just me?
CountChocula wrote:
Recently, I've been experimenting more with wire wrapping and, much to my surprise, I am really enjoying it. I had originally discarded it because of how expensive the hardware is, and because it seemed hard to get right, but I landed on a method that allows me to use inexpensive pin headers and SMD adapters, and now I love the flexibility and immediacy that it brings. Unlike with breadboards, you end up with something that is both easily modifiable and very sturdy and reliable; mistakes are easy to fix (and the fixes look indistinguishable from the originals!), and iterations take minutes or hours instead of days. I still start by drawing up a schematic, and so it's a short hop to drawing up a PCB once my prototype works.
- it's much easier to make corrections and modifications and additions, and
- it can be made to perform much better than solderless breadboards, especially well if you use perfboard with a ground plane, because the connections can be shorter than you get on a PCB and you can keep the wires low, almost against the ground plane, and
- you can put sockets shoulder to shoulder, getting great density without having any problems getting signals routed (which is partly why the connections can be shorter)
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
- speculatrix
- Posts: 151
- Joined: 03 Apr 2018
- Contact:
Re: Slightly OT: Is it just me?
I developed a policy in which I would rigidly follow the sequence of:
Not infrequently, I’ll order a PCB that I suspect hasn’t been fully thought through. I do this when I’m already putting in an order for other (more mature) PCBs. Given that postage represents a high proportion of the cost, I’ll chuck in the unready board for an extra $4 or $8 on the basis that it’ll give me something to play with and find out where the errors lie. It’s a kind of ‘hail mary’ approach that has paid off on multiple occasions.
As for respins, I’m pleased to say that most of my PCBs are rev 2 or rev 3. I think that’s not bad. I even have a collection of non-bodged rev 1 boards, but mostly for very simple things. I do, however, have one (fully working) rev 4 board that still needed a bodge wire. It’s actually the main CPU board for my 6502 machine.
- Prototype on breadboard until things get too messy.
- Prototype on stripboard, and when all the kinks are worked out…
- Order the PCB
Not infrequently, I’ll order a PCB that I suspect hasn’t been fully thought through. I do this when I’m already putting in an order for other (more mature) PCBs. Given that postage represents a high proportion of the cost, I’ll chuck in the unready board for an extra $4 or $8 on the basis that it’ll give me something to play with and find out where the errors lie. It’s a kind of ‘hail mary’ approach that has paid off on multiple occasions.
As for respins, I’m pleased to say that most of my PCBs are rev 2 or rev 3. I think that’s not bad. I even have a collection of non-bodged rev 1 boards, but mostly for very simple things. I do, however, have one (fully working) rev 4 board that still needed a bodge wire. It’s actually the main CPU board for my 6502 machine.
It either works or catches fire. Either way is fun.
Zolatron 64 project (on Medium)
Zolatron 64 project (on Medium)
- CountChocula
- Posts: 101
- Joined: 07 Nov 2021
- Location: Toronto, Canada
Re: Slightly OT: Is it just me?
GARTHWILSON wrote:
CountChocula wrote:
That's refreshing to read. WW'ing has kind of gone by the wayside because of SMT and cheap PCBs decreasing its use in industry and hobby such that WW has lost the economy of scale, and the supplies, particularly the sockets, have gotten pretty expensive. I have a web page answering WW questions and doubts at http://wilsonminesco.com/6502primer/WireWrap.html .
I used your WW page as a starting point—thanks for writing that up. Given how hard it is to find the sockets at a reasonable price, I ended up using regular sockets with two rows of pin headers soldered in line to them. This reduces the maximum density of the board, but on the plus side it makes it easier to tell which pin is which, and the result is still pretty good. Here's an example that I was using to learn how boost converters work:
I really can't complain; this works really well and is rather sturdy, and I can still swap out each component and rewire the whole thing pretty easily. Even though I'm using 30ga wire, nothing heats up appreciably even with half an Amp of load on the output (except that one time that I wired in the USB port backwards. That caused… fireworks. Thankfully I was driving it from a wallwart and not from my PC).
speculatrix wrote:
I’ll chuck in the unready board for an extra $4 or $8 on the basis that it’ll give me something to play with and find out where the errors lie.
Re: Slightly OT: Is it just me?
CountChocula wrote:
Given how hard it is to find the sockets at a reasonable price, I ended up using regular sockets with two rows of pin headers soldered in line to them.
Bill
- CountChocula
- Posts: 101
- Joined: 07 Nov 2021
- Location: Toronto, Canada
Re: Slightly OT: Is it just me?
BillO wrote:
Looks interesting. How many wraps can you get on a pin?
Re: Slightly OT: Is it just me?
CountChocula wrote:
BillO wrote:
Looks interesting. How many wraps can you get on a pin?
I found these on ebay: https://www.ebay.ca/itm/171907473800?ha ... Swv0tVE23W
This would provide as much wrapping space at a real WW socket and allow multiple wires wrapped to each pin for bussing and signal distribution. They are dirt cheap too.
Bill
- CountChocula
- Posts: 101
- Joined: 07 Nov 2021
- Location: Toronto, Canada
Re: Slightly OT: Is it just me?
BillO wrote:
I think you means 3 loops on one wire, not three wires wrapped on. Right?
Quote:
I found these on ebay: https://www.ebay.ca/itm/171907473800?ha ... Swv0tVE23W
This would provide as much wrapping space at a real WW socket and allow multiple wires wrapped to each pin for bussing and signal distribution. They are dirt cheap too.
This would provide as much wrapping space at a real WW socket and allow multiple wires wrapped to each pin for bussing and signal distribution. They are dirt cheap too.