Freeplay CM3 GBA clone Kit.
-
@dragu si tu sais cross compiler mk_arcade_truc je peux t'expliquer comment avoir le beurre et l'argent du beurre. Il sera mis à jour lors de la grosse maj technique normalement
-
Aujourd'hui le premier boîtier noir est arrivé d'Espagne, c'est même un Nintendo original. Alors, je peux commencer la première phase.
-
Ok, I continu in Frenglish, and the adaptations on shell parts.
Comme les descriptions et surtout les photos dans le Web ne sont pas très explicites, je raconte ici. Je suis d'avis de faire d'abord la partie arrière complètement avant d'attaquer le devant.1. Partie -The Back Part-
J'ai préféré fraiser le plastique, la découpe à la pince est brutale et endommage les endroits adjacentes. Mais il faut pour bien faire une table coordonnée.
La seule et première découpe à l'arrière du dos est la petite bosse entre piles, les Lithium ne l'ont pas.
Le vrai travail est à l'intérieur, d'abord avec les cloisons autour du slot cartouche. Il n'est pas nécessaire d'aller trop profond. Le même niveau que la rainure transversale, donc +- 1,5mm du fond, est suffisant. Le CM3 est très plat. S'il existe un pilier avec 4 branches comme sur la photo, il faut le réduire au même niveau.
Dans la traverse de la glissière cartouche, les deux élévations rectangulaires sont également à fraiser +-1,5mm plus bas que les piliers qui supportent la platine.Ici on le voit encore mieux, le petit renforcement au milieu est aussi raccourci, finallement tout obstacle à la platine. Du côté de la prise USB, la platine a quelques extrusions, les découper en biais vers l'intérieur va normalement suffir.
Après il faut faire de la place pour les deux connecteurs des piles Lithium. Ils sont montés tout comme le CM3 au revers de la platine. Il y a juste les séparations à enlever et à l'endroit le plus près de l'extérieur environ à +- 1,5mm du fond. Comme c'est en biais ce sera plus haut vers l'intérieur. De cette façon environ 1,5mm reste libre entre les connecteurs et le boîtier. Avec 1,5mm on est partout bon.
L'avant dernier travail de découpe est pour le régulateur de volume, il faut dans chaque direction enlever 1mm de plus. Des côtés et vers le bas.
Finallement il faut adapter des découpes pour les connecteurs de la platine, alimentation, carte SD, HDMI mini, USB. Le mieux c'est de faire des encoches avec un skalpel pour marquer les endroits avant de fraiser ici. C'est maintenant d'autant plus simple que la platine entre déjà majoritairement.
Si quand même cela bloque encore, il se peut que la petite platine avec les switch X et Y dépasse avec les fils soudés. Il faut alors les raccourcir, surtout vers l'extérieur ou le boîtier devient plus étroit.
Et alors la platine glisse sans effort d'elle même à l'intérieur de la partie arrière.
On voit aussi qu'il reste pas ma d'espace libre pour le CM3, évidemment pour un réfroidisseur et je pense que avec cette ouverture pour les cartouches il sera refroidi assez bien.
à suivre.
-
2. Partie -The Front Part-
Ici, pas mal de travail et haut risque, mais sans risque pas de plaisir
Je suis d'avis de commencer avec les boutons supplémentaires, parceque si on merde il faut pas refaire tout le travail à l'intérieur, et il y en a.
Commençons donc avec les 2 trous pour les touches Y et X. Comme j'avais déjà dis, il y a un template dans le kit et il faut que les trous soient assez bien centrés.
1er problème, même si le template glisse assez bien sur les boutons B et A, ceux-ci ont beaucoup de jeu dans le boîtier, donc il vaut mieux trouver un centrage plus ferme. Je l'ai trouvé avec 2 marqueurs (Schneider Topliner 967) introduits par l'intérieur. Il faut savoir, tout est ici fait pour les forêts américains, donc les trous sont 2,35mm. Il faut marquer le centre avec une pointe.Moi j'ai choisie un 4mm bois avec une pointe bien centré et aiguisé pour le premier forage
Et là est venu le moment du choix, plein risque garder la position, mettre une fraise 6mm pour bien faire à 6 couteaux en tête et finir le trou. Ou attendre la fin des travaux intérieurs et ajuster le fraisage sur la position centrale des switch. Ensuite comme les boutons sont 6mm, on peut agrandir manuellement ou avec une fraise de 6,4mm (Dremel). Dans cet matériel un forêt ne marche pas très bien.
Comme j'ai fraisé avec une foreuse de table, le trou a automatiquement passé à 6,3mmEt comme on voit. c'est bien centré. Mais pour le prochain boîtier je serai plus prudent en choisissant la deuxième méthode.
Continuons avec l'intérieur. L'écran TFT a une dimension de 55 x 77 mm, et il faut créer la place. Donc il faut complètement enlever la séparation du coté hautparleur sauf un petit bout de 2mm indiqué par la flèche, qui est l'arrêt du ressort du bouton R, (shoulder button) En face il faut gratter aussi et raccourcir les coins dans la partie large et aussi fraiser les élévations à plat. Ici j'ai du refixer la carcasse au moins 10x et réajuster le fraisage. Le prochain boîtier ira plus vite.
Par la suite j'ai trouvé qu'il était nécessaire de fraiser la cloison derrière la prise USB, et même entierement. L'arrêt pour le ressort du bouton R est ici encore mieux visible.
Pour les "Shoulder buttons" il faut découper également pour faire de la place pour les touches microswitch de la platine. D'abord à droite, en nettoyant aussi le bas des trous pour les boutons Y et X.
Idem du coté gauche.
Il faut alors aussi adapter les prises de la platine, alimentation, SDcard, HDMI mini et USB à cette partie de la coque.
La dernière découpe est à faire dans le bouton marche/arrêt qui est ici momentané.Ensuite il faut assembler tous les parts du puzzle et fixer avec 2 vis la platine à la partie frontale. Ici les vis en trop doivent être enlevés par la suite puisqu'ils fixent les 2 parties de la carcasse ensemble.
Le plus important, ça marche, pour le moment en Retropie, donc les bricos sur Recalbox sont ouverts. Affaire à suivre.
-
@dragu pour info, on a trouvé un driver tft tres rapide et qui peut atteindre 60fps (contre 20-25 actuellement) on va voir pour l'intégrer dans l'année
-
@Substring
Merci pour l'info, pour le moment je suis toujours sur Retropie, comment il disait déja, Jean-Piere Coffe ? -
@dragu que retropie c'est de la salade en sachet ^^
-
@Substring
Le comble, le son, il marche toujours pas en Retropie :(, par contre, je suis arrivé à booter en Recalbox (sur écran hdmi) , et là, le son du speaker fonctionne. Bon après il fait la boucle, et alors il faut enlever les piles. Mais, mais, j'ai trouvé un bouton Hard-Reset sur la platine, donc un autre trou de balle par derrière et résolu aussi. Enlever les piles n'était vraiement pas une solution durable pour les batteries et leur connecteurs. -
J'ai encore fait la modification aujourd'hui, ce qui prouve à nouveau qu' un informaticien doit toujours être équipé de son cure-dent.
Autre modification importante, surtout pour ceux qui achètent le Kit avec le régulateur de la luminosité. En effet il est branché a l'écran d'un coté et à la platine de l'autre, avec deux connecteurs plat pour circuits flexibles. Et le second exerce une pression sur l'écran par le compartiment des piles. Il faut là aussi fraiser une partie pour enlever la pression.
-
I will try to continu in English from now on, as @Flavor (Ed Mandy, the project leader) will otherway not be able to read here.
I advance, so first I found in my stock an unpowered USB Hub working for Wifi+USB keyboard. I dont wanted to use a powered Hub, I have only one Freeplay CM3I also understand functioning off the power momentary switch. In general you must hold it till the green led comes on. This was not working in Recalbox, and the reason is simple. The gpio 20 must be activated during loading of the system, to maintain the power. I resolved this for the moment with an entrance in config.txt.
dtoverlay=gpio-shutdown,gpio_pin=20,active_low=0,gpio_pull=down
And for shutdown, same procedure with desactivation. Therefore I badly needed for Recalbox my tooth stick.....
So, this should be in start and shutdown shells, peanuts and I will make this in near future.
But first, I must have the GBA-box on my local network, I think my job from today. -
@Substring
Allez la France, a... bad, channel, excuse. So I have now connected keyboard, Wifi and hdmi screen, together with Recalbox 180330 (that I know). The waveshare display is not my issue for the moment, I dont think this would be a major problem.. But all games works fine ! With sound from speaker. And no software errors at all. So I am now on the gamepad, that Recalbox dont recognize. I was stealing the Retropie version of modified mk_arcade_joystick.ko and installed it in /lib/modules/4.4.13-v7/extra and /lib32/modules/4.4.13-v7/extra. I also copied es_input.cfg modified with the Freeplay GPIO into recalbox/share/system/.emulationstation and same with share_init...
But he cannot find always the gamepad. So, I am swimming and as I have the source for mk_arcade_joystick.ko, maybe because it is an 4.14 version, it dont run under 4.4. ? But it is C so may be compiler difference or other problem. I dig further. -
@dragu kernel modules are valid for the X.Y branch, don't expect them to run on a different version
-
@Substring
I keep digging, finding the apple under the bananas. -
@Substring
Yes, and after control I can confirm that the actual version in Recalbox is 4.9.4 A and seems to work with PIx GPIO connections to controller. So there should be a solution. Its basically a C Program loaded as object in run-time by the kernel. -
@Substring
I think that the actual installed mk_arcade_joystick_rpi.ko that works on PI3 should also work on CM3. Problem, the GPIO is different, so I ask myself where to configurate this. I have in etc/modprobe.de a file mk_arcade_joystick.conf, described also with the kernel object. And insideoptions mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20,-1,-1,-1,-1 hkmode=2 options mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20,-1,-1,-1,-1 hkmode=2
Problem also, map=4 seams strange to me. I think @LumberJack could help here, because he is the keeper of mk_arcade_joystick_rpi.ko.
-
@dragu the most probable reason is that the ko included in freeplaytch/retropie is not the hotkey branch that we are using, but the master branch, which has different options. I should sooner upgrade the hotkey branch that will have the same features as the master branch (tested by @ian57 and myself). I may compile one for you if you wish
-
@Substring
I compared an older Freeplaytech image from 21.03.18 and the .ko is exactly the same as we use in Recalbox, I made Hex compare and length also 11864, so it should work with basic gpio buttons. In this case, in /etc/modprobe.d/mk_arcade_joystick.conf you have thisoptions mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20
Later on he recompiled mk_arcade_joystick_rpi.c with own modifications. But this could just be a second step. Normal buttons should work as they work for PI3 also. now GPIO is different, where he knows this and than you have in the description from mk_arcade_joystick_rpi :
Then create the file
/etc/modprobe.d/mk_arcade_joystick.conf
:sudo nano /etc/modprobe.d/mk_arcade_joystick.conf
and add the module configuration :
options mk_arcade_joystick_rpi map=1,2
With my basic knowledge of Linux, I am hanging, but I believe that it is before all a configuration problem.
-
@Substring
And exactly when I was writing, I have some reactions on the GBA buttons ! Some wrong but it begins to work, yeah ! The apple is near. -
@Substring
@LumberJack
So, for the daily report. I have always the problem that I dont arrive to register my own gpio schematics in Recalbox. By chance vertical axe from standard Recalbox is the same in Freeplay, so this works. And with sdl2-jstest he show me :Joystick Name: 'GPIO Controller 1' Joystick Path: '/dev/input/event2' Joystick GUID: 15000000010000000100000000010000 Joystick Number: 0 Number of Axes: 2 Number of Buttons: 9 Number of Hats: 0 Number of B***s: 0 GameController: not a gamepad Axis code 0: 0 Axis code 1: 1 Button code 0: 304 Button code 1: 305 Button code 2: 307 Button code 3: 308 Button code 4: 310 Button code 5: 311 Button code 6: 314 Button code 7: 315 Button code 8: 316
In /etc/modprobe.d I have mk_arcade_joystick,conf (and also under name mk_arcade_joystick_rpi.conf this line
options mk_arcade_joystick_rpi map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20
But I dont arrive to register in /dev/input/js0.
Also if I indicate in recalbox.conf map=4, what should be legal after the github description# ------------ D2 - GPIO Controllers ------------ # ## GPIO Controllers ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1) controllers.gpio.enabled=1 ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2) controllers.gpio.args=map=4
Recalbox dies with kernel panic, this should be an issue in Recalbox.
So, my only chance, I think, to redefine it under map=1. That's it for the moment. -
@dragu said in Freeplay CM3 GBA clone Kit.:
map=4 gpio=4,17,6,5,19,26,16,24,23,18,15,14,-20
this is what you'd add in te line. But:
- not yet handled
- our KO doesn't handle custom mappings. this is why told you i'd compile one for you