FunkyFrog - Allwinner V3s Based Retro Handheld

by DynaMight in Circuits > Electronics

128 Views, 1 Favorites, 0 Comments

FunkyFrog - Allwinner V3s Based Retro Handheld

PXL_20251125_225753549.jpg
Screenshot 2025-12-19 143209.png
Screenshot 2025-12-20 094153.png

So apparently I have an addiction to retro emulation handhelds, and also it seems that latest high is making my own. This time around I thought it could be nice to build something in an existing shell so the finished product looked more professional rather than 3D printed.

I pondered a few real cheap AliExpress 8-bit NES clone handhelds but most of them looked like the controls would be terrible and probably feel incredibly cheap. It probably needed to be something cheapish as no-one would want to buy an expensive handheld to then gut it.... then also theres no point taking something thats faster than the item you intend to put into it.

I had kinda decided on the Datafrog SF2000, it was a good size, fairly cheap to buy but built quite nicely for the price with half decent controls, plus I had one already.....

Bit of background on the Datafrog SF2000, its a budget handheld that looks like a SNES controller but with a 2.8" display and is pretty popular, comes with a closed source operating system but capable of playing upto SNES/MD pretty well and GBA fairly well. It has a very good community that have done some amazing work improving the software. It now pretty much has a custom OS with Libretro cores!

I was then deciding what I wanted to put into it, I couldnt really put an ESP32 or Pico into it, as I'd be taking a device that can play upto MD/SNES/GBA fairly well and downgrading it to something that cant play MD/SNES all that well at all. I did think about the ESP32 P4, which has the potential to maybe be on par with the SF2000 but they are fairly new.

I then started to wonder if I could use the Funkey-S design, it is completely open source after all. So I checked out the schematics/BOM, didnt seem too bad (I think I was lying to myself at this stage) CPU, power reg, IO controller, all off the shelf components and still easy to obtain.

The Funkey-S is an open source handheld, its very tiny with a 1.54’’ display and looks like a GBA SP in design but hardware wise it packs quite a punch for the size, it has an Allwinner V3s CPU thats capable of PS1 very well plus also has a lot of ports such as Quake, Quake 2, SM64. Theres also been some amazing improvements to the OS from DrUm78 (FunKeyOS) which is the base for my version.

So in theory we'd take a device that can play upto GBA and replace it with something that can play upto PS1.

The rest of the process was me copying the SF2000 mainboard as closely as I could, turns out that using an existing shell isnt as easy as I thought as all the holes and ports need to line up perfectly else things like power switches and USB ports dont fit. The SF2000 PCB wasnt exactly easy to copy either.

I did make some compromises on ports, in hindsight I could had possibly accommodated but space was already quite limited. So theres no headphone jack (technically the SF2000 port was for TV Out but I could had possibly changed to a 2.5mm audio jack) but I needed an additional button for the Menu button, felt like a good place for it and wouldnt involve any shell cutting. Also theres no volume wheel, this is probably something I could had done but would had seriously restricted space and the FunkeyOS has built in volume control in the menu, which wouldnt had fully interacted/worked with the volume wheel.

Anyway, I'm sure you're bored of me rambling on....

Supplies

Heres a list of components needed. Most will come from LCSC as theres a much lower chance of getting a fake chip. Most of the components can be sourced elsewhere including AliExpress but when searching for the 3 main IC's, the AE ones just didnt look right and I decided there was too much risk building an unproven (at the time) device with possible fake/faulty components.

So you'll want a Datafrog SF2000, AliExpress is probably your best bet. Heres a link: https://www.aliexpress.com/item/1005009457675464.html You may also get a better deal if you find one in a 'Bundle'

The screen is also from AliExpress. I spent quite a while trying to find a screen that fitted the SF2000 case (without any modifications) and was easy to buy, not from some obscure Chinese website that could go out of stock next week. Hopefully this screen remains in good quantities!

Screen (ST7789V Type A): https://www.aliexpress.com/item/1005007691230304.html

You can download the Gerber file here: https://github.com/DynaMight1124/FunkyFrog/releases its important to order at 1.2mm, all other settings can be left default.

