That was quick! – It’s amazing what’ll come to you at random moments.
I was looking at some uneven fitting panels on a car earlier today and wondered, ‘why can’t the gaps be smaller?’ –
Well, my first idea is to simply see what happens when the gaps between the keycaps are smaller……..
If there’s no room for keycaps to wiggle, they won’t wiggle! – that’s the theory anyway – Prototype is on the printer as I type.
If this ‘rough and ready’ bodge works, I can knock out a more elegant solution that’ll look much better :-), it’ll involve going right back to the beginning, but…ho-hum, such is the nature of product development!
The idea is currently on the printer! – this is a ‘zero cost’ solution that may reduce keycap wonkyness to a level that’s acceptable.
The next idea introduces double the 3D printed parts and some extra parts on top of that – BUT, it’s still a very cheap solution compared to the alternative…..
Three PCB’s are pretty mich ready to go . Just last minute checking, double checking, triple checking needed!.
I’m lacking lemmings on most of the boards, but be assured, there’ll be a few on the production units.
I’ve also now pretty much finished the keyboard CAD…Had to do yet another iteration to allow for the new switching mechanism i’m using..It’s really been a case of design, print, test, iterate, repeat!…Still ‘a few months away’ as always, Real life is taking over a little, meaning less time to perfect this lot.
On the plus side, I really do think this Prototype 2 will be ‘good enough’ for general testing and useage. Everything after prototype 2 will be geared to making it easier to install and add (or remove) extra features. Lots of pics after the break……………..
First working keyboard keycaps are off the printer! Only this bit to show as most of the print failed 😛
Well,, 3 prints failed, I’m trying to learn how to use my Photon Mono-X, so far mostly unsuccessfully, these were printed using a known good combination of Photon Mono and Commodore Brown resin 🙂 ….and still it partly failed!!
Next, I have to optimise the design for printing. I’d added some features to make them work better, but, those features don’t translate to printing very well, D’oh! (That’s called not doing Design For Manufacture!).
Resin printing can be a hard beast to tame, especially when printing 94/98 individual items (98 if I can two keyboard types!!)
This first print is literally an ‘auto supports, Jab a few extras on, hope for the best’ quick test to prove the mechanics. When the design is finished, I’ll need to spend a couple of solid DAYS (maybe a weeks worth of evenings) adding thousands of supports MANUALLY to ensure every keycap comes off the print perfect!
That sounds a lot, but printing a single item is different than printing the same item hundreds of times, so it’s really worth the up front investment in time.
And, speaking of time, I’ve just clocked about 600 hours evenings and weekends, on this project now 😛
I’m rather happy otherwise, next week, I should have a full working keybaord to demonstrate 🙂
Quite a lot of progress, but it doesn’t look like a lot of progress.
Firstly, I’ve had to re-do most of the keyboard CAD – I simply didn’t like the ‘blocky’ effect of the wider topped keycaps I’d created – as you can see below they look a lot more square in real life than they did in CAD…
I’ve now clocked well over 200 hours developing this set of keycaps, likley there’s going to be tens more tweaking / optimising!
So, along with the less blocky (more slopey) keys, I’d discovered my workflow in CAD had created tapered keys – the tops when viewed from above look like parallelograms, wheras the original Amiga had more square keys – it was quite a lot of work to alter this – see the parts below by the red arrows – the bottom bit is in towards the middle more than the top bit.
Have been tweaking things over and over, I’m now finally ready to…….
I think there’s going to be a few people out there actually using this keyboard in anger, so i’ve widened the keyswitch tops a little and added larger fonts to make it easier for someone to fill in some colour if they chose to do so.
Some other progress –
The Floppy Disc insert! – a FULL scale floppy disc fits well
I’ve refined the floppy disc insert thingy – I really think I can make this work – lots of parts on order so i’ll iterate this design over the coming weeks. I’ll do the first prints of the plug in module soon
Speaking of prints….
I knocked up a few of the mini-Floppies. Printed in various orientations to see if it’s even possible to do these. The best print is the angled one..Turns out, it’s going to be tricky as can be seen from the various failures above. Have re-designed a little and will run off some more sample prints soon. The supports on this one will be critical and hopefully not so wasteful as the C64mini keycaps were.
And, almost finally –
Here’s a collection of ‘stuff’ rendered so far. The Keyboard PCB is unfortunatley upside down – due to the way I started modelling stuff, no big deal but makes the renders look odd. The case slopes don’t need to be modelled (at this time) so i’ve just left them flat for now.
There’s loads of parts waiting to arrive in the post, but there’s also loads I can be getting on with, not just on this project, but on numerous others also!
I’ve spent a couple of days designing, and and a today, spent nearly a hundred quid at JLCPCB ordering a bunch of prototypes
I had to bite the bullet and spend some money as I now need to move on with the Keycap CAD. I have a big concern about the fitting of the printed keycaps onto the smaller switches. I’ve gone with ALPS switches as they used to be a huge brand name back in the day and i’m hoping should provide some consitency.
The prototypes will help also to test and develop the PRK Firmware i’m planning to use.
The ‘Clamp’ adaptor is fairly non-functional. It has a Rasperry Pi Pico footprint onboard and a 40 pin FPC style connector to act as a ‘stand-in’ for the Raspberry pi Pico which is currently on the back of the main PCB.
The whole idea of the ‘clamp board’ is to allow an ‘ease’ of installation – I’ll use some Pogo Pins to sit on the test pads by the 3 USB sockets on the back of the A500 Main board.
The plan is to have a basic matrix keyboard PCB, which connects to the clamp board via the 40 pin FPC.
The clamp then accesses the USB and hopefully it can all be fairly easy to assemble.
I’m also testing the Fake floppy connection with the clamp board – no idea if that’ll work or not, we’ll see.
Now the long-ish wait for Aliexpress to deliver my connectors, pogo pins, and a couple of weeks for the Cheapest post option of JLCPCB to ship the assembled keyboard! – nearly 100 switches and diodes on this one, those can be automated in assembly. I’ll need to hand solder on the rear the FPC connector but those are easy enough!
Progress to date has been surprisingly quick – most of the ‘easy’ stuff is now done and I’ve added some extra functionality. Most of the research is now done – have spent waaaaay too long googling connectors, Pogo pins and component types / dimensions.
My workflow generally is to eyeball, sketch, measure, adjust….Then when it’s close enough, i’ll print on paper, adjust in CAD, print again then………3D print
I’m quite chuffed – the first 3D print seems to fit reasonably well! – there’s some adjustments needed, mainly the top of the keycaps are a little too wide, but overall for a first run, not bad.
To work out a PCB outline, I’ve scanned the A500 Mini on a flatbed scanner and trace around the important parts, measuring many with calipers
Before I 3D printed the sample, I put the A500Mini on a flatbed scanner to match up the holes – as you can see, it’s pretty darn close! – you’re seeing a canvas underneath the actual CAD model of the keycaps in Fusion. The Enter key is black as i’d discovered a slight profile error, so spent half hour correcting a 0.2mm height error 😛
During the design phase, there’s a process of discovery. My main discovery for the A500Mini keyboard was that….I’d possibly need TWO PCB’s!!
If you look above at the underside of the keyboard you’ll see that there’s no space on the top for electronic components! The PCB needs to mount entirely flush to the case of the Mini. This means I’d need a PCB assembly service that can handle double sided boards (a possibility) – And to also consider a two PCB solution. There’s cost and ease of install considerations for both ways.
The A500Mini has a number of test points on the back, I think using Pogo Pins I can maybe make a clip-on PCB that can securely tap off the USB test points, meaning, a solderless install! – hence the upper white PCB that sits in place of the A500 PCB above
And, now I believe I’m going to go with a THREE PCB solution…….because…
the one with the holes in sits above the stock PCB
I figured I’d go one better and make a REAL fake floppy disc. and, the best thing, after several solid days of research and CAD testing, I believe it can work 🙂 – it’ll only need two small cuts inside the A500 case and be totally stock outside. there’s a little more tweaking needed for the floppy disc design to make the MicroSD slot more elegant . I’ve ordered a whole bunch of parts to physically trial this and see if it’s viable.
So, Summary. Still a long way to go, the Keyboard itself is the priority here, the ‘floppy disc’ is just a whimsy on my part for the time being, its development is secondary and may not even make it to a real release if it’s not robust enough.
Keycap CAD – Cosmetics finished, Just needs the ‘switch’ solution figured out
Main PCB – Outline finished, needs routing, quick job to finish
I received yesterday my A500 Mini! – Haven’t even powered it up yet 😛
My assumption about the 43ish percent scale was about right – and the work i’ve done so far on the PCB pretty much stays the same – which is a relief.
However, till now i’ve been using a full sized Amiga 500 to infer dimensions. I can’t easily do that going forward as the scaling factor for the Amiga is ‘a bit weird’ – I think I can see why it’s been done, but, it’s far far easier to re-start the CAD from new…or at least shift the fusion timeline back to the beginning and see what i can recover 🙂
Much more to do, will update later as there’s also a few ‘gotcha’s i’ve found, and a few ‘woo’ moments also!
Minor update on progress…made the schematic a bit clearer for me to understand, also am doing a dual footprint style setup – where I overlay multiple component footprints incase one becomes hard to get.
I’m also creating two ways of driving the matrix, an on-board RP2040 chip and, if they become hard to get, a seperate daughterboard which can house a Pi Pico
Kinda pausing PCB development until my Amiga 500 Mini device arrives in the post, but i’ll be playing with the PRK firmware next!
after a good half hour of searching for the Amiga Key font, including various terms like “lop sided font”, “font with one side thicker than the other”, “fonts that look like broadway, “broadway serif” and even google image search for
I finally found the correct font with a quick search for “font used for Amiga key”
Another small update! – I think i’ve cracked the basic model of the keyboard.
To get this far has taken dozens of hours of interweb sleuthing and watching youtube videos to watch how the light reflects of genuine amiga keboards to see how i can capture the curves of the keys.
Most keys seem to be a very simple U shaped dip from the edges of the keys! the dip is always the same depth, so the wider the key, the smoother the dip!
Two different keys were the Space bar – this has a slightl raised curve at the top ratther than a ‘dip’
and the Enter key – which has a more complex bowl like dip in, that key probaly took the longest to figure out but the top is essentially is two U shaped dips, one for the top of the key, one for the bottom. I’ll go into more detail in a future post
For now, this is accurate enough for me to be able to develop the font to embed in the keys! I’ve made the model reasonably parametric so I can change things around a little to match the exact key spacing of the mini once I receive it. At this scale, i’ll have the same 0.5mm clearance between keys as I had on the C64 mini, though I plan to increase it a little more in the final product.
First Proper scale PCB layout for the A500 Mini. it mostly looks like it’ll work – BUT, there’s some problems.
I’ve highlighted the problematic switches with white blocks
The Problem – Having switches at 0 degrees or 90 degrees means at some point, due to the staggered keyboard, some will overlap. I’ve spent a few hours optimising the rotation of the switches to reduce the number of overlaps to a minimum, AND, to give all those overlaps a common ‘thing’ that possibly provides one way of easily fixing this.
I’ve made it so that Every ‘overlapping’ switch has the bottom left pad causing the overlap. This means, with the right switch type, I can simply cut off this leg for each of the 8 problematic switches and have the keyboard work just fine!
In Most SMT switches this size, there’s 4 legs, but often only 2 are used, (single pole) or sometimes there’s 2 separate switches inside (double pole). provided I use the correct two pins, they should just work fine with 3 legs soldered in. This isn’t exactly an industrially abused keyboard, so 3 legs is plenty of mechanical support.
BUT – I’m unsure if I could ever convince a PCB assembly house to cut a leg off the switches and solder them at a reasonable price, meaning that I may need to solder these 8 manually myself.
There’s a potential other fix also – Rotating the switches at ‘odd’ angles!
If you squint closely, there’s now no overlapping pads on the switches, However, this comes with potential issues
1 – Manufacturing, companies may not want, or be able to put switches on the PCB at arbitary angles like this
2 -Available space within the A500 Mini is currently unknown, which may not give me enough height to be able to do this.
Physically, a 6mm switch, placed at 45 degrees ‘just’ fits within the available 9mm envelope for each 50% scale switch
What this means –
If I rotate the switch, I will not be able to have a recess on the keycaps. On the C64Mini, to keep the keyboard profile height correct, the switches sit about 1.5mm into the keycaps when pressed down. Without this recess, the new keys may need to sit higher than they should. But, this depends on how much space is available underneath the fake keyboard in the mini – it should be possible to add some spacers in to bring the height back down.
So, The big summary is, Right now, there’s no roadblocks to making this work. a Fully automated production is preferable to bring costs down, so i’ll keep working down that route.
Things to do –
Contact PCB manufacturers to figure out manufacturability
Early days – Square keycaps to create a layout grid in EasyEDA
Little bit of progress now – Thanks to this superb thread – and some other random pictures, I’ve gotten fairly close dimensions to a proper Amiga500. Same old story, Mine’s down my parent’s in Wales and I procrastinate over picking it up , so waste too much time analysing, measuring stuff online! It’s not accurate, but is close enough to get a 50% scale PCB layout done now, and tweak accordingly once the real A500 Mini is released
Incidentally, someone confirmed that square keys are 18mm on a base (thanks Dan) from that single dimension, i’ve been able to recreate most of the keyboard, with only now some uncertainties as to the remaining key sizes.
Why I’ve created this CAD – to use as a template to create a PCB!
Project the ‘keyboard’ bodies into a fresh sketch
It makes creating a ‘clean’ Sketch really easy. Just project the switch bases onto a fresh sketch, Export that sketch as a DXF….then import DXF into EasyEDA..
Of course, I’ll need to scale this lot down 50% to ensure things’ll fit in the Mini!
In some good news, I may not need to fully design the CAD for the Amiga Keycaps as someone in the scene has reached out and offered their CAD designs. Best case, I can simply modify their designs. Worst case, I can use their designs to measure the curves and ‘simply’ recreate in Fusion360. Either way, it means it’ll be a LOT quicker than the C64 Mini’s keycap development
Finally, onto the PCB design – I’ve already replaced the horrendous keyboard matrix schematic with one more resembling the genuine Amiga’s. Unlike the C64 Mini one, this one won’t be fully compatible with an actual Amiga due to there being some periphery circuitry to convert the matrix into a serial format for the motherboard to receive. BUT, keeping the same matrix – for everything other than the ‘standalone’ modifier keys should help some people to do ‘other stuff’ with this.
Oh, and I noticed that some of my previous assumptions about the 32u4 being used in the Mini were incorrect – It’s a bit bigger than I’d realised. it has 26 GPIO (kind of) when used in the raw chip form!…I thought it was 20 (D’oh!) that means you can (in theory) have a matrix with 144 switches AND a couple of pins left over for LED’s!!
Minor update! – Slowly working on the PCB design for the Amiga Mini – I’m tempted to actually produce a few of these as a Beta run so I can get ahead on the keyboard matrix programming.
I’ve priced up on https://jlcpcb.com/parts/ a BOM to build a minimalist Pi pico so that I can place one directly on the keyboard – and surprise, just like the Arduino Pro Micro device – The sum of the components is more expensive than the price of a full Pi Pico ! BUT, and key point, it’s not all that much more. building Arduinos out of components were typically around DOUBLE the cost. The Pi Pico isn’t!.
However, adding a RP2040 discreet chip to my PCB adds a small level of additional complexity to the board and puts me at risk of parts going out of stock so it’ll be a weigh up when the real Amiga mini is released – If there’s enough space on-board to make a 2 layer board, I may well do this. If not – well, that’s what the TWO circuit boards above are.
Early days yet, but first look suggests that the above would be only marginally cheaper (almost not worth it) than putting a discreet pi pico on-board
oh, and of course, these will be fully populated boards! just add keycaps and ‘go’
Had a little play, using some SMT buttons i’m using in another project. These switches aren’t quite correct for this project – I need ‘square’ button-y bits and preferably ones with a small sticky-outy or inny bit that’ll let it capture a keycap straight.
Assuming the A500 Mini is 1/2 scale, like the C64Mini was then it’s looking good for keyboardification.
Half that gives about 235 x 162. take a bit off the 235 for the case thickness bit – gives 225. then height is set roughly by the number of keys ‘down’ and eyeballing the various membranes i’ve found!
However – I don’t know the internal space availability of the A500 yet – so plan going forward for now is to prototype as a 2 part PCB.
One design part of the C64 Mini keyboard kit I never really liked is the standalone Arduino Pro Micro mounted on the rear due to being no space. Adding it to the main PCB was also out of the question as the separate components would have been at least double that of a ‘cheap’ arduino.
I’ll keep a 31 way (ish) connector on the main keyboard part, so it essentially acts like a traditional Amiga Keyboard. I’ll then have a ‘special’ RP2040 based PCB that converts the Amiga matrix into USB for the A500.
I’m currently working on a design assuming I can use the same again. There’s very few switches on the market with a ‘square’ style centre part that can capture keycaps. I have leads on a few others, but plan this time is to find surface mount versions and try to get a batch ‘mass produced’ – i.e. little to no soldering needed for you lot!
Early days yet, it’s been quite hard to ‘get back into the grove’ . here’s hoping I get this finished in 2022!
Apolgies for any delays and people waiting on keycaps….
I believe I may have reached the end of life of my original Photon Mono printer. for the past couple of months, i’ve been having more and more print failures, and have had no idea why. I’ve approached the problem analytically to figure out what’s wrong
Where it started –
I had a proper working file that ‘just worked’ – exposure about 35s for the first layers and about 1.8s per other layer
That started failing a bit. some keys were printing incomplete. I increased the exposure slightly and success again.
More fails, this time the first layers were coming off the build plate. I increased the exposure for the first 4 layers and success again.
had many minor creeps of fails, up to now where i’m at around 50s for the first layers exposure and 2.2s per layer.
I figured maybe the temperature in the conservatory is too low – Nope, iterating a bunch of exposures with the printer near the radiator in the living room also had nothing but failures.
So, after a good 15 fails in a row, many caused my me experimenting with extremes, i’ve given up with the photon mono. There’s many things it could be, but I’m thinking it’s feasible that the LCD has finally ‘failed’. I’ve easily gotten 1500 hours of actual print time on the thing – well over 1000 will be just the production keycaps at 6.5 hours each!
And a few other things….all of which are quite finickitey and throw a wobbly at the slightest provocation! – Linux is fun eh!..
I’ll eventually get around to step-by step documenting and linking each step to ensure a good build environment so that others can duplicate what I’m doing
Once it’s all compiled, I drag the .uf2 file over to the pico (after holding bootsel whilst plugging it in) the thing reboots and becomes a keyboard
Ensure the Keymap is correct
Finish the basic keyboard layout, testing all basic keys
Introduce shifted keys
introduce ‘layers’ to ensure special keys are correct
introduce fancy stuff
Where this is going……………..The RP2040 Chip is fairly priced against the 32u4. I’m hoping that I can eventually switch the C64mini keyboard over to a fully SMT ready assembled kit – just add keycaps. And, i’m hoping I can do that for the Amiga Mini!, as much as I love soldering 600+ points, I appreciate some of you out there don’t!
And, I’ve another TOP SECRET project on the go also…It’ll blow yer mind! but, in 2022 that one, it’s a long burn that ‘looks’ finished (i’m holding it in my hands now!, all 2 circuit boards and about 100 3D printed pieces) but, needs quite a bit of work behind the scenes.
Also, Blinkenator, slow going, but I’m really trying, it’s just hard getting over this hurdle where it must be soldered….one last thing to try!
And, final before I go to bed, the C64 mini running the keybaord upgrade kit with pi Pico transplanted brains!
It’s being captured via a HDMI capture dongle and OBS studio so I can use my laptop as a test monitor!
There are only a couple of extremely tricky issues remaining now! they may need macros, and may not even be possible
Note with this firmware – It works perfectly with ENGLISH Language and UK Keyboard layout set in the firmware…
I hope to eventually be able to create more localised keymaps to change behaviour on boot so every language in the mini works well. IF there’s any pressing issues, please contact me, I should now be able to quickly and easily tweak a couple of keys for you.
Also, the Firmware will be part of the QMK Github soon, so you can download and tweak away yourselves!
To Upgrade your Keyboard, I’m finding QMK ToolBox to work brilliantly
Most older fimrwares out there will need to have B held down whilst shorting the reset jumper at the top of the keyboard inside , for whatever reason though t
I’ve found this a little flaky for whatever reason, sometimes mashing down every key whilst hitting reset does the trick
To make that more professional…….I now have configured the Bootmagic Lite.
To Update the firmware after this update, simply fire up QMK TOOLBOX, connect your keyboard to a Laptop. Hit ‘auto flash’, select the MCU (see picture above)…then Hold 1 and short the reset jumper inside the keyboard.
I’m still learning how configure all this, so bear with me, it’ll be slick just like those professional Mechanical Keyboards in no time*
*by ‘no tiime’ I mean potentially months and months as i’m tinkering in my limited spare time to add this extra functionality