LAMEBOY - another ESP12 handheld

fully portable ESP12 project with battery charging and power muxing

Similar projects worth following
Ever since I've wanted to slap on an ESP module and some buttons to make a nice little portable handheld. Now with some googling and checking out other projects how they get their stuff done and a bit time on hand while on vacation I'm using every spare minute to work on this PCB. There are some minor things I'm not sure about that need testing, but the general concept is clear.

RGB background light might seem unnecessary at first, but in context and with some thought it's a good indicator for things. To save pins I'm throwing an attiny13/45/85 on the board to let a BlinkM clone handle the RGB controlling.

On that I2C is also a PCF8574, an IO Expander that will scan the buttons for me.

There is a grove connector - basically almost a 2mm JST connector - that will allow me to add some sensors or another board that I'm working on for sound #T85SID - I2C sound thing 

When it comes to power, I've wanted it all, meaning the board needs to be able to charge a LiPo with the help of an MCP73831 but also stay on when I plugin USB or remove it. For this I've integrated the TPS2113A, a power mux chip that does just that and keeps me from throwing in diodes at everything (that chip was also featured in a 3hours youtube live stream by David Watts - great watch!)

For connectivity I've copied from the known ESP breakout boards out there, that use the CH340G as a serial to USB converter and also a flip-flop circuit for pulling GPIO and RESET at the right time.

  • RGB is finally working

    davedarko4 days ago 0 comments

    At the time of designing the boards it felt like a no brainer to use a BlinkM clone over I2C, because I had worked with them in my early beginnings. It took me a while though to finally burn the firmware and set the fuses right, but now I finally made it! 

    avrdude -c usbasp -p t45 -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m
    avrdude -c usbasp -p t45 -U flash:w:cyz_rgb_slave_attiny45.hex 

    I also found out that avrdude is able to slow down the clock frequency of SPI by itself. With -B 100 I was able to reprogram the tiny45, no matter how slow I was setting the fuses by accident.

    My #a "true" in system programmer helped a lot burning the firmware onto the attiny!

    Of course... of course. R and G are mixed up. gnargh. But here's a demo:

  • That is just the perfect color!

    davedarko4 days ago 9 comments

  • case concept

    davedarko4 days ago 0 comments

    There's a little edge on the bottom left for the screw less corner. I want to preserve the colorful pcbs as much as i can but also protect the parts. I still need to add the "shoulder" buttons and roughly check if everything fits.

  • quick fix for the regulator

    davedarko09/12/2017 at 12:17 6 comments

    Since the AMS1117 regulator is not the best when it comes to the dropout voltage, I've made a little add on board, that will hopefully let me add the AP2112 regulator instead. They can be found on many adafruit boards, so I took that instead. I've ordered 12 boards, but the I'm still ashamed of what I "paid" and the board size :D


  • a *slightly* redesigned PCB

    davedarko09/12/2017 at 06:38 1 comment

    Yesterday I've received my beautiful OSHPark boards and started to solder with the help of the stencil I got from Sadly I've noticed that the crystal I got is the wrong size and I need to touch up some connections (pins are shorted at the power muxing chip etc.) I also need to solder the front side, meaning buttons and RGB LEDs. 

    Some thoughts about the parts used led me to change some footprints or completely  swap parts. Already a lot of work to do again, but hopefully this way production might be easier and is not dependent on getting parts on ebay for cheap, but having them available on large amounts on digikey and mouser etc.

    • To have almost every part available on mouser meant to switch the CH340G to the CP2102N, this also means no crystal footprint to worry anymore
    • the LDO AMS1117 has not the lowest dropout voltage you can get for a board like this, so I switched to the AP2112 like adafruit uses on their huzza boards
    • I've also changed the footprint of every cap and resistor to use 0603 parts
    • There are still some footprints to change, like the SD card adapter
    • probably the PCF8574 that scans then buttons (there are QFN and BGA footprints that are missing in my library)
    • the I2C port / grove connector was 1.5mm by accident, so I also had to redesign that
    • I've took out the complete RGB section with resistors, LEDs and transistors and replaced them with 2mm APA102 LEDs, will make rerouting a lot easier
    • the footprint for the USB micro socket also doesn't have the holes, so I had to use the USB mini port

  • Assistive Technology Judges

    davedarko09/04/2017 at 09:20 0 comments

    please ignore this, was too early for anything goes!

  • Hackaday API

    davedarko08/31/2017 at 21:22 2 comments

    I've played around with the #Hackaday API to show me my likes. Yes, I'm one of those guys - I even noticed that it isn't the same like you can see on my profile page, since there the page likes are calculated in as well (bug is reported though).

    At first I tried ArduinoJSON to extract the data, but then returned to char arrays and some brain-fu. Well some Strings are in as well, so it's not beautiful but get's results!

    const char* skw = "skulls\":";
      int counter = 0;
      while (
        client.available() &&
        counter != 8
      ) {
        char json =;
        if (json == skw[counter])
        else counter=0;
      String skulls = client.readStringUntil(',');

  • game concept idea

    davedarko08/28/2017 at 16:53 0 comments

    there's an invertDisplay function for the display, if you can find a version of the library that works on ESP8266 and you pipe in some lines of code... not the point now. The concept is inspired by stranger things, you have to get through a world and run into obstacles. You can only get through certain worlds by changing to the upside-down world (meaning invertDisplay) but there is that creature that closes in on you when you move, so you can't stay long on the other side.

  • Prototyped keyboard + display

    davedarko08/24/2017 at 21:59 4 comments

    Thanks to @Radomir Dopieralski  I've soldered up a semi prototype. LCD and keys work :) that makes everything on I2C and SPI pretty much work as well.

  • back home

    davedarko08/23/2017 at 07:52 9 comments

    Parts are ordered, some of them over eBay, some of them "locally" at - they're basically but with a different pricing ethos and a flatrate for shipping. The almost most expensive part I've ordered there, the TPS2113A for power muxing. Boards are ordered at @oshpark as well and with a little help they might be here even sooner :) Also, first time order at

