Verso fine gennaio ho preordinato la mia prima stampante 3D, una Anycubic Kobra X. Ho approfittato dell’attesa per cercare un’applicazione CAD open source (o gratuita per uso non professionale), e ordinare qualche rotolo di filamento. Per iniziare: due di PLA+, due di PETG e uno di TPU.
La scelta dell’applicazione CAD e le prime stampe
Confesso che ero un po’ arrugginito sulla progettazione tridimensionale: usai (la scelta del passato remoto è voluta) MiniCAD a metà anni ’90 e SketchUp più o meno una decina d’anni fa.
Ho scelto FreeCAD, progetto open source disponibile per Windows, macOS e Linux. Per fare pratica ho progettato, armato di calibro, la ruota di un vecchio trenino Lima che mio figlio aveva chiesto in regalo al mercatino domenicale per un euro, mancante appunto di una ruota; i supporti del cassetto superiore della lavastoviglie; un piccolo perno dell’anca di un modellino Goldrake regalato a mio figlio da babbo natale.
La stampante è arrivata a metà aprile: la ruota del trenino e il supporto della lavastoviglie sono risultati perfetti alla prima stampa, mentre per il piccolo perno ho dovuto fare qualche aggiustamento.
La genesi e l’evoluzione del progetto
Avendo preso confidenza con FreeCAD – un programma complesso di cui ho iniziato a usare solo la sezione di part design – mi sono poi dedicato a un progetto a cui pensavo da tempo: creare tasti personalizzati per il mio Commodore 64 con la scheda Ultimate di Gideon.
Queste sono tutte le iterazioni che mi hanno portato alla versione fnale dei tasti. Ero partito da un’idea di tasti in stile “macchina da scrivere”, poi abbandonata in favore di tasti a isola, come nella maggior parte delle tastiere moderne.

L’idea dei tasti stile macchina da scrivere era carina nella teoria, ma la presenza della molla obbliga a progettare una forma a cilindro; dopo aver posizionato qualche tasto, il risultato non mi soddisfava. Sono quindi passato a una più tradizionale forma quadrata, iniziando con una dimensione di 15x15mm; rimaneva però troppo spazio tra i tasti. La base dei tasti originali è di 18x18mm, per cui ho provato a stamparne alcuni con questa dimensione. Gli originali hanno una sezione a trapezio, lasciando in cima uno spazio confortevole tra un tasto e l’altro; estrudendo i 18mm per tutta l’altezza, risultavano invece troppo vicini. Ho tolto 1mm per lato, arrivando alla dimensione finale di 17x17mm con un’altezza di 8mm.
Ci sono diverse versioni della tastiera del Commodore 64, fisicamente differenti: il progetto è adatto a quella più comune. Dato che i tasti a isola sono complanari e tutti della stessa altezza, non serve tener conto che sull’originale ogni riga di tasti ha un profilo diverso; di conseguenza le dimensioni univoche sono 4:
- il quadrato utilizzato per la maggior parte dei tasti;
- il rettangolo utilizzato per SHIFT, CTRL, RESTORE e i tasti funzione;
- il rettangolo del RETURN;
- la barra spazio.
La modellazione in FreeCAD
Ho progettato i modelli 3D in modalità parametrica: in breve, significa che nel file CAD ho definito alcune variabili come ad esempio keyWidth, a cui ho assegnato un valore iniziale di 15mm, e quando ho disegnato il quadrato che rappresenta il tasto, ho indicato che doveva avere la larghezza pari al valore contenuto nella variabile. Di conseguenza ho potuto sperimentare diversi ingombri e altezze cambiando semplicemente il valore di qualche variabile, con il modello che si aggiornava automaticamente. Per preparare le quattro varianti del guscio esterno di ogni tipo di tasto, è stato sufficiente cambiare il valore della larghezza.
Tirando le somme, ho creato quattro modelli distinti per i gusci esterni, e uno per il supporto del gancio a croce, che è presente una, due, o tre volte per ogni tasto. Ogni variante di tasto è stata poi assemblata in FreeCAD posizionando il guscio, i supporti, e aggiungendo i rinforzi nella giusta posizione; infine, il modello assemblato è stato esportato in STL.

