A mobile dev terminal, hacker device, anything you like!!
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
So for anyone not getting my weekly rambling emails, I have been tweaking the keyboard for ever!!! but have finally got it somewhere that I think is good by going back to the way things were for v0.2, and each key has features round its base to give it flex. So I spent months chasing something I had already pretty much nailed in the past!!

I turned my attention to the add-on cards, and things naturally ended up leaning towards a LoRa card and looking to get in on the MeshTastic train.

While I was waiting for PCB's and parts to arrive, I remembered that a few people had mentioned ESP-NOW and I decided to have a look at that.
Turns out it is super easy to get rolling, just register the mac address you want to send stuff to, register functions to run on data sent and data received, and your away!!
Here is a quick and dirty video showing what I came up with
to be continued.....
I have a bit of an affinity for tiny things, and making things as small and compact as possible (see TinyPi), so I tend to get a little carried away in a super zoomed CAD screen and not really realize how printable things might end up
I was hoping that the magical SLS prints would solve all my super zoom problems. Well I got a call from the good people from Midlands 3d printing to say that they have tried 3 times to get my print to come out and the keys just keep popping off!

Looking back over the cross section of the button and there is as super weak spot right there!! so that gave me something to work on. The problem was not helped by the fact that I had sent them a file that was the body and the keyboard in one, partly to make it a bit cheaper (pay for the overall volume of the print) and party to make it easier to upload and order. This also meant that the 2 parts became fused together, and made it much harder to clean the un-fused powder from the print

There was one print that came out ok, and the matte finish of the SLS prints make it look so pro!!







The backlight is a little leaky round the buttons, but its still pretty sweet!!

And I knocked up a quick and dirty video to show you how it all fits together :)
I had been working away on v0.3 of my project. It wasnt a massive change, fixed some issues with the past board, and added a few new tweaks to make the whole project better. After many hours starting at the schematic and pcb design, i finallly plucked up the courage to order the boards for assembly. I could save some pennies and just buy boards from one place and components from another, but the time I have to spend tinkering is limited, and they would end up sat waiting for me to get round to it.
My PCBA company of choice is Makerfabs. I have worked with them in the past on my TinyPi project, and their work is always fantastic. They have helped me find parts that are not normally accessible through the conventional channels, and even spotted issues with my BoM!! I can highly recommend them :)
The boards really are beautiful!! (and I really should get the good camera out!!)


The biggest change the eagle eyeed amongst you will see is the re-shuffle of the keyboard. In testing the last version, it became apparent that the navigation buttons would be much better suites on their own, which resulted in a moving of the add-on slot. There is a new addition of a li-po fuel gauge IC to make battery monitoring much simpler, and to free up an extra pin to allow for another of the big changes. The keyboard now has a string of WS2812 LED's within it, to allow for some RGB fun if that floats your boat!! The flash/reset buttons have been tucked away on the back of the board (I have never needed them, but i wouldn't be confident removing them completely), and there is a slide switch to cut the power to those fancy LED's if they suck more power than you like. There is also a spring connector on the back to allow connectivity to a back plate PCB. This passes power and gnd, and also passes i2c, and 2 additional connections for antenna usage. That would allow an add-on card to connect to an antenna built in to the back of the device, rather than having a dedicated external antenna. This would never be as good, but should be great for testing.
The front PCB idea has had a little bit of polish too!! The silkscreen cutouts have been given the kibuzzard treatment, and the legends have been made as large as possible to maximize visibility


The back of the PCB has been stripped of all copper and solder mask so it is bare fiberglass. This would allow the LEDs packed into the keyboard to shine into the fiberglass and shine though the legends on the face. This gives a mighty fine effect if I do say so myself!!!

Stay tuned for more updates :)
These updates are like busses!! you get none for ages, then 2 come along all at once!!
I had a little play with how I wanted the software to work. The main idea for the project was to be a mobile development platform, with the add-on system giving you extra things to play with in the code.
To do this, the main thing you need is a code editor, and some way to select and load in your files.
I very quickly realized that my coding skills are much better suited to higher level stuff, and making a code editor is a fun challenge
Here is a quick look at what I came up with..
Im not the loudest speaker, so you might need to pop the volume up, but it shows some of the things i have been thinking.
I popped the code up on the gits if anyone wants a look. Its very sloppy, just one big old file with all the code in, please be gentle
now the new boards are on their way, I will have more time to give it some more polish..
With the day job and general life getting in the way of play time, there is only a limited window to work on the project and to update you guys on how things are going. Anyone following along in other places (mailing list/discord/socials) might be a bit more up to date, so lets bring you all up to speed.
if your in a rush, the TL:DR is that im still working on it, and v0.3 of the pcb has just been ordered!!
So last time on the CL-32 show, we were talking about case options, but I was mulling over the retro pocket computers and their printed sheet metal faces, and wondered how I could reproduce that. Im sure that with a little bit of hunting, I could find someone to create those for me, but that seems like a complicated way round it!!
There was a lightbulb moment when i realized that I have access to some precision manufacturing that would allow nice crisp edges and even some artistic elements too!! Enter the humble PCB!!!
I did a test design and got it ordered in 0.8mm PCB. The idea was to create a recess for the PCB to sit into, so we get the best of both worlds!! A nice printed case, and then a slick looking face to top it all off

