├── LICENSE ├── README.md ├── pcb ├── led.brd ├── led.lbr └── led.sch ├── photos ├── acrylic.png ├── arm.png ├── atx4vc.jpeg ├── atx4vc_config.jpeg ├── atxpsu.jpeg ├── back.jpeg ├── basiccircuit.png ├── block.jpeg ├── bnq.png ├── both.jpeg ├── case.png ├── caseback.jpeg ├── cases.png ├── comp.png ├── desolder.png ├── disc.jpeg ├── duck.jpeg ├── ducktype.gif ├── ebay.png ├── empty.jpeg ├── fantest.jpeg ├── fit.jpeg ├── floppytest.jpeg ├── header.gif ├── headeroff.png ├── hinge.jpeg ├── holes.jpeg ├── keys.jpeg ├── light.jpeg ├── mess2.jpg ├── mock.jpeg ├── mockrgb.jpeg ├── moneyshot.jpeg ├── mybeeb.jpeg ├── p3.png ├── pcard.jpeg ├── pcardtest.gif ├── pcmr.jpg ├── power.jpeg ├── rgbcasetest.jpeg ├── rgbcloseup.jpeg ├── rgbplate.png ├── rgbtable.jpeg ├── rgbtest.jpeg ├── roms.jpeg ├── shadow.jpeg ├── strange.jpeg ├── testdone.jpeg ├── testmount.jpeg ├── torch.jpeg ├── torchinside.png ├── tv.png ├── usb.jpeg └── userport.png ├── plates ├── atx_plate.svg ├── atx_plate_annotation.svg └── old │ ├── atx_bbc_micro.svg │ ├── atx_plate.svg │ ├── atx_plate_heavy_outline.svg │ ├── comparison no hole.svg │ └── comparison.svg ├── push.sh ├── reset.sh └── resources ├── BBC-circuit.pdf ├── The BBC Model B Microcomputer keyboard – How it works Spice World!.htm ├── The BBC Model B Microcomputer keyboard – How it works Spice World!_files ├── 5660684665_b5af5c664b.jpg ├── 674b90455bd327af226b4bee32f9de12.jpg ├── 674b90455bd327af226b4bee32f9de12_002.jpg ├── 811c789018b9115c2d7af6f7146bdd47.jpg ├── 811c789018b9115c2d7af6f7146bdd47_002.jpg ├── a3136fe3c78a8332f3837a4ffd040b6d.jpg ├── a3136fe3c78a8332f3837a4ffd040b6d_002.jpg ├── api.js └── css.css ├── bbc micro CircuitKeyboard.pdf ├── scrap.txt └── the_legacy_of_bbc_micro.pdf /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 dekuNukem 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pimp My Beeb 2 | 3 | How I built the **RGBeeb**, a BBC Micro inside a PC case. 4 | 5 | With RGB Backlight, USB inputs, ATX PSU, and working full-height floppy drives. 6 | 7 | ![Alt text](photos/moneyshot.jpeg) 8 | 9 | ![Alt text](photos/header.gif) 10 | 11 | [Click me for a short video!](https://www.youtube.com/watch?v=R9k7dgKrrnE) 12 | 13 | ## Highlights 14 | 15 | * Fully functional BBC Micro inside open-frame ATX PC case 16 | 17 | * Animated RGB Backlight 18 | 19 | * Working dual full-height 5.25" Floppy Drives 20 | 21 | * USB keyboard and gamepad [by USB4VC](https://github.com/dekuNukem/USB4VC/blob/master/README.md) 22 | 23 | * ATX power and RGB control [by ATX4VC](https://github.com/dekuNukem/ATX4VC) 24 | 25 | ## Questions or comments? 26 | 27 | Feel free to ask in my [Discord Chatroom](https://discord.gg/T9uuFudg7j), raise a [Github issue](https://github.com/dekuNukem/RGBeeb/issues), or email `dekunukem` `gmail.com`! 28 | 29 | ## BBC Micro: (A quick) Introduction 30 | 31 | ![Alt text](photos/mybeeb.jpeg) 32 | 33 | * In early 1980s, British Broadcasting Corporation(BBC) started the *Computer Literacy Project*, aiming to introduce people to computers and show what they can do. 34 | 35 | * **[Acorn Computer](https://en.wikipedia.org/wiki/Acorn_Computers)**'s design won out, and was developed into **[BBC Microcomputer](https://en.wikipedia.org/wiki/BBC_Micro)**, often nicknamed the "**Beeb**". 36 | 37 | * BBC Micro was featured heavily in [TV programmes](https://en.wikipedia.org/wiki/The_Computer_Programme), and became ubiquitous in education environments in UK. 38 | 39 | ![Alt text](photos/tv.png) 40 | 41 | * A common sight in school computer labs, it introduced a whole generation to computing, and inspired many bright minds. 42 | 43 | * Acorn went on to develop the **Acorn RISC Machine**, or [ARM](https://en.wikipedia.org/wiki/ARM_architecture_family) in short (Yes, *that* ARM), which are now found in virtually all smartphones, 32-bit microcontrollers, and even desktop PCs. 44 | 45 | ![Alt text](photos/arm.png) 46 | 47 | * It might be relatively unknown outside UK, but BBC Micro holds a significant place in computer history, as well as nostalgia in many peoples hearts! 48 | 49 | ### Specifications 50 | 51 | The original Beeb featured a 6502 microprocessor running at 2MHz, 32K of ROM, and either 16 or 32K of RAM. Its [BASIC interpreter](https://en.wikipedia.org/wiki/BBC_BASIC) was notably one of the fastest of the era, beating even the original IBM PC! 52 | 53 | It was also extremely expandable, with a plethora of ports including RS423, cassette, analogue, Econet, a digital user port, a 1MHz bus connection, and a "Tube" expansion slot. 54 | 55 | As a result, the Beeb was surprisingly long-lived, lasting more than 10 years. Numerous [upgrades and coprocessors](https://en.wikipedia.org/wiki/BBC_Micro_expansion_unit#ARM_Evaluation_System) were developed, including Z80, 32016, 80186, or even the very first ARM CPU! 56 | 57 | ## Oh no! You butchered a piece of computer history! 58 | 59 | First of all, all modifications here are **non-destructive and reversible**. So no Beebs were harmed during the creation of this project! 60 | 61 | What's more, modifying BBC Micros was not unheard of even back then! One great example is the original [Torch Communicator](https://en.wikipedia.org/wiki/Torch_Computers): 62 | 63 | ![Alt text](photos/torch.jpeg) 64 | 65 | A sleek business machine running CP/M with integrated display, keyboard, and disk drives. What's not to like? 66 | 67 | At this point, eagle-eyed viewers might notice the UI looks suspiciously familiar! The secret is revealed looking inside the case [thanks to this video](https://www.youtube.com/watch?v=pNdYtTvEAQs): 68 | 69 | ![Alt text](photos/torchinside.png) 70 | 71 | Yep, they literally nicked the motherboard from a BBC Micro and built their own computer around it! 72 | 73 | Despite the humble root, the Torch Communicator was a fairly advanced machine, having a Z80 co-processor running CP/M with networking capabilities, and it was the [first microcomputer](https://nosher.net/archives/computers/micro_decision_1982-05_002) to be fully approved by British Telecom to connect to the telephone and Telex network, in 1982! 74 | 75 | Torch Computer went on to develop their [own machines](https://en.wikipedia.org/wiki/Torch_Computers#Torch_Triple_X) later. But this is a great example of building upon an existing computer to expand its capabilities. 76 | 77 | ## The FrankenBeeb 78 | 79 | Of course, Beeb tinkering did not stop at commercial companies, plenty enterprising users had a go as well! 80 | 81 | Here are eBay photos of a machine I picked up locally (with authentic 70s carpet): 82 | 83 | ![Alt text](photos/ebay.png) 84 | 85 | It's a Beeb with ... a separate keyboard and boxy case?? 86 | 87 | The top half of the Beeb was replaced with a flat lid. And the keyboard is in its own metal enclosure with a ribbon cable (???). 88 | 89 | ![Alt text](photos/case.png) 90 | 91 | The new boxy case most likely allow the computer, disk drive and monitor to be stacked on top each other, saving valuable desk space. 92 | 93 | A look inside revealed big upgrades, fully kitted out with sidewise expansion card, floppy disc controller, battery backup, a standalone audio jack, and speech synthesis chips. And just look at all the ROMs! 94 | 95 | ![Alt text](photos/hinge.jpeg) 96 | 97 | The disc drive contains dual 80 track full height 5.25" floppy drives, with some notes on the door: 98 | 99 | ![Alt text](photos/disc.jpeg) 100 | 101 | There is no brand name or identifying information anywhere on the modifications, which led me to assume that the whole thing was home-made or at least from a kit. 102 | 103 | Either way, it looks very professionally done, and is a seriously impressive feat of how far people would go to personalize their computers to their exact liking. 104 | 105 | I removed the RIFA caps from the PSU, took lots of photos for documentation, cleaned up the PCB, and tested it out. It actually works! Look at the huge list of ROMs: 106 | 107 | ![Alt text](photos/roms.jpeg) 108 | 109 | The disc drive works too! I decided not to risk the original power supply, and used a modern ATX PSU to power them. The FrankenBeeb read the discs just fine: 110 | 111 | ![Alt text](photos/mess2.jpg) 112 | 113 | As you can see, it's quite a mess indeed. It was at this point that an idea occurred to me: 114 | 115 | ***Wouldn't it be nice if all those can go into a single ATX PC case?*** 116 | 117 | This way, 118 | 119 | * Everything's in one place, cleaner look. 120 | 121 | * Interesting juxtaposition between 40-year-old hardware and modern case. 122 | 123 | * Very much in the spirit of wacky modding of the era. 124 | 125 | * Honestly, why not? 126 | 127 | ## A Happy Coincidence? 128 | 129 | Obviously, the most important part is mounting the motherboard. So I did some measurements. 130 | 131 | Imagine my surprise when it turns out the BBC micro motherboard is **almost identical in size** as full-size ATX! 132 | 133 | ![Alt text](photos/comp.png) 134 | 135 | Either it's one hell of a coincidence, or Acorn was so ahead of its time that it predicted ATX form factor by **14 years**! 136 | 137 | Still in disbelief, I placed the BBC motherboard inside a ATX case, lo and behold: 138 | 139 | ![Alt text](photos/mock.jpeg) 140 | 141 | It fits almost perfectly! The RGB, cassette, serial, composite and RF ports line up with the I/O window, and there are space for all the connectors in the back! This is almost too good to be true. 142 | 143 | Although in this particular case(!!), the PCI bracket is blocking the analogue and econet port, and the long 5.25" drive doesn't go all the way in. 144 | 145 | Which brings us neatly to the next part: What case *should* I use? 146 | 147 | ## Case Selection 148 | 149 | Initially, I wanted one of those absolutely obnoxious gaming cases kitted out with RGB straight out of [r/pcmasterrace](https://old.reddit.com/r/pcmasterrace/), just for maximum hilarity. Something [like this:](https://old.reddit.com/r/gamingpc/comments/jb8w25/just_rgb_everything/ 150 | ) 151 | 152 | ![Alt text](photos/pcmr.jpg) 153 | 154 | So I went to look for a case that's: 155 | 156 | * Available new 157 | 158 | * Full size ATX or larger 159 | 160 | * Gaming aesthetics (RGB, Glass panel, etc) 161 | 162 | * Has 5.25" bays for two full-height disk drives 163 | 164 | It didn't seem like a tall order, but after sifting through dozens of pages on amazon and newegg, I came to the devastating conclusion such case ***simply does not exist anymore***. 165 | 166 | ![Alt text](photos/cases.png) 167 | 168 | As you can see, apparently 5.25" bays just isn't a thing anymore! Instead there is a blank space where it used to be, to the horror of *dozens* of retro modding enthusiasts. 169 | 170 | (yes I know there's a case with 2 bays right in that photo, but I need 4 for two drives) 171 | 172 | ----- 173 | 174 | Just when I thought modern cases were a lost cause, I stumbled upon something I completely missed: **open-frame cases**! 175 | 176 | Some of them are just scaffolding for mining rigs, but one in particular really caught my eye, the [Thermaltake Core P3 TG Snow](https://uk.thermaltake.com/core-p3-snow-edition.html): 177 | 178 | ![Alt text](photos/p3.png) 179 | 180 | * I really like its striking yet minimalist design, juxtapose neatly with the 1980s technology. It's also a nice break from today's rather bland "gaming black" aesthetics. 181 | 182 | * It puts the motherboard on display front-and-center, instead of having to look through a window into a box in conventional cases. Less claustrophobic. 183 | 184 | * There are lots of space to work with, and everything is modular. PCI bracket blocking the ports? Simply don't install it! 185 | 186 | * And most importantly, the slot cutouts near the front edge are perfect for mounting 5.25" inch drives! 187 | 188 | The clean and minimalist design also changed my mind about the overall aesthetics. Instead of full-on obnoxious RGB blast, now I want something more subtle and tasteful. It's still early, so I'll see what I can do. 189 | 190 | It's not cheap, but I really liked it, so I ordered one. 191 | 192 | ## ATX Adapter Plate 193 | 194 | I looked up ATX standard, and measured the mounting holes on the BBC motherboard. A simple adapter plate was designed in Inkscape and laser-cut in acrylic. 195 | 196 | ![Alt text](photos/acrylic.png) 197 | 198 | The case soon arrived, I had the main chassis laid out and tried out the adapter plate: 199 | 200 | ![Alt text](photos/testmount.jpeg) 201 | 202 | It works! And already looks pretty good! I really like how modular this case is. 203 | 204 | I then installed the ATX power supply. Annoyingly its RGB fan points downwards, so it is practically invisible with the case standing up. But at least it's white! 205 | 206 | ![Alt text](photos/atxpsu.jpeg) 207 | 208 | ## Power to the Beeb 209 | 210 | BBC Micro motherboard requires two voltages: +5V and -5V. The former powers all the chips, and the latter only for sound and serial communication. 211 | 212 | Fortunately, 5V is readily available on a ATX PSU, and -5V can be derived from -12V with a simple 7905 linear regulator. The PSU itself can be controlled by shorting the green PS_ON signal to ground. 213 | 214 | The most basic circuit would be something like this: 215 | 216 | ![Alt text](photos/basiccircuit.png) 217 | 218 | One slight issue is that I want to use the power button on the PC case, which is momentary. That means I can't just hook it up to the PS_ON pin, as it will only turn on while the button is held down. 219 | 220 | I thought about using a simple flip-flop to toggle the PWR_ON signal with button presses, and it quickly got out of hand. How about putting it on a PCB? What about button debouncing? I can put the 7905 on there too! Might as well break out ALL the voltages! A fan header would be useful! What about RGB? 221 | 222 | ## Enter ATX4VC 223 | 224 | In the end, I decided to go all out and design a controller specifically for using **ATX power supply on retro computers**, amply named **[ATX4VC](https://github.com/dekuNukem/ATX4VC/blob/master/README.md)**: 225 | 226 | ![Alt text](photos/atx4vc.jpeg) 227 | 228 | It combines many convenient features in one place: 229 | 230 | * All common voltages: +12V, +5V, +3.3V, -5V, -12V. Fused. 231 | 232 | * Power button and power LED headers 233 | 234 | * Two 4-pin PWM fan headers 235 | 236 | * Two Addressable RGB (ARGB) headers 237 | 238 | * USB-C power output 239 | 240 | [Click me for learn more / buy one / user manual](https://github.com/dekuNukem/ATX4VC/blob/master/README.md) 241 | 242 | Altogether, it's an all-in-one package for replacing old unreliable (and sometime explosive!) power supplies with modern ATX PSUs, with provision for cooling and aesthetic upgrades. 243 | 244 | -------- 245 | 246 | It also fits neatly in a 2.5 inch drive bay, I hooked up the power button and LED headers, as well as a fan, and pressed the button. 247 | 248 | ![Alt text](photos/fantest.jpeg) 249 | 250 | It works! PSU turns on, fan spins and lights up, and voltage rails are live. 251 | 252 | We still need to connect it to the motherboard though, which will come later. 253 | 254 | ## Did anyone say RGB? 255 | 256 | I do want to involve some RGB in this build, usually they come from RGB fans, RAM sticks, or light strips, none of which are really suitable here: 257 | 258 | * Beeb doesn't need fan cooling, and it's a bit silly to add them just for looks. 259 | 260 | * Same with RGB RAM sticks 261 | 262 | * I can try light strips, but they tend to be a bit tacky, and hard to conceal in open-frame cases 263 | 264 | So all in all, the RGB situation wasn't looking too hot. However, I did find something much better! 265 | 266 | ---- 267 | 268 | Ground planes and large copper pours really didn't become popular until late 80s, which means the earlier circuit boards are basically translucent. If you shine a light from behind, it will illuminate the delicate and intricate design of all the traces on the PCB. 269 | 270 | And here, I want to expand the idea by **adding RGB backlight behind the entire motherboard**, it would require a lot of LEDs, but if it looks good, it's worth the trouble in my book. 271 | 272 | For mockup, I stuck some RGB light strips on the acrylic plate, and hastily wired them together. 273 | 274 | ![Alt text](photos/mockrgb.jpeg) 275 | 276 | Seeing it for the first time, I was in awe. 277 | 278 | ![Alt text](photos/rgbtest.jpeg) 279 | 280 | What a sight to behold! And this is just a solid white, should be even more striking with animations and more colours. 281 | 282 | I could have just used that, but it was rather messy, so I designed a whole new custom PCB with evenly distributed RGB LEDs, that also function as the ATX adapter plate. I also left a hole in the middle so cables can exit underneath and not block the light. 283 | 284 | I used **USB-C** to carry the ARGB signal. Often used for charging, it is already designed to carry decent amount of current. A single cable plugs directly into ATX4VC, much cleaner this way. 285 | 286 | ![Alt text](photos/rgbplate.png) 287 | 288 | This is the biggest PCB I have ever designed, it is not very complicated, but did take me a while to solder all 168 LEDs by hand. Fortunately, everything worked on first try, and it gets blindingly bright when turned all the way up! 289 | 290 | ![Alt text](photos/rgbtable.jpeg) 291 | 292 | How does it look like with the motherboard? Well: 293 | 294 | ![Alt text](photos/rgbcasetest.jpeg) 295 | 296 | ![Alt text](photos/rgbcloseup.jpeg) 297 | 298 | Now **that's** what you call R, G, and B! 299 | 300 | ## USB on BBC 301 | 302 | With power and RGB sorted, what's the next must-have item on a modern PC? 303 | 304 | Why yes, **USB keyboard, mouse, and gamepads** of course! With such a modern case, it's only natural that I use it with modern inputs! 305 | 306 | As if by total coincidence, I happen to have a project for *exactly that*! What are the odds? 307 | 308 | ![Alt text](photos/usb.jpeg) 309 | 310 | [USB4VC](https://github.com/dekuNukem/USB4VC/blob/master/README.md) let you **use USB keyboard, mouse, and gamepads on retro computers**, as an alternative to rare, expensive, and unreliable proprietary vintage peripherals. 311 | 312 | With a modular design, different computers are supported by swapping out **Protocol Cards**. 313 | 314 | Naturally, I made one for the Beeb, with connectors for keyboard, joystick, and AMX user port mouse. 315 | 316 | ![Alt text](photos/pcard.jpeg) 317 | 318 | The prototype has a few bodge wires, but they are fixed in the latest revision. And it works! 319 | 320 | ![Alt text](photos/pcardtest.gif) 321 | 322 | Pretty fun using a wireless keyboard and Xbox controller on the Beeb! 323 | 324 | And if for some reason you literally can't even be bothered to *type*, you can always let [duckyPad](https://github.com/dekuNukem/duckyPad/blob/master/README.md) do it! 325 | 326 | ![Alt text](photos/ducktype.gif) 327 | 328 | duckyPad is a hot-swap mechanical macropad that helps speed up workflow by automating actions using duckyScript. 329 | 330 | ![Alt text](photos/duck.jpeg) 331 | 332 | Read more about [USB4VC](https://github.com/dekuNukem/USB4VC/blob/master/README.md) and [duckyPad](https://github.com/dekuNukem/duckyPad/blob/master/README.md) if you're interested! 333 | 334 | ------ 335 | 336 | Phew! Two plugs in a row! Really pushing it there! 😅 337 | 338 | ## Here comes the twist 339 | 340 | With a flurry of modern upgrades, time to balance it out with some good ol' 5.25" drives! 341 | 342 | I wanted to have them from the start, partly for contrast with all the new stuff, and partly because I actually have a huge pile of floppies that I want to explore. 343 | 344 | I picked two drives, a 48TPI Tandon TM-100-2A from an OG IBM PC, and a 96TPI Shugart SA460 from the FrankenBeeb. 345 | 346 | With both 40 and 80 tracks, it should cover most of the floppies from the era. 347 | 348 | ![Alt text](photos/both.jpeg) 349 | 350 | After some trail and error, I found that the cable needs to have **no twists**, and drive ID set manually with jumper. 351 | 352 | I had to manually de-twist my cable by cutting and re-soldering the wires in order, which was a bit annoying, but with that and manually setting the drive ID 0 and 1, both worked! 353 | 354 | ![Alt text](photos/floppytest.jpeg) 355 | 356 | With Intel 8271 disk controller and Acorn DFS, two sides of a floppy appear as two separate drives. So the Shugart is drive 0 and 2, and Tandon is drive 1 and 3. This disk seem to have Elite and some save data on it, very nice! 357 | 358 | With the setup working, I now have to figure out how to mount them on the case. 359 | 360 | The right side of the case has slots for mounting water cooling radiators, I went to local hardware store and bought some metal brackets that's roughly the size, and cut them to length and drilled holes in them. 361 | 362 | ![Alt text](photos/bnq.png) 363 | 364 | They are fastened into the slot and hold the drives from the bottom. I really wanted something more substantial, like a one-piece metal bracket, but custom fabrication would have been a lot more expensive. 365 | 366 | ![Alt text](photos/empty.jpeg) 367 | 368 | Anyway, I test-mounted the drives, and they look pretty good! The face plates line up with the front of the case. 369 | 370 | ![Alt text](photos/fit.jpeg) 371 | 372 | Everything seemed to be going suspiciously well, but of course, things soon went back to normal when I tried to install the motherboard: 373 | 374 | ![Alt text](photos/block.jpeg) 375 | 376 | The connectors in the back are too long! They are touching the floppy cable, preventing the motherboard from being installed. 377 | 378 | Well, it's about time that we do something to it... 379 | 380 | ## Motherboard modifications 381 | 382 | This is the part where I put the motherboard under the knife (well, soldering iron). As mentioned before, all modifications are purely for aesthetic reasons, and are totally **optional and reversible**. 383 | 384 | First, I desoldered the Tube, 1MHz, and user port header: 385 | 386 | ![Alt text](photos/headeroff.png) 387 | 388 | That was NOT easy, experience and extra care is needed to not lift any pads or damage the PCB. 389 | 390 | Next, out comes the keyboard connector and all 7 power connector blades: 391 | 392 | ![Alt text](photos/desolder.png) 393 | 394 | I then soldered a straight header on the user port, so I can use the excellent MMFS SD card adapter. 395 | 396 | (I think I put it in backwards in this photo, make sure to double check!) 397 | 398 | ![Alt text](photos/userport.png) 399 | 400 | I then ran power cables to connect all the rails together, 5V, GND, and -5V. 401 | 402 | If making your own, make sure the cable is thick enough to carry at least 2A of current. Double check for shorts between 5V and GND, and the exposed conductor is not touching nearby traces and components. 403 | 404 | I also soldered the keyboard header on the back side. 405 | 406 | ![Alt text](photos/power.jpeg) 407 | 408 | ## Putting it all together 409 | 410 | Time to finally put everything together! 411 | 412 | I fed the floppy and power cable through the hole in the adapter plate, and mounted the motherboard. 413 | 414 | ![Alt text](photos/back.jpeg) 415 | 416 | In the back, I: 417 | 418 | * Cable tied the USB4VC in place, and connected the ribbon cable. 419 | 420 | * Installed two 9-Pin USB header to USB-A adapters, so USB devices can be plugged in on the front panel. 421 | 422 | * Cable tied the speaker near the front of the case. 423 | 424 | * Powered USB4VC with a USB-C cable. 425 | 426 | ![Alt text](photos/caseback.jpeg) 427 | 428 | I then connected up ATX4VC: 429 | 430 | ![Alt text](photos/atx4vc_config.jpeg) 431 | 432 | * Power rails on top. 433 | 434 | * Two USB-C power output on left, one for USB4VC, one for RGB backlight plate. 435 | 436 | * Case power button and power LED on right. Case reset button used to change RGB mode. 437 | 438 | * ATX motherboard connector on the bottom. 439 | 440 | It controls power, lighting and cooling of the whole system. I really like how clean and integrated this is, much better than a nest of flying wires and components. 441 | 442 | I then installed the floppy drives, and gave it a test: 443 | 444 | ![Alt text](photos/testdone.jpeg) 445 | 446 | It still works! This motherboard is an issue 4, I picked it because most chips are socketed (including all RAMs), making it very easy to test and troubleshoot. The solder mask also seems thinner as well, allowing more light to pass through. 447 | 448 | I decked it out with optional upgrades for the big day, with disk controller, speech synthesis, ADC, and econet. Annoyingly the econet chip itself is missing, and I'll need to get one. 449 | 450 | Anyway, time to install the tempered glass for the money shot: 451 | 452 | ![Alt text](photos/light.jpeg) 453 | 454 | ![Alt text](photos/moneyshot.jpeg) 455 | 456 | ## Conclusion 457 | 458 | It's amazing how quickly a simple idea can get out of hand, I started out just wanting to put a BBC Micro motherboard into a PC case, and in the end I developed a new protocol card for [USB4VC](https://github.com/dekuNukem/USB4VC/blob/master/README.md), an [ATX power controller](https://github.com/dekuNukem/ATX4VC/blob/master/README.md) just for retro computers, and a custom RGB backlight plate with 168 LEDs. Go big or go home, right? 😅 459 | 460 | None of this is totally necessary, but just like the Torch Communicator and the FrankenBeeb, the whole ordeal of dragging it kicking and screaming into the RGB age made it feel more special, and I guess this is what modification is all about. 461 | 462 | Of course, I omitted a lot of less glamorous stuff such as writing and debugging firmwares, waiting for parts, many hardware revisions (ATX4VC had 6!), and fixing up old motherboards themselves. Took me about 3 months from start to finish. 463 | 464 | Still, I learned a lot about the history and clever design of this machine, and made something that hopefully benefits the community at large. With everything put together, it looks every bit as good as i imagined from the beginning. 465 | 466 | As for what's next, I might add a Torch Z80 card for CP/M capability, but to be honest, I spent so much time building this thing, I haven't had much time actually using it! Guess I'm going to fix that. 467 | 468 | ## Questions and answers 469 | 470 | ### I want to build one! 471 | 472 | Sure! As usual the project is open-source, and all you really need is the ATX adapter plate, which [can be found here](https://github.com/dekuNukem/RGBeeb/tree/master/plates). 473 | 474 | Just give the files to a lase-cut acrylic manufacturer. The rest is up to you! Hopefully reading this article gave you some ideas. 475 | 476 | ### Can I buy one? 477 | 478 | (Mostly) No. 479 | 480 | This is a very custom build with parts that can be unreliable and difficult to source, so I'm not inclined to turn it into a business. 481 | 482 | I'm not completely closed to the idea of making a few one-offs though, but it would need to be worth my while one way or the other. 483 | 484 | [Get in touch](#get-in-touch) if you want to have a discussion or have any questions. 485 | 486 | ### Is BBC Micro Protocol Card available? 487 | 488 | Might be, but not at the moment. 489 | 490 | BBC Micro already has built-in keyboard, so I don't see much demand for it. Also the firmware needs a little more polish to meet my public release standards. 491 | 492 | So again, [let me know](#get-in-touch) if you want it, I'll update in the Discord channel. 493 | 494 | ## Other Fun Stuff 495 | 496 | I've done a few other fun projects over the years, feel free to check them out: 497 | 498 | [duckyPad: Do-It-All Mechanical Macropad](https://github.com/dekuNukem/duckypad/blob/master/README.md): A 15-key mechanical macropad with hot-swap, RGB, and sophisticated multi-line scripting. 499 | 500 | [ATX4VC](https://github.com/dekuNukem/ATX4VC/blob/master/README.md): Replace vintage computer power supplies with ATX PSU! 501 | 502 | [USB4VC](https://github.com/dekuNukem/USB4VC/blob/master/README.md): USB Inputs on Retro Computers 503 | 504 | [Pimp My Microwave](https://github.com/dekuNukem/pimp_my_microwave/blob/master/README.md): Fixing my microwave by grafting an RGB mechanical keyboard 505 | 506 | [Daytripper: Hide-my-windows Laser Tripwire](https://github.com/dekuNukem/daytripper/blob/master/README.md): Saves the day while you slack off! 507 | 508 | [Bob Rewinder](https://github.com/dekuNukem/bob_cassette_rewinder/blob/master/README.md): Hacking Detergent DRM for 98% Cost Saving 509 | 510 | [From Aduino to STM32](https://github.com/dekuNukem/STM32_tutorials/blob/master/README.md): A detailed tutorial to get you started with STM32 development. 511 | 512 | [List of all my repos](https://github.com/dekuNukem?tab=repositories) 513 | 514 | ## Get in touch 515 | 516 | Questions or comments? Feel free to ask in official [ATX4VC Chatroom](https://discord.gg/T9uuFudg7j), raise a [Github issue](https://github.com/dekuNukem/RGBeeb/issues), or email `dekunukem` `gmail.com`! 517 | 518 | 519 | ## Extra Trivia 520 | 521 | Congrats for reaching the bottom! If you stuck around this long, I can only post a few more interesting stuff! 522 | 523 | Remember the FrankenBeeb? I actually got *another* BBC Micro from the same person that's also customized. Take a look: 524 | 525 | ![Alt text](photos/strange.jpeg) 526 | 527 | The owl logo from drilled holes! It looked very professionally done. Spacing is even, drill is clean, and they even deburred every single hole! 528 | 529 | ![Alt text](photos/holes.jpeg) 530 | 531 | I have no idea if this was a one-off DIY job or some kind of send-in modification that people could do. Let me know what you think! 532 | 533 | Also, notice the keyboard, some keys are actually from a Torch Communicator! 534 | 535 | ![Alt text](photos/keys.jpeg) 536 | 537 | The blue keys, and the tiny "exact space" key, which I have no idea what it's for. Is regular space bar not exact enough? 538 | 539 | -------- 540 | 541 | Eagle eyed viewers might also notice quite a few different motherboards in the photos. There's a Issue 3, a Issue 7, and two Issue 4s. 542 | 543 | I must have like half a dozen Beeb motherboards, and just kept swapping part around to keep them going! I used the Issue 4 board in the end because it has all the optional upgrades. 544 | -------------------------------------------------------------------------------- /pcb/led.lbr: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | Generated from <b>led.sch</b><p> 192 | by exp-lbrs.ulp 193 | 194 | 195 | 196 | 197 | 198 | 199 | >NAME 200 | >VALUE 201 | >NAME 202 | >VALUE 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | o 221 | + 222 | i 223 | - 224 | 225 | 226 | 227 | 228 | 229 | 230 | >NAME 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | <b>PIN HEADER</b> 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | >NAME 337 | >VALUE 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | >NAME 354 | >VALUE 355 | >NAME 356 | >VALUE 357 | 358 | 359 | 360 | BBC cutout 361 | 362 | 363 | 364 | UNC 6-32 hole 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | WS2812B 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | >NAME 435 | >VALUE 436 | 437 | 438 | 439 | 440 | >VALUE 441 | 442 | 443 | 444 | 445 | 446 | >VALUE 447 | 448 | 449 | 450 | 451 | <b>Resistor</b> 452 | Basic schematic elements and footprints for 0603, 1206, and PTH resistors. 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | <b>PIN HEADER</b> 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | <b>SUPPLY SYMBOL</b> 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | <b>SUPPLY SYMBOL</b> 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | -------------------------------------------------------------------------------- /photos/acrylic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/acrylic.png -------------------------------------------------------------------------------- /photos/arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/arm.png -------------------------------------------------------------------------------- /photos/atx4vc.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/atx4vc.jpeg -------------------------------------------------------------------------------- /photos/atx4vc_config.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/atx4vc_config.jpeg -------------------------------------------------------------------------------- /photos/atxpsu.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/atxpsu.jpeg -------------------------------------------------------------------------------- /photos/back.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/back.jpeg -------------------------------------------------------------------------------- /photos/basiccircuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/basiccircuit.png -------------------------------------------------------------------------------- /photos/block.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/block.jpeg -------------------------------------------------------------------------------- /photos/bnq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/bnq.png -------------------------------------------------------------------------------- /photos/both.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/both.jpeg -------------------------------------------------------------------------------- /photos/case.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/case.png -------------------------------------------------------------------------------- /photos/caseback.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/caseback.jpeg -------------------------------------------------------------------------------- /photos/cases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/cases.png -------------------------------------------------------------------------------- /photos/comp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/comp.png -------------------------------------------------------------------------------- /photos/desolder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/desolder.png -------------------------------------------------------------------------------- /photos/disc.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/disc.jpeg -------------------------------------------------------------------------------- /photos/duck.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/duck.jpeg -------------------------------------------------------------------------------- /photos/ducktype.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/ducktype.gif -------------------------------------------------------------------------------- /photos/ebay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/ebay.png -------------------------------------------------------------------------------- /photos/empty.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/empty.jpeg -------------------------------------------------------------------------------- /photos/fantest.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/fantest.jpeg -------------------------------------------------------------------------------- /photos/fit.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/fit.jpeg -------------------------------------------------------------------------------- /photos/floppytest.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/floppytest.jpeg -------------------------------------------------------------------------------- /photos/header.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/header.gif -------------------------------------------------------------------------------- /photos/headeroff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/headeroff.png -------------------------------------------------------------------------------- /photos/hinge.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/hinge.jpeg -------------------------------------------------------------------------------- /photos/holes.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/holes.jpeg -------------------------------------------------------------------------------- /photos/keys.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/keys.jpeg -------------------------------------------------------------------------------- /photos/light.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/light.jpeg -------------------------------------------------------------------------------- /photos/mess2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/mess2.jpg -------------------------------------------------------------------------------- /photos/mock.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/mock.jpeg -------------------------------------------------------------------------------- /photos/mockrgb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/mockrgb.jpeg -------------------------------------------------------------------------------- /photos/moneyshot.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/moneyshot.jpeg -------------------------------------------------------------------------------- /photos/mybeeb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/mybeeb.jpeg -------------------------------------------------------------------------------- /photos/p3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/p3.png -------------------------------------------------------------------------------- /photos/pcard.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/pcard.jpeg -------------------------------------------------------------------------------- /photos/pcardtest.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/pcardtest.gif -------------------------------------------------------------------------------- /photos/pcmr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/pcmr.jpg -------------------------------------------------------------------------------- /photos/power.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/power.jpeg -------------------------------------------------------------------------------- /photos/rgbcasetest.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/rgbcasetest.jpeg -------------------------------------------------------------------------------- /photos/rgbcloseup.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/rgbcloseup.jpeg -------------------------------------------------------------------------------- /photos/rgbplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/rgbplate.png -------------------------------------------------------------------------------- /photos/rgbtable.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/rgbtable.jpeg -------------------------------------------------------------------------------- /photos/rgbtest.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/rgbtest.jpeg -------------------------------------------------------------------------------- /photos/roms.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/roms.jpeg -------------------------------------------------------------------------------- /photos/shadow.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/shadow.jpeg -------------------------------------------------------------------------------- /photos/strange.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/strange.jpeg -------------------------------------------------------------------------------- /photos/testdone.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/testdone.jpeg -------------------------------------------------------------------------------- /photos/testmount.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/testmount.jpeg -------------------------------------------------------------------------------- /photos/torch.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/torch.jpeg -------------------------------------------------------------------------------- /photos/torchinside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/torchinside.png -------------------------------------------------------------------------------- /photos/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/tv.png -------------------------------------------------------------------------------- /photos/usb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/usb.jpeg -------------------------------------------------------------------------------- /photos/userport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/photos/userport.png -------------------------------------------------------------------------------- /plates/atx_plate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 24 | 29 | 30 | 33 | 38 | 39 | 42 | 47 | 48 | 51 | 56 | 57 | 60 | 65 | 66 | 69 | 74 | 75 | 78 | 83 | 84 | 87 | 92 | 93 | 96 | 101 | 102 | 105 | 110 | 111 | 114 | 119 | 120 | 123 | 128 | 129 | 132 | 137 | 138 | 141 | 146 | 147 | 150 | 155 | 156 | 159 | 164 | 165 | 168 | 173 | 174 | 177 | 182 | 183 | 186 | 191 | 192 | 193 | 218 | 220 | 221 | 223 | image/svg+xml 224 | 226 | 227 | 228 | 229 | 230 | 237 | 243 | 249 | 255 | 261 | 267 | 273 | 279 | 285 | 291 | 297 | 303 | 312 | 321 | 330 | 339 | 348 | 357 | 358 | 395 | 396 | -------------------------------------------------------------------------------- /plates/atx_plate_annotation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 29 | 34 | 35 | 44 | 49 | 50 | 59 | 64 | 65 | 73 | 78 | 79 | 88 | 93 | 94 | 103 | 108 | 109 | 117 | 122 | 123 | 124 | 145 | 147 | 148 | 150 | image/svg+xml 151 | 153 | 154 | 155 | 156 | 157 | 163 | slot cutout 4.5mm x 12mm 179 | 182 | 188 | 194 | 200 | 206 | 212 | 218 | 224 | 230 | 236 | 242 | 251 | 260 | 269 | 278 | 287 | 296 | 297 | hole diameter 4mm 308 | 309 | 315 | 320 | 325 | 330 | 244mm 341 | 346 | 351 | 356 | 361 | 305mm 372 | 377 | 382 | 388 | 394 | 401 | 408 | 409 | 410 | -------------------------------------------------------------------------------- /plates/old/atx_bbc_micro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 130 | 135 | 138 | 144 | 150 | 156 | 162 | 168 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /plates/old/atx_plate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 60 | 66 | 72 | 78 | 84 | 90 | 96 | 102 | 108 | 114 | 120 | 129 | 130 | 136 | 142 | 148 | 154 | 160 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /plates/old/atx_plate_heavy_outline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 59 | 65 | 71 | 77 | 83 | 89 | 95 | 101 | 107 | 113 | 119 | 128 | 129 | 135 | 141 | 147 | 153 | 159 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /plates/old/comparison no hole.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 62 | 72 | 73 | 79 | 89 | ATX: 305 x 244mm 105 | BBC: 310 x 250mm 116 | 117 | 118 | -------------------------------------------------------------------------------- /plates/old/comparison.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 62 | 68 | 75 | 82 | 89 | 96 | 103 | 110 | 117 | 124 | 131 | 138 | 145 | 152 | 159 | 166 | 173 | 183 | ATX 199 | BBC 210 | 211 | 212 | -------------------------------------------------------------------------------- /push.sh: -------------------------------------------------------------------------------- 1 | if [[ $# -eq 0 ]] ; then 2 | echo 'error: please enter a commit comment' 3 | exit 1 4 | fi 5 | 6 | find . -type f -name "*.b#*" -exec rm -f {} \; 7 | find . -type f -name "*.s#*" -exec rm -f {} \; 8 | find . -type f -name "*.l#*" -exec rm -f {} \; 9 | find . -type f -name "*.csv#*" -exec rm -f {} \; 10 | find . -type f -name "*.DS_Store*" -exec rm -f {} \; 11 | find . -name "__pycache__" -exec rm -rf {} \; 12 | 13 | git add --all 14 | git commit -m "$@" 15 | git push origin master 16 | -------------------------------------------------------------------------------- /reset.sh: -------------------------------------------------------------------------------- 1 | git reset --hard HEAD; git clean -f -d 2 | -------------------------------------------------------------------------------- /resources/BBC-circuit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/BBC-circuit.pdf -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!.htm: -------------------------------------------------------------------------------- 1 | 2 |
This is Google's cache of http://www.cyberspice.org.uk/blog/2011/04/27/the-bbc-model-b-microcomputer-keyboard-how-it-works/. It is a snapshot of the page as it appeared on 26 Aug 2022 10:31:41 GMT. The current page could have changed in the meantime. Learn more.
Full versionText-only versionView source
Tip: To quickly find your search term on this page, press Ctrl+F or ⌘-F (Mac) and use the find bar.
3 | 4 | 5 | 6 | The BBC Model B Microcomputer keyboard – How it works | Spice World! 7 | 8 | 9 | 10 | 14 | 28 | 29 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 54 | 57 | 58 | 59 | 61 | 62 | 63 | 64 | 65 | 66 | 67 |
68 | 71 |
72 | 73 |
74 | 75 | 76 |
77 | 78 | 85 | 86 |
87 |
88 |
89 | 90 | 91 |
92 |
93 |
94 | 95 |
96 | 97 | 98 | 99 | 100 |
101 | 102 | 103 | 213 | 214 |
215 | 216 | 217 | 225 |
226 | 227 | 228 | 229 |

230 | 3 responses

231 | 232 |
    233 |
  1. 234 |
    235 |
    236 |
    237 |
    238 |
    CustardCat
    239 |
    April 27, 2011
    240 |
    241 |
    242 | 243 |
    244 |

    Very nice description.

    245 |

    What are you up to? 😉

    246 |

    I’ve got an idea for a similar sounding project using a Beagleboard 247 | running RiscOS. Saw it at the Acorn show at Wakefield last year. Now the 248 | Beagle is available again (it was in the Wayback machine at MakerFaire) 249 | I might just pick up this project again.

    250 |

    B

    251 |

    Reply

    252 |
  2. 253 |
  3. 254 |
    255 |
    256 |
    257 |
    258 |
    Chad
    259 |
    May 2, 2011
    260 |
    261 |
    262 | 263 |
    264 |

    Today I was looking at the BBC keyboard I have with a view of 265 | adapting it for use on the ZX81. I came across this page and wondered if 266 | you’d seen it?
    267 | http://denki.world3.net/beebkb.html

    268 |

    Reply

    269 |
  4. 270 |
  5. 271 |
    272 |
    273 |
    274 |
    275 |
    Paul Whitby
    276 |
    December 12, 2012
    277 |
    278 |
    279 | 280 |
    281 |

    Hi – keen to know if you got this working: As it happens I had 282 | arrived at the same conclusion and bought an Arduino Leonardo for the 283 | job (as it has the built-in USB keyboard mode support). I am happy to 284 | share my progress as I get going on this.

    285 |

    regards
    286 | Paul

    287 |

    Reply

    288 |
  6. 289 | 290 |
291 | 292 | 293 | 294 | 295 | 296 |
297 | 298 |
299 |

Leave a Reply

300 |

Your email address will not be published. Required fields are marked *

301 | 302 |

303 |

304 | 305 |

 
306 | 307 | 308 | 309 |

310 |
311 | 312 |
313 | 314 |
315 | 316 | 317 | 318 | 319 | 365 | 366 | Back to top 367 | 368 | 369 |
370 | 371 | 372 |
373 |
374 | mobile 375 | desktop 376 |
377 |
378 | 379 | 380 |
381 |
382 | 383 | 384 |
-------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/5660684665_b5af5c664b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/5660684665_b5af5c664b.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/674b90455bd327af226b4bee32f9de12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/674b90455bd327af226b4bee32f9de12.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/674b90455bd327af226b4bee32f9de12_002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/674b90455bd327af226b4bee32f9de12_002.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/811c789018b9115c2d7af6f7146bdd47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/811c789018b9115c2d7af6f7146bdd47.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/811c789018b9115c2d7af6f7146bdd47_002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/811c789018b9115c2d7af6f7146bdd47_002.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/a3136fe3c78a8332f3837a4ffd040b6d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/a3136fe3c78a8332f3837a4ffd040b6d.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/a3136fe3c78a8332f3837a4ffd040b6d_002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/a3136fe3c78a8332f3837a4ffd040b6d_002.jpg -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/api.js: -------------------------------------------------------------------------------- 1 | /* PLEASE DO NOT COPY AND PASTE THIS CODE. */(function(){var w=window,C='___grecaptcha_cfg',cfg=w[C]=w[C]||{},N='grecaptcha';var gr=w[N]=w[N]||{};gr.ready=gr.ready||function(f){(cfg['fns']=cfg['fns']||[]).push(f);};w['__recaptcha_api']='https://www.google.com/recaptcha/api2/';(cfg['render']=cfg['render']||[]).push('onload');w['__google_recaptcha_client']=true;var d=document,po=d.createElement('script');po.type='text/javascript';po.async=true;po.src='https://www.gstatic.com/recaptcha/releases/g8G8cw32bNQPGUVoDvt680GA/recaptcha__en.js';po.crossOrigin='anonymous';po.integrity='sha384-P8pCcHmv6YuQzFS4CHCBH75RXE60mJL5a4xXH5SOKJXf73JeLMNzQcVajnZH59MQ';var e=d.querySelector('script[nonce]'),n=e&&(e['nonce']||e.getAttribute('nonce'));if(n){po.setAttribute('nonce',n);}var s=d.getElementsByTagName('script')[0];s.parentNode.insertBefore(po, s);})(); -------------------------------------------------------------------------------- /resources/The BBC Model B Microcomputer keyboard – How it works Spice World!_files/css.css: -------------------------------------------------------------------------------- 1 | /* cyrillic-ext */ 2 | @font-face { 3 | font-family: 'Open Sans'; 4 | font-style: italic; 5 | font-weight: 400; 6 | font-stretch: 100%; 7 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2'); 8 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 9 | } 10 | /* cyrillic */ 11 | @font-face { 12 | font-family: 'Open Sans'; 13 | font-style: italic; 14 | font-weight: 400; 15 | font-stretch: 100%; 16 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2'); 17 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 18 | } 19 | /* greek-ext */ 20 | @font-face { 21 | font-family: 'Open Sans'; 22 | font-style: italic; 23 | font-weight: 400; 24 | font-stretch: 100%; 25 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2'); 26 | unicode-range: U+1F00-1FFF; 27 | } 28 | /* greek */ 29 | @font-face { 30 | font-family: 'Open Sans'; 31 | font-style: italic; 32 | font-weight: 400; 33 | font-stretch: 100%; 34 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2'); 35 | unicode-range: U+0370-03FF; 36 | } 37 | /* hebrew */ 38 | @font-face { 39 | font-family: 'Open Sans'; 40 | font-style: italic; 41 | font-weight: 400; 42 | font-stretch: 100%; 43 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2'); 44 | unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; 45 | } 46 | /* vietnamese */ 47 | @font-face { 48 | font-family: 'Open Sans'; 49 | font-style: italic; 50 | font-weight: 400; 51 | font-stretch: 100%; 52 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2'); 53 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 54 | } 55 | /* latin-ext */ 56 | @font-face { 57 | font-family: 'Open Sans'; 58 | font-style: italic; 59 | font-weight: 400; 60 | font-stretch: 100%; 61 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2'); 62 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 63 | } 64 | /* latin */ 65 | @font-face { 66 | font-family: 'Open Sans'; 67 | font-style: italic; 68 | font-weight: 400; 69 | font-stretch: 100%; 70 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2'); 71 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 72 | } 73 | /* cyrillic-ext */ 74 | @font-face { 75 | font-family: 'Open Sans'; 76 | font-style: italic; 77 | font-weight: 700; 78 | font-stretch: 100%; 79 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2'); 80 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 81 | } 82 | /* cyrillic */ 83 | @font-face { 84 | font-family: 'Open Sans'; 85 | font-style: italic; 86 | font-weight: 700; 87 | font-stretch: 100%; 88 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2'); 89 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 90 | } 91 | /* greek-ext */ 92 | @font-face { 93 | font-family: 'Open Sans'; 94 | font-style: italic; 95 | font-weight: 700; 96 | font-stretch: 100%; 97 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2'); 98 | unicode-range: U+1F00-1FFF; 99 | } 100 | /* greek */ 101 | @font-face { 102 | font-family: 'Open Sans'; 103 | font-style: italic; 104 | font-weight: 700; 105 | font-stretch: 100%; 106 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2'); 107 | unicode-range: U+0370-03FF; 108 | } 109 | /* hebrew */ 110 | @font-face { 111 | font-family: 'Open Sans'; 112 | font-style: italic; 113 | font-weight: 700; 114 | font-stretch: 100%; 115 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2'); 116 | unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; 117 | } 118 | /* vietnamese */ 119 | @font-face { 120 | font-family: 'Open Sans'; 121 | font-style: italic; 122 | font-weight: 700; 123 | font-stretch: 100%; 124 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2'); 125 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 126 | } 127 | /* latin-ext */ 128 | @font-face { 129 | font-family: 'Open Sans'; 130 | font-style: italic; 131 | font-weight: 700; 132 | font-stretch: 100%; 133 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2'); 134 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 135 | } 136 | /* latin */ 137 | @font-face { 138 | font-family: 'Open Sans'; 139 | font-style: italic; 140 | font-weight: 700; 141 | font-stretch: 100%; 142 | src: url(http://fonts.gstatic.com/s/opensans/v34/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2'); 143 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 144 | } 145 | /* cyrillic-ext */ 146 | @font-face { 147 | font-family: 'Open Sans'; 148 | font-style: normal; 149 | font-weight: 400; 150 | font-stretch: 100%; 151 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2'); 152 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 153 | } 154 | /* cyrillic */ 155 | @font-face { 156 | font-family: 'Open Sans'; 157 | font-style: normal; 158 | font-weight: 400; 159 | font-stretch: 100%; 160 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2'); 161 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 162 | } 163 | /* greek-ext */ 164 | @font-face { 165 | font-family: 'Open Sans'; 166 | font-style: normal; 167 | font-weight: 400; 168 | font-stretch: 100%; 169 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2'); 170 | unicode-range: U+1F00-1FFF; 171 | } 172 | /* greek */ 173 | @font-face { 174 | font-family: 'Open Sans'; 175 | font-style: normal; 176 | font-weight: 400; 177 | font-stretch: 100%; 178 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2'); 179 | unicode-range: U+0370-03FF; 180 | } 181 | /* hebrew */ 182 | @font-face { 183 | font-family: 'Open Sans'; 184 | font-style: normal; 185 | font-weight: 400; 186 | font-stretch: 100%; 187 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2'); 188 | unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; 189 | } 190 | /* vietnamese */ 191 | @font-face { 192 | font-family: 'Open Sans'; 193 | font-style: normal; 194 | font-weight: 400; 195 | font-stretch: 100%; 196 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2'); 197 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 198 | } 199 | /* latin-ext */ 200 | @font-face { 201 | font-family: 'Open Sans'; 202 | font-style: normal; 203 | font-weight: 400; 204 | font-stretch: 100%; 205 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2'); 206 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 207 | } 208 | /* latin */ 209 | @font-face { 210 | font-family: 'Open Sans'; 211 | font-style: normal; 212 | font-weight: 400; 213 | font-stretch: 100%; 214 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2'); 215 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 216 | } 217 | /* cyrillic-ext */ 218 | @font-face { 219 | font-family: 'Open Sans'; 220 | font-style: normal; 221 | font-weight: 700; 222 | font-stretch: 100%; 223 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2'); 224 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 225 | } 226 | /* cyrillic */ 227 | @font-face { 228 | font-family: 'Open Sans'; 229 | font-style: normal; 230 | font-weight: 700; 231 | font-stretch: 100%; 232 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2'); 233 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 234 | } 235 | /* greek-ext */ 236 | @font-face { 237 | font-family: 'Open Sans'; 238 | font-style: normal; 239 | font-weight: 700; 240 | font-stretch: 100%; 241 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2'); 242 | unicode-range: U+1F00-1FFF; 243 | } 244 | /* greek */ 245 | @font-face { 246 | font-family: 'Open Sans'; 247 | font-style: normal; 248 | font-weight: 700; 249 | font-stretch: 100%; 250 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2'); 251 | unicode-range: U+0370-03FF; 252 | } 253 | /* hebrew */ 254 | @font-face { 255 | font-family: 'Open Sans'; 256 | font-style: normal; 257 | font-weight: 700; 258 | font-stretch: 100%; 259 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2'); 260 | unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; 261 | } 262 | /* vietnamese */ 263 | @font-face { 264 | font-family: 'Open Sans'; 265 | font-style: normal; 266 | font-weight: 700; 267 | font-stretch: 100%; 268 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2'); 269 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 270 | } 271 | /* latin-ext */ 272 | @font-face { 273 | font-family: 'Open Sans'; 274 | font-style: normal; 275 | font-weight: 700; 276 | font-stretch: 100%; 277 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2'); 278 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 279 | } 280 | /* latin */ 281 | @font-face { 282 | font-family: 'Open Sans'; 283 | font-style: normal; 284 | font-weight: 700; 285 | font-stretch: 100%; 286 | src: url(http://fonts.gstatic.com/s/opensans/v34/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2'); 287 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 288 | } 289 | /* cyrillic-ext */ 290 | @font-face { 291 | font-family: 'Oswald'; 292 | font-style: normal; 293 | font-weight: 300; 294 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752FD8Ghe4.woff2) format('woff2'); 295 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 296 | } 297 | /* cyrillic */ 298 | @font-face { 299 | font-family: 'Oswald'; 300 | font-style: normal; 301 | font-weight: 300; 302 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752HT8Ghe4.woff2) format('woff2'); 303 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 304 | } 305 | /* vietnamese */ 306 | @font-face { 307 | font-family: 'Oswald'; 308 | font-style: normal; 309 | font-weight: 300; 310 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752Fj8Ghe4.woff2) format('woff2'); 311 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 312 | } 313 | /* latin-ext */ 314 | @font-face { 315 | font-family: 'Oswald'; 316 | font-style: normal; 317 | font-weight: 300; 318 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752Fz8Ghe4.woff2) format('woff2'); 319 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 320 | } 321 | /* latin */ 322 | @font-face { 323 | font-family: 'Oswald'; 324 | font-style: normal; 325 | font-weight: 300; 326 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752GT8G.woff2) format('woff2'); 327 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 328 | } 329 | /* cyrillic-ext */ 330 | @font-face { 331 | font-family: 'Oswald'; 332 | font-style: normal; 333 | font-weight: 700; 334 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752FD8Ghe4.woff2) format('woff2'); 335 | unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 336 | } 337 | /* cyrillic */ 338 | @font-face { 339 | font-family: 'Oswald'; 340 | font-style: normal; 341 | font-weight: 700; 342 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752HT8Ghe4.woff2) format('woff2'); 343 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 344 | } 345 | /* vietnamese */ 346 | @font-face { 347 | font-family: 'Oswald'; 348 | font-style: normal; 349 | font-weight: 700; 350 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752Fj8Ghe4.woff2) format('woff2'); 351 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 352 | } 353 | /* latin-ext */ 354 | @font-face { 355 | font-family: 'Oswald'; 356 | font-style: normal; 357 | font-weight: 700; 358 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752Fz8Ghe4.woff2) format('woff2'); 359 | unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 360 | } 361 | /* latin */ 362 | @font-face { 363 | font-family: 'Oswald'; 364 | font-style: normal; 365 | font-weight: 700; 366 | src: url(http://fonts.gstatic.com/s/oswald/v49/TK3iWkUHHAIjg752GT8G.woff2) format('woff2'); 367 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 368 | } 369 | -------------------------------------------------------------------------------- /resources/bbc micro CircuitKeyboard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/bbc micro CircuitKeyboard.pdf -------------------------------------------------------------------------------- /resources/scrap.txt: -------------------------------------------------------------------------------- 1 | ![Alt text](photos/shadow.jpeg) 2 | *"But wait!"* I hear everybody cry out, *"doesn't BBC Micro already come with a keyboard?"* 3 | 4 | Yes, but if I'm dragging a Beeb kicking and screaming into the RGB age, I might as well do it properly. 5 | 6 | The hardware is there but I haven't gotten around to write firmware for it, since so few programs use the mouse. 7 | 8 | the keyboard for BBC micro is a very clever piece of design, it can scan its matrix autonomously without CPU involvement. An interrupt is generated when key press is detected, only then CPU starts to scan the matrix to see which key is pressed. 9 | 10 | While doing PCB repairs I often shine a light from the back to check for solder bridges. The light passes through and illuminate the delicate and intricate design of all the traces on the circuit board. 11 | 12 | 13 | 14 | I tested out the setup separately, and it seemed to work, so now I need to figure out how to mount them on the case. 15 | 16 | fortunately the case has plenty of slots near the font for mounting water cooling heatsinks and fans, and looks like a simple metal bracket is all that;s needed. 17 | 18 | I went to the local hardware store and bought some angle brackets that looked close enough, I then measured and drilled the holes for the drive. A one-piece solid metal bracket would be preferable, but i wasnt able to find off-the-shelf parts, custom fabrication would have been a lot more expensive. 19 | 20 | anyway, the drives mounts fine, however when I line up the faceplate of the drive with the front of the case, the connectors on the back of the motherboard prevents the ribbon cable from being inserted. Still, it;s not a showstopper, I can fix that along with a few other planned modifcations. 21 | 22 | Speaking of which... 23 | 24 | another0 goal of this project is to have real working full-height 5.25" floppy drives in the case. I had two candidates, a 80-track shugart model ??? from the frankenbeeb, and a 40 track Tandon model ??? from a IBM PC XT. With both 40 and 80 tracks, it should cover the majority of floppys I want to read. 25 | 26 | I added a ???? floppy controller0 chip and tested out the setup. After some trail and error it seems that for the dual floppy to work, the ribbon cable needs to have NO TWIST, and the drive ID set manually with the on-board jumper. a terminating resistor might also be needed at the last drive on the cable. 27 | 28 | The acorn DFS treats each side of a floppy as different drives, so physical Drive ID 0 will be DFS drive 0 and 2, while drive ID 1 will be drive 1 and 3. 29 | 30 | That means the timing is very tight once the 6502 starts keyboard query, I actually overclocked the microcontroller to be on the safe side, but in the end it does work rather nicely. 31 | 32 | I also had to remap a few buttons since the keyboard layout is different on PC keyboards compared to BBC micro. 33 | 34 | I used to on0board DAC for the joystick analog axies, which works fine, although careful calibration is needed to ensure the positiion is centred, as most games dont have calibration themselves. 35 | 36 | The prototype p-card works fine with some bodge wires, and those will be fixed in the final version. 37 | 38 | 39 | This is another happy coincidence that they did not use coppor ground planes or internal layers, both of which would block the light. 40 | 41 | * Everything's in one place, no more separate boxes. 42 | 43 | * Juxtaposition of old and new. 40 year old hardware in cutting edge 44 | 45 | * very much in the spirit 46 | 47 | It sounded like an outrageous idea, but after bit of thinking, I felt it wasn't completely unrealistic. 48 | 49 | The 5.25" floppy drives are designed to go into 5.25" bays, so no problem there. But what about the motherboard itself? I found a spare and did some measurements. 50 | 51 | It breaks out all the common voltages in vintage computers, and has PWM fan and ARGB for cooling and aesthetic upgrades. It also fit into the 2.5" bay of a PC case, with standard power button and LED headers. 52 | 53 | Another neat side effect of using a PC case is that I can do away with the old power supply which tends to blow up if the RIFA capacitor is not removed. Modern ATX PSU had all the required voltages. now 54 | 55 | 56 | * Striking yet minimalist design 57 | * Puts the motherboard on display front and center 58 | * Lots of space, flexible & modular mounting options, no need to worry about PCI slots blocking analogue and econet ports. 59 | * Mounting holes for water cooling can probably be used for 5.25 inch drives. 60 | 61 | 62 | ## Things to consider 63 | 64 | Still 65 | 66 | * Finally, I really like its owl logo! Minimalist and whimsical, been using it as my profile photo for years! 67 | 68 | Technically no modification is needed at all, I went quite far for aesthetic reasons. 69 | 70 | And even though this kind of shenanigans seems one-off, back then users seemed to go a lot harder when it comes to modding. 71 | show ebay machine, and then torch computer? both work. 72 | 73 | Here's what 74 | 75 | mention really dont like RGB gaming builds, i find them obnoxious and pointless. all my pcs are under the desk and i dont look at them when i use them! 76 | 77 | almost all modern PC case doesn't have 5.25 inch bay anymore! there is just a blank space there. those who did does not support full height drive anymore as well, as they are optimised for optical drives and have half-height drives that prevent full height drives to be inserted. 78 | 79 | !!MEDIA TODO: screenshots of PC cases on amazon or newegg or uk equivalent? 80 | 81 | I want my dual full-height drives, that means four(!) 5.25 inch bays! and its safe to say i wasnt able to find any gaming cases on sale today with that. 82 | 83 | 84 | With modern cases a dead end, I started to look at cases around mid-2000s, where gaming PC were starting to become a thing, and 5.25" bays were yet to died out. 85 | 86 | I then decided to turn my attention to a little eariler, and got myself a case from early 2000s. A handsome looking aluminum coolermaster full-size case. it has 4 bays and everything i need. its a nice case for a period build but still leaves me a bit cold. the major theme of this build is to contrast the 40 years old computer with modern enclosure, and using a 20 years old case just wasnt going to cut it. 87 | 88 | !!MEDIA TODO: Photo of my coolermaster case 89 | 90 | 91 | 92 | not all modification are bad, if done properly can expand capabilites or aesthetics. 93 | 94 | dumb it down a bit for regular readers and main stream tech blog editors. 95 | 96 | show the owl case micro too? mention backstory, the sellers father were really good at those. 97 | 98 | by what can only be described as sheer coincidence, 99 | 100 | 101 | for mockup, i used the bbc micro motherboard from the owl BBC, it didnt come with a PSU for some reason, after some testing i think i knew why. this one is in pretty rough shape, quite a few reworks and bodge wires, it works but is very unstable, it had a bad VIA, and then still usually crashes after a few minutes. strongly suspect an intermittent RAM program. still, just for mockup. 102 | 103 | 104 | ## Trivia 105 | 106 | * BBC Basic very fast 107 | 108 | * Model A, B, B plus, etc, used by raspberry pi! 109 | 110 | ## Why? 111 | 112 | Many projects putting new stuff in old cases, often destructively. I don't think that's right, and it's fun to see what I can do and how far I can push. 113 | 114 | Pay omage to the users back then. 115 | 116 | why not? 117 | -------------------------------------------------------------------------------- /resources/the_legacy_of_bbc_micro.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dekuNukem/RGBeeb/7ab3cf6c3f0f4ef77c41cc0383c4c48ef858682a/resources/the_legacy_of_bbc_micro.pdf --------------------------------------------------------------------------------