Una particolarità dell’incastro a croce, che ho notato solo mentre lo misuravo con il calibro, è che su ogni lato della croce c’è un piccolo rigonfiamento, che corrisponde a una tacca nel tasto. È ciò che produce il “click” quando si inserisce il tasto e lo mantiene saldo al suo posto. Il tasto si è incastrato alla perfezione alla prima stampa.
Problema 1: gestire testi complessi nello slicer è impossibile
Il primo problema che ho dovuto affrontare è la pessima gestione del testo nello slicer, nel mio caso AnycubicSlicerNext, ma presente anche in OrcaSlicer, da cui deriva. Succedeva sempre la stessa cosa: aggiungevo un modifier di testo al modello del tasto per “disegnare” il carattere con un secondo colore, assegnavo una profondità, attivavo on surface, e sembrava funzionare correttamente – anche in anteprima. Quindi duplicavo il tasto per preparare il successivo. Ma quando riaprivo il progetto salvato per continuare a lavorarci, lo spessore del modifier tornava a 0, on surface era disabilitato, e spesso le coordinate del testo risultavano modificate. Oppure si modificavano appena facevo doppio click per ripristinare lo spessore del testo.
Lo spessore che torna a 0 è decisamente un bug, mentre credo di aver capito perché le coordinate si modificavano: appena inserito un testo (nel mio caso una singola lettera maiuscola), le coordinate si riferiscono a un box generico, ma quando si definisce il contenuto e si chiude il dialogo, l’applicazione ricalcola le coordinate sull’effettivo ingombro del segno grafico del carattere. Oltre a essere un problema irrisolvibile, mantenere coerenti tutti i tasti – specialmente quelli che hanno un numero e un simbolo oppure due simboli – è un lavoro manuale ingestibile nello slicer. Lo strumento di testo va bene per una semplice scritta scavata, colorata, o in rilievo su un modello, ma non ha la precisione necessaria a un progetto come quello che stavo sviluppando.
Inoltre la gestione dei font nello slicer è piuttosto macchinosa: Barlow condensed ha 18 varianti – thin, thin italic, light, light italic, medium, regular, e così via – ma lo slicer mostra semplicemente “Barlow condensed” e le icone di grassetto e corsivo. Per scegliere un’altra variante è necessario aprire la sezione Advanced e provare tutte le opzioni del menù Collection – che sono semplicemente dei numeri – fino a trovare quella desiderata.
La soluzione a questi problemi sul testo è stata quella di usare un file SVG per ogni tasto. In questo modo ho ottenuto un controllo completo del posizionamento di ogni glifo, e i modifier SVG non presentano il problema dello spessore a 0.

