BeebSID

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

BeebSID

Postby MartinB » Wed Aug 26, 2009 2:42 pm

The following discerning STH Members have claimed a BeebSID PCB

Code: Select all

Arcadian            2  Posted/Paid
iomanoid            4  Posted/Paid
retroclinic         2  Posted/Paid
sirmorris           2  Posted (11 off)/Paid
ukretrogamer        1  Posted/Paid
corelki2005         1  Posted/Paid
andyt31             2  Posted/Paid
MurrayCakaMuzer     1  Posted/Paid
irrelevant          1  Posted/Paid
fransoos            1  Confirmed
RobC                1  Posted/Paid
antpotter           1  Posted/Paid
JonTr7              1  Posted/Paid
PitFallJones        1  Posted/Paid
billcarr2005        1  Posted/Paid
sorvad              1  Posted/Paid
TomW                1  Posted/Paid
MartinB             2  Retained/Paid

Last updated 21-01-10 23:30


Most of you will have seen Tom Walker's excellent demonstrations of a Master playing stunning 8-Bit retro music via a mysterious black box dangling from a ribbon cable. The only information released thus far has been that the box lives on the 1MHz Bus, houses a SID chip (as famously employed by the Commodore C64) and I think Tom has mentioned on RS that programming BeebSID is pretty straightforward. (He would say that although I suspect it's akin to saying that playing a violin is 'just rubbing strings'... :wink:)

Anyway, there's (not surprisingly) been a lot of interest in BeebSID and how to get one so now the dust has settled, Tom, whose brilliant idea this was =D>, and myself, the grease monkey, have decided that the best way to 'get it out there' is for us to publish all the details so that hardware types can build their own and non-hardware types can ask the hardware types to build one for them :wink:. We did toy with the idea of supplying them ourselves but neither of us has enough free time and certainly for my part, if I was to create time to build them, I'd want silly money for each which would then restrict this fascinating gadget to the few.

So, the plan is that I'll tidy up the current fag-packet schematics (no, really - they were just for me to use to build the demonstrator) and I'll post all the details on here (freeware) with some suggestions for minor improvements to the circuit and the build. Tom will then follow up with all the musical magic and Bob, as they say, is your uncle :D

We're actually hoping that one/some of the many capable hardware builders out there will perhaps be able to make/source a PCB for the gadget because, in context, it's an incredibly simple design but is still a bit painful to make on Veroboard, especially more than once :roll:. Then, the suggestions of DIY builds or getting an iron-wielder to 'build one for ya' can come to fruition and as many people as possible can benefit from this tremendous bit of kit.

Maybe in the meantime Tom could take a photo of the contents of the 'black box' to show that it's a much smaller project than the case suggests?

I'm posting this now because there's lots of unanswered questions on here and RS and Tom and I didn't want to appear to be being arsey about BeebSID. Hence, the above is now on my FIFO list so as soon as possible then.... :wink:

Martin
Last edited by MartinB on Thu Jan 21, 2010 11:34 pm, edited 14 times in total.

SarahWalker
Posts: 1041
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: BeebSID

Postby SarahWalker » Fri Sep 04, 2009 1:56 pm

Sorry about the delay, it's taken me this long to find my camera!

Here's the BeebSID with the lid off :

sid.jpg
(39.75 KiB) Downloaded 5603 times


Most of it's obscured by the cable, but the big chip at the left (with the Commodore logo) is the 8580 SID (which the board is designed for - 6581 SIDs will need at least one modification). There are two other (smaller) chips which are just 1mhz bus address decoding, a 9V regulator, and a few caps dotted around (the two just-visible ones to the right of the SID are the filter caps, rest are decoupling or related to voltage regulation).

