News:

We're live! Join us!

Main Menu

New DIY Handheld Computer

Started by granz, Dec 17, 2024, 09:52 PM

Previous topic - Next topic

granz

Back in 1998, I purchased a gift for myself, it was a Hewlett Packard Windows CE pocket computer. At the time that I bought it, I was getting so forgetful that I would actually cry, thinking that I was losing my mind. I remember leaving the store with my new toy,and sitting in my van and starting to load it up with every contact, and every appointment, that I could think of. Suddenly (within hours) I was able to start remembering things - it was as if my mind was cleared, and I could think again.

Now, of course, like everyone else, I keep all that info (and more) on my phone. But I still miss my pocket computer. I want one that I can program myself, and call it my very own.

A few months ago, I purchased a GeeekPi breakout board with an LCD, and several other components (https://www.amazon.com/gp/product/B0C98G37PW/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1).


This device was a really great toy, and I had fun playing with it. Unfortunately, I was unable to get the LCD to work with PicoMite BASIC (my current favorite.) It may have been just that I didn't play enough, but I started looking for something else, and closer to my handheld computer. I also started putting an LCD module on one of my breadboard systems, and wiring up some stuff to my Pico (actually a PicoW, with WebMite BASIC, which includes WiFi connectivity.)

While working on these things, I found another PicoMite device (CrowPanel 3.5"-480*320 HMI Pico RP2040 Touchscreen.) This one (when you keep the acrylic case - $2.60) comes in a really nice format. It has the touch display, a speaker, a TF reader, two UARTs (one USB) several GPIO pins and best of all (for me) an external battery connector. It even breaks out the Boot, and Reset lines to external buttons so that it can be more easily set up, and reset.

It took the PicoMite BASIC firmware just fine, and I was able connect through the "screen" terminal emulator. The LCD module was not listed as anything for which I could find info, but after playing with the different OPTION configuration commands, I was able to find one LCD option which works. It did take a while studying the schematics, and matching them up to the setup commands in WebMite BASIC, but I am getting there.

It is pretty cool to see stuff on the display responding to my commands. The SD (actually TF) card reader connected up quick and easy after setting the SPI interface. I am able to bit-bang some simple audio out, but the BASIC sound commands require two matching PWM pins (they are in pairs on the RP2040 chip.) Unfortunately, the board uses one pin of a PWM pair for the speaker, but the other matching pin is tied to the reset pin of the LCD panel. This is a kind of disappointing design, but I do have a little program which makes tones/beeps, and will be turning that into a general purpose sound subroutine.

Unfortunately, the IIC connection for the touch pad do not seem to be correct to the schematic. I have searched the schematic, and have set up my OPTIONs to match that, but when I run the touch pad test program, every time that I touch the screen the system reboots. It appears that the IRQ from the touch pad is incorrect, and the Pico is responding to an interupt going to the wrong place in the firmware.

I intend to continue working on this, but this may push me to return to designing my own PCB for my handheld computer. At least with this, I will be able to have my system the way that I want it. In addition, I will be able to breadboard the system myself, thus ensuring that the PicoMite BASIC OPTIONS are already set up so that the BASIC will work correctly.

More to come...

granz

Well, I was able to confirm that the touch controller on my CrowPanel system (https://www.elecrow.com/download/product/DIS01135P/CrowPanel_Pico_Display-3.5_V1.0-SCH.pdf - bottom of schematic towards right of center) is the same controller that PicoMite BASIC is set to use (https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf bottom of page 49). Now, I just need to figure out why my system keeps rebooting when I test the touch pad.

JKnightandKARR


Chris Savage

I can't wait to see where you go with all of this.  :)

        I'm only responsible for what I say, not what you understand.

granz

Quote from: Chris Savage on Dec 18, 2024, 09:39 AMI can't wait to see where you go with all of this.  :)
Yeah, me too.

Unfortunately, my CrowPanel system has started spontaneously rebooting. It's not the hardware, because it can sit for hours (days?) and never reboot. It seems that there is something about the interrupts, and only happens while I'm playing around, trying to get the thing working the way I want (which, of course, is in PicoMite BASIC.  ;) ) So, it is appearing that this is going where I design the PCB myself, according to my own specs - which is where I should have gone to begin with. ::)

Plus, with Christmas approaching, there is less time to play right now.

granz

OK, time to refocus.  What this project really should be is two different projects. At this time, both will probably be based upon the PicoMite system. The PicoMite is not perfect, but it is awfully darned good. This thing is well above the specs of the 1970s, and early 1980s systems. While not the "perfect OS" (MS-DOS) it is pretty good for the pre-MS-DOS system types. The two projects that I am considering are, first, a handheld system, kind of similar to the old Palm, and Windows-CE, systems, but with my own software, based on PicoMite BASIC (which has file management built-in.) Secondly, I want a "tablet-padd" computer (kind of like the TRS-80 Model 100/102,) or maybe a clam-shell laptop system - if I can get it to fold up, properly.

So, I will be continuing this thread with discussion about the "Handheld" system that started this thread, and will begin another thread on the tablet-padd system as soon as I get the new keyboard that Chris kindly pointed me to in another thread https://savagechats.com/index.php?msg=1049.

Both of these systems will probably be completely designed, and manufactured, by me. I'm tired of spending money on stuff that is close to what I want, but not close enough.

granz

So, in thinking about where I want this to go, I had to ask myself why I want a handheld computer (I mean other than "because it would be sooooo cool."  ;) )

