I've been greatly inspired by the
Cody Computer's 3D printed keyboard and the 256 key
Extra Large Keyboard to the extent that I purchased a small quantity of keyboard switches, designed a 16*16 matrix NES/SNES/Gigatron keyboard controller and investigated the feasibility of Lego keyboard buttons. Unfortunately, Lego keyboards aren't feasible. However, a Lego computer case is most definitely feasible. Likewise for a matching Lego mouse.
Many people lament the demise of Radio Shack, Frys, Maplin and similar retailers. In particular, people lament the electronics project boxes which were widely available from such retailers. As a substitute, I've been using plastic ice cream tubs and I punch holes wherever necessary with scissors. When I make reference to a
premium project box, that's due to the box describing the quality of its previous contents. Although such a box makes a project splash-proof and discourages
gerfingerpoken (and is therefore approximately IP22), the boxes are distinctly less rigid than the traditional project boxes. Furthermore, a friend said that electronics inside an ice cream tub looks unprofessional. After purchasing a significant quantity of imitation Lego for the purpose of making a common style of computer case, my friend said "Now you've gone the other way."
Few of us have access to injection molding and the majority of us who have access to a 3D printer do so via communal facilities, such as a makerspace. However, toy construction bricks form a highly modular, interchangeable, injection molded system which is available from multiple manufacturers - and the result is quite acceptable. Also note that Lego and 3D printing is not mutually exclusive and that one of the most common uses of a 3D printer is to make bespoke Lego bricks. This is faster, cheaper and more reliable than printing everything. I have a large number of further tips. Hopefully, the advances that I've made over two months can be replicated within two hours.
Lego has its own terminology, although it is far easier to understand than many of the topics found on the 6502 Forum. Anyone who understands SBC [Single Board Computer] will immediately appreciate MOC [My Own Creation]. Some of the abbreviations are whimsical. A personal favorite is SNOT [Studs Not On Top]. Lego, MegaBlocks and the other compatible construction bricks all have 1.6mm thick walls and 8mm dot pitch. This is approximately 3 dots per inch. Official Lego, at retail price, is approximately three cents per dot for small, flat brick and somewhat cheaper as sizes increase. Some official bricks are available in, I believe, 30 colors nowadays. Unofficial Lego is approximately 1/3 of the price and the smallest pieces are available in 96 colors. This is for "pixel art" which is very much like cross-stitching or mosaicing but with toy construction bricks.
I purchased a range of flat base-plates all the way up to 32*32 dots. 50*50 is also widely available but was wasn't required. With the exception of the 50*50 base-plates, many of the large pieces are powers of two in 1:1 or 2:1 ratios. Therefore, my original plan was to purchase a variety of small pieces for functional and decorative purposes and also purchase 8*8, 8*16, 16*16, 16*32 and 32*32 plates. My original plan was to make cuboids with two or more blank faces and then sub-divide the remaining sides with successive binary approximations around holes for power switches, fan vents, SNES keyboard/joystick connectors, storage media slots (via 65SIB) and
indicator lights.
I've tried various techniques for gluing Lego compatible plates together. I thought that I might have to make a bamboo frame and use silicone sealant. Thankfully not. I thought the PVA wood glue would be suitable. However, it takes days for it to dry properly. Then is fails easily and requires further gluing. The best technique that I've found is to tape panels into an approximate arrangement. Then use tack across the edges; preferably with a piece of tack which is the size and shape of a runner bean. Then tack the corners for a more exact match and to prevent lateral skew. Then apply very small quantities of crazy/super/gorilla glue such that it is able to drip downwards like a water droplet - and without contacting the tack. Actually, gluing in this manner always requires a preliminary pass before removing the tack. I recommend holding tissue while gluing. This allows the most rapid response to any glue which leaks to the outside. Hopefully, you won't need the tissue but it is a very simple and effective contingency plan. Overall, gluing and decorating a Lego box is easier than DIP scale soldering.
After making two boxes of size 16*32*32 dots (128*256*256mm, 5*10*10 inch) and two boxes of size 8*8*8 dots (64*64*64mm, 2.5*2.5*2.5 inch), I don't believe that anyone who is active on the 6502 Forum requires anything larger than 16*16*16. Specifically:-
My current aesthetic is similar in size and shape to the
Apple iCube, except that it is made from toy bricks, in Commodore 64 colors, with SNES joypads, an Apple II memory map and a Commodore 64 ABI. I don't care if this mash-up offends purists. Regarding the enclosure, I strongly recommend cubes only. Color matching between base-plates is awful; worse than expected for white plastic. I was surprised that a partially sighted friend noted the blue/gray tint, the yellow/pink tint of various pieces. My friend is usually oblivious to such matters but this indicates that it is really bad. Indeed, cuboids of differing dimensions look significantly worse when faces at right angles are equally illuminated. If you only make cubes, this is a lesser concern because most of the faces will match. If you follow the Apple iCube aesthetic, enclosure construction is further simplified because it is possible to have four or five blank faces while all of the front facing connectors (keyboard, mouse, joystick, audio) and rear facing connectors (power, display, bulk storage, network) may come out of the one face of the cube which is tucked away from view. This means you can be less fastidious about closing the holes while simultaneously being less concerned about accidental ingress of liquids. If you want to get really fancy, it is relatively trivial to make a 555 capacitive touch power switch, although this is a gratuitous waste of energy.
For the power switch, I prefer a more industrial look. Specifically, I design all of my equipment such that a blue power switch is on the top left and ISO 13850 red emergency stop button is on the top right. In the case of a 6502 system, the red button may be NMI to monitor program or similar. (For a 6502 control system, the emergency stop should dump and clear all known I/O pins. All associated hardware should fail-safe when a port is zeroed.) For important switches and indicator lights, I don't recommend anything outside of red, white or blue. This covers common cases of red/green and green/blue color-blindness. As further safeguards, blink lights should be odd counts only and switches should be distinctly textured.
A snug fit for the buttons was found by happy accident. I planned to have a 3*3 power switch in a 4*4 hole or maybe a 2*2 button in a 3*3 hole. However, 3*3 bricks aren't available and I didn't want to purchase 100 2*3 bricks and suchlike in multiple colors when I only wanted one of each. Instead, I frugally purchased 100 1*1 tall bricks with the intention of gluing grids of them into the desired size. This works astounding well because the low quality imitation bricks are molded a little short on each edge to ensure that they always fit together. Unfortunately, for 1*1 flat pixel art, they don't sit squarely in their assigned place. If you can get a color in 1*2 or larger then definitely do so because then it will always sit squarely. While this property is annoying for pixel art, it is helpful when gluing bricks into buttons. Buttons are always one millimetre or so short and will therefore travel freely within a hole. This isn't suitable for a keyboard but it is quite acceptable for occasional use. If you align the bricks against a hard edge after gluing, they may have a small skew. However, they will have the same consistent skew across two dimensions and the result still works in a given hole.
For decorative trim, I highly recommend a mixed bag of 1000 1*1 flat bricks to do fades and similar effects. Unfortunately, time spent working with toy bricks is relatively independent of their size. It took me about four hours to sort 1000 loose bricks into piles and another four hours to apply a small selection to the base-plates. If you haven't got time for this amount of faffing, I completely understand. I mention it because I didn't expect to spend so long on the task. To save you time, I'll describe my most successful experiments. I've tried retro rainbow stripes with great success. This is very much in the style of 8 bit Apple and Commodore (and earlier systems). Five or six stripes from the midline downwards works particularly well. Abbreviated and shuffled resistor color codes also work quite well. Two examples are 012349 (black, brown, red, orange, yellow, white) and 076238 (black, purple, blue, red, orange, gray). You might want to try blue, green, black, red. I hear that it's quite popular.
I had reservations about blue/red, orange/gray and green/black but, in aggregate, it works fairly well. I've only tried this on white base-plates. However, I believe that these variations would work equally well on beige or green base-plates. I have more bricks on order with the intention of trying 1980s pink/green tropical styles, although these variants are only likely to work well on white.
I believe that anyone who has worked with VIC-II graphics will be particularly adaptable to decorating a Lego enclosure. The constraints differ but they are analogous. Specifically, 1*1 bricks are available in one palette, 1*2 bricks are available in a different palette and background choice is limited. In particular, 1*2 bricks mostly cover the 4 bit RGBI palette with, for example, two shades of red, green and blue. However, baseplates may only be available in black, sand beige, forest green, lunar/urban gray, a random shade of not-quite-white and an assortment of patterns, such as road junction, sports pitch or tropical island. Annoyingly, baseplate size starts at 16*16. Anything of this size or larger is thinner and must be the bottom layer. Therefore, any attempt to fill half of a 16*32 face with 16*16 baseplate will be awful and inconsistent.
Several of the online marketplace sellers supply a complimentary pixel art tool with every shipment. This double ended tool aids placement and has a lever to aid removal of mistakes, although, admittedly, I've had more success picking off mistakes with a safety pin. Regardless, I hope that the lever tool is available in bulk because it is the shape, size and style of the discontinued toggle switches found on mini-computers and
Commodore Z's Cactus 6502. It is also molded in historically gaudy colors. Indeed, replication of the
Cactus design may have been inhibited by a lack of suitable toggle switch levers. The tools used for pixel art may be an acceptable substitute. They may also be cheaper.
I'll finish with some characteristic whimsy. I've been very disappointed with the selection of sheep stickers and sheep Lego on AliExpress. However, the selection of dinosaur Lego is fantastic and they don't even mention the best features. I bought one of the more fierce dinosaurs. It has a 2*2 stud arrangement on its back which is suitable for a seated Lego MiniFig. However, they don't mention that the dinosaur feet are also Lego compatible. Furthermore, my dinosaur was supplied with two tiny Lego stud compatible baby dinosaurs and 14(!!!) tiny Lego stud compatible dinosaur eggs. However, I haven't mentioned the best feature. The neck, shoulders and hips are all Lego Technic axle compatible. Therefore, instead of assembling the supplied arms and legs - and in a case of art mirroring life - it is possible to have your very own
dinosaur on rails!