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 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.....
Im not a massive fan of using standard connectors for non standard uses. Any company that makes a device that uses usb-c to charge a device, but with unchecked 12v in there needs locking up!!
Using standard connectors does of course have many advantages. They are generally cheap and easy to source, and normally have great connector density allowing you to have lots of connections in a small space.
When I originally had the idea for CL-32 i had though of using an M2 socket for the connection of additional functionality. The non standard usage always put me off, and I wanted to keep the components on the one side of the board to keep manufacturing costs down. This lead me to use the reverse entry headers that were on my design.
Looking for parts for the board made me realize that its not always clear which headers are designed for bottom entry, and my past experience with surface mount headers hasnt been great. They are only held onto the board by the strength of the bond between the copper and the pcb. If the usage of this device is going to be in an educational setting, then I can see headers being ripped off regularly
One of the comments on the project suggested looking at magnetic connectors. These would solve the heavy handed user problem, and the polarization of the magnets should stop people wedging the board backwards.
There are 16 i/o pins, and 2 power pins, so we would need a larger connector.
Using something like this would possibly fit the bill, but they only come in thru hole mount, making a large portion of the add on board un-usable for adding functionality. So the hunt continued..
Looking in the tech field, the M2 slot is used a few times by other devices (see sparkfun MicroMod and Sipeed Lichee RV) so its not un-common to see it in non standard settings. I had though I could try and sit as close to a standard spec as possible, with the location of power and data lines, so started looking.
After some digging it actually looked like an E key pin layout actually fits much better than i thought.
The USB connection to the ESP could be piped into the connector theoretically meaning that an old E-key device that worked over USB (modem/gps/etc) could possibly work as long as it was happy wth 3.3v.
The I2C connection would allow the keyboard and RTC I2C connection to also be broken out into the connector, allowing similar connectivity as the USB, and also adding to the available i/o.
The UART connection could allow backup access to the ESP if the normal USB connectivity fails.
The PCI-e pins could then be used for the i/o, keeping things within the "standard" with the location if data pins, and it might even let some crazy people try to talk to PCI-e devices with the ESP.
So the actual pin layout should be safe if there was any crossover in card usage (CL-32 and laptop) but the biggest issue could be voltage. A laptop card is designed to work on 1.8v but my cards will be using 3.3v, so using a CL-32 card in a laptop would be fine, but a laptop card in a CL-32 might let the magic smoke out
Seems like a small enough risk for me...
So things were moving along nicely, I moved from using header pins to using an M2 slot (which needs its own post) and changed a few things round, got the board ready for a second revision to be ordered, and every makers worst nightmare happened
After much searching there are similar connectors out there, but at different pitches, so wont work. Its possible to get custom connectors made, but thats not something im wanting to do right now, and so after all that faffing about the battery in an older post, that thinking is now moot!!
Going back to the much more common BL-5C wouldnt be impossible, but it poses many more problems
The reason i discounted the BL-5C initially was the fact that the battery has a 3mm pitch connector, and anywhere that sells connectors in reasonable quantity seem to sell 2mm, 2.5mm, and 4mm
The beauty of step files is that you can load them into cad and compare things that are teeny tiny. A 2.5mm connector has 1mm wide contacts, so that means that the gap between the outer contacts is 4mm, and the 3mm pitch connector means that the central connector is smaller than 3mm (but not buy much) so in a super hacky way that i dont really like, the 2.5mm connector might just work
It will be super reliant on alignment, but it might just be enough.
I would really like to make the case as simple as possible, ideally with no visible screws. The original plan was to have the pcb screwed to the back of the case. This had the battery bay within it, and therefore held all the power nicely in contact with the pcb. The front was then going to snap on using the usual arrangement of little clips as you get on most electrical devices.
After some googling of best practices on injection molding (thats the eventual goal) overhangs make the jig more complicated, and more complicated means more expensive, and more expensive is never a good thing!! Plan B was to have some screws in the battery bay to hold the front plate tight, and with the original battery plan, the screws were nicely spaced
Simply scaling that battery bay would mean that the area for screw attachment would be massively reduced, resulting in a larger portion of the front plate being un-supported.
Im currently bouncing round some ideas, maybe have the pcb initially screwed to the front of the case (which would actually be better for the keyboard strength) and then have a battery holder screwed to the back of the pcb, and somehow attach the back of the case without visible screws..
to be continued..........
If you have ever used a tiny keyboard like this, you will know how important the design of the keyboard is. While I would love to have some really good mechanical keyboard action, that would make the device too big to fit into a pocket.
The snap dome buttons used are pretty damn tiny, they are 5mm diameter and a miniscule 0.25mm tall. this means we are only going to get 1/4 of a millimetre of key travel, so the tactile feedback is going to be important.
In the past I have not really paid much attention to the activation force of the domes, and so they have been harder to press and pretty noisy. This is where clicker got its name
I initially got the lightest force domes they make (55g) which with no button on top you can barely feel them move, and they are totally silent. They are probably a bit too soft, and I will have to buy a range forces and do some testing.
Anyone who has used a pocket c.h.i.p. will know that typing on the bare button domes is not a fun task. The domes are actually designed to be 'activated' with a small contact point (like a peg) pressing into the center of the dome to properly snap it
This means we will need actual buttons sat above the domes, with the appropriate peg to activate the dome. If you take apart old device with buttons, you will see this with the button being on the rubber membrane at the back, and a nice printed topper on the button with the fancy legend and such. This is what I would like to have in the future. but that would need mass production numbers, and we are not there yet!!
My first attempt at buttons was a simple one. basically the buttons had a taper, and the holes did too. This meant that the button could be pressed inwards, but not fall outwards. Each key had its own little peg to press the dome, and they all had to be installed one by one
This worked, however it was not fun if you were to drop the device and all of the buttons ping out all over the floor!! It also made it difficult to add legends to the keys, they would all have to be uploaded to the printer as individual items, and it was generally just a nightmare.
I made the buttons bigger, which meant I needed to remove the taper to maximise the material between them. Getting round this means tying all the buttons together internally, meaning that adding legends was then possible
The keys could then be a single entity that can be dropped into the case. This would also open up opportunities of having alternative key maps available that could be swapped out reasonably easily. Printing on MJF printers means that even these small buttons come out well
I didnt go deep enough with the legends, so you can still see them from some angles, but generally they are a bit useless. The bigger problem of course is that the very rigid print with some snug fitting meant that it was super hard for a single button to move independently.
MJF printing has a bit of flexibility with the limits of what you can do. I had a bit of a play with making the buttons springy, while still being tied together. After some messing with CAD I came up with this
You would have no chance of printing this on FDM, and a resin print would be able to do the detail, but support material needed would make it too hard to process afterwards. This limits it to MJF or SLS printing, so that the un-fused powder can support the part.
Thanks to the guys at Midlands3d for trying to print this monster!! I originally chose the dyed black option, which gets shot blasted before it is dyed. it seems the shot blasting was a little too much for this design, and some of the keys vanished without a trace. They re-printed it in bare grey material and it came out pretty well
Its quite hard to photograph as its all pretty tiny, but the clearance round the springy bits wasnt enough, so its all fused together and become a solid lump again. The legends are there though this time, and the blasted and dyed version looks way crisper (ignoring...
Read more »So a mobile device needs power, and to make a mobile device more useful, more power is always better right?
Initially I had considered just popping a JST socket on the board and calling it a day. That would make the case design much simpler, and could even save 2mm on the thickness of the device, making it even easier to slip in a pocket. Job done right??
Well if I ever want to sell these (and I would like to!! ) then an enclosed battery becomes a major issue! Anyone following along for a while might have seen my past fun with Royal Mail and batteries . Being able to ship the device without a battery makes life much easier, but it needs to be a battery that the end user can easily get locally, for a reasonable price.
Any local high street these days will have a choice of vape shops, and those shops will generally be a source of the ever useful 18650 lithium battery. They have become the AA battery of the modern world. The biggest issue with these batteries is there cylindrical nature. The battery being 18mm in diameter makes any device you use them in harder to make thin. Take that 18mm, add 2mm each side for the case, and 1.6mm for a pcb, and your up to a chunky inch without trying. Pockets are not too happy about that....
If you buy an electronic device that has a removable battery, the chances are it will be rocking a "BL-5C". This means it will super easy for people all over the world to get their hands on the battery. The use of these types of cells also has added advantages. They have hardware based reverse polarity protection (as long as you design the battery bay right, you cant connect the battery the wrong way) and they are supposed to have protection circuitry built in too (although i wouldnt want to trust that on the cheaper cells). The battery is only 5mm thick too, so even with some case and pcb, its still going to be thinner than a 18650 cell on its own!! All is not perfect though, when you look at the battery, its contacts are little gold squares on the battery, you need to find the right kind of connector to mate with this efficiently. a quick search and you can find hundreds of people selling you a 'nokia battery connector' which will do the job
The problem comes back to 'if I want to sell these'. its easy to find random connectors in small quantities, but if your thinking of getting a fab house to make your boards, you need part numbers and someone who can reliable offer larger quantities of the part. This is where I fell short
While i was hunting for battery connectors, a friend mentioned a Light he had acquired from AliExpress, and it too had a removable battery, but not the magical standard cell. This one was a BP-4L from the more modern range of Nokia phones (E61, E63, etc) and the first advantage I came across was a reduction of thickness!! 4mm rather then 5mm (a win for pocketability!!) the next bonus was a 50% increase in capacity! 1500mah rather than 1000mah. Then the final decider was that i could find a battery connector!! This cell has a spring based socket connector on the battery, and 3 simple blades attached to the pcb
So here we are, BP-4L is the way to go!! Still got hardware based reverse protection, slim to make it easy on the pockets, and a session busting 1500mah battery!! That means that even if you have an average 100mah running load, and you average an hour a day usage, that battery could be lasting over 2 weeks!! I call that a win :)
So if your looking for a screen, you will find many different stores selling many different options. When I was looking for screens for my TinyPi project, it didnt seem to matter where the screen came from, they all worked the same.
E-ink seems to be a very different animal all together! each screen seems to have different properties, and even when the datasheet says it is the same driver IC, they are configured in different ways.
Before we go any further, let me just take a moment to shout out to the 'screen whisperer' Larry Bank. He has worked with me, tweaking his screen library to get the most out of these screens, without his work, I would still be struggling with bits of demo code
The first screen I ordered looked lush!! the background was frosty white and the contrast was brilliant. With a bit of tweaking the refresh rate was ok, but needed to be faster.
Enter screen 2, used a supplier that I had used in the past, the screen was much greyer, and it didnt look anywhere near as nice. The fast refresh was not working out of the box, but I didnt see the point of trying to fix it, as the screen didnt look as nice.
Talking to a friend and they told me about another supplier. They have their screens listed as 'fast update' which was music to my ears. After an impromptu 9 day holiday at the airport, the screens landed. The difference was quite remarkable!!
running the same code on both screens, the new one has a much more savage flash, but its over so much faster than it makes a massive difference. With some demo code that lets just just type random stuff onto the screen, you can see its pretty usable, and you can do many fast updates with no obvious grain appearing on the screen.
the hacking continues....
Create an account to leave a comment. Already have an account? Log In.
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
So what was the display #3?