Creazione dei file SVG
Usando la suite Affinity (ora acquisita da Canva e completamente gratuita) ho preparato ogni tasto su un livello a sé. Anche l’esportazione in SVG ha avuto qualche problema inaspettato, per cui riporto la mia esperienza e ciò che ho imparato, per far risparmiare tempo a chi vorrà sviluppare un progetto simile, o preparare degli SVG che devono rispettare le dimensioni reali di un modello da stampare.
- Il formato SVG in Affinity non esporta le dimensioni assolute del disegno: la viewbox è semplicemente impostata a 100%, per cui è necessario disabilitare l’opzione Set viewbox in esportazione. Da quello che leggo in rete, forse Inkscape può salvare le dimensioni assolute del disegno con width e height in mm, ma non ho provato.
- Lo slicer – nonostante il file SVG sia essenzialmente vettoriale – lo importa a una risoluzione di 96 dpi: per avere una corrispondenza tra la dimensione in Affinity e la dimensione nello slicer, va impostata questa risoluzione anche nel documento Affinity.
- È necessario attivare l’opzione Export text as curves per trasformare il testo in tracciato durante l’esportazione.
- A 96 dpi, le curve su un documento di 17mm risultano troppo grezze, per cui è necessario impostare la risoluzione del documento a un multiplo di 96, e scalare il file SVG nello slicer. Esempio: si raddoppia la risoluzione del documento (96 x 2 = 192 dpi), e nello slicer si dimezza (si importa l’SVG e si scala al 50%).
- Per poter avere un controllo assoluto sul posizionamento dell’SVG sul modello, è necessario che l’ingombro del contenuto del file corrisponda esattamente alla dimensione del modello. Nel mio caso ho inserito quattro piccoli triangoli sui vertici del quadrato di 17x17mm. I triangoli sono esterni al tasto, perciò non influiscono sulla stampa.
- Per alcune prove di tasti più “creativi”, dove parte del glifo era esterna al quadrato di 17×17, ho dovuto trasformare il testo in tracciato prima di esportare il file, e rimuovere la parte del poligono che sbordava, altrimenti non era possibile centrarlo correttamente nello slicer. In pratica: tutto il contenuto di ogni tasto deve stare nel quadrato di 17×17.
Inoltre, mentre lavoravo su alcuni tasti con simboli, ho dovuto cambiare font o dimensione di alcuni glifi per renderli più uniformi, come del resto è stato fatto sulla tastiera originale. Se si osserva la tastiera originale, le virgolette sono state ingrandite, l’asterisco è probabilmente un disegno a parte che non appartiene al font, le parentesi sono rimpicciolite, cioè non hanno una dimensione coerente con lettere e numeri: in pratica, questi glifi hanno una dimensione visivamente uniforme, oppure adattata al poco spazio disponibile. Ho cercato di non avere variazioni troppo squilibrate, ad esempio non ho modificato la dimensione delle virgolette doppie o singole, ma ho rimpicciolito leggermente il simbolo del dollaro perché altrimenti le linee verticali sporgevano troppo; ho dovuto scegliere un altro font per le parentesi quadre, che erano troppo grandi e sottili; i simboli +, – e * sono stati centrati e ingranditi, uniformando lo spessore del simbolo a quello delle lettere.
Problema 2: gli steli dei tasti non sono tutti uguali
Un problema di cui mi sono reso conto troppo tardi è che, come da tradizione Commodore, non tutti gli “steli” dei caratteri sono uguali: su questa tastiera, 6 tasti a caso + SHIFT LOCK e RUN / STOP hanno la croce più alta. I tasti originali hanno l’incastro molto più profondo della croce sullo stelo, e quindi questa differenza è ininfluente, ma dato che volevo creare una tastiera più “low profile” possibile, avevo misurato senza rendermene conto uno degli steli corti e basato l’altezza del buco a croce su questa misurazione. Quando ho posizionato tutti i tasti, ce n’erano alcuni più alti di oltre 1mm, che fastidio!

Per non ristampare tutti i tasti, ho ristampato solo gli 8 tasti incriminati “scavando” 1,4mm di incastro nella parte superiore del guscio. Rimanevano però solo 0,6mm sopra il buco, un po’ troppo poco. Nella versione finale ho aggiunto 1,5mm al buco a croce; l’altezza totale del tasto è passata a 9,5mm rispetto agli 8mm iniziali.
Come opzione, per un look ancora più moderno, ho preparato anche versioni alternative di shift, shift lock, return e cursore.

A richiesta del mio caro amico Davide, che ha seguito il progetto dai miei primi test fino alla stampa di un set completo, ho creato anche diverse varianti dei tasti funzione. Sul suo blog potete vedere le foto di uno dei suoi Commodore 64 con la tastiera stampata in marrone e bianco.
Il risultato finale
Ecco la tastiera con tutti i tasti. I colori dei due primi filamenti PLA+ che avevo ordinato erano rosso (per la ruota del trenino) e un bianco “milky white”. Ho stampato i tasti funzione con i colori invertiti.