The test was mostly a success, The legends were cut into the copper layer as well as the solder mask, so that they could be illuminated by a backlight if the mood struck me!! There was supposed to be a nice silkscreen border round the legends, but that wasnt great. Also it never looks as big in real life as it does on the screen!!

I think i might have also neglected to tell you that the buttons were getting a bit of a jiggle too!!
The point at which all this fell down was actually trying to get the front of the case to house the PCB. With the plastic cut away for the PCB, it became so thin and flimsy that it was almost impossible to print, and then removing the support material just left broken bits!!
So the thinking cap came on again. I had a nice PCB face, a main PCB for the guts of the device, and I could whip up a simple PCB plate for the back too, but how to secure it all??
I have seen some projects solder lots of PCB plates together to form a case, but i wanted softer corners and the ability to disassemble for battery changes and even repair. There is also the option of using threaded posts and screws, but that would still leave the corners of the PCB exposed
After a bit of thinking there was another lightbullb moment, why not make a snug band that grips all 3 boards at the same time...

that same profile all the way round could make it quite sturdy, assuming the material was firm enough, but would still allow you to pop it apart if needed. So I printed up some simulated PCB blanks so that i could drop them into a TPU print to save wasting lots of material on supports. The PLA blanks have a lower melting point than the TPU, so they stuck together pretty well. It came apart in the end


It makes it look a bit more chunky, but its only 2mm thicker. There is more scope for softening the edges and makeing it look a little more rounded, but it proves the concept and I can play with that while im waiting for PCB fab
so back to KiCad we go, and the faceplate gets a good dose of the awesome KiBuzzard label tool to make the legends pop

The main PCB gains an i2c battery fuel gauge to get round some silly analog read issues i was having, and that free's up a pin for some 'neopixel' backlight led's for the keyboard. These are a little power hungry, so I have made them switchable. There have been a few other tweaks, the keyboard has had a shuffle, the m.2 socket has moved to allow some navigation buttons to be available up at the top right for easy access


I even added some threaded posts which would allow the mounting of external hardware if an add-on card were to need an external antenna or something ;)
Speaking of which, i had the idea of trying to make the back PCB a bit more useful and bake in some small PCB antenna's.
I...
Read more »So I have a bit of an obsession with making things as small as possible (google TinyPi Pro) and its all too easy to get down a rabbit hole of zooming in like crazy on the CAD and before you know it you have details that are 0.5mm and beyond the capabilities of 'normal' 3d printers.
I had assumed that was the case here too, my early test prints came out as rough as a badgers bottom!!! The MJF prints that i have been getting are beautiful quality but can mount up the cost if your trying to tweak a design.
I have just splashed out on a new 3d printer, so I thought lets test this puppy, and cranked the quality all the way up to 11 (actually 0.08mm) and tried to print a case....

not the best start!!! some of the finer details on the case back and all those cutouts on the front mean there isnt really that much plastic actually touching the bed from that first layer. so it started to come away, and the front of the case actually pinged off, all a disaster!!
So after a regroup, I tried on normal quality settings, and added a brim to increase the contact point, and bingo bango we have a winner!!

the quality is actually fine. I have tried to design things so that they would be easy to transition to injection molding if a big crowdfunding campaign were to happen, so the way the case splits down the middle and the openings for the ports are all nicely on a top edge of each case half, so FDM manages that fine!
The result is an eye popping case which actually doesnt quite feel as premium as the MJF printed case, but is very very usable

Now, i wonder if i can FDM print that keyboard...🤔
Its been a while, I have been playing with the case design and tweaking it all to match the V0.2 boards. Mostly its the screen adjustments for the higher resolution screens, and the changes for the add-on cards using the M.2 socket.
So i want the add on boards to be able to be swapped without tools. The normal method of securing M.2 cards is with a screw, but that is easy to loose, and needs a small screwdriver which can be fiddly.
My original plan was to have some little clips which would hold the board in place. The clips would be removable and replaceable in case of damage.



