Ktoid, a modified K80W for Altoid can

354 views
Skip to first unread message

Bill Shen

unread,
Jun 21, 2026, 12:44:30 AMJun 21
to retro-comp
Paul DB suggested another Altoid design but this time based on K80W.  It is called Ktoid.  This is K80W trimmed down to fit an Altoids can; on-board CF interface is replaced with plug-in SD card, so is the on-board RTC replaced with plug-in RTC module.  It is still a through-hole design in 4-layer pc board that barely fit.  It should run RomWBW but I can't test it yet because I'm waiting on the 32-pin PLCC socket for the 512K EPROM.
Bill
KTOID_missing_PLCC32.jpg
KTOID_in_ALtoids_can.jpg

Paul dB

unread,
Jun 22, 2026, 1:55:36 PMJun 22
to retro-comp
Wow, that's a snug fit! Bill, it must be frustrating not having that last component yet, the 32-pin PLCC, to verify construction.

I'm tempted to ask you for the Gerbers even if the board is untested as is. Nice thing with HTH construction is that it's always easy to reuse the chips for the next revision ;-) 

Thanks,
Paul

Bill Shen

unread,
Jun 23, 2026, 1:18:39 AMJun 23
to retro-comp
Hi Paul,
Here are schematic and gerber photoplots of rev0 Ktoid design.  Let me know if you've decided to order the pc boards, then I can send you pictorial assembly guide which are series of photos showing how the board is assembled step by step.
I should receive the PLCC32 fairly soon, probably this week.  I can also program the CPLD to do serial bootstrap without EPROM which is probably what I'll do while waiting for the PLCC32 socket.  This way I can run basic diagnostics to check out the hardware.
Bill
ktoid_r0_scm.pdf
KTOID_R0_gerber.zip

Paul dB

