CPU in Furby toy - not a 6502, but a little brother

Let's talk about anything related to the 6502 microprocessor.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

CPU in Furby toy - not a 6502, but a little brother

Post by BigEd »

Various places say or imply that the original Furby toy (40 million sold) was 6502-powered, or wasn't, or might have been. This seems to be the source:
Quote:
Furby's silicon "brain" is based on a low-cost variant of the chip that powered the original Apple II.
It turns out that recently someone made a confident identification: it's a Sunplus SPC81A, described there, as on the datasheet, as a RISC with 80k ROM.

Sunplus do (or did) make a variety of 6502-like SoCs - including some which went into HP calculators(*) - and this is one of the subset versions. The datasheet describes it as a 6502 instruction set, with an X register but no Y, and just(**) 69 "instructions" (presumably opcodes, of which the 6502 has 151). It has a banked ROM architecture and just 128 bytes of RAM at $80 through $FF which "includes stack" - so page one is folded onto page zero presumably.

The datasheet describes a 500ns instruction cycle time at 4MHz. That's 2 ticks, which if it's the minimum time and variable could still be a normal 6502 implementation (except for the missing Y register.)

The chip size is given as 2450micron by 2190micron - these parts are sold are bare die, to be used chip-on-board with a blob of epoxy.

There's a furby circuit diagram here which shows a 3.58MHz crystal, the limit at 3V for this part.

Read the patent here for the "described embodiment" (apt phrase, for once)

Cheers
Ed

(*) It seems there were at least a few years when much of HP's calculator lineup was built by Kinpo who used Sunplus' 6502-based chips. The 35s still uses a sunplus 8502 (not the same as the MOS 8502 chip!).

(**) Search for "CPU6502 Instruction Manual" and read (a preview of) the pdf to see what they've done. All the indexed modes have gone, except for
- zero,X for LDA, STA, CMP and DEC, EOR
- abs,X for LDA
- (zero, X) for LDA, STA
(The same doc shows that the SPC* parts have different opcodes but same cycle counts as 6502, where the same operations exist)

Edit to add picture:
Image

Edit to update some dead links with archived links.
Last edited by BigEd on Wed Dec 07, 2016 9:10 am, edited 3 times in total.
ElEctric_EyE
Posts: 3260
Joined: 02 Mar 2009
Location: OH, USA

Re: CPU in Furby toy - not a 6502, but a little brother

Post by ElEctric_EyE »

BigEd wrote:
...The chip size is given as 2450micron by 2190micron - these parts are sold are bare die, to be used chip-on-board with a blob of epoxy...
What person buys a piece of wafer die with epoxy covering it? I guess a better question is who sells such a thing outside of their production facility?
Last edited by ElEctric_EyE on Sun Jan 01, 2012 1:32 pm, edited 1 time in total.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

Pretty much every low-cost piece of electronics is made this way and has been for a long time. It's not much different from packaging the die in epoxy with a metal lead frame, shipping that somewhere else and then soldering it to a board, except it's more direct and uses less materials.

I was given a very cheap, dead, calculator in '83 made like this, and couldn't get at the chip because epoxy is difficult stuff. (If you're tempted to attack it physically, wear eye protection!)

Cheers
Ed
Nightmaretony
In Memoriam
Posts: 618
Joined: 27 Jun 2003
Location: Meadowbrook
Contact:

Post by Nightmaretony »

Had a furby, was planning to hack in, but tis kind of impractical.

Speaking of epoxy, what is the best way to remove? Got a light fixture I am reverse engineerring and want to remove the epoxy. Any ideas?
"My biggest dream in life? Building black plywood Habitrails"
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

Nightmaretony
In Memoriam
Posts: 618
Joined: 27 Jun 2003
Location: Meadowbrook
Contact:

Post by Nightmaretony »

Thanks! :)
"My biggest dream in life? Building black plywood Habitrails"
ChuckT
Posts: 491
Joined: 20 May 2009

Post by ChuckT »

The company I work for sells any kind of strength acid: Hydrochloric, Nitric, Sulfuric, etc. They would only ship it FED EX (we ship US only) and I'm only saying this because I know you are in the computer business. I wouldn't be making any money off of you - my boss would. I think you should shop around and see if you could get it cheaper from closer locations.
Nightmaretony
In Memoriam
Posts: 618
Joined: 27 Jun 2003
Location: Meadowbrook
Contact:

Post by Nightmaretony »

Thanks but am going to see the methods without using acids, the heat I think can work out. Wiould be too scared to use strong acids..... Thanks again though, man.

//trying to stay away from wierd chemicals for now, doctor called about possible cancer. Sigh...
"My biggest dream in life? Building black plywood Habitrails"
ChuckT
Posts: 491
Joined: 20 May 2009

Post by ChuckT »

Nightmaretony wrote:
Thanks but am going to see the methods without using acids, the heat I think can work out. Wiould be too scared to use strong acids..... Thanks again though, man.

//trying to stay away from wierd chemicals for now, doctor called about possible cancer. Sigh...
Sure. All you really need is kitty litter and possible sodium bicarbonate to neutralize acids. I'd probably use baking powder if I didn't have any.
User avatar
Dr Jefyll
Posts: 3526
Joined: 11 Dec 2009
Location: Ontario, Canada
Contact:

