Close

Current state of things

A project log for Funkey Zero

Fun on a keychain - based on LitcheePi Zero

cinventc.Invent 04/22/2018 at 14:502 Comments

Hi everyone, many logs/files/links have been published in the last couple of days ! We’re very excited to be sharing all of this with you but we know it’s a lot of information, so if you are a bit lost and wondering the exact state of advancement of Funkey Zero this log is for you.

Mechanical design and printing

The mechanical design is done and tested. If you remember that Keymu was made with Solidworks, this time, we redesigned everything from stratch using Fusion 360. You can find the source files in the project links or here.

We printed and tested the tolerances of our design using a Prusa i3 MK2 with a 0.1mm precision and a classic nozzle width of 0.4mm. Appart form the buttons which are still a bit too large, your prints should all fit together pretty easily. One precision though: we printed the top part in 2 halves, as well as the bottom part. See this log for more precisions. It is up to you to follow this method or not obviously but, believe us, it leads to pretty nice results.

Electronics and Assembly

Right now we have soldiered the essential parts : power management, screen, audio and debug pins. We have cut a hole in the bottom half of the case on order to let debug serial cables get in as you can see in this picture :

The PCB/Case assembly went great:  for now there are no problems of tolerances, but we still have not put the snap domes and tested the buttons, so we’ll keep you updated.

Regarding what’s been soldiered we had some minor issues for the screen and had to add a few cables, the power management part and the audio Jack work perfectly but not the speaker for now. It might be the soldiering itself or something else, we’ll have to dig a bit deeper but it should not be a serious issue.

The BOM and schematics have been shared with you obviously, so if you want to join us in this debugging fun we’ll be more than happy to welcome you 😊

Software side 

On the sofware side of things, things are going pretty smoothly for now but we still have a lot of work.

Boot time and Logo

As you might know from our log "Linux Distribution", we developed our own linux distribution from the ground up for Funkey Zero and we are very proud to say that the boot time in under 3 seconds. It’s so fast we made a video for you to be able to believe us :

As you can see we also added a boot logo, which is – for now – very simple and prone to evolve. But it’s still nice to be welcome by something else than a serial console.

Usb mass storage

Part of our new distribution is the possibility to connect Funkey Zero to any computer and it will be mounted as a USB mass storage device… basically a usb key. There is no easier way to transfer your roms than this :

Optimized Emulators :

Guys, having a 240x240 screen resolution is great. On Keymu the resolution was 128x128 and was acceptable but not very comfortable to play games such as Zelda or Pokemon in which you need to read a lot. This time, with Funkey Zero, the resolution is very comfortable, so even if our processor only has 64MB of RAM and a single core 1.2Ghz processor, we wanted to be able to make the most of it.

Thanks to optimized emulators for ARM made mostly by notaz for the Pandora, we were able to re-adapt and re-build many emulators for our ARM v7 processor and our 240x240 resolution. We realized that once optimized, the V3S processor was actually a surprising powerhorse ! It even runs PS1 games at only 70% CPU load. And guys, oh what a pleasure to hear and see Final Fantasy IX running on this thing !!! Words are not enough, just watch :

For the future, we plan to port many more emulators and the work is in fact already underway so stay tuned 😉

TODO

So… if in the video above you didnt see me playing it’s for a reason : the buttons and the whole button mapping interface is still under development. It is in fact quite a lot of work to map GPIOs to keyboard letters. We had to recompile the Kernel to add the uiput module and basically pretty much recode our own version of Pikeyd (a library for raspberry dedicated tot his issue) in order to adapt it to the V3S and to our customized OS. The work is almost finished so you should see a video of us playing pretty soon.

The only unknown yet is the frontend app we will use. Most of them, like Emulation Station, require MESA, which is very heavy and risk to overweight our lightweight custom distribution for a few animations… So we’re still looking into it 😉

Anyway thanks to you all for your interest in Funkey Zero and we promisse a lot of news very soon, so stay tuned !

Discussions

deʃhipu wrote 04/26/2018 at 10:33 point

I wonder if it wouldn't be easier to make the buttons act as a gamepad instead? I think that most emulators support it. I really can't understand why all those pi-based consoles emulate keyboard instead.

  Are you sure? yes | no

c.Invent wrote 04/26/2018 at 11:29 point

Some emulators support it yes, but most (and especially the one we use) are based on SDL 1.2 input management which does not handle GPIO inputs (to the extent of my knowledge). A good compromise then for cross-compatibility between emulators is to map gpios to keyboard inputs which are handled perfectly by SDL 1.2. 

Another reason why we developed our own interface is that not only can we map gpios to keyboard keys but we also made it capable of handling gpios differenlty for example by lauching shell scripts or programs. For instance, press select and down at the same time and instead of emulating 2 keyboard inputs, we can make ALSA turn down the volume. Press select and L1 and you can have L2. Press select and right and you can increase the brightness of the screen... :)

  Are you sure? yes | no