Heres the link of components I used from LCSC. Just go to https://www.lcsc.com and copy each part number (The reference starting with C) and add to cart (or see below about the BOM list). Most will have a minimum order much higher than needed! however for the main chips like the PCAL, AXP209 and V3s, I would recommend ordering 2 of each incase you mess up! :) The below list looks alot but most of the components are not expensive. I paid about £35 delivered for enough to build 2.

  1. 30x 100nF - C14663
  2. 25x 10uF - C2840513
  3. 15x 10kΩ - C25804
  4. 13x 1uF - C15849
  5. 5x 4.7uF - C19666
  6. 4x 200kΩ - C25811
  7. 4x 2kΩ - C22975
  8. 3x 1nF - C1588
  9. 3x CBW201209U601T - C21286
  10. 3x 4.7uH - C5179447
  11. 3x 100kΩ - C25803
  12. 3x 1kΩ - C21190
  13. 3x 47kΩ - C25819
  14. 2x 27pF - C107045
  15. 2x 18pF - C107040
  16. 2x 100pF - C14858
  17. 2x 220pF - C106210
  18. 2x TS665B3J - C2681510
  19. 2x 5.1kΩ - C269716
  20. 1x TF-01A - C91145
  21. 1x 2.2uH - C167693
  22. 1x XL-1608SURC-06 - C965799
  23. 1x TS-1091B-A8B3-D2 - C557914
  24. 1x IRLML2244TRPBF - C169763
  25. 1x 4.7kΩ - C23162
  26. 1x 22.1Ω - C22958
  27. 1x 240Ω - C23350
  28. 1x 30mΩ - C422943
  29. 1x D125F2W1-2W2P43 - C41409894 (Optional for R36S battery but cant be used in SF2000 shell)
  30. 1x HX MSK12CO2-BBTM - C5149818
  31. 1x PCAL6416AHF,128 - C2652287
  32. 1x PAM8302AADCR - C112137
  33. 1x Allwinner V3s - C2687449
  34. 1x SY8088AAC - C79313
  35. 1x AXP209 - C2997895
  36. 1x TYPE-C 16PIN 2MD(073) - C2765186
  37. 1x 32.768kHz - C97607
  38. 1x 24MHz - C362340


Top tip with LCSC, you can upload the BOM to their website and it will add all the components automatically for you. You can download the BOM HERE then login/sign up, on your acct dropdown there will be a section called 'BOM Lists (Projects)' upload the excel file and it should auto assign all the parts. I would recommend changing the Quantity Multiplier to 2, it will add about an extra $10 to ensure you get enough for 2 but thats still up to you :)

SF2000

PXL_20251017_163330554.jpg
PXL_20251017_164126196.jpg
PXL_20251017_164200121.jpg

I tried to make it as least destructive as possible to the SF2000 by sourcing identical components from LCSC, however I could not locate the analog stick anywhere so will be needed, however its not essential so if you dont mind a gaping hole, the system will work without. The SF2000 analog stick isnt a true analog anyway, it basically mimics a DPad and actually uses the exact same traces.

Desolder the analog stick, I did the bigger single ground first, for this one I added some solder, heated the pad and very lightly lifted it up but for the 6 smaller pins I found adding some leaded solder and then wicking away worked. Best to ensure you dont get it too hot, so take plenty to breaks as it doesnt feel like it can take a lot of heat.

The next part we need is the battery contacts. I couldnt locate these either. I just applied some additional solder, heated up the pad and pulled them through

Thats all you actually need from the SF2000, however as I used the same components, if you really wanted you could also use: USBC port, Power Switch, MicroSD slot & L/R buttons but these are not easy to desolder and buying new replacements do not add much additional cost. Also read further down, as you can still use your SF2000 board/screen

Building the PCB

PXL_20251031_204618421.jpg
PXL_20251031_171301397.jpg
PXL_20251031_173606521.jpg
PXL_20251031_204545523.jpg
PXL_20251031_204611544.jpg
PICT0027.png
PICT0028.png
PICT0029.png
PICT0030.png
PICT0031.png

Not going to lie, this is a challenging device to solder and I almost didnt bother posting this due to the tough soldering required. It can be done by hand soldering, I have done the whole thing using a basic Pinecil v2 soldering iron with a BC2 tip so it is totally possible using 'basic' equipment however you will certainly need a microscope or magnifying glass/eye loupe. I found something like THIS worked well. I do also have a basic microscope which I did use. With that being said, this certainly isnt a novice build!