View all 15 project logs

Enjoy this project?



Erin RobotGrrl wrote 4 days ago point

Will you make this into a kit and sell it on Tindie? :)

  Are you sure? yes | no

davedarko wrote 4 days ago point

Do you mean kit as in "a package of smd parts plus pcb"? I'm thinking about that vs. already soldered - some parts can't be handsoldered, like the crystal, so I'd need to redesign a bit. Next 4 weeks I'll work on this little board and the software. Will also update parts and board designs here.

  Are you sure? yes | no

Erin RobotGrrl wrote 4 days ago point

Yeah! All for the hand soldering, that's one of the fun parts! Maybe there could be a way to have an optional hand-solderable crystal, so maybe it wouldn't need as much of a big redesign?

  Are you sure? yes | no

Adam Vadala-Roth wrote 08/29/2017 at 03:09 point

if this is using my lib I will gladly repost about it on my project page/twitter!

  Are you sure? yes | no

davedarko wrote 08/29/2017 at 05:43 point

I don't think I did, but I'm happy to try, independent of any tweets ;) happy to have something that's not easily overwritten by an update that renders it unfunctional. Please drop a link to your lib :)

  Are you sure? yes | no

Craig Hissett wrote 08/19/2017 at 21:10 point

Put me on this list for one of these when they are done please. 

I've been desperate for an ESP-portable with screen for quite some time!

I'm going to be getting another one or two of @al1's breakout board when money allows, then going to try using it with a Nextion screen for now, but yours is perfect!

  Are you sure? yes | no

davedarko wrote 08/19/2017 at 21:19 point

Thank you so much! The hardware is very close to @al1s boards, I'll definitely remember you when it comes to selling some and you'll be first!

  Are you sure? yes | no

Craig Hissett wrote 08/19/2017 at 21:23 point

Cheers buddy!

Yeah I love Al1's board  (and your version too!) - I use them all the time for various taska at home and at work. Im getting another one of Al's just so I can have one at home and at work :-)

If I spend some time on the Nextion's display I could make something very useful, but having a proper handheld such as this can't be beaten, really.

The Grove expansion is a great touch too!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates