├── 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 | 
8 |
9 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
96 |
97 | The disc drive contains dual 80 track full height 5.25" floppy drives, with some notes on the door:
98 |
99 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
197 |
198 | The case soon arrived, I had the main chassis laid out and tried out the adapter plate:
199 |
200 | 
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 | 
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 | 
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 | 
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 | 
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 | 
275 |
276 | Seeing it for the first time, I was in awe.
277 |
278 | 
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 | 
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 | 
291 |
292 | How does it look like with the motherboard? Well:
293 |
294 | 
295 |
296 | 
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 | 
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 | 
317 |
318 | The prototype has a few bodge wires, but they are fixed in the latest revision. And it works!
319 |
320 | 
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 | 
327 |
328 | duckyPad is a hot-swap mechanical macropad that helps speed up workflow by automating actions using duckyScript.
329 |
330 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
427 |
428 | I then connected up ATX4VC:
429 |
430 | 
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 | 
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 | 
453 |
454 | 
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 | 
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 | 
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 | 
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 |
396 |
--------------------------------------------------------------------------------
/plates/atx_plate_annotation.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
410 |
--------------------------------------------------------------------------------
/plates/old/atx_bbc_micro.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
177 |
--------------------------------------------------------------------------------
/plates/old/atx_plate.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
168 |
--------------------------------------------------------------------------------
/plates/old/atx_plate_heavy_outline.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
167 |
--------------------------------------------------------------------------------
/plates/old/comparison no hole.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
118 |
--------------------------------------------------------------------------------
/plates/old/comparison.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
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 |
As part of my BBC Micro PC project (more about this later) I
117 | need to turn the keyboard in a BBC Micro in to a USB hid device. I could
118 | just rip the insides out of a PC USB keyboard and solder wires on to
119 | the back off all the key switches but that seems somewhat messy. So I
120 | decided to design a micro-controller circuit to read the keyboard and to
121 | appear as a standard USB HID device. The neatest solution is to have
122 | the micro-controller drivng the keyboard circuitry the same was as the
123 | BBC Micro main board does. This post explains how the keyboard circuit
124 | works.The BBC Model B keyboard circuit board
125 | is more than just a grid of key-switches. It comprises some circuitry to
126 | reduce the number of connections between it and the main circuit board
127 | to 8 lines and to generate interrupts on key presses. Its a very neat
128 | design. Below is the keyboard circuit diagram taken from the BBC Model B
129 | service manual. The diagram also includes a bit of circuitry for the
130 | speech ROM expansion which I will ignore.
131 |
132 |
133 |
134 |
135 |
IC1
136 |
74xx161/163
137 |
Synchronous 4 bit binary counter
138 |
139 |
140 |
IC2
141 |
74xx45
142 |
BCD to decimal decoder
143 |
144 |
145 |
IC3
146 |
74xx251
147 |
3 state 1 of 8 line data selector
148 |
149 |
150 |
IC4
151 |
74xx30
152 |
Octal NAND gate
153 |
154 |
155 |
156 |
At the core is the traditional key matrix. It is a grid of rows and
157 | columns with momentary push switches that connect a row to a column when
158 | pressed. All of the rows are tied high by resistors to the 5v supply
159 | rail. The rows are inputs to an octal NAND gate (IC4), which, in this
160 | case is better thought of as an OR gate with inverting inputs. I.e. but
161 | default the output of the NAND gate is low but if one of the rows is
162 | pulled low the NAND output goes high. The rows are also inputs in to the
163 | line data selector (IC2).
164 |
The synchronous 4 bit binary counter (IC1) is driven by the BBC
165 | Micro’s 1MHz clock and when the KB EN is high is in free running mode.
166 | The 4 bit outputs (outputs QA-QD) are decoded by the BCD to decimal
167 | decoder (IC3) such that the decoder’s outputs go low in turn. The
168 | outputs of the decoder form the columns of the grid. I.e. column 0 is
169 | low on the first clock pulse, column 1 on the second and so on. If a key
170 | is pressed the row the key is on will go low when the column goes low.
171 | This in turn makes the output of the NAND gate go high indicating a key
172 | is pressed. The output of the NAND gate is used to generate an
173 | interrupt in the BBC Micro’s CPU.
174 |
So normally the keyboard is being scanned by the hardware without any
175 | software influence. This is a good thing as it takes a lot of loading
176 | off of the BBC Micro’s CPU. When the key press interrupt is triggered
177 | the key scanning software takes over. As I said normally the 4 bit
178 | binary counter (IC1) is free running however if the LOAD pin (pin 9) is
179 | taken low the 4 bit input value (inputs A-D) are latched through to the
180 | outputs (QA-QD) and hence control the columns provided by the decoder
181 | (IC3). IC1’s load pin is connected to KB EN.
182 |
The S line of the data line selector (IC2) is the select line and is
183 | also connected to KB EN. The output of IC2 is 3 state meaning it either
184 | reflects the appropriate data input line when select is low or is high
185 | impedance. The data input lines are the row lines of the keyboard
186 | matrix. The input line is chosen using the three bit ‘address’ value on
187 | A-C. The row state is output via pin W.
188 |
So the keyboard is normally hardware scanning. If the user presses a
189 | key, the interrupt is triggered. The CPU enables the keyboard by setting
190 | KB EN low and then manually scans the key board by setting the columns
191 | in turn via IC1 and checking the state of the rows in turn via IC2.
192 | Once the scan is complete KB EN is set high and the hardware scanning
193 | continues.
194 |
There are three keys on the keyboard which are exceptions. The two
195 | SHIFT and CTRL keys are on a row that does not trigger an interrupt.
196 | This means that shift is only scanned manually or when another key is
197 | pressed. The BREAK key (labled RST) is completely separate from the
198 | matrix and triggers the CPU’s reset line. On boot the CPU scans the
199 | keyboard manually to see if any of the modifiers are held down to do a
200 | cold reset or mount the disk for example.
201 |
The BBC Micro keyboard can be easily interfaced with say an ATMEL
202 | ATMega328 (like in an Arduino). The micro-controller can drive a pin
203 | directly from one of the timers generating a square wave output to scan
204 | the keyboard. The interrupt can be connected to one of interrupt inputs
205 | and the rest connected to general purpose IO pins set as outputs or
206 | inputs as appropriate. Dick Streefland’s USBtiny
207 | code provides the functionality to support the USB protocol in software
208 | utilising three IO pins on the micro-controller and a few discrete
209 | components. All that is required by me is to write the keyboard scanning
210 | code and provide the missing bits of the HID device profile.
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.
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
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.
--------------------------------------------------------------------------------
/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 | 
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
--------------------------------------------------------------------------------
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 |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?
268 |267 | http://denki.world3.net/beebkb.html
Reply
269 |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
287 |286 | Paul
Reply
288 |