So what are the challenges? For me, they are the 3 main IC's due to the small size then to a smaller extent the inductors & crystals as they are designed to be hotplate soldered so have little to no exposed pads on the side.

As for the main IC's, the V3S chip needs to be lined up very well as any misalignment one will side continue on all four sides so its important to get this very well lined up and obviously make sure theres no bridged pins, thats where the microscope or magnification is important as its very hard to see it by eye.

The 2 other IC's are QFN packages, where theres very little exposed 'legs' ideally they should be soldered using a hotplate or hotair but you can hand solder, I would recommend tinning the pads/legs of the IC first as sometimes they can be oxidised and wont easily take solder. Plenty of flux and solder to ensure they are pretinned then wick away any excess. As for soldering, they are quite small and hard to line up for hand soldering but I found if I placed centre and ran the iron down one side to tack it down, then check the other 3 sides, make sure they are very close to lined up, if they are not, you can run your iron down the tacked side to move/remove and start again. Once its lined up, use flux and solder to solder all 4 sides ensuring the solder has gone up the 'legs' to confirm they are connected.

Note that with the crystals, the two pin crystal doesnt have an orientation but the 4 pin one does, theres a mark on the silkscreen for pin 1 and theres also a mark on the underside of the actual crystal too.

The V3s and AXP209, I did add some large vias going through the board, the idea is to solder the IC's, then add solder from the other side to complete the ground, in theory it should flow under the chip a little. May or may not be that effective but I was trying to make it as easy to hand solder as possible.

My general order of operation is: V3s, AXP209, PCAL, inductors, crystals, USBC Port, SD Slot followed by a all the various other caps/resistors/smaller IC's, then things like buttons/switches

For this section I would recommend building most of the PCB except the LCD, battery connectors and analog stick as you really want to test the PCB before you commit.

You can use the BOM and/or interactive BOM from here for values: https://github.com/DynaMight1124/FunkyFrog/tree/main/BOM

Test the PCB

I would highly recommend testing the PCB before attaching the screen as its a lot easier to do rework without the screen attached. You can desolder the screen but this can be risky and easy to rip the pads on the flex cable.

So after you've built the PCB, I would suggest plugging in the USB to a PC (with no SD card fitted) if you get a noise that the PC has recognised a device thats pretty good news, likely means you're good to go and did a much better job that I did on the first go!