Ho creato in velocità anche un’etichetta, dato che nella scocca che uso è assente. Vorrei verniciare il case, per cui ho fatto un paio di prove modificando in Affinity il colore della scocca… penso che il mio preferito sia il bianco.

I tasti possono ovviamente essere utilizzati anche su un VIC 20, sempre che abbia lo stesso modello di tastiera.
Concluso il progetto, dato che il layout della tastiera del Commodore 16 è simile a quello del 64 e del VIC 20, ho preparato anche le grafiche per i pochi tasti mancanti, stampando poi un set in nero con le grafiche bianche.


PETSCII, varianti, sviluppi futuri
Non ho incluso i simboli PETSCII per diversi motivi: volevo una tastiera con un look “moderno”; i simboli sarebbero troppo piccoli per la stampa 3D; nella pratica non li uso mai. Poi in realtà ho fatto un paio di prove, e posizionandoli a lato della lettera non risultano poi così piccoli… con un po’ di pazienza potrei disegnare tutti i simboli in vettoriale, dato non ho trovato nulla di pronto in rete. Rimane il fatto che per stampare i simboli grafici serve che la stampante sia multicolore, e che abbia una buona precisione. Un amico mi ha detto di godermi la precisione della mia stampante finché è nuova, perché poi calerà nel tempo…
Dopo aver preparato tutti i tasti “normali”, con un carattere che grossomodo richiama quelli originali, ho provato alcune varianti più… estreme? artistiche? grafiche? non saprei come definirle. Con calma proverò a disegnare tutti i tasti e vedere l’effetto globale, difficile da valutare guardando un singolo tasto. Nel frattempo ho ordinato qualche filamento PLA in più: nero, blu e giallo.

Inoltre ho provato a progettare un tasto più modulare, con una base fissa e una parte superiore rimovibile, con l’obiettivo di non stressare troppo gli steli originali del Commodore 64. Non ho ancora una soluzione pratica e funzionale. Se gli incastri sono troppo piccoli, si spezzano; oppure è richiesta una precisione troppo alta per una stampa 3D e a volte si incastrano bene, altre fanno fatica, anche a seconda del colore che uso; se abbasso le tolleranze, la parte superiore si stacca troppo facilmente. Insomma, o ci lavoro ancora, oppure forse non è una soluzione fattibile.
Un’idea che vorrei finire di realizzare – il grosso è fatto, come si vede in foto – è quella del tasto “musicale”: in pratica, aggiungere quelli che sarebbero i tasti neri del pianoforte alla tastiera del 64, con lo stesso layout degli “overlay” venduti negli anni 80. Magari non servono a nessuno, o solo a una manciata di persone che fanno musica con il Commodore 64. Però sono carini.
Ho anche provato a stampare la parte superiore del tasto compatibile con i Lego, ma, a parte l’ovvia inutilità, obbliga a stampare ogni tasto con i supporti, qualsiasi sia la posizione del modello sul piatto di stampa. Per ora l’idea è scartata.
Il concetto di poter progettare un pezzo in 3D e stamparlo in casa è fantastico; forse avrei dovuto pensarci prima, ma sono contento di aver iniziato con una tecnologia più matura e meno pionieristica, e a un prezzo abbordabile.
Ho concluso il progetto nel mio tempo libero, nell’arco di una settimana dall’arrivo della stampante, imparando le funzioni di base dello slicer e qualcosa in più su FreeCAD. Magari ai makers con più esperienza alcuni problemi che ho riportato sono noti, io li ho affrontati, anzi, li sto affrontando, strada facendo.
Download
I modelli STL dei tasti, il file 3MF con tutte le grafiche, e i modelli SVG per creare tasti personalizzati possono essere scaricati su Printables.
Scopri di più da Vecchi computer
Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.