Re: CPU in Furby toy - not a 6502, but a little brother

Post by Dr Jefyll »

Someone has just posted about this on Hacker News (about an hour ago as I write this).

The following link takes you to the discussion among HN members. And at the top of the discussion page is a link to the article itself (on archive.org). Furby source code (1998)

And someone has linked to the datasheet for the SUNPLUS SPC81A.

There's a previous HN discussion (2018) here.

-- Jeff
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html
User avatar
Alarm Siren
Posts: 363
Joined: 25 Oct 2016

Re: CPU in Furby toy - not a 6502, but a little brother

Post by Alarm Siren »

It always astonishes me how much they'll strip back to save a few pennies.

As much as a fan as I am of the 6502, I would consider it a pretty basic architecture - stripping away what little functionality exists seems like madness!

But, I suppose, its a case of which saves more money: £20,000 in extra programmer's headaches or 2p per unit sold... If you're selling more than a million units, the latter!
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Re: CPU in Furby toy - not a 6502, but a little brother

Post by BigEd »

Another possible reason for making a Y-free 6502 is to allow a pricing differential: now you have two products, selling the simpler one for less but more importantly the more complex one for more. Or you can look at it this way: you have a cost-reduced offering without undermining your original offering. I'm pretty sure SunPlus did have a range of not-quite-6502 cores.
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: CPU in Furby toy - not a 6502, but a little brother

Post by drogon »

Alarm Siren wrote:
It always astonishes me how much they'll strip back to save a few pennies.

As much as a fan as I am of the 6502, I would consider it a pretty basic architecture - stripping away what little functionality exists seems like madness!

But, I suppose, its a case of which saves more money: £20,000 in extra programmer's headaches or 2p per unit sold... If you're selling more than a million units, the latter!
That's basically it - save a penny a unit, sell a million and it starts to mount up. Examples all over the place - microcontrollers with built in pull-up (and sometimes pull-down) resistors to save an external resistor - and even if that external resistor has a fraction of a penny cost, other costs still apply - e.g. the cost to pick and place a component on a PCB which is mostly time, but also solder paste and costs further back in the line - such as the amount of chemicals to etch the PCB and the device developers time to layout that board. These fractions of a penny costs mount up - I've even had one place I did some work for ask me to use another microcontroller - because that one had some extra widgetry on-board and cost a few pence less - even though reports from others using it were not positive (and the software would be more complex) but save money!!!

It did somewhat amaze me the lengths some people went to in the early Raspberry Pi days - they added external resistors, pull up/down/limiting - I did wonder why - was it because they were used to the old ways of things like e.g. a 6522 which didn't have internal pull-ups or some soft of belt and braces approach or were they just old timers and "that's the way it's always been done" ... (As for old - I'd consider it a mind-set rather than a physical age - I've been tinkering with electronics for over 45 years now ...)

Back to stripping back the 6502 - smaller die means maybe more to a wafer - maybe means less time to do whatever voodoo is needed to prepare, etch, wire bond, etc. and time is money... Harder to program for? Maybe, but that's a one-off cost and labour is cheap outside the "western world" ...

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
kernelthread
Posts: 166
Joined: 23 Jun 2021

Re: CPU in Furby toy - not a 6502, but a little brother

Post by kernelthread »

I wonder how much they actually save by chopping out the Y register? I can understand using internal pullups and stuff like that - it saves actual physical components, plus board space and assembly time and complexity. But chopping out the Y register on a 6502?? What's a 6502 contain - something like 3500 transistors (although maybe the CMOS versions are more)? How many do you save by binning the Y register? I wouldn't be surprised if the on-chip peripherals and RAM use substantially more die area than the processor. 128 bytes of RAM is 6144 transistors if you use the standard 6 transistors per SRAM bit - that's already nearly 2 x the CPU and then you have the peripherals on top of that.
User avatar
Alarm Siren
Posts: 363
Joined: 25 Oct 2016

Re: CPU in Furby toy - not a 6502, but a little brother

Post by Alarm Siren »

It could also be an effort to reduce defect rates. If BigEd's suggestion that they also make variants that do have the Y register, perhaps actually the die is the same on all of them, but if its found there's something wrong with the Y register during testing they just chuck it in the "no-Y-register" bin and sell it anyway.

Also, honestly from the description it sounds like they chopped out a lot more than just the Y register. The X addressing modes also appear to have been seriously cut back...
BigEd wrote:
(**) Search for "CPU6502 Instruction Manual" and read (a preview of) the pdf to see what they've done. All the indexed modes have gone, except for
- zero,X for LDA, STA, CMP and DEC, EOR
- abs,X for LDA
- (zero, X) for LDA, STA
I'm particularly defuddled as to the apparent arbitrary nature of that which remains. Why DEC and not INC? Why XOR and not AND/OR? Why does abs,X not have STA? Why have (ZP, X) and ZP,X addressing modes at all when ZP only contains I/O registers (according to the linked datasheet)?

Granted the amount of RAM is so tiny that perhaps the chip designers thought that almost everything will be in fixed locations anyway. LDA abs,X for example could be used for dynamic table lookups within the ROM, but there's unlikely - given the amount of RAM - to be any need to do STA abs,X. But yeah, what's left still feels like an odd collection.
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.
Post Reply