If the PC doesnt pick anything up, I would suggest checking the various power rails using the test points. If you dont have any power rails then its likely an issue with the AXP209 chip (note that the 1.8v rail is the SY8088 so if you're missing 1.8v then check that), if you have power rails but no life from the CPU (via the PC picking up a device) then its probably related to the V3s, usually the best way for both is checking for shorts and reflow, make sure all the pins on the V3s are attached.

Keep working until you have all power rails and the PC picks up a device when you plug it in. There is a troubleshooting section below so if you're having issues look at that section and hopefully it can help.

Last check before soldering the LCD would be to grab the image file (in Step 5), flash it to the SD card, put it into the device and plug in the USB. It should go through the setup, the USB will disconnect/reconnect a few times. Give it about 45secs and unplug, put the SD card into your PC and it should have a new user partition with various console system folders etc. If it has done this then its likely working fine.

Build the Rest of the Handheld

PXL_20251031_204907616.jpg
PXL_20251214_214949124.jpg
PXL_20251219_115732710.jpg

Pretty simple if you now have a working PCB. Attach the remaining components to the PCB, probably easiest to do the battery connectors first. I found inserting the connectors into the SF2000 bottom shell, then placing the PCB on top allowed accurate placement of the connectors, watch out for heat so you dont melt the shell. There is a 'R36S BAT' pad, this is purely optional and not needed/used when using the original SF2000 shell.

As for the LCD, theres a line on the silkscreen to where the edge of the flex cable should line up to. I usually tin the pads on the PCB and also the underside of the ribbon, then with flux, just wipe each pin from the ribbon onto the pad. You want a solid connection but obviously not too much its bridging!

Solder in the analog stick, you could always use the above trick of adding to the shell to line it up.

As per the above pic, its probably a good idea to remove some plastic from the shell to allow a little bit of room for the LCD flex cable.

You will also probably want to cover the exposed LCD pins with kapton tape or similar, just incase the button membrane contact shorts it. It probably wont happen and the top 4 pins are no connects anyway but best to be safe!

On the silkscreen theres spaces marked up as 3mm foam. This matches up roughly to where the original SF2000 PCB had foam, its to keep the screen in place. I havent personally been using it and my screen has remained in place but if dropped/knocked its possible the screen will drop.

Flashing the OS & Using the System

The whole OS runs from the SD Card, you need to flash the image. Download the .img file from: https://github.com/DynaMight1124/FunkyFrog/releases flash it using your software of choice, I like Rufus, some like Etcher. Once flashed put into in the FunkyFrog and turn on, it will do the initial setup and expand the OS to fill up the rest of the card. As for SD card, I would recommend one thats fairly quick since the whole system runs from it, you dont need one super big, in my opinion. The Funkey originally came with a 32GB card, but you, do you!

FunkeyOS is very easy to use, you will be greeted by a clean menu system, just go left or right to see the supported systems. Theres actually two different menu systems you can use, RetroFE which is the default, nice and clean, easy to use and theres also Gmenu2x, which has more customisation and a little bit more of an old-skool feel.

You can try the other menu system by pressing the 'menu' button at the bottom (where the headphone jack used to be!) and going down until you see the option.

As for transferring your own games, plug in a USB cable, press the menu button and choose the USB mount option. It will then pop up as a USB drive. You can follow the official guide here: https://doc.funkey-project.com/user_manual/tutorials/software/add_roms/ you can also just remove the SD card and plug it in to your PC, it will copy quicker as the system is limited to about 4MB/sec transfer rate.

I have found this website quite good for locating additional native games or applications that work on the Funkey system, note that some/most may display the incorrect 240x240 resolution but will work fine otherwise.

I have also added some additional cores HERE they are PicoArch cores, so copy the ones you want to use to the 'Libretro' folder and create a directory for the roms/datafiles, then you can choose the core. E.g. if you wanted Doom, copy the doom .so file to Libretro, create a directory called Doom and copy your .wad files. Load the Doom core via RetroFE and locate the doom wad file via the browser (it will remember the folder next time you use it)

Troubleshooting!

Its a very challenging device so theres a chance it doesnt work. Lucky for you as of writing, I am the the leading expert in the field of FunkyFrogs!

So heres what should happen if everything is working:

Initially turns on to a white display but quickly turns black and brings up the FunkyFrog logo. It'll setup the SD card and after about 30 seconds it'll boot to the main UI. If that does happen, then you're probably not too fussed about this section! However if theres a problem...

If you plug in the device into a PC, even without a SD card (or battery or screen) it should register as a device, the system may not pickup any drivers but that indicates the V3s is active. If theres an SD card with the FW flashed it may continue to setup the card, if so, there will be a few stages where it disconnects and reconnects to the PC, thats normal. If it does that then its worth taking out the SD card, plugging it into the PC and see if theres a user partition with game directories etc, this is a good thing as indicates the V3s is pretty active.

If you're not getting any devices being picked up on the PC (assuming the power switch is on) then firstly check for power rails, there are some test points around the board to check for various voltage rails, ensure these are active, if you're missing a voltage rail or all, then its likely an issue with the AXP209 chip. Check for bridges, shorts on caps, unsoldered pins etc.

Its also very possible you are getting all voltage rails but still have issues with the inductors, so these may need a reflow even if you have all voltages. Trust me on this! If you have all voltages, then its possibly the V3s so check for bridges, shorts on caps, ensure the inductors are correctly soldered and the same for the crystals, esp the 4 pin crystal as it wont start without that. The inductors and crystals can be temperamental regarding the amount of solder used and also some flux is slightly conductive if uncleaned.

If the screen does not initially show up white then theres likely an issue with the soldering around the screen, check for shorts. Possibly the same if it stays white! however a fully working system with no SD card will give a constant white screen. It will only go black once the FW starts to boot. So ensure your SD card is flashed correctly, maybe try a different brand to be sure.

If everything boots but you have no controls then its likely an issue with PCAL chip so ensure that is getting 3.3v, check for shorts, bridges, unsoldered pins etc.

You can also use UART, which can give output however I found that the UART was mostly active when it was 99% working so not always a great diagnostic tool however it can be useful for control issues as will give an error if the PCAL chip isnt found. I have been using a simple FT232RL USB to TTL adaptor set to 3.3v. I used Putty set to the COM port on 115200 speed.

Re-use Your SF2000 PCB/Screen?

PXL_20251217_110709490.jpg
PXL_20251217_110730615.jpg
PXL_20251214_173611131.jpg
PXL_20251215_175531388.jpg

I really went down the rabbit hole on this one. While waiting for the PCB's to arrive, I wondered what I could do with the SF2000 PCB, it seemed a shame it going to waste so I ended up re-designing a replacement shell. Its not super pretty (I'm not very creative/imaginative) but it does function.

You will need replacement membranes (and buttons if you dont want to 3D print those too). HERE for buttons & membranes. HERE for DPad. As for the Start/Select buttons, I dont know what they used for the SF2000 (the originals will fit this 3D printed shell tho) but you can cut up the SNES angled ones as above. They are not quite as firm as the original but do work fine!

Other parts needed is a 30X20X4.6 speaker and R36S Battery I just choose the R36S battery as they are super common and all use the same connector so you can make an extension using something like this Mini Micro JST 1.25mm connector then solder directly to the battery pads for easy connect/disconnect. You'll also need 4x M2x6mm self tapping screws for the PCB and 4x M2x10mm self tapping screws for the case, something like THIS

Top Tip: Since the PCB's are basically the same size, theres nothing to stop you fitting a FunkyFrog into this 3D printed shell rather than a SF2000 shell. Kinda the reason I added the 'R36S Battery' connector on the PCB.

Drawbacks/issues

This is a hobbyist device. Its not perfect, I did put in as much effort as I could getting it as good as I could (without blowing a tonne of cash and endless revisions!) I'd say probably the biggest issue is the screen, I did kinda expect this going in.

The Funkey S uses an additional pin called TE pin (Tear Effect) it essentially allows the screen and CPU to communicate so information isnt sent too early/late, however I could not locate a 2.8" screen with a TE pin, they are not that common. I did spend a fair few hours searching but came up short so what does this mean? Screen Tearing yeah thats right it does have some screen tearing, in some ways its fitting with it using a SF2000 shell! (I'd like to say I planned it)

Screen tearing is one of those things that if you look for it, you'll always see it, but concentrate on playing the game and you dont. Its all I could I see for a few days when trying my best to fine tune the Linux display driver settings to minimise tearing but come back a few days later, play some actual games and barely noticed it. If you cant overlook something like this, then this probably isnt the device for you!

The sound isnt great, the sound chip it uses basically takes the analog audio signal and amplifies it but the PCB traces can pickup nearby signals (esp power), this works its way into the sound so you do get some hissing. Ideally the board would need a total re-design moving the V3s as close to the sound chip as possible as well as it being a 4 layer board to properly distance power signals from analog signals. You do get similar noises from the FunkeyS and RG Nano but its a much smaller 4 layer board thats professionally made so its unlikely I'd ever get perfection. Its not terrible but noticeable.

There is no undervoltage protection, just like the SF2000 so best to make sure the battery doesnt go too low.

I guess another small drawback is that the FunkeyOS was designed around a 240x240 display so all the software was originally coded for that display. I have spent a lot of time adjusting everything I could to a 320x240 display, thankfully the main stuff is all fine, so the menu's (RetroFE and gmenu2x) both run at 320x240 and look good, PicoArch which caters for all the emulators also outputs to 320x240 so that does cover most, also any existing PicoArch core (even if not specifically compiled for 320x240) will also work fine. I did manage to adjust Duke 3D (HERE) to work at 320x240 but I couldnt get Mario 64 to work fullscreen but does play fine at 240x240, it has some pretty technical hardcoding and I (I say I, but AI) couldnt work it out, also most other native apps/games will likely only display at 240x240, I dont get wrong, they work just fine, just has bars either side!