unread,
Jun 23, 2026, 2:44:16 PMJun 23
to retro-comp
Boards ordered :D (You didn't really think I could wait, did you? Ha!)

Please do send the assembly guide.

Thanks,
Paul

Bill Shen

unread,
Jun 23, 2026, 10:21:08 PMJun 23
to retro-comp
OK, here are the pictorial assembly guide.  Resistors first, then capacitors, then the rest.  All design info will be uploaded to github, but I'm not proficient with github, so it'll take some times.
Bill
Ktoid capacitors component side.jpg
Ktoid resistors solder side.jpg
Ktoid resistors component side.jpg

Bill Shen

unread,
Jun 23, 2026, 10:21:58 PMJun 23
to retro-comp
Annotated Ktoid.  Bill

On Tuesday, June 23, 2026 at 12:44:16 PM UTC-6 Paul dB wrote:
KTOID_annotated.jpg

Paul dB

unread,
Jun 24, 2026, 10:50:50 AMJun 24
to retro-comp
Thanks for sharing detailed photos, Bill. Good to have as reference when building the board.

Regarding github, I've stumbled along myself when I attempted to set up one for RomWBW. There are lots of tutorials available on the net, but the ones I tried all seemed to diverge in one detail or another, eventually leading me into the rabbit hole. Hmm, why does that remind me of Colossal Cave Adventure?

Anyway, I hope you have better luck with github.

Thanks again,
Paul

Bill Shen

unread,
Jun 25, 2026, 12:51:31 AMJun 25
to retro-comp
The PLCC32 sockets didn't show up so I'm going ahead with testing of the Ktoid without the flash.  First, the NOP test with just Z80 and 7.37MHz oscillator by grounding all data lines through 4.7K resistors.  It worked.  Then added a CPLD that drove the data lines to ground instead of pull down with resistors, that also worked.  Now I'm adding a small 32-byte ROM and a serial port in CPLD.  The idea is to boot with CPLD ROM that loads 256 bytes of incoming serial data into RAM then jumps to RAM to execute the uploaded program.  The CPLD design fitted OK in an EPM7064SLC44.  I'll run tests tomorrow. 
To be continued...

Bill Shen

unread,
Jun 27, 2026, 1:15:18 AMJun 27
to retro-comp
Still have not received the PLCC32 socket, but making good progress with board testing by bootstrapping from CPLD.  The serial bootstrap code is quite small, 15 bytes, but enough to serially load 256-byte program into RAM then execute the program in RAM.  RAM is now populated and system clock is changed to 22MHz.  So far it is working with simple diagnostic programs.  Next step is to populate the KIO and test it.
Bill

Paul dB

unread,
Jul 26, 2026, 4:38:58 PM (8 days ago) Jul 26
to retro-comp
Ktoid_peeking_out_of_tin.jpg

I've completed building two Ktoid SBCs. Both booted up directly after applying power. The first one has vertical serial headers so it fits an Altoids tin. I used right-angle serial headers on the second Ktoid instead. Also, on the second one, I replaced the voltage supervisor with a standard resistor & capacitor reset circuit (more details on that in a later post).

Just to add to Bill's description, Ktoid is his K80W computer crammed into a size that fits an Altoids tin. And it is hardware and software compatible with the K80W, excluding the CF-card interface, so no new RomWBW version is necessary.

In spite of its small size, Ztoid runs an overclocked Z80 at 22MHz, has 512KB RAM, 512KB EPROM, 2 serial ports (with RTS/CTS handshaking), SD-card storage, an I2C interface, a Real Time Clock, a voltage supervisor and can run RomWBW. Another nice feature is being able to change the Z80 CPU oscillator frequency without affecting the serial baud rate (I'm running one of the Ztoids at 25.175 MHz).

Bill has conveniently marked unused KIO port pins on the PCB with test points should one want to experiment with expansion. E.g. Parallel port PA0-PA7 pins are unused.

Building the board is fairly straight-forward, keeping in mind to place the components on the right side of the board; some of the resistors need to be put on the solder-side. When mounting the PLCC sockets, they should all be plugged into the board before soldering as they are a tight fit.

Two chips need to be programmed. Ztoid uses the same binary files as the K80W Rev1 (and Rev2.1) boards:

 * The CPLD (an EPM7032S BTW) is flashed with the 'top.pof' file contained in the K80W Rev1 'k80w_r1pcb_cpld_epm7032s.zip'.
 * The EPROM is flashed with the RomWBW binary 'RCZ80_k80w.rom'

Both boards pass the zexall and pip with verify tests. Serial transfer by xm at 115200 baud works nicely, thanks to serial ports with handshaking.

Onto the SD-card and RTC modules

After carefully straightening the SD-card module's pins so that they were at a right-angle with the PCB, it plugged right in to Ztoid's SD-card header. I flashed a 32GB SD-card with RomWBW's 'hd1k_combo.img' file and inserted it into the module. Hardware discovery found it at next boot.

The DS1302 RTC module was more of a problem. If you look at the module from the side you'll see that the male pin header extends from the board to the same height as the battery holder, making it impossible to plug the module into the Ztoid's RTC header.

I found two possible solutions: (1) improvise a short pin extension out of a stacker header or (2) unsolder the module pin header and re-use the holes to solder a new pin header on the reverse side of the board. This was more difficult, but the module then fits well up-side-down, laying over the KIO chip.

Then came a recurring problem with the DS1302 RTC - keeping time. The RTC crystal oscillator's pins are very sensitive to nearby signals and effectively act as an antenna (Ref 'Dallas Application Note 58'). If they are of a higher frequency, they will most likely cause the RTC to run fast.

RomWBW makes this fairly easy to troubleshoot since, upon booting, the second line of the boot message shows a good approximation of the Z80 oscillator frequency. This can also be used in reverse to show if the RTC is running slow or fast (within reason).

In this case, I had previously tried a third solution to mounting the RTC module by lengthening the pins just enough to make the module lay flat on Ktoid (with the IC and battery holder downward). Booting afterwards showed 'Z80 @ 18.468MHz'! And this was with a 22MHz CPU oscillator.

First I thought I had somehow broken the RTC crystal, but then I noticed that when I lifted the module slightly and rebooted, the Z80 speed message showed the Z80 running faster. On a closer look, I saw that the crystal's legs (and PCB traces to the crystal) were laying directly over the inside edge of the Z80 PLCC socket (where the contacts are).

Mounting the module with the pin extension (solution #1) raised it enough to bring the Z80 speed much closer to 22MHz. But that brought the whole module up into a wobbly position.

I settled for solution #2: moving the module pin header to the reverse side of the board where it lays flat over the KIO chip (even there I could still get a slightly better CPU speed reading by sticking a small silicone bumper on the KIO to raise the module a bit from the chip). With the it placed there, I got a value of 'Z80 @ 21.968MHz'. Good enough. Conclusion: There are much better RTC chips than the DS1302.

I should add that the RTC module is really optional for normal use of the retrocomputer. IIRC, It is only used by some later CP/M derivative for time/date stamping.

All in all, I think Bill has done a great job making this tiny through-hole computer. Many thanks to him,
Paul
Alternate_module_mounting.jpg
Ktoid_alternate_view_with_both_modules.jpg
Alternate_module_mounting_in_tin.jpg
RTC-modules_closeup.jpg

Paul dB

unread,
Jul 27, 2026, 7:59:01 AM (8 days ago) Jul 27
to retro-comp
Oops, in my last post I wrote 'Ztoid' instead of 'Ktoid' in a few places. Ztoid was Bill's earlier SBC, based on EaZy80, that didn't quite fit the can ;-)

7alken

unread,
Jul 27, 2026, 2:54:12 PM (7 days ago) Jul 27
to retro-comp
cool :-)

Bill Shen

unread,
Jul 28, 2026, 12:06:58 AM (7 days ago) Jul 28
to retro-comp
Paul,
Thanks for testing out Ktoid.  I finally got around to build two Ktoid and able to boot both of them into RomWBW just like you did.  For RTC connector I do have header with longer tail so the RTC connector can protrude above the RAM high enough to plug the DS1302 module upside down directly to the tall header.  However the RTC stands too tall to close the Altoids can.  Your second solution for RTC (move the header to reverse side of RTC module) is a better solution although clock stability may be affected by the tight spacing.

As you've pointed out, the components are tight fit.  I'll move apart the components slightly in next board revision so they'll fit easier.  Thanks,
Bill

T Gerbic

unread,
Jul 28, 2026, 1:38:38 AM (7 days ago) Jul 28
to retro-comp
Have you thought about a hybrid through hole/SMD design. Change the oscillator to an SMD package, maybe remove a PLCC socket or two and place the RTC and crystal on the PCB. Perhaps you could find space for a parallel port connector. Using the larger SMD parts would still make it about the same effort as all through hole but give some extra space. That through hole oscillator sure takes up a lot of space, as does the adjacent resistors and capacitors. 

T Gerbic

unread,
Jul 28, 2026, 1:50:37 AM (7 days ago) Jul 28
to retro-comp
Using the SOP or TSOP II packages for the RAM would provide enough room for a parallel port and the RTC. Still not to small to hand solder (.080 or .050 pin spacing). When people think about SMD, it is easy to assume microscopic components which equals very hard to build.  Using the largest SMD parts like 1206 resistors, are not that hard to work with. 0.080 spacing for pins is just a little smaller than 0.100 spacing but the ICs take up less room. 
You could cram more on the PCB and eliminate some of the height.  Less height might mean you could put the SD card on the back and eject it through the side of the can. 

Bill Shen

unread,
Jul 28, 2026, 3:32:09 PM (6 days ago) Jul 28
to retro-comp
I actually has a Z80/KIO design in SMT technology that fitted in low-profile ATMega acrylic enclosure.  It is a Z84C15 (Z80+KIO) plus SMT RAM and ROM.  Enclosure has very little headspace, so components are all soldered down.  This was an old design for plain CP/M 2 that didn’t have enough RAM/ROM to run RomWBW, but should be easy to upgrade to RomWBW - capable version.
Bill
MicroZ in ATMega acrylic enclosure.jpg

T Gerbic

unread,
Jul 28, 2026, 4:14:46 PM (6 days ago) Jul 28
to retro-comp
Looks pretty cool.

Paul dB

unread,
Jul 28, 2026, 4:30:11 PM (6 days ago) Jul 28
to retro-comp
Bill, is the Z84C15 (Z80+KIO) available as a new part?

I was going to say that I think we've pretty much reached the limit to what can be done with through-hole designs. Maybe it's time to learn some new skills? ;-)