The clips were included with in the last print, and they sure were small!! I wanted to get the mounting system sorted before spending too much time on the add on boards themselves, so i printed a dummy board for testing (please excuse the fuzzy photos)


While the clips do work, they are super hard and tricky to unclip.
So with some thinking happening, I have come up with another plan
https://cl-32.com/wp-content/uploads/2025/01/Screen-Recording-2025-01-23-220257.mp4
The add on board would of course need to be tweaked to move the cutout to suit, but i think it might be a better solution

Might need some more thought/polish, but its already looking like a better solution...
So after posting about my plan on the ol socials, someone over on Twitter (im not calling it X) said that it would be fun to make it work like a GameBoy power switch. For anyone unfamiliar the sliding action of the switch locks the cartridge in place.
I had a bit of a play with the CAD to see how that would work, and it might be possible. The latch would be on the thin side though, so I thought I would check the datasheet for the M.2 socket and see how it works

Unlike the normal M.2 sockets I have come across in the past, once the card is slid fully into the socket, it no longer wants to jump upwards, and so that changes the way of thinking for the latching method.
Im actually thinking that for small and light boards (like LED's or sensors, etc) would be fine with just the grip of the M.2 socket. Anything like a LoRa board with an antenna or such might need something to stop it coming out (in the direction of 5)
I think its time to get some of these add-on boards routed and ordered and see how it pans out.
Whats the best day for a hacker?? Its new board day!!!
Because of time constraints, I sprung the extra to get them assembled, so its even more fun straight away!!
Those following along at home will know whats new, but here is a rundown for everyone else. The battery is replaced with a smaller and more common one, the RTC has been upgraded, The screen connector has been upgraded to allow more screen options, the charger/power path has been redone, some grove connectors have been added to allow compatibility with other devices, the add-on borard connection has been changed from header pins to a m2 socket, the usb port was connected directly to the esp rather than through a usb to serial converter, and everything has been moved about to make things a bit easier to route.




So with all the exciting new changes ready to test, I first double checked the battery connector polarity one last time, and tested the charger. then I popped the USB in and tried to upload a basic test sketch........ and nothing!! No serial port appeared :(
Back to the schematic, and I compared it to the official dev board and could see no issue!! out comes the multimeter to see if things are connected as they should be, and boom there is a missing link between the esp and the usb!! that narrowed down the hunt, and low, I made a silly!!

So i whipped out the microscope and bingo bango we have a winner!!!

So a steady hand, and some solder action and it we have a fix

its actually a pretty neat fix in the end

and now I can get back to the testing :)
I popped over to Midlands3d to collect the fancy new TPU test prints they kindly did for me, and I have to say, im super impressed

The quality is amazing, and the hinge design within the button all printed really well. The legends could be clearer, but thats mostly because I didnt make it deep enough. The TPU is super soft and flexible (mostly because everything is so tiny)
A quick test on some snap domes and it really works well!! I have some different strength domes incoming for testing, so I will see which give the best balance of tactile response and ease of use
To be continued.....
So in the absence of fancy moulded silicone keyboard membranes, Im still on the hunt for a good keyboard experience
The hunt has slowed a little, the re-desgn of the pcb has been taking up my hacking time but I managed to make some amendments.
The task is a fun one, The printer can do features down to 0.5mm, which gives plenty of scope for playing., but if you dont leave big enough gaps, they will fill with the printing powder and at best be hard to remove, and at worst clog up all together.
The buttons are 5.4mm square, and i decided that the central shaft that activates the snap dome is 2mm in diameter. That already limits things somewhat!!
The next limitation is the space below the button. With just 2.4mm between the bottom of the button and the pcb, which will reduce by 0.25mm when the button activates.
Anyone following along at home will have seen my last attempt, which failed because of too much reliance on the 0.5mm minimum feature size (too fragile) and not leaving enough clearance (blocked up the gaps)
After many different attempts I think this might work
Im hoping that there is enough material to stop the buttons falling off, but enough flex to actually work as buttons
I had an email from my local printer guy (Shout to Paul @ Midlands 3d) and he has a new toy!! The last prints were done in nylon using magical HP MJF printers. The new printer opens up SLS printing in TPU, resulting in flexible prints with similar accuracy. The prints have been ordered, and its just a case of waiting to see how they turn out.
To be continued.....
Create an account to leave a comment. Already have an account? Log In.
its actually pretty usable. the screens I have found seem pretty happy with lots of fast refreshes, and can get about 3fps which holds up pretty well for typing
there are some badly made videos over on youtube that can let you see
https://www.youtube.com/pi0cket
Hey moosepr, I have been following this project since you started it. For some reason I thought you were using a monochrome LCD, then recently realized you are using E-Ink.
Is power consumption the main reason for the E-Ink? Because i was thinking the esp-32 is relatively power hungry when running. (20-40 m) I think a monochrome LCD with backlight off would only consume about 5-10 mA. I was looking into building a similar device a year or two ago and I never did but was going to use a Monochrome LCD.
I think E-Ink is great but really don't like the refresh rate and flashing on full reset.
hey there, I did have a look at a sharp memory display early on, but the contrast and viewing angles were shocking compared to the e-ink. it was also a bit of a unique selling point compared to the competition.
Using fast refresh, you can get about 3fps and I have tried many different screen manufacturers and found one that is pretty happy to be fast refreshed without going weird. Have a look at some of my poorly made videos over on youtube :)
https://www.youtube.com/pi0cket
This is a long shot - but any thoughts of a version with a wider E-ink screen and giving up either/both the expansion port or the D-pad? (The latter could still use the numeric pad I guess?) Or is the e-ink screen you're using already the widest one suitable? Thanks.
the screens come in all shapes and sizes, there is one that is actually the same height, but wider than the entire device!! in an ideal world, I would like to sell enough of these that I can then make some variations with different sizes and shapes. Fingers crossed!!
I love the form factor of this device. It's significantly smaller than my PicoCalc. Is there any chance of the case and keyboard being printed with a good home 3D printer in something like PLA? (The thing I like most about PicoCalc / Pi Pico is that I can run my code on bare metal with no OS getting in the way; I assume something similar is possible with an ESP-32? (I also have the Cardputer, but the screen is so tiny it's impractical -- guess I like small portable computers)
I too like tiny computers!! You could print the case at home, but it needs to be TPU to hug the pcb's. you have to print PLA spacers so you dont need supports, and it ends up as a bit of a rough print, but it is possible (have a look at the other log entries for my posts about that)
Im hoping to sell them as complete items soon anyway, so you wouldnt have to print your own unless you wanted to mod it
It would work pretty similar to a Cardputer with regards running your own code, but the screen is a touch bigger (although a touch slower and black and white) and I hope the keyboard is a bit nicer to use. The PicoCalc is a bit of a beast size wise!!
Put me in line to buy one then since I'd need the PCB anyway. So far I've been really spoiled by Pi Pico development in VS Code on my Mac. Is something similar available for ESP-32? Remind me how much ram your system will have? Does it have flash like a Pi Pico that can be treated as code/read-only data in C? If so, how much? (For example, original Pi Pico has 260k RAM, 2M of flash, which means I can run Z machine games up to 512k in size since they never use more than 64k of volatile ram).
cant reply more than 2 messages deep :) i use VS Code with platformIO for the code. The base module has 8MB flash and 2MB of psram, but i might use the top spec module that has 16MB for both
its running an esp32 not a raspberry pi, so the battery life would be pretty good without solar. i will have a look at fuzix
raspberry pi 2040 <> raspbery pi ;-)
fuzix run on esp
but in my opinion esp is dangerous https://app.opencve.io/cve/?product=esp32&vendor=espressif
is possible change cpu to ARM STM or other ? pine64 etc?
its from "good display" over in china, seems their name is accurate!!
can only reply twice :P
https://www.good-display.com/product/389.html
Interesting that this one ('540) is 0.2sec partial refresh https://www.good-display.com/product/540.html vs 0.3 for the lower res one ('389).
A small difference for 1 partial, but a big difference if you were doing a sequence of 10 partials to change the image.
However the the 2.66" hi res one ('501) with the same SSD1685 controller (https://www.good-display.com/product/501.html) is 0.3s.
But if we look at power consumption the '540 is 0.2s , 12mW refresh
0.3s = 9mW refresh - both the '501 and '389
So I wonder if (a) the 0.2s is a typo, or (b) it is real, and is reflected in the greater power consumption of refreshes in that module.
Yeah, I have some of the higher resolution ones to test, but the contacts are on the other side of the ribbon, so the zif socket I have wont work with it. Maybe the 'pixels' are smaller on the 540 so it can refresh faster? I am working on another board spin, and will use double sided zif sockets this time so I can compare and contrast!
The '501 (0.166mm) and '540 (0.176mm) are the same controller and look like almost the the same pixel pitch.
From this it looks like the faster one uses higher power 12mW vs 9mW e.g. perhaps it has higher voltages to the eink to switch faster
I'm also quite interested in the flexible ones, to go on the outside of things, where mechanical impact damage might leave a bit of the screen damaged, but not a whole region snapped off as would happen to glass.
Interesting that they have a reflective lcd also:
https://buyepaper.com/products/gdtl029t51
those reflective LCD look a bit hard to see, they dont have the usual videos showcasing them either. Cheaper than the sharp memory displays though
And cheaper than eink.
A bit suspect that they don't show them displaying anything!
The other thing about eink is that they always say "not in the sun" - there has been a real lack of proper reflective options. My newer bike computers all have transflective LCD, and are quite noticeably less bright than the older pure reflective ones.
My screen guy had one of the smaller ones, he also found this from one of the larger ones https://x.com/iluvsuaoni/status/1640697277005336577
They are apparently designed for e-ink replacement but have similarly low refresh rates.
very cool project! do you mind sharing what that battery connector part is?
sure thing, its this one, but now im looking, it seems LCSC have discontinued it :(
https://www.lcsc.com/product-detail/Button-And-Strip-Battery-Connector_D-CHAIN-BA0306370420-59_C5827004.html
this could fill a void for me. I like writing novels, but I get distracted easily. I have been searching for a long time for a pocket digital word processor. Something in this approximate configuration would fit the bill.
It had popped up in my news feed. The second I laid eyes on it my brain just went, THAT!
it could, but im not sure you would enjoy writing a novel on the tiny keyboard. :)
What are the advantages and potential challenges of using ESP32Forth compared to MicroPython for developing a full coding environment on a device, and how does https://fominsoap.com/ suggest integrating such a solution effectively?
im sure esp32forth would be just as useful as micropython. its on the list of things to look since i was made aware of it, im not sure how forminsoap can help, unless it for keeping it clean :P
Looks amazing!
Reminds me a bit of the Cardputer, but the eink screen gives this a very unique aesthetic.
Regarding add on boards: did you consider using magnetic pogo connectors? They’re more expensive than pin headers, but if you worry about kids breaking them, magnetic feels like a more durable solution. And as a bonus, you get a satisfying “magic” snap into place when placing a board on the device!
Great job!
Thanks for the kind words :) i was aiming for unique with the e-ink screen
I hadnt considered the magnetic connectors, mostly went the way i did because of trying to keep all the components on one side. plenty to think about...
this is actually pretty sick. curious what the screen resolution is, and wish it was one of the risc-v ESP32s. it looks a little bit like a crossbreed between my Sharp EL-5500II and TI-92Plus, which is great. since this thing has an ESP you could make a mesh network chatter out of it. very cool project looking forward to seeing where it goes. regards
Thanks :) The screen has a resolution of 296x128, but the same maker has a high resolution one that is 384x168 which i am keen to try.
I have played with the idea of adding a lora card to the add on board library so it really could be a mesh comunicator!!
LoRa isn't strictly necessary for mesh, the esp32 "transmit raw 802.11 frame" function can do it acceptably. Range is shorter but not much shorter than 2.4g lora, and it's free aside from firmware implementation, much faster, and (iirc) can receive while transmitting which are upsides for sure
Otherwise a lora radio would definitely be a really good use for that expansion card slot, I agree. Especially since the non-2.4g lora chips are region specific and they're not very cheap chips. it wouldn't be great to integrate something of niche use like that on the main PCB.
296x128 is almost as good as my beloved 92. :)
384x192 would be marvelous if it doesn't run into the same pixel density problem you had with the memory display.
i cant reply to your new message, silly hackaday.io
i didnt know about the raw frame thing, thats an interesting way to get mesh communication
The higher resolution screen might have to wait for the next board revision. The ribbon has the connectors on the other side of the ribbon, but the pins are in the same order, so I will need a zif socket that can connect on both sides, rather than my top contact one
I completely agree about the displays. This reminds me of the Casio/Sharp computers of yore.
I would like to have Forth running on the eink display, to have a self contained device (ESP32Forth is arduino build.)
If you had Forth, then your device would also have a remote command line with no additional programming i.e. a computer or phone can also make it do anything through the "serial" (telnet,BT) interface.
My initial idea was to have a full coding environment onboard, so you could hash out some code on the go. Originally thought of micropython but I will look into ESP32Forth for sure!!
Become a member to follow this project and never miss any updates
About Us Contact Hackaday.io Give Feedback Terms of Use Privacy Policy Hackaday API Do not sell or share my personal information
Xasin
deʃhipu
Hey! I dig this project. How is e-ink working out for you? I love e-ink as a technology, but it's difficult for anything that needs to refresh quickly (like typing).