The big cable is obviously the 1mhz bus cable. The red/blue at the top is the power cable (drawing 5V and 12V from the Beeb's auxiliary connector). The grey cable is a phono cable for audio out - audio is also output to the 1mhz bus and should be output through the internal speaker (or the external connector on a Master) but this doesn't seem to work on all machines. Besides, the internal speaker doesn't really do the SID justice!

Coding's fairly simple. The SID registers are described on the net, though here they're at $FCEx/$FCFx instead of $D4xx on the '64. It should be easy to modify a C64 SID player to the new addresses, though my menu system (as shown at shows) uses a different trick - on the Master you can map RAM into $Dxxx, so I run the player unmodified and just copy from $D4xx to $FCxx as necessary.

User avatar
iomanoid
Posts: 501
Joined: Sat Aug 08, 2009 9:38 am
Location: Baseworld: Cygni

Re: BeebSID

Postby iomanoid » Sat Oct 10, 2009 2:20 pm

I'm very surprised this thread didn't get more response! I, for one, really really want one of these.

What's the current status - is the spec sheet ready, is there a web page or something somewhere?

:?: :?: :?: :?: :?: :?: :?:

Is there anyone out there who would be able/prepared to build me one? It's exactly what I need (or will do soon) for a current top-secret music project. "I'll make you famous!" ;)

SID chips to feed it with are not a problem.

Did I mention I really really want one? :lol:

Any updates would be lapped up like God's milk...
Image

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Sat Oct 10, 2009 5:59 pm

Ah, that would be me then... :roll:

Ok, I do solemnly swear that one evening next week I will post the schematics. I haven't been waiting for interest, I do know there's lots, just had a bit of a topsy turvy time of things recently but hey, nothing's too much trouble for you guys :D

Martin

User avatar
fransoos
Posts: 23
Joined: Mon Sep 28, 2009 10:06 am
Location: Breda, Netherlands

Re: BeebSID

Postby fransoos » Sat Oct 10, 2009 6:14 pm

I am a complete nitwit :oops: and just joined the forum; but what is the
purpose of this Beebsid.
Where can I find some info of it.

frans
Don't worry be happy

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Sat Oct 10, 2009 7:25 pm

The quick summary is that BeebSID is a little gadget which plugs into the 1MHz bus of a Beeb or Master and allows music to be generated via a SID chip as was most famously used in the Commodore C64.

You can see it in action here.

I designed and built the prototype (and currently only) unit but the original idea of SID-on-a-Beeb was conceived by Tom Walker. I will shortly be publishing the schematics and then dozens of the hardware handy types on here will be queueing up to build them for everyone :D

Martin

MurrayCakaMuzer
Posts: 293
Joined: Sat Sep 05, 2009 9:20 pm
Location: Hampshire

Re: BeebSID

Postby MurrayCakaMuzer » Sat Oct 10, 2009 10:48 pm

I think Arcadian was a bit worried about opening up the schematics because then it won't be as easy to standardise it. He was envisioning an all-in-one general expansion peripheral that did a few upgrades to bring the Beeb on par with the other micros of the era in sound and graphics, and that would work with any software written for it.

Presuming you keep it all unambiguous so they can't be interpreted in any other way, and allow room for such a peripheral in the future whilst maintaining compatibility with this version of the BeebSID, it shouldn't be a problem. I would have a chat with Arcadian first before releasing it if I were you.

User avatar
iomanoid
Posts: 501
Joined: Sat Aug 08, 2009 9:38 am
Location: Baseworld: Cygni

Re: BeebSID

Postby iomanoid » Sat Oct 10, 2009 11:14 pm

Surely any standardisation would only be down to the software - the 1mhz bus spec is already pretty robustly laid out.

Plus, the Beeb's graphics are well good enough already :P

Martin, thanks for the response - ideally I'd really love to be able to get my hands on one by the end of the year. Do you think that's a futile hope...?
Image

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Sat Oct 10, 2009 11:40 pm

Murray wrote:I would have a chat with Arcadian first before releasing it if I were you.
Oh, me and my project manager never stop chatting - tell him Dave :wink:

iomanoid is correct though - the 1MHz bus simply allows memory mapped devices (a huge number if required) to reside at fixed expansion addresses so in the case of a SID, as long as any and all implementations map the chip registers to the same addresses then commonality, and hence software compatibility, is assured.

Do you think that's a futile hope...?
Hmmm... I'm afraid I don't have the life capacity at the moment so I can't offer but if I publish the details next week and since you have SIDs, a heartfelt grovelling plea to the hardware community may bear fruit... [-o<

Martin

MurrayCakaMuzer
Posts: 293
Joined: Sat Sep 05, 2009 9:20 pm
Location: Hampshire

Re: BeebSID

Postby MurrayCakaMuzer » Sat Oct 10, 2009 11:53 pm

That's great then! I hope someone does start building them, I'd like to buy one (and I have a spare SID from a broken C64).

User avatar
fransoos
Posts: 23
Joined: Mon Sep 28, 2009 10:06 am
Location: Breda, Netherlands

Re: BeebSID

Postby fransoos » Sun Oct 11, 2009 8:55 am

After some googling on the tinternet I found out that it will be difficult to get
some lowcost SID6580/1 chips.
They go for GBR 21 to more. :shock:
"Sounds" like to be only for the lucky one's. Unless you happen to have a broken
C64.
But the project "sounds" great.
Don't worry be happy

Elitist
Posts: 82
Joined: Mon Sep 03, 2007 11:14 am

Re: BeebSID

Postby Elitist » Sun Oct 11, 2009 9:12 am

And if you're in the market for SID chips, watch out for those which aren't all that they appear to be:

http://kevtris.org/Projects/sid/remarked_sids.html

User avatar
retroclinic
Posts: 3016
Joined: Thu Jul 03, 2008 1:22 pm
Location: East Riding of Yorkshire
Contact:

Re: BeebSID

Postby retroclinic » Sun Oct 11, 2009 10:49 am

Maybe any "production" recreation would be better with an FPGA version?

http://www.myhdl.org/doku.php/projects:phoenixsid_65x81

Along those lines?

Mark.
Image

User avatar
iomanoid
Posts: 501
Joined: Sat Aug 08, 2009 9:38 am
Location: Baseworld: Cygni

Re: BeebSID

Postby iomanoid » Sun Oct 11, 2009 6:54 pm

Ewww, no... for me the whole point would be lost if it wasn't using a genuine SID. I can already emulate a SID chip perfectly well on my PC in umpteen different ways and flavours... for hardware, it's got to be the real deal :D

Hey, twenty quid isn't bad for a fully-fledged 8-bit silicon synth! Never mind the legendary status, and the warm fuzzy glow ;)

Although, you can very often pick up a grotty or otherwise knackered C64c (with the later, 8580 SID that's generally preferred for musical work) for a fiver or even less. Of all the C64s I've seen the insides of (and that's a lot...), the SID was socketed on all but a single one.

And that way you also know for sure that the chip is genuine... :idea:
Image

MurrayCakaMuzer
Posts: 293
Joined: Sat Sep 05, 2009 9:20 pm
Location: Hampshire

Re: BeebSID

Postby MurrayCakaMuzer » Sun Oct 11, 2009 7:11 pm

Anyway, anyone making hardware can simply put a socket there and get the user to supply their own SID; that's what the Catweasel does.

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Sun Oct 11, 2009 8:20 pm

Disturbingly, retroclinic wrote:Maybe any "production" recreation would be better with an FPGA version?

...but fortunately, iomanoid wrote:Ewww, no... for me the whole point would be lost if it wasn't using a genuine SID.

I couldn't have put it better myself :D

(...and Tom's still choking on his lunch :shock:)

Martin

User avatar
retroclinic
Posts: 3016
Joined: Thu Jul 03, 2008 1:22 pm
Location: East Riding of Yorkshire
Contact:

Re: BeebSID

Postby retroclinic » Sun Oct 11, 2009 8:58 pm

:-k

I seem to have touched a nerve here no? :lol: Maybe I should inform the C64 fan club of what you're doing with all their precious spare parts! [-X

I do agree that using an original sound generator is the most ideal, but as long as the mechanics of the chip were faithfully reproduced, that would be better than paying £20 each for 50pcs only to find 75% of them are fakes? Of course if you can get a reliable source for a decent unit price, then that is not only better for "faithfullness" to the original sound, but could be more cost effective too.

Apologise to Tom for me, and give him 2 pats on his back, one for coming up with the idea, and the other to bring his lunch back.

Mark.
Image

User avatar
AlanD
Posts: 240
Joined: Fri Jan 09, 2009 8:30 pm

Re: BeebSID

Postby AlanD » Tue Oct 13, 2009 12:58 pm

Hello All

heres another approach to reproducing SID chips

http://www.swinkels.tvtom.pl/swinsid/

i'm sure its probably not as good as the original
also i would not overclock a 16MHz AVR @24MHZ thats 50% overclock hmmm!!

i think the FPGA approach may be better option but this one is complete and working apparently

AlanD

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Tue Oct 13, 2009 11:29 pm

Looks interesting Alan - certainly the drop-in replacement is appealing but even so, it's still not a genuine solid gold SID :wink:

I wrote:I do solemnly swear that one evening next week I will post the schematics.
True to my word then…..

small circuit diagram.JPG
(55.42 KiB) Downloaded 5014 times

For a quick look, here’s a jpeg of the circuit diagram for the prototype BeebSID as already built and I’ve also attached a high-res TIFF image for better detail. Since it’s a relatively simple project, I think I might as well offer some background waffle as a learning exercise for anyone new to this stuff and you never know, it might also lead to further innovations in from the STH community :D

If you’re not into hardware (or only vaguely) then I’m sure this looks very impressive but in truth it’s just about as simple as a 1MHz bus peripheral device can get! When Tom asked for a concept proving unit and since I was struggling for time (as always), my personal remit was to build a prototype unit that would work perfectly but use as few chips as possible. I obviously had to have a SID chip, I wanted to have a minimum ‘clean-up’ circuit (see next) and any remaining chip(s) would attend to the necessary address one-meg bus decoding.

The 1MHz bus ‘clean-up’ circuit is well documented (e.g. AUG) and tackles a slight Acorn design hiccup in the ‘NOT PAGE $FC’ (NPGFC) select signal whereby glitches (unwanted very short duration pulses) can and will appear on NPGFC. This signal is used to automatically pre-select a memory mapped hardware page of 255 addresses (also known as ‘FRED’) and is used in conjunction with the lower 8 address lines (A0-A7) to ‘map’ chips and their registers onto the bus. Some devices won’t be affected by these very narrow glitches but the single chip fix is adequate for virtually all other devices including SID. Three of the four NOR logic gates in IC1 (LS02) use both NPGFC and the 1MHz bus clock (1MHzE) to provide a (virtually) clean NPGFC and any one-meg bus peripheral should have at least this circuit. The remaining gate in IC1 is simply used as an inverter because my design requires an active high select and NPGFC is active low.

The last design job is to pick an address or range of addresses at which your peripheral will reside within FRED. For speed (my speed!) and low chip count, I picked a base address for SID of $FCE0 and since the chip has 29 registers (addressable for 32 but 3 are unused) the last register appears at $FCFC. I picked $FCE0-$FCFC because (a) it is recorded as unused in the Acorn documentation and (b) because I knew I would be able to achieve the hardware address decoding with just one more chip, IC2 which is an 8 input Nand gate.

Now, digressing for a moment, there is absolutely no problem in my choice of address space except that there is always the possibility that someone else might at the same time be designing a different peripheral and if we both happen to pick the same addresses then our two devices cannot both be used simultaneously on the bus. What are the chances of that happening I hear you say…
Well, unless I’m very much mistaken, Mark (retroclinic) has picked $FCF8 onwards for DataCentre and hence we have a 5 byte overlap or cock-up to give it the correct name #-o

Given this, and despite the fact that Tom was already demo-ing BeebSID before DataCentre hit the streets :wink:, I think I have no choice but to recommend, nay insist, that the above circuit is changed to locate BeebSID at a different base address within FRED – probably anywhere after/including $FC50 is safe unless someone knows different?

Other random thoughts and in no particular order…..

Buffering and pass-through : The prototype does not include any buffering and if BeebSID is all alone on the bus then this is fine. However, if we are thinking ahead (cue Arcadian) then ideally every device would include full buffering. For example, I have used three hard-wired copies of the 1MHzE clock and I would at least rather see that signal buffered to support the fan-out. There should also be a 1MHz Bus pass-through expansion connector on each peripheral to allow daisy-chaining of multiple devices.

Power : The SID chip uses +5v and, irritatingly, +9v which is why there is a 7809 on-board. I powered the prototype from the Beeb disc drive power connector but this may cause some people problems so perhaps we need to agree some common standard for 1MHz bus power pick-up? Incidentally, if the +12v to the 7809 wasn’t already from a fully smoothed supply I would change the 7809 local capacitor arrangement. The 1k resistor is just a dummy load to make sure the regulator does regulate because I didn’t know how much current SID draws.
Perhaps three AA’s and a 9v PP3 would be a viable option for BeebSID?

Filter caps : These are 6800pf (the SID ‘default’) and work fine on the prototype but I understand that these may need to be varied to get the best audio performance from a given SID chip. Tom – could you expand on this please…

Audio out : I fitted a long flying lead with a Phono Plug for use with an external audio amp and speakers but I also connected the output to the 1MHz Bus ‘Analog In’ on Pin 16 which allows BeebSID to play through the Beeb’s internal amp and speaker. This would probably be better through a switch and Tom has commented that it doesn’t work on all machines. I think on the Master there are links in this area so Tom’s comments could be something to do with those?

If you have the skills (or know someone who has) then a fully working BeebSID can be built from the circuit above. However, I’d like to think that this initial post will promote discussion and that we can make this into a team effort with an ultimate aim of somebody producing PCB’s to allow easy construction and a common build standard. So please feel free to ask questions and make comments (no shaky fingers Mark) and let's see if we really can make a community project a goer :D

Martin
Attachments
BeebSID circuit diagram.zip
(2.47 MiB) Downloaded 245 times
Last edited by MartinB on Wed Oct 14, 2009 8:10 am, edited 1 time in total.

Prime
Posts: 2347
Joined: Sun May 31, 2009 11:52 pm

Re: BeebSID

Postby Prime » Wed Oct 14, 2009 2:06 am

AlanD wrote:Hello All

heres another approach to reproducing SID chips

http://www.swinkels.tvtom.pl/swinsid/

i'm sure its probably not as good as the original
also i would not overclock a 16MHz AVR @24MHZ thats 50% overclock hmmm!!


Though there are now faster AVR chips, which this could possibly be re-engineered to use. Though it would still be an overclock, I guess a 20MHz part running at 24MHz is more likley to work :)

Cheers.

Phill.

User avatar
sorvad
Posts: 2172
Joined: Wed Aug 24, 2005 12:13 pm
Location: Back of beyond

Re: BeebSID

Postby sorvad » Wed Oct 14, 2009 7:31 am

What a great write up Martin, great detail :)

Just a little question about this bit.,.
Three of the four Exclusive-Nor logic gates in IC1 (LS02) use both NPGFC and the 1MHz bus clock (1MHzE) to provide a (virtually) clean NPGFC and any one-meg bus peripheral should have at least this circuit.

When you say virtually clean, does that mean that technically a false signal could still get through ? What circumstances would cause that ?

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Wed Oct 14, 2009 8:08 am

Ooh, did I write Exclusive-Nor? I must have got carried away (or was falling asleep) because they're just plain old Nor gates - that'll be the first edit then :D

Cheers for the feedback Steve and it's probably better if I just refer you to the (standard) Advanced User Guide, page 442 onwards, which I think explains the issue very well. The basic clean-up circuit gets rid of half the glitches and the remaining ones are not normally a problem. Whilst most chips will 'see' the remaining glitches, their response won't actually affect the communication between the CPU and the peripheral chip due to the specific timings of the data transfers. I usually check what's going on with a scope and in this case can see that the residual 'double access' glitches are effectively being ignored.

To complete the exercise I'm going to post a bit more on the address decoding side of things and show how we can (will :wink:) move SID to another address and buffer the over-used 1MHzE with just one more chip.

Martin

User avatar
sorvad
Posts: 2172
Joined: Wed Aug 24, 2005 12:13 pm
Location: Back of beyond

Re: BeebSID

Postby sorvad » Wed Oct 14, 2009 8:23 am

Thanks for the reply Martin, I never noticed you'd draw Nors and referred to them as XNors :oops:

Fraser
Posts: 543
Joined: Tue May 20, 2003 7:21 pm

Re: BeebSID

Postby Fraser » Wed Oct 14, 2009 11:39 am

XNOR seems to be XOR flipped. Why is it not called NXOR? I tested it with a calculator and 0+0 and 1+1 makes 1, 0+1 makes 0.

Fraser
Posts: 543
Joined: Tue May 20, 2003 7:21 pm

Re: BeebSID

Postby Fraser » Wed Oct 14, 2009 11:45 am

Your NORs are effectively a XNOR gate I suppose.

User avatar
sorvad
Posts: 2172
Joined: Wed Aug 24, 2005 12:13 pm
Location: Back of beyond

Re: BeebSID

Postby sorvad » Wed Oct 14, 2009 12:08 pm

XNOR is a negated XOR . So your logic of NXOR is perfectly correct. Here's a Wiki page that mentions it;

http://en.wikipedia.org/wiki/NXOR

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Wed Oct 14, 2009 12:29 pm

I'm not sure any of this is helping poor old SID but it serves me right for posting after midnight :lol:

Code: Select all

INPUT      OR     NOR      XOR    XNOR
  00       0       1        0       1
  01       1       0        1       0
  10       1       0        1       0
  11       1       0        0       1

Martin

User avatar
sorvad
Posts: 2172
Joined: Wed Aug 24, 2005 12:13 pm
Location: Back of beyond

Re: BeebSID

Postby sorvad » Wed Oct 14, 2009 12:47 pm

MartinB wrote:I'm not sure any of this is helping poor old SID but it serves me right for posting after midnight :lol:

I wonder if SID ever did buy those British Gas shares ! .... Sorry going further OT there ! #-o

User avatar
MartinB
Posts: 4555
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: BeebSID

Postby MartinB » Wed Oct 14, 2009 12:52 pm

No worries, it's good to talk and we're all learning stuff - it's what forums are for.... :D

Fraser
Posts: 543
Joined: Tue May 20, 2003 7:21 pm

Re: BeebSID

Postby Fraser » Wed Oct 14, 2009 1:03 pm

I still don't know why its called XNOR and not NXOR.


Return to “hardware”

Who is online

Users browsing this forum: IanB and 9 guests