Paul

Bill Shen

unread,
Jul 28, 2026, 5:01:47 PM (6 days ago) Jul 28
to retro-comp
Z84C15 is obsolete so not available from DigiKey nor Mouser, but available from grey markets like eBay, UTSource.  It is cheaper than sum of Z80 plus KIO.  It can also be overclocked to 30Mhz or beyond.
Bill

Paul dB

unread,
Jul 28, 2026, 5:07:45 PM (6 days ago) Jul 28
to retro-comp
Interesting. Hmm, I wonder if anyone else would be interested in an all SMD Z84C15 design supporting RomWBW?

Paul dB

unread,
Jul 28, 2026, 5:28:14 PM (6 days ago) Jul 28
to retro-comp
I found Z84C1516FSC QFP100 here
https://www.ebay.com/itm/375859729691

Is this the package that's easiest to mount?

Paul dB

unread,
Jul 28, 2026, 6:44:24 PM (6 days ago) Jul 28
to retro-comp
I happened to find this interesting kit from the  seller of the Simple80 Kit:

It contains a TMPZ84C015BF-6 as well as Z84C1516ASC plus a number of support chips.

From the TMPZ84C015B datasheet:

"The TMPZ84C015B is a high-performance CMOS 8-bit microprocessor incorporating the counter timer circuit (CTC), the serial I/O port (SIO), the parallel I/O port (PIO), the clock generator/controller (CGC), and the watchdog timer (WDT) around the TLCS-Z80 MPU."

