Freeplay CM3 GBA clone Kit.
-
Freeplay kickstarter project to integrate the Pi0 or the CM3 (PI3 naked, but idem 4x1200Mhz cores) in one of the cheap GBA spare shells from China.
The Raspberry CM3 is the follower of the CM1 based himself on the PI1.
There are 2 versions, standard and Lite. Here we need Lite because no memory onboard, but provided by external sd card reader. The form factor is based on Dimm memory modules, and the size about a few mm identical to the PI0.Today arrived my Freeplay CM3 kit, and like Ed was indicating a value of 24$, no import and no TVA to pay.
Everything comes in a solid cardbox, with a plastic postbag around.Inside you find first a triangular screwdriver for the GBA shell, but very often they are also delivered with the spare shells.
The advantage to not need a printed Shell has on the other side the disadvantage that there are a lot of small parts to cut away on the shells, I prefer milling.The most difficult part should be 2 more holes outside for the additional X & Y buttons, missing on the original Game Box Advance.
You have in the kit (you see it), a piece of printed board as template for the new holes. And also 2 grey caps for this buttons.
Then, 2x 1000mAh batteries 3,7V.
The waveshare 3,2" tft screen, and last but not least the Raspberry CM3, that you dont see, because it is inserted on the back from the main board. But it is delivered all together.
Upper you see spare cover glass for the GBA Shell and is real glass compared to the original GBA and the China display covers. Just to scratch with diamonds.
Concerning the main board, you see a small board from another color with some additional chips. This is an option and brightness controller for the backlight. It will allow to save some battery power, I think.For the moment, I wait for shells. A pure black will arrive rather quick, I will use it for training. I want to put it later in a black-transparent shell, but this are sold out in Europe, so they will come little later from China.
-
-
@Dragu je suis fachée avec langlais peux tu faire une explication em français s il te plait ça a lair interessant.
-
@acris
Volontier, le link et les images restent en anglais.
Donc, Freeplay a comme origine un projet kickstarter qui s'est réalisé et avec comme but de mettre dans des boîtiers GBA que tu trouves en masse sur le marché chinois (à partir de 5 Euro). Il y a une platine pour le PIzero et une platine pour le CM3. Pour le PIzero un projet comme le PiGRRL Zero semble plus intéressant parce que beaucoup plus bon marché. Mais la version CM3 est unique avec les 4x1200Mhz du PI3 et présente la plus performante CPU au niveau d'une si petite console. Et il faut pas oublier que peut-être un jour le CM3 est remplacé par un CM4, Pin compatible. Donc comme seul projet commercial existant une option. Mais pas un cadeau. Le problème avec ces projets, peu de platines=prix élevé et souvent pas de nouvelle production à la fin des stocks.
Comme le Pigrrl, le soft est basé sur Retropie et l'initiateur de Freeplay était déja sur le site ici pour voir l'option Recalbox.
Le travail à faire d'abord est d'adapter les boîtiers, baucoup de découpes sont à faire. Surtout comme le GBA n'a pas de boutons X & Y, il faut faire les trous pour les ajouter. Les switch sont déjà sur la platine, pour les trous il y a un template avec le kit pour les forer au bon endroit. Je suis plutot fraiseur, ça devient plus propre que les découpes au scalpel.
L'écran est un waveshare tft 3,2". Vous savez qu'on a un peu de salade dans les drivers du kernel actuel, souvent il faut des versions antérieures. Bon, Ed (l'initiateur) a trouvé la plupart et je les ai contrôlé par la suite. Le vrai projet débutera seulement après que tout est monté et fonctionne sous retropie. D'ailleurs il y a certainement au niveau de l'installation des drivers que je pourrai utiliser. Il ya la source d'un mk_arcade_joystick_rpi qui utilise non seulement les gpio du kit, mais aussi la fonction très spéciale du Hotkey.
En fait il y a une touche commune Power/Hotkey. Une pression courte sur le bouton met un preset sur Hotkey, la pression sur une autre touche fait la combination. Une pression longue éteint et allume la bécane.
Je vais commencer doucement en Recalbox, d'abord le boot, après Wifi/bluetooth et un écran hdmi, et clavier. Mais c'est pas pour demain. -
@dragu pour la fonctionnalité hk qui fait power, à mon avis c'est mort. Éventuellement on peut ne mapper le gpio que pour 1 joueur et se libérer le restant du gpio pour un bouton power. Ou, dans une maj à venir, remapper les boutons du gpio. Mais là, l'idée du HK moultipass, je suis sceptique
-
@Substring
Tu sais qu'il y a des gens qui s'arrètent pas devant des sacrilèges....
Patcher modules.deb.bin en serait un, je pense. Le problème aussi probablement pour le PIGrrL de @Ratte est que les gpio sont fixes dans RB. Et compilés dans le kernel object mk_arcade_joystick_rpi.ko. Le recompiler avec les données propriétaires au handheld en question avec le même nom ou un nom différent semble une option. Tu sais, les nains commencent à marcher en tombant sur la figure, comme on a tous fait l'expérience.
D'ailleurs une de mes premières opérations, je vais me sucer les fichiers Retropie après installation. -
@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.