So, thinking back, several years ago I was on the old The Survival Podcast Forum (shut down now,) and posted a few threads about tech after the collapse. The idea was to start thinking about what kind of technology would be useful in a grid down situation (think EMP, or solar flare or even a hurricane I.E. Helene.) Pretty much any bad disaster (even local) could leave us without electricity, comms or Internet. In those situations, what technology would we need (or like)?

I came up with three areas of tech, that I wanted to address:
  • Communications - Communication with others, local or distant
  • Information Technology - Word processing, inventory, scheduling, entertainment, education, etc.
  • Control Systems - Monitoring and controlling physical systems

In the third category, I was thinking about a small, possibly handheld, control system for helping with repetitive tasks, safety and security. These are the design considerations that I came up with:

Design considerations:
  • Cost: Since these are to be stored up (preferably in EMP shielded storage,) they need to be extremely low cost. Right now, my price for a bare printed circuit board (4"X4" - which would hold a simple, but usable control system) is about $0.50. Quick, rough estimates put the final price for the parts at around $15-$20. When you comment on the other design considerations, please keep this in mind. The old engineering adage is still in effect: Good, Fast, Cheap, pick two.
  • Onboard Programming I/O (Input/Output): This refers to the onboard keypad/keyboard and display. The Arduino (and many other families) would do just fine for this project, but they all require an external computer, on which you write the programs, and then download to the control computer. In the event of a grid-down disaster, such as an EMP, computers may be scarce. My idea is to have all of the input and output needed to program the device on the device itself - completely self-contained. Lee Hart designed a modern copy of the ancient COSMAC ELF called the Membership Card (http://www.sunrise-ev.com/1802.htm.) On his page, Lee mentions, "you don't need a modern PC, or megabytes of proprietary software." This is just what we want after a disaster. Unfortunately, while the Membership Card works just fine, it is a bit low on the control I/O, to read sensors and control things. Our control system needs to be able to be programmed in the field.
  • Off-board Control I/O: This refers to the computer's capability to read sensors (switches, temperature, light, motion, etc.) and to turn actuators (lights, heaters, motors, speakers, etc.) on and off. My thoughts here are to have several analog inputs, which can be used for determining the temperature, light level, water level, sound level, etc of the computer's environment. Also included would be digital outputs (LED lights, speakers, the LCD panel, etc.) to provide information to the user/operator. In addition, it should have a couple of relay outputs to activate things like heaters, motors and alarms (like the car horns in "Lights Out" (https://www.giltweasel.com/stuff/LightsOut-Current.pdf.)
  • Simple Programming: As mentioned in #2, this device should be totally self-contained. But it would not be as useful if it was so complex that only an experienced programmer could set it up. Here, I am envisioning a system that emulates something like the Bell Labs' CardIAC (Cardboard Illustrative Aid to Computation - https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation.) This thing was so simple that anyone with a bit of intelligence could learn it and start programming it within a day or two. Obviously, the CardIAC by itself would not work, the thing is made out of cardboard, and there is no way to control real device. My thoughts are to give the control computer just enough additional capability to be useful in the real world, but still very simple to program (this is something that I have been looking into for ~40 years - I wrote an emulator for this while still in high school.)
Several years ago I started on a simple Arduino-based handheld computer with an LCD and a hex keypad. Going back to my design files, this looks like it will be pretty easy to upgrade to a PicoMite system. I posted about this on ZappBots forum (https://zappbots.altervista.org/forum/viewtopic.php?f=41&t=216,) and recently rediscovered it.


Clearly, it was not completed, even for the Arduino, but I still have the CADD files, and am going to play around with it to create something similar for the PicoMite.

So, this looks like a good, useful, goal for my next handheld computer. Any thoughts, ideas or suggestions?

Jason D.

Looks like all those things require electricity, I wasn't sure if a steady supply of power was available to you after such an event. I think a drone would be important also, not everyone would have wireless communication knowledge but you could fly a note to their doorstep up to several miles away. I think micro communities, good neighbors,would be a person strongest alley to survive such an event.

granz

Quote from: Jason D. on Dec 23, 2024, 11:47 AMLooks like all those things require electricity, I wasn't sure if a steady supply of power was available to you after such an event. I think a drone would be important also, not everyone would have wireless communication knowledge but you could fly a note to their doorstep up to several miles away. I think micro communities, good neighbors,would be a person strongest alley to survive such an event.
Jason, are you the "ElectronsRfun" from the ZappBots forum? I haven't heard from that Jason for quite a while.

Chris Savage

#9

        I'm only responsible for what I say, not what you understand.

granz

Quote from: Jason D. on Dec 23, 2024, 11:47 AMLooks like all those things require electricity, I wasn't sure if a steady supply of power was available to you after such an event. ...
Yes, electricity would be important, but I was thinking that, even in a disaster, you could still have the batteries in cars, and other things. Some solar panels (maybe EMP protected) could be available, some generators (wind, hydro, pedal - again maybe EMP protected) could be available. This would be run/recharged from these sources.

granz

Some input requested, please:

The display that I was using in my (still not completed) handheld, shown in the earlier post, used a Nokia 5110 display. That is still fairly cheap, requires low power and is pretty easy to interface and use. And, PicoMite BASIC has built-in drivers for that display.

However, that does not automatically make it the best. The 5110 is pretty low-resolution, and black and white only. Do any of you have a preferred display? Remember, that this is supposed to be low cost enough that you can build a few (or many) and wrap them up in EMP protection and store them for emergencies (keeping one to play with study.  :D ) Also, I am trying to fit this on the upper half of a 2"X4" (5cm X 10cm) board, so it needs to be about the same size as the 5110 (and, did I mention that it needs to be cheap?) So, any ideas?

Chris Savage

Quote from: granz on Dec 25, 2024, 03:17 PMI am trying to fit this on the upper half of a 2"X4" (5cm X 10cm) board, so it needs to be about the same size as the 5110 (and, did I mention that it needs to be cheap?) So, any ideas?

Well, for starters, the 5110 appears to be an 84x84 LCD with an SPI interface, whereas the more commonly used displays are 128x64 OLED. The caveat is these displays are usually monochrome as well and use I2C for the interface.

There are several higher resolution color displays with an SPI interface. I have purchased (but not yet used) a few of these myself. Here's one example. This one is 96x64. For higher resolution, the cost goes up, but here is another example. This one is 1.5" with a resolution of 128x128.

Ironically, you can get a 3.5" 480x320 Touch Screen TFT Display Panel for $17.99, however it's designed for Raspberry Pi.

        I'm only responsible for what I say, not what you understand.

granz

#13
Quote from: Chris Savage on Dec 26, 2024, 10:13 AM
Quote from: granz on Dec 25, 2024, 03:17 PMI am trying to fit this on the upper half of a 2"X4" (5cm X 10cm) board, so it needs to be about the same size as the 5110 (and, did I mention that it needs to be cheap?) So, any ideas?

Well, for starters, the 5110 appears to be an 84x84 LCD with an SPI interface, whereas the more commonly used displays are 128x64 OLED. The caveat is these displays are usually monochrome as well and use I2C for the interface.
The 5110 is actually 84x48, but that would not be an issue with the small amount that should be displayed on it in my handheld. And at ~$8 each, it would fit the budget (especially if I could get several of them for lower individual prices, and pay shipping for the batch - one on Amazon is $2.80 with $4.40 shipping, if I could find a deal like that but a single shipping price for several displays, it could be even cheaper.
Quote from: Chris Savage on Dec 26, 2024, 10:13 AMThere are several higher resolution color displays with an SPI interface. I have purchased (but not yet used) a few of these myself. Here's one example. This one is 96x64. For higher resolution, the cost goes up, but here is another example. This one is 1.5" with a resolution of 128x128.

Ironically, you can get a 3.5" 480x320 Touch Screen TFT Display Panel for $17.99, however it's designed for Raspberry Pi.
Yeah, that would probably not be any trouble. That display is controlled by an ILI9486, and while PicoMite BASIC does not have that one, it is probably close enough to the ILI9488 (that PicoMite does support) that it could probably be fudged to work. No, the two troubles with that 3.5" display is the size, and the price. I still want the handheld to be under about $20-$25 per unit, and the $18 that Amazon wants for that display will blow that away.

While looking at the links you gave, I did find one color-ish (yellow on top and blue on the bottom) display for $5.99 with prime shipping. Looking closer at the options, I see that I can order six displays, fully blue, for $15.99 ($16.95 with tax, for $2.83 each.) One of those sets of six are now ordered, they should be here by Tuesday.

These cheapie displays are also covered by PicoMite BASIC built-in commands. It looks like this is the way to go, for now. Any other thoughts?

Chris Savage

Quote from: granz on Dec 26, 2024, 06:59 PMThe 5110 is actually 84x48, but that would not be an issue with the small amount that should be displayed on it in my handheld.t's designed for Raspberry Pi.

Yeah, that's why I turned that into a link. I knew I would mistype something while I was at work (too many distractions).

Quote from: granz on Dec 26, 2024, 06:59 PMWhile looking at the links you gave, I did find one color-ish (yellow on top and blue on the bottom) display for $5.99 with prime shipping. Looking closer at the options, I see that I can order six displays, fully blue, for $15.99 ($16.95 with tax, for $2.83 each.) One of those sets of six are now ordered, they should be here by Tuesday.
These cheapie displays are also covered by PicoMite BASIC built-in commands. It looks like this is the way to go, for now. Any other thoughts?

These are the same displays I have been using in projects...you can see one used in this project. I usually buy them 3 or 5 at a time for cheap. They are OLED and use I2C interface. On I2C you can also change the address of one unit so two can be on the same I2C bus.

No other thoughts at the moment. It's been a long day and I am burned out...

        I'm only responsible for what I say, not what you understand.