From just a cursory look, it seems the Toshiba chip is a second sourced Zilog part, just in a different package.

I'll include an enhance photo of the kit.

Paul
enhanced_kit_photo.jpg
Message has been deleted

Bill Shen

unread,
Jul 28, 2026, 7:50:10 PM (6 days ago) Jul 28
to retro-comp

If you are interested in designs using Z84C15, I have two designs, MicroZ here,  https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:microz  and Micro80 here, https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:micro80
Bill
On Tuesday, July 28, 2026 at 5:35:11 PM UTC-6 Bill Shen wrote:
The QFP100 package’s pitch is 0.065” so it is somewhat easier to solder than the common 0.05” pitch IC.  Nevertheless, you will need good bit of practice to be comfortable working with that kind of package.  The outfit that sold Simple80 and Eazy80 kits is fairly good.  Their KIO are not relabeled, their Z80 are, but are generally CMOS parts capable of 25-30Mhz operation.  They will combine shipping so shipping remains pretty much the same when you ordered multiple kits.  They are not perfect, but one of the better eBay sellers of retro computer parts.
Bill

Bill Shen

unread,
Jul 28, 2026, 8:07:49 PM (6 days ago) Jul 28
to retro-comp
Paul,
I have deleted previous reply because it contained a couple errors about IC lead pitch.  I’m reposting it below with the errors corrected

The QFP100 package’s pitch is 0.65mm, so it is somewhat easier to solder than the common SMT lead pitch of 0.5mm.  Nevertheless, you will need good bit of practice to be comfortable working with that kind of package.  The outfit that sold Simple80 and Eazy80 kits is fairly good.  Their KIO are not relabeled, their Z80 are, but are generally CMOS parts capable of 25-30Mhz operation.  They will combine shipping so shipping remains pretty much the same when you ordered multiple kits.  They are not perfect, but one of the better eBay sellers of retro computer parts.
Bill


Bill McMullen

unread,
Jul 28, 2026, 9:34:37 PM (6 days ago) Jul 28
to retro-comp
Interesting. Hmm, I wonder if anyone else would be interested in an all SMD Z84C15 design supporting RomWBW?

Paul: I actually laid out and built an all SMD Z84C15 system that's just a bit smaller than a credit card.  Summer and other projects have gotten in the way and it still needs a lot of BIOS development and testing.  Although it has a CPLD with a couple of banking options, including 32K/32K per RomWBW, I didn't design it to be RomWBW / Z84C15 compatible.  For example, it has an 8MB serial flash resident "disk" and a 25 MHz SPI controller in the CPLD for SD card access.

There's some VERY preliminary documentation with poor pictures that can be downloaded <here>.
Reply all
Reply to